]> git.sesse.net Git - vlc/blob - configure.ac
Initial libass support.
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc, 0.9.0)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA=""
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59c)
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE(tar-ustar)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Deprecated options
34 dnl  to notify packagers that stuff has changed
35 dnl
36 AC_ARG_ENABLE(python-bindings,
37   [  --enable-python-bindings Always fails for historical reasons)],,
38   [enable_python_bindings="no"])
39 AS_IF([test "${enable_python_bindings}" != "no"], [
40   AC_MSG_ERROR([Python bindings are now built from a separate source package])
41 ])
42
43 AC_ARG_ENABLE(java-bindings,
44   [  --enable-java-bindings  Always fails for historical reasons],,
45   [enable_java_bindings="no"])
46 AS_IF([test "${enable_java_bindings}" != "no"], [
47   AC_MSG_ERROR([Java bindings are now built from a separate source package])
48 ])
49
50 dnl
51 dnl  Save *FLAGS
52 dnl
53 VLC_SAVE_FLAGS
54
55 dnl
56 dnl Check for tools
57 dnl
58 AC_PROG_CC_C99
59 AC_USE_SYSTEM_EXTENSIONS
60 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
61 AM_PROG_CC_C_O
62 AC_PROG_CXX
63 AC_PROG_CPP
64 AC_PROG_OBJC
65 _AM_DEPENDENCIES([OBJC])
66 AC_PROG_EGREP
67 AC_PROG_MAKE_SET
68 AC_PROG_INSTALL
69 AM_PROG_AS
70
71 dnl Find the right ranlib, even when cross-compiling
72 AC_CHECK_TOOL(RANLIB, ranlib, :)
73 AC_CHECK_TOOL(STRIP, strip, :)
74 AC_CHECK_TOOL(AR, ar, :)
75 AC_CHECK_TOOL(LD, ld, :)
76 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
77
78 dnl Check for compiler properties
79 AC_C_CONST
80 AC_C_INLINE
81 AC_C_RESTRICT
82
83 dnl Allow binary package maintainer to pass a custom string to avoid 
84 dnl cache problem
85 AC_ARG_WITH(binary-version, 
86         AS_HELP_STRING([--with-binary-version=STRING],
87              [To avoid plugins cache problem between binary version]),[],[])
88 AS_IF([test -n "${with_binary_version}"],[
89       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
90                          [Binary specific version])
91       ])
92
93
94 dnl
95 dnl  Check for the contrib directory
96 dnl
97 AC_ARG_WITH(contrib,
98     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
99   if test "${with_contrib}" != "no"; then 
100     AC_MSG_CHECKING([for libs in extras/contrib])
101     topdir="`dirname $0`"
102     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
103        topdir="`pwd`/$topdir"
104     fi
105    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
106       if test "${with_contrib}" = "yes"; then
107         AC_MSG_RESULT([no])
108         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
109       else
110         AC_MSG_RESULT([no])
111         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
112       fi
113      else
114   if test -d ${topdir}/extras/contrib/lib; then
115     AC_MSG_RESULT([yes])
116     export PATH=${topdir}/extras/contrib/bin:$PATH
117     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
118     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
119     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
120     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
121     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
122     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
123     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
124     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
125     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
126         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
127     else
128         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
129     fi
130     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
131     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
132
133     if test -z $with_mozilla_sdk_path; then
134        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
135     fi
136     if test -z $with_cyberlink_tree; then
137        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
138     fi
139
140     if test ".`uname -s`" = ".Darwin"; then
141       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
142       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
143     elif test ".`uname -s`" = ".BeOS"; then
144       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
145       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
146     fi
147   else
148      AC_MSG_RESULT([no])
149   fi
150   fi
151 fi
152 dnl
153 dnl  Set default values
154 dnl
155 LDFLAGS_vlc="${LDFLAGS}"
156
157 dnl
158 dnl  Check the operating system
159 dnl
160 case "${host_os}" in
161   "")
162     SYS=unknown
163     ;;
164   linux*)
165     SYS=linux
166     ;;
167   bsdi*)
168     SYS=bsdi
169     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
170     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
171     ;;
172   *bsd*)
173     SYS="${host_os}"
174     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
175     case "${host_os}" in
176       freebsd*)
177         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
178         CPPFLAGS="${CPPFLAGS_save}"
179         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
180         LDFLAGS="${LDFLAGS_save}"
181         ;;
182     esac
183     ;;
184   darwin*)
185     SYS=darwin
186     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
187     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
188     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
189     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
190     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
191     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
192     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
193     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
194     VLC_ADD_LDFLAGS([avcodec avformat swscale imgresample postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
195     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
196     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,CoreFoundation])
197     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
198     AC_ARG_ENABLE(macosx-defaults,
199       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration
200                      on Mac OS X (default enabled)]))
201     if test "x${enable_macosx_defaults}" != "xno"
202     then
203         echo ""
204         echo "Building with Mac OS X defaults:"
205         with_macosx_version_min="10.4"
206         echo "  Assuming --with-macosx-version-min=10.4"
207         build_dir=`pwd`
208         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
209         ac_default_prefix="${build_dir}/vlc_install_dir"
210         enable_macosx="yes"
211         echo "  Assuming --enable-macosx"
212         enable_faad="yes"
213         echo "  Assuming --enable-faad"
214         enable_flac="yes"
215         echo "  Assuming --enable-flac"
216         enable_theora="yes"
217         echo "  Assuming --enable-theora"
218         enable_shout="yes"
219         echo "  Assuming --enable-shout"
220         enable_cddax="yes"
221         echo "  Assuming --enable-cddax"
222         enable_vcdx="yes"
223         echo "  Assuming --enable-vcdx"
224         enable_caca="yes"
225         echo "  Assuming --enable-caca"
226         enable_goom="yes"
227         echo "  Assuming --enable-goom"
228         enable_ncurses="yes"
229         echo "  Assuming --enable-ncurses"
230         enable_twolame="yes"
231         echo "  Assuming --enable-twolame"
232         enable_realrtsp="yes"
233         echo "  Assuming --enable-realrtsp"
234         enable_update_check="yes"
235         echo "  Assuming --enable-update-check"
236
237         enable_skins2="no"
238         echo "  Assuming --disable-skins2"
239         enable_x11="no"
240         echo "  Assuming --disable-x11"
241         enable_glx="no"
242         echo "  Assuming --disable-glx"
243         enable_xvideo="no"
244         echo "  Assuming --disable-xvideo"
245     fi
246     if test ".`uname -p`" = ".i386"; then
247         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
248         dnl without hacking it a lot, we disable mmx and sse.
249         dnl (that bug is about ld being unable to handle
250         dnl text relocation)
251         save_cflags="$CFLAGS"
252         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
253         AC_TRY_LINK(
254             [int a;], [asm("movq _a,%mm0\n");],
255             ac_ld_does_not_support_text_reloc=no,
256             ac_ld_does_not_support_text_reloc=yes)
257         CFLAGS="$save_cflags"
258
259         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
260             enable_mmx="no"
261             echo "  Assuming --disable-mmx (due to a bug in ld)"
262             enable_sse="no"
263             echo "  Assuming --disable-sse (due to a bug in ld)"
264         fi
265     fi
266     dnl
267     dnl  Check for Mac OS X SDK settings
268     dnl
269     AC_ARG_WITH(macosx-sdk,
270        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
271     if test "${with_macosx_sdk}" != "" ; then
272         CC="${CC} -isysroot ${with_macosx_sdk}" 
273         CXX="${CXX} -isysroot ${with_macosx_sdk}"
274         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
275         LD="${LD} -syslibroot ${with_macosx_sdk}"
276     fi
277     AC_ARG_WITH(macosx-version-min,
278        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
279     if test "${with_macosx_version_min}" != "" ; then
280         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
281         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
282         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
283         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
284         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
285         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
286         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
287         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
288         export MACOSX_DEPLOYMENT_TARGET
289     fi
290     ;;
291   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
292     AC_CHECK_TOOL(WINDRES, windres, :)
293
294     case "${host_os}" in
295       *wince* | *mingwce* | *mingw32ce* | *pe*)
296         SYS=mingwce
297         ;;
298       *mingw32*)
299         SYS=mingw32
300         ;;
301       *cygwin*)
302         dnl Check if we are using the mno-cygwin mode in which case we are
303         dnl actually dealing with a mingw32 compiler.
304         AC_EGREP_CPP(yes,
305             [#ifdef WIN32
306              yes
307              #endif],
308             SYS=mingw32, SYS=cygwin)
309         ;;
310     esac
311
312     if test "${SYS}" = "mingw32"; then
313         # add ws2_32 for closesocket, select, recv
314         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
315         VLC_ADD_LDFLAGS([vlc],[-mwindows])
316         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
317         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
318         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd],[-lws2_32])
319     fi
320     if test "${SYS}" = "mingwce"; then
321         # add ws2 for closesocket, select, recv
322         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
323         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
324         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd],[-lws2])
325         VLC_ADD_LIBS([libvlc],[-lmmtimer])
326    fi
327     ;;
328   *nto*)
329     SYS=nto
330     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
331     ;;
332   solaris*)
333     SYS=solaris
334     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
335     # Perhaps it is useful other places as well? 
336     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
337     ;;
338   hpux*)
339     SYS=hpux
340     ;;
341   beos)
342     SYS=beos
343     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
344     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
345     VLC_ADD_CXXFLAGS([beos],[])
346     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
347     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
348     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
349     VLC_ADD_LIBS([access_file],[-lpoll])
350     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
351     dnl Check for BONE
352     if test -f /boot/beos/system/lib/libbind.so; then
353         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
354     else
355         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
356     fi
357
358     dnl Ugly check for Zeta
359     if test -f /boot/beos/system/lib/libzeta.so; then
360         VLC_ADD_LIBS([beos],[-lzeta])
361     fi
362     ;;
363   *)
364     SYS="${host_os}"
365     ;;
366 esac
367 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
368 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
369 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
370 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
371 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
372
373 dnl
374 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
375 dnl for program foo on win32
376
377 case "${build_os}" in
378     cygwin|msys)
379         ac_executable_extensions=".exe"
380     ;;
381     *)
382     ;;
383 esac
384
385 dnl 
386 dnl  Libtool
387 dnl  It's very bad, but our former custom system was worst
388 dnl  -- Courmisch
389 dnl
390
391 dnl override platform specific check for dependent libraries
392 dnl otherwise libtool linking of shared libraries will
393 dnl fail on anything other than pass_all.
394 AC_CACHE_VAL(lt_cv_deplibs_check_method,
395     [lt_cv_deplibs_check_method=pass_all])
396
397 AC_DISABLE_STATIC
398 AC_DISABLE_FAST_INSTALL
399 AC_LIBTOOL_DLOPEN
400 AC_LIBTOOL_WIN32_DLL
401 m4_undefine([AC_PROG_F77])
402 m4_defun([AC_PROG_F77],[])
403 AC_PROG_LIBTOOL
404
405 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
406 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
407
408 lt_cv_deplibs_check_method=pass_all
409
410
411 dnl
412 dnl Gettext stuff
413 dnl
414 AM_GNU_GETTEXT_VERSION([0.17])
415 AM_GNU_GETTEXT([external])
416 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
417
418 dnl
419 dnl Iconv stuff
420 dnl
421 AM_ICONV
422 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
423 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
424
425 dnl Check for the need to include the mingwex lib for mingw32
426 if test "${SYS}" = "mingw32"
427 then
428     AC_CHECK_LIB(mingwex,opendir,
429         AC_CHECK_LIB(mingw32,opendir,,
430             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
431     )
432 fi
433
434 dnl Check for fnative-struct or mms-bitfields support for mingw32
435 if test "${SYS}" = "mingw32"
436 then
437     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
438         [ac_cv_c_mms_bitfields],
439         [CFLAGS="${CFLAGS_save} -mms-bitfields"
440          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
441     if test "${ac_cv_c_mms_bitfields}" != "no"; then
442         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
443         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
444     else
445         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
446             [ac_cv_c_fnative_struct],
447             [CFLAGS="${CFLAGS_save} -fnative-struct"
448              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
449         if test "${ac_cv_c_fnative_struct}" != "no"; then
450             CFLAGS_save="${CFLAGS_save} -fnative-struct";
451             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
452         fi
453     fi
454
455     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
456 fi
457
458 dnl Check for fvtable-thunks support for mingw32
459 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
460 then
461 AC_LANG_PUSH(C++)
462     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
463         [ac_cv_cxx_fvtable_thunks],
464         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
465          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
466                         ac_cv_cxx_fvtable_thunks=no)])
467     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
468         CXXFLAGS_mingw32_special="-fvtable-thunks"
469     fi
470
471     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
472 AC_LANG_POP(C++)
473 fi
474
475 dnl Plugin compilation stuff
476
477 VLC_LIBRARY_SUFFIX
478
479 dnl The -DSYS_FOO flag
480 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
481
482 dnl Check for system libs needed
483 need_libc=false
484
485 dnl Check for usual libc functions
486 AC_CHECK_FUNCS([gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid_r memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy strdup strndup strnlen atof lldiv posix_fadvise posix_madvise uselocale])
487 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
488 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
489 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
490 AC_FUNC_ALLOCA
491
492 AH_BOTTOM([#include <vlc_fixups.h>])
493
494 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
495
496 dnl Check for setlocal and langinfo
497 AC_CHECK_FUNCS(setlocale)
498 AC_CHECK_HEADERS(langinfo.h)
499 AC_CHECK_FUNCS(nl_langinfo)
500
501 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
502   [AC_TRY_LINK([#include <langinfo.h>],
503     [char* cs = nl_langinfo(CODESET);],
504     ac_cv_langinfo_codeset=yes,
505     ac_cv_langinfo_codeset=no)
506   ])
507 if test ${ac_cv_langinfo_codeset} = yes; then
508   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
509     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
510 fi
511
512 AC_CHECK_FUNCS(connect,,[
513   AC_CHECK_LIB(socket,connect,[
514     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
515     LIBS_socket="-lsocket"
516   ])
517 ])
518
519 AC_CHECK_FUNCS(send,,[
520   AC_CHECK_LIB(socket,send,[
521     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp access_output_rtmp stream_out_standard growl_udp remoteosd],[-lsocket])
522   ])
523 ])
524
525 AC_CHECK_FUNCS(gethostbyname,,[
526   AC_CHECK_LIB(nsl,gethostbyname,[
527     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
528   ],[
529     AC_CHECK_LIB(bind,gethostbyname,[
530       VLC_ADD_LIBS([access_mms],[-lbind])
531     ])
532   ])
533 ])
534
535 AC_CHECK_HEADERS(zlib.h, [
536   VLC_ADD_LIBS([access_http],[-lz])
537 ])
538
539 dnl Check for socklen_t
540 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
541 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
542 ac_cv_type_socklen_t,
543 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
544 [#include <sys/types.h>
545 #ifdef WIN32
546 # include <winsock2.h>
547 # include <ws2tcpip.h>
548 #else
549 # include <sys/socket.h>
550 #endif]], [[socklen_t len; len = 0;]])],
551 ac_cv_type_socklen_t=yes,
552 ac_cv_type_socklen_t=no)])
553 AS_IF([test "$ac_cv_type_socklen_t" = no],
554  [AC_DEFINE(socklen_t, int)])
555
556 dnl Check for struct sockaddr_storage
557 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
558 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
559 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
560   [AC_TRY_COMPILE(
561     [#include <sys/types.h>
562      #if defined( UNDER_CE )
563      # include <winsock.h>
564      #elif defined( WIN32 )
565      # include <winsock2.h>
566      #else
567      # include <sys/socket.h>
568      #endif], [struct sockaddr_storage addr;],
569      ac_cv_struct_sockaddr_storage=yes,
570      ac_cv_struct_sockaddr_storage=no)])
571 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
572   AC_DEFINE(sockaddr_storage, sockaddr)
573   AC_DEFINE(ss_family, sa_family)
574 ])
575
576 dnl getaddrinfo, getnameinfo and gai_strerror check
577 dnl  -lnsl and -lsocket are needed on Solaris;
578 dnl  we purposedly make the test fail on Windows
579 LIBS_save="${LIBS}"
580 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
581 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
582
583 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
584 dnl are
585 LIBS="${LIBS_gai}"
586 AC_CHECK_FUNCS([getnameinfo gai_strerror])
587 LIBS="${LIBS_save}"
588
589 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
590 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
591 [#include <sys/types.h>
592 #if defined( WIN32 ) || defined( UNDER_CE )
593 # if defined(UNDER_CE) && defined(sockaddr_storage)
594 #  undef sockaddr_storage
595 # endif
596 # include <winsock2.h>
597 # include <ws2tcpip.h>
598 #else
599 # include <netdb.h>
600 #endif])
601
602 dnl Check for va_copy
603 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
604   AC_TRY_LINK(
605     [#include <stdarg.h>],
606     [va_list ap1, ap2; va_copy(ap1,ap2);],
607     [ac_cv_c_va_copy="yes"],
608     [ac_cv_c_va_copy="no"]))
609 if test "${ac_cv_c_va_copy}" = "yes"; then
610   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
611 fi
612 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
613   AC_TRY_LINK(
614     [#include <stdarg.h>],
615     [va_list ap1, ap2; __va_copy(ap1,ap2);],
616     [ac_cv_c___va_copy="yes"],
617     [ac_cv_c___va_copy="no"]))
618 if test "${ac_cv_c___va_copy}" = "yes"; then
619   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
620 fi
621
622 AC_CHECK_FUNCS(inet_aton,,[
623   AC_CHECK_LIB(resolv,inet_aton,[
624     VLC_ADD_LIBS([libvlc],[-lresolv])
625   ])
626 ])
627
628 dnl Check for getopt (always use builtin one on win32)
629 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
630 need_getopt=:
631 else
632 need_getopt=false
633 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
634 [ # FreeBSD has a gnugetopt library for this:
635   AC_CHECK_LIB([gnugetopt],[getopt_long],
636     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
637      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
638     [need_getopt=:])])
639 fi
640 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
641
642 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
643 AC_TYPE_SIGNAL
644 AC_CHECK_LIB(m,cos,[
645   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
646 ])
647 AC_CHECK_LIB(m,pow,[
648   VLC_ADD_LIBS([avcodec avformat swscale imgresample postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
649 ])
650 AC_CHECK_LIB(m,sqrt,[
651   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
652 ])
653 AC_CHECK_LIB(m,ceil,[
654   VLC_ADD_LIBS([mosaic],[-lm])
655 ])
656 AC_CHECK_LIB(m,exp,[
657   VLC_ADD_LIBS([gaussianblur],[-lm])
658 ])
659 AC_CHECK_LIB(m,round,[
660   VLC_ADD_LIBS([dbus],[-lm])
661 ])
662 AC_CHECK_LIB(mx,sqrtf,[
663   VLC_ADD_LIBS([x264],[-lmx])
664 ])
665 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
666
667 dnl Check for dynamic plugins
668 ac_cv_have_plugins=no
669
670 # OS X style
671 AC_CHECK_HEADERS(mach-o/dyld.h,
672   [AC_CHECK_FUNCS(NSLinkModule,
673     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
674      ac_cv_have_plugins=yes])])
675
676 # HP-UX style
677 if test "${ac_cv_have_plugins}" = "no"; then
678   AC_CHECK_HEADERS(dl.h)
679   ac_cv_my_have_shl_load=no
680   AC_CHECK_FUNC(shl_load,
681    [ac_cv_my_have_shl_load=yes,
682     AC_CHECK_LIB(dld, shl_load,
683      [ac_cv_my_have_shl_load=yes
684       VLC_ADD_LIBS([libvlc],[-ldld])])])
685   if test "${ac_cv_my_have_shl_load}" = "yes"; then
686     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
687     ac_cv_have_plugins=yes
688   fi
689 fi
690
691 # Whatever style
692 if test "${ac_cv_have_plugins}" = "no"; then
693   AC_CHECK_LIB(dld, dld_link,
694    [VLC_ADD_LIBS([libvlc],[-ldld])
695     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
696     ac_cv_have_plugins=yes])
697 fi
698
699 # Win32 style
700 if test "${ac_cv_have_plugins}" = "no"; then
701   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
702     AC_CHECK_LIB(kernel32, main,
703      [VLC_ADD_LIBS([libvlc],[-lkernel32])
704       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
705       ac_cv_have_plugins=yes])
706   fi
707 fi
708
709 # WinCE style
710 if test "${ac_cv_have_plugins}" = "no"; then
711   if test "${SYS}" = "mingwce"; then
712     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
713     ac_cv_have_plugins=yes
714   fi
715 fi
716
717 # BeOS style
718 if test "${ac_cv_have_plugins}" = "no"; then
719   AC_CHECK_HEADERS(image.h)
720   AC_CHECK_FUNCS(load_add_on,
721    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
722     ac_cv_have_plugins=yes])
723 fi
724
725 # Only test for dlopen() if the others didn't work
726 if test "${ac_cv_have_plugins}" = "no"; then
727   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
728   ac_cv_my_have_dlopen=no
729   AC_CHECK_FUNC(dlopen,
730     ac_cv_my_have_dlopen=yes,
731     AC_CHECK_LIB(dl, dlopen,
732       ac_cv_my_have_dlopen=yes
733       VLC_ADD_LIBS([libvlc realaudio realvideo],[-ldl]),
734       AC_CHECK_LIB(svld, dlopen,
735         ac_cv_my_have_dlopen=yes
736         VLC_ADD_LIBS([libvlc],[-lsvld]))))
737   if test "${ac_cv_my_have_dlopen}" = "yes"; then
738     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
739     ac_cv_have_plugins=yes
740   fi
741 fi
742
743 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
744 dnl Check for pthreads - borrowed from XMMS
745 THREAD_LIB=error
746 if test "${THREAD_LIB}" = "error"; then
747   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
748 fi
749 if test "${THREAD_LIB}" = "error"; then
750   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
751 fi
752 if test "${THREAD_LIB}" = "error"; then
753   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
754 fi
755 if test "${THREAD_LIB}" = "error"; then
756   AC_CHECK_FUNCS(pthread_mutex_lock)
757   THREAD_LIB=""
758 fi
759
760 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
761
762 AC_CHECK_LIB(rt, clock_nanosleep, [
763   VLC_ADD_LIBS([libvlc],[-lrt])
764   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
765 ], [
766   dnl HP/UX port
767   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
768 ])
769
770 have_nanosleep=false
771 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
772   AC_CHECK_LIB(rt,nanosleep,
773     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
774     [AC_CHECK_LIB(posix4,nanosleep,
775         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
776   )
777 ])
778 if ${have_nanosleep}; then
779   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
780 fi
781 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
782
783 dnl Check for misc headers
784 AC_MSG_CHECKING(for strncasecmp in strings.h)
785 AC_EGREP_HEADER(strncasecmp,strings.h,[
786   AC_MSG_RESULT(yes)
787   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
788             Define if <strings.h> defines strncasecmp.)],[
789   AC_MSG_RESULT(no)])
790
791 dnl Check for headers
792 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h locale.h)
793 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h xlocale.h)
794 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h])
795 AC_CHECK_HEADERS([net/if.h], [], [],
796   [
797     #include <sys/socket.h>
798   ])
799 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
800 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
801 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
802 AC_CHECK_HEADERS(syslog.h)
803 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
804
805 AC_HEADER_TIME
806
807 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
808 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
809 AC_CHECK_TYPE(ssize_t,, [
810   AC_DEFINE(ssize_t, int)
811 ])
812
813 dnl don't attemp to use poll on darwin, it can't poll a tty. select will do a better job.
814 if test "${SYS}" != "darwin"; then
815   AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
816 fi
817
818 dnl Check for dirent
819 need_dirent=false
820 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
821 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
822
823 dnl Mac OS X and other OSes don't have declaration for nanosleep
824 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
825 AC_MSG_CHECKING(for nanosleep in time.h)
826 AC_EGREP_HEADER(nanosleep,time.h,[
827   AC_MSG_RESULT(yes)
828   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
829             Define if <time.h> defines nanosleep.)
830 ],[
831   AC_MSG_RESULT(no)
832 ])
833 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
834
835 dnl Make sure we have timespecs
836 AC_MSG_CHECKING(for timespec in sys/time.h)
837 AC_EGREP_HEADER(timespec,sys/time.h,[
838   AC_MSG_RESULT(yes)
839   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
840             Define if <sys/time.h> defines struct timespec.)
841 ],[
842   AC_MSG_RESULT(no)
843 ])
844
845 dnl Check for threads library
846 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
847 AC_CHECK_HEADERS(pthread.h kernel/scheduler.h kernel/OS.h)
848 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
849
850 dnl Find where are the X headers and libraries
851 AC_PATH_XTRA()
852
853 dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
854 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
855 AC_ARG_VAR(PKG_CONFIG_PATH, 
856            [Paths where to find .pc not at the default location])
857 PKG_PROG_PKG_CONFIG()
858
859 dnl Check for hal
860 AC_ARG_ENABLE(hal,
861   [  --enable-hal            Linux HAL services discovery (default enabled)])
862  
863 if test "${enable_hal}" != "no"
864 then
865   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
866     [
867       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
868       VLC_ADD_PLUGIN([hal])
869       VLC_ADD_PLUGIN([probe_hal])
870       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
871       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],
872     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
873   )
874 fi
875
876 dnl Check for dbus
877 AC_ARG_ENABLE(dbus,
878   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
879 case "${SYS}" in
880     linux*|*bsd*)
881 if test "${enable_dbus}" != "no"
882 then
883   dnl api stable dbus
884   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
885     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
886       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
887       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
888       dnl Check for dbus control interface
889         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
890         if test "${enable_dbus_control}" != "no"
891         then
892           VLC_ADD_PLUGIN([dbus])
893           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
894           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
895         fi
896       dnl Check for Telepathy
897         AC_ARG_ENABLE(telepathy,
898           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
899         if test "${enable_telepathy}" != "no"; then
900           VLC_ADD_PLUGIN([telepathy])
901           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
902           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
903         fi
904         dnl Power Management Inhibiter
905         VLC_ADD_PLUGIN([inhibit])
906         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
907         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
908     ],
909     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
910   )
911 fi
912 ;;
913 esac
914
915 dnl Build the gtk_main plugins?
916 NEED_GTK_MAIN=no
917 NEED_GNOME_MAIN=no
918 NEED_GTK2_MAIN=no
919 NEED_GNOME2_MAIN=no
920
921 dnl build the qte plugin ?
922 NEED_QTE_MAIN=no
923
924 dnl Check for ntohl, etc.
925 AC_CACHE_CHECK([for ntohl in sys/param.h],
926     [ac_cv_c_ntohl_sys_param_h],
927     [CFLAGS="${CFLAGS_save} -Wall -Werror"
928      AC_TRY_COMPILE([#include <sys/param.h>],
929         [int meuh; ntohl(meuh);],
930         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
931 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
932     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
933 fi
934 CFLAGS="${CFLAGS_save}"
935
936 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
937 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
938
939 dnl Check for various optimization flags
940 AC_CACHE_CHECK([if \$CC accepts -Os],
941     [ac_cv_c_os],
942     [CFLAGS="${CFLAGS_save} -Os"
943      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
944 if test "${ac_cv_c_os}" != "no"; then
945     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
946 else 
947     AC_CACHE_CHECK([if \$CC accepts -O],
948         [ac_cv_c_o],
949         [CFLAGS="${CFLAGS_save} -O"
950          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
951     if test "${ac_cv_c_o}" != "no"; then
952         if test "${ac_cv_c_o3}" = "no"; then
953             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
954         fi
955     fi
956 fi
957
958 AC_CACHE_CHECK([if \$CC accepts -O3],
959     [ac_cv_c_o3],
960     [CFLAGS="${CFLAGS_save} -O3"
961      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
962 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
963     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
964 else
965     AC_CACHE_CHECK([if \$CC accepts -O2],
966         [ac_cv_c_o2],
967         [CFLAGS="${CFLAGS_save} -O2"
968          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
969     if test "${ac_cv_c_o2}" != "no"; then
970         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
971     else
972         AC_CACHE_CHECK([if \$CC accepts -O],
973             [ac_cv_c_o],
974             [CFLAGS="${CFLAGS_save} -O"
975              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
976         if test "${ac_cv_c_o}" != "no"; then
977             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
978         fi
979     fi
980 fi
981
982 AC_CACHE_CHECK([if \$CC accepts -O0],
983     [ac_cv_c_o0],
984     [CFLAGS="${CFLAGS_save} -O0"
985      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
986 if test "${ac_cv_c_o0}" != "no"; then
987     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
988 fi
989
990 dnl Check for -ffast-math
991 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
992     [ac_cv_c_fast_math],
993     [CFLAGS="${CFLAGS_save} -ffast-math"
994      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
995 if test "${ac_cv_c_fast_math}" != "no"; then
996     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
997 fi
998
999 dnl Check for -funroll-loops
1000 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1001 if test "${SYS}" != "beos"
1002 then
1003   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1004       [ac_cv_c_unroll_loops],
1005       [CFLAGS="${CFLAGS_save} -funroll-loops"
1006        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1007   if test "${ac_cv_c_unroll_loops}" != "no"; then
1008       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1009   fi
1010 fi
1011
1012 dnl Check for -fomit-frame-pointer
1013 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1014     [ac_cv_c_omit_frame_pointer],
1015     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1016      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1017 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1018     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1019 fi
1020
1021 dnl Check for Darwin plugin linking flags
1022 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1023     [ac_cv_ld_darwin],
1024     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1025      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1026 if test "${ac_cv_ld_darwin}" != "no"; then
1027     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1028 fi
1029
1030 dnl Checks for __attribute__(aligned()) directive
1031 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1032     [ac_cv_c_attribute_aligned],
1033     [ac_cv_c_attribute_aligned=0
1034         CFLAGS="${CFLAGS_save} -Werror"
1035     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1036         AC_TRY_COMPILE([],
1037         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1038         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1039     done
1040         CFLAGS="${CFLAGS_save}"])
1041 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1042     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1043         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1044 fi
1045
1046 dnl Check for __attribute__((packed))
1047 AC_CACHE_CHECK([for __attribute__((packed))],
1048   [ac_cv_c_attribute_packed],
1049   [ac_cv_c_attribute_packed=no
1050    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1051                     [ac_cv_c_attribute_packed=yes])])
1052 if test "${ac_cv_c_attribute_packed}" != "no"; then
1053   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1054 fi
1055
1056 dnl
1057 dnl  Check the CPU
1058 dnl
1059 case "${host_cpu}" in
1060   "")
1061     ARCH=unknown
1062     ;;
1063   *)
1064     ARCH="${host_cpu}"
1065     ;;
1066 esac
1067
1068 dnl Check for backtrace() support
1069 AC_CHECK_HEADERS(execinfo.h)
1070 AC_CHECK_FUNCS(backtrace)
1071
1072 dnl
1073 dnl  Enable profiling
1074 dnl
1075 AC_ARG_ENABLE(gprof,
1076 [  --enable-gprof          gprof profiling (default disabled)])
1077 AC_ARG_ENABLE(cprof,
1078 [  --enable-cprof          cprof profiling (default disabled)])
1079 test "${enable_gprof}" != "yes" && enable_gprof="no"
1080 test "${enable_cprof}" != "yes" && enable_cprof="no"
1081
1082 dnl
1083 dnl  default modules
1084 dnl
1085 VLC_ADD_PLUGIN([dummy])
1086 VLC_ADD_PLUGIN([stats])
1087 VLC_ADD_PLUGIN([logger])
1088 VLC_ADD_PLUGIN([memcpy])
1089 dnl Demuxers:
1090 VLC_ADD_PLUGIN([mpgv])
1091 VLC_ADD_PLUGIN([mpga])
1092 VLC_ADD_PLUGIN([m4v])
1093 VLC_ADD_PLUGIN([m4a])
1094 VLC_ADD_PLUGIN([h264])
1095 VLC_ADD_PLUGIN([cdg])
1096 VLC_ADD_PLUGIN([ps])
1097 VLC_ADD_PLUGIN([avi])
1098 VLC_ADD_PLUGIN([asf])
1099 VLC_ADD_PLUGIN([mp4])
1100 dnl Text codecs:
1101 VLC_ADD_PLUGIN([cvdsub])
1102 VLC_ADD_PLUGIN([svcdsub])
1103 VLC_ADD_PLUGIN([spudec])
1104 VLC_ADD_PLUGIN([subsdec])
1105 VLC_ADD_PLUGIN([subsusf])
1106 VLC_ADD_PLUGIN([t140])
1107 VLC_ADD_PLUGIN([dvbsub])
1108 VLC_ADD_PLUGIN([cc])
1109 dnl Video codecs:
1110 VLC_ADD_PLUGIN([cinepak])
1111 dnl Audio codecs:
1112 VLC_ADD_PLUGIN([araw])
1113 VLC_ADD_PLUGIN([adpcm])
1114 VLC_ADD_PLUGIN([mpeg_audio])
1115 VLC_ADD_PLUGIN([lpcm])
1116 VLC_ADD_PLUGIN([a52])
1117 VLC_ADD_PLUGIN([dts])
1118 VLC_ADD_PLUGIN([flac])
1119 dnl Video filters:
1120 VLC_ADD_PLUGIN([deinterlace])
1121 VLC_ADD_PLUGIN([invert])
1122 VLC_ADD_PLUGIN([adjust])
1123 VLC_ADD_PLUGIN([transform])
1124 VLC_ADD_PLUGIN([wave])
1125 VLC_ADD_PLUGIN([ripple])
1126 VLC_ADD_PLUGIN([psychedelic])
1127 VLC_ADD_PLUGIN([gradient])
1128 VLC_ADD_PLUGIN([motionblur])
1129 VLC_ADD_PLUGIN([rv32])
1130 VLC_ADD_PLUGIN([rotate])
1131 VLC_ADD_PLUGIN([noise])
1132 VLC_ADD_PLUGIN([grain])
1133 VLC_ADD_PLUGIN([extract])
1134 VLC_ADD_PLUGIN([sharpen])
1135 VLC_ADD_PLUGIN([seamcarving])
1136 VLC_ADD_PLUGIN([croppadd])
1137 VLC_ADD_PLUGIN([canvas])
1138 VLC_ADD_PLUGIN([blendbench])
1139 VLC_ADD_PLUGIN([blend])
1140 VLC_ADD_PLUGIN([scale])
1141 VLC_ADD_PLUGIN([image])
1142 VLC_ADD_PLUGIN([vmem])
1143 VLC_ADD_PLUGIN([logo])
1144 VLC_ADD_PLUGIN([magnify])
1145 VLC_ADD_PLUGIN([puzzle])
1146 VLC_ADD_PLUGIN([colorthres])
1147 dnl Meta demuxers:
1148 VLC_ADD_PLUGIN([playlist])
1149 VLC_ADD_PLUGIN([export])
1150 VLC_ADD_PLUGIN([nsc])
1151 VLC_ADD_PLUGIN([xtag])
1152 dnl Channel mixing audio filters:
1153 VLC_ADD_PLUGIN([converter_fixed])
1154 VLC_ADD_PLUGIN([mono])
1155 VLC_ADD_PLUGIN([trivial_channel_mixer])
1156 dnl Resampling audio filters:
1157 VLC_ADD_PLUGIN([trivial_resampler])
1158 VLC_ADD_PLUGIN([ugly_resampler])
1159 dnl Audio mixers:
1160 VLC_ADD_PLUGIN([trivial_mixer])
1161 dnl Video chromas:
1162 VLC_ADD_PLUGIN([i420_rgb])
1163 VLC_ADD_PLUGIN([grey_yuv])
1164 dnl Video codecs:
1165 VLC_ADD_PLUGIN([rawvideo])
1166 dnl Access filters:
1167 VLC_ADD_PLUGIN([access_filter_timeshift])
1168 VLC_ADD_PLUGIN([access_filter_record])
1169 VLC_ADD_PLUGIN([access_filter_dump])
1170 VLC_ADD_PLUGIN([access_filter_bandwidth])
1171
1172 ALIASES="${ALIASES} cvlc"
1173
1174 dnl
1175 dnl default modules that need g++
1176 dnl
1177 AC_LANG_PUSH(C++)
1178 VLC_ADD_PLUGIN([spatializer])
1179 AC_LANG_POP(C++)
1180
1181 if test "${SYS}" != "mingwce"; then
1182   VLC_ADD_PLUGIN([gestures])
1183   VLC_ADD_PLUGIN([rc])
1184   VLC_ADD_PLUGIN([hotkeys])
1185   VLC_ADD_PLUGIN([showintf])
1186   VLC_ADD_PLUGIN([marq])
1187   VLC_ADD_PLUGIN([podcast])
1188   VLC_ADD_PLUGIN([shout])
1189   VLC_ADD_PLUGIN([sap])
1190   VLC_ADD_PLUGIN([fake])
1191   VLC_ADD_PLUGIN([folder])
1192   VLC_ADD_PLUGIN([rss])
1193   VLC_ADD_PLUGIN([mosaic])
1194   VLC_ADD_PLUGIN([wall])
1195   VLC_ADD_PLUGIN([motiondetect])
1196   VLC_ADD_PLUGIN([clone])
1197   VLC_ADD_PLUGIN([crop])
1198   VLC_ADD_PLUGIN([erase])
1199   VLC_ADD_PLUGIN([bluescreen])
1200   VLC_ADD_PLUGIN([alphamask])
1201   VLC_ADD_PLUGIN([gaussianblur])
1202   VLC_ADD_PLUGIN([i420_yuy2])
1203   VLC_ADD_PLUGIN([i422_yuy2])
1204   VLC_ADD_PLUGIN([i420_ymga])
1205   VLC_ADD_PLUGIN([i422_i420])
1206   VLC_ADD_PLUGIN([yuy2_i422])
1207   VLC_ADD_PLUGIN([yuy2_i420])
1208   VLC_ADD_PLUGIN([chain])
1209   VLC_ADD_PLUGIN([aout_file])
1210   VLC_ADD_PLUGIN([linear_resampler])
1211   VLC_ADD_PLUGIN([bandlimited_resampler])
1212   VLC_ADD_PLUGIN([float32_mixer])
1213   VLC_ADD_PLUGIN([spdif_mixer])
1214   VLC_ADD_PLUGIN([simple_channel_mixer])
1215   VLC_ADD_PLUGIN([dolby_surround_decoder])
1216   VLC_ADD_PLUGIN([headphone_channel_mixer])
1217   VLC_ADD_PLUGIN([normvol])
1218   VLC_ADD_PLUGIN([equalizer])
1219   VLC_ADD_PLUGIN([param_eq])
1220   VLC_ADD_PLUGIN([scaletempo])
1221   VLC_ADD_PLUGIN([converter_float])
1222   VLC_ADD_PLUGIN([a52tospdif])
1223   VLC_ADD_PLUGIN([dtstospdif])
1224   VLC_ADD_PLUGIN([audio_format])
1225   ALIASES="${ALIASES} rvlc"
1226 fi
1227
1228 dnl
1229 dnl Some plugins aren't useful on some platforms
1230 dnl
1231 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1232     VLC_ADD_PLUGIN([screensaver])
1233     VLC_ADD_PLUGIN([motion])
1234     VLC_ADD_PLUGIN([dynamicoverlay])
1235     VLC_ADD_PLUGIN([signals])
1236 elif test "${SYS}" != "mingwce"; then
1237     VLC_ADD_PLUGIN([ntservice])
1238     VLC_ADD_PLUGIN([access_smb])
1239     VLC_ADD_PLUGIN([dmo])
1240     VLC_ADD_PLUGIN([msn])
1241     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1242 else
1243     VLC_ADD_PLUGIN([win32text])
1244 fi
1245 if test "${SYS}" = "darwin"; then
1246     VLC_ADD_PLUGIN([quartztext])
1247     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1248 fi
1249
1250 dnl
1251 dnl  Accelerated modules
1252 dnl
1253 AC_ARG_WITH(,[])
1254 AC_ARG_WITH(,[Optimization options:])
1255
1256 dnl  Check for fully working MMX intrinsics
1257 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1258 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1259 AC_ARG_ENABLE(mmx,
1260 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1261   case "${host_cpu}" in
1262     i?86|x86_64)
1263       enable_mmx="yes"
1264       ;;
1265     *)
1266       enable_mmx="no"
1267       ;;
1268   esac
1269 ])
1270 AS_IF([test "${enable_mmx}" != "no"], [
1271   ARCH="${ARCH} mmx"
1272
1273   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1274     [ac_cv_c_mmx_intrinsics],
1275     [CFLAGS="${CFLAGS_save} -O -mmmx"
1276      AC_TRY_COMPILE([#include <mmintrin.h>
1277                      #include <stdint.h>
1278                      uint64_t frobzor;],
1279                     [__m64 a, b, c;
1280                      a = b = c = (__m64)frobzor;
1281                      a = _mm_slli_pi16(a, 3);
1282                      a = _mm_adds_pi16(a, b);
1283                      c = _mm_srli_pi16(c, 8);
1284                      c = _mm_slli_pi16(c, 3);
1285                      b = _mm_adds_pi16(b, c);
1286                      a = _mm_unpacklo_pi8(a, b);
1287                      frobzor = (uint64_t)a;],
1288                     [ac_cv_c_mmx_intrinsics=yes],
1289                     [ac_cv_c_mmx_intrinsics=no])])
1290   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1291     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1292               [Define to 1 if MMX intrinsics are available.])
1293     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1294   ])
1295
1296   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1297     [ac_cv_mmx_inline],
1298     [CFLAGS="${CFLAGS_save}"
1299      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1300                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1301   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1302     AC_DEFINE(CAN_COMPILE_MMX, 1,
1303               [Define to 1 inline MMX assembly is available.])
1304     VLC_ADD_PLUGIN([memcpymmx])
1305     VLC_ADD_PLUGIN([i420_rgb_mmx])
1306     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1307     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1308     VLC_ADD_PLUGIN([i420_ymga_mmx])
1309   ])
1310
1311   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1312     [ac_cv_mmxext_inline],
1313     [CFLAGS="${CFLAGS_save}"
1314      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1315                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1316   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1317     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1318               [Define to 1 if MMX EXT inline assembly is available.])
1319     VLC_ADD_PLUGIN([memcpymmxext])
1320   ])
1321 ])
1322
1323 dnl  Check for fully workin SSE2 intrinsics
1324 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1325 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1326 AC_ARG_ENABLE(sse,
1327 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1328 ,, [
1329   case "${host_cpu}" in
1330     i686|x86_64)
1331       enable_sse=yes
1332       ;;
1333     *)
1334       enable_sse=no
1335       ;;
1336   esac
1337 ])
1338 AS_IF([test "${enable_sse}" != "no"], [
1339   ARCH="${ARCH} sse sse2"
1340
1341   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1342     [ac_cv_c_sse2_intrinsics],
1343     [CFLAGS="${CFLAGS_save} -O -msse2"
1344      AC_TRY_COMPILE([#include <emmintrin.h>
1345                      #include <stdint.h>
1346                      uint64_t frobzor;],
1347                     [__m128i a, b, c;
1348                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1349                      a = _mm_slli_epi16(a, 3);
1350                      a = _mm_adds_epi16(a, b);
1351                      c = _mm_srli_epi16(c, 8);
1352                      c = _mm_slli_epi16(c, 3);
1353                      b = _mm_adds_epi16(b, c);
1354                      a = _mm_unpacklo_epi8(a, b);
1355                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1356                     [ac_cv_c_sse2_intrinsics=yes],
1357                     [ac_cv_c_sse2_intrinsics=no])])
1358   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1359     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1360               [Define to 1 if SSE2 intrinsics are available.])
1361     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1362   ])
1363
1364   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1365     [ac_cv_sse_inline],
1366     [CFLAGS="${CFLAGS_save}"
1367      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1368                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1369   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1370     AC_DEFINE(CAN_COMPILE_SSE, 1,
1371               [Define to 1 if SSE inline assembly is available.])
1372   ])
1373
1374   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1375     [ac_cv_sse2_inline],
1376     [CFLAGS="${CFLAGS_save}"
1377      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1378                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1379   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1380     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1381               [Define to 1 if SSE2 inline assembly is available.])
1382     VLC_ADD_PLUGIN([i420_rgb_sse2])
1383     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1384     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1385   ])
1386 ])
1387
1388 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1389     [ac_cv_3dnow_inline],
1390     [CFLAGS="${CFLAGS_save}"
1391      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1392                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1393 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1394   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1395             [Define to 1 if 3D Now! inline assembly is available.])
1396   VLC_ADD_PLUGIN([memcpy3dn])
1397 ])
1398
1399 AC_ARG_ENABLE(altivec,
1400 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1401   AS_IF([test "${host_cpu}" = "powerpc"],
1402         [enable_altivec=yes], [enable_altivec=no])
1403 ])
1404 AS_IF([test "${enable_altivec}" = "yes"], [
1405   ARCH="${ARCH} altivec";
1406   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1407     [ac_cv_altivec_inline],
1408     [CFLAGS="${CFLAGS_save}"
1409      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1410          ac_cv_altivec_inline="yes",
1411          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1412           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1413             [ac_cv_altivec_inline="-Wa,-m7400"],
1414             ac_cv_altivec_inline=no)
1415          ])])
1416   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1417     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1418               [Define to 1 if AltiVec inline assembly is available.])
1419     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1420       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1421       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1422       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1423       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1424       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1425     ])
1426     VLC_ADD_PLUGIN([memcpyaltivec])
1427     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1428   ])
1429
1430 dnl The AltiVec C extensions
1431 dnl
1432 dnl There are several possible cases:
1433 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1434 dnl                      need <altivec.h>
1435 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1436 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1437 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1438 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1439 dnl - Others: test should fail
1440   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1441   [ac_cv_c_altivec],
1442   [# OS X/PPC test (gcc 4.x)
1443    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1444    AC_TRY_COMPILE([vector unsigned char foo;],
1445      [vec_ld(0, (unsigned char *)0);],
1446      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1447      [# OS X/PPC test (gcc 3.x)
1448       CFLAGS="${CFLAGS_save} -faltivec"
1449       AC_TRY_COMPILE([vector unsigned char foo;],
1450         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1451         [ac_cv_c_altivec="-faltivec"],
1452         dnl Below this are the Linux tests
1453         [# Linux/PPC test (gcc 4.x)
1454          CFLAGS="${CFLAGS_save} -maltivec"
1455          AC_TRY_COMPILE([#include <altivec.h>],
1456            [vec_ld(0, (unsigned char *)0);],
1457            [ac_cv_c_altivec="-maltivec"],
1458            [# Linux/PPC test (gcc 3.3)
1459             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1460             AC_TRY_COMPILE([#include <altivec.h>],
1461               [vec_ld(0, (unsigned char *)0);],
1462               [ac_cv_c_altivec=""
1463                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1464               [# Linux/PPC test (gcc 3.3)
1465                CFLAGS="${CFLAGS_save} -fvec"
1466                AC_TRY_COMPILE([#include <altivec.h>],
1467                  [vec_ld(0, (unsigned char *)0);],
1468                  [ac_cv_c_altivec="-fvec"],
1469                  [ac_cv_c_altivec=no])
1470               ])
1471            ])
1472         ])
1473      ])
1474    CFLAGS="${CFLAGS_save}"
1475   ])
1476   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1477     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1478   ])
1479
1480   AC_CHECK_HEADERS(altivec.h)
1481   CPPFLAGS="${CPPFLAGS_save}"
1482   
1483   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1484     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1485               [Define to 1 if C AltiVec extensions are available.])
1486     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1487     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1488     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1489     VLC_ADD_PLUGIN([memcpyaltivec])
1490     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1491   ])
1492
1493   AC_CACHE_CHECK([if linker needs -framework vecLib],
1494     [ac_cv_ld_altivec],
1495     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1496      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1497      LDFLAGS="${LDFLAGS_save}"
1498     ])
1499   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1500     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1501   ])
1502 ])
1503
1504 dnl
1505 dnl  Special arch tuning
1506 dnl
1507 AC_ARG_WITH(tuning,
1508 [  --with-tuning=ARCH      enable special tuning for an architecture
1509                           (default Pentium 2 on IA-32 and G4 on PPC)])
1510 if test -n "${with_tuning}"; then
1511     if test "${with_tuning}" != "no"; then
1512         CFLAGS_TUNING="-mtune=${with_tuning}"
1513     fi
1514 else
1515     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1516         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1517     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1518         CFLAGS_TUNING="-mtune=pentium2"
1519     elif test "${host_cpu}" = "x86_64"; then
1520         CFLAGS_TUNING="-mtune=athlon64"
1521     elif test "${host_cpu}" = "powerpc"; then
1522         CFLAGS_TUNING="-mtune=G4";
1523     fi
1524 fi
1525
1526 dnl NOTE: this can't be cached cleanly
1527 AS_IF([test "${CFLAGS_TUNING}"],
1528    [CFLAGS_save="${CFLAGS}"
1529     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1530
1531     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1532     AC_COMPILE_IFELSE([ ],
1533                       [tuning="yes"],
1534                       [CFLAGS_TUNING=""; tuning="no"
1535                        AS_IF([test "${with_tuning}"],
1536                              [AC_MSG_ERROR([requested tuning not supported])])])
1537
1538     AC_MSG_RESULT([$tuning])
1539     CFLAGS="${CFLAGS_save}"
1540 ])
1541
1542 dnl
1543 dnl  Memory usage
1544 dnl
1545 AC_ARG_ENABLE(optimize-memory,
1546 [  --enable-optimize-memory optimize memory usage over performance])
1547 if test "${enable_optimize_memory}" = "yes"; then
1548   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1549 fi
1550
1551 dnl
1552 dnl  Enable/disable optimizations
1553 dnl
1554 AC_ARG_ENABLE(optimizations,
1555 [  --disable-optimizations disable compiler optimizations (default enabled)])
1556 if test "${enable_optimizations}" != "no"; then
1557    if test "${enable_optimize_memory}" = "yes"; then
1558       enable_optimizations="size"
1559    else
1560       enable_optimizations="speed"
1561    fi
1562 fi
1563
1564 dnl
1565 dnl  Debugging mode
1566 dnl
1567 AC_ARG_ENABLE(debug,
1568 [  --enable-debug          debug mode (default disabled)])
1569 test "${enable_debug}" != "yes" && enable_debug="no"
1570 AH_TEMPLATE(NDEBUG,
1571             [Define to 1 if debug code should NOT be compiled])
1572 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1573
1574 dnl
1575 dnl  Test coverage
1576 dnl
1577 AC_ARG_ENABLE(coverage,
1578         [  --enable-coverage       build for test coverage (default disabled)],,
1579         [enable_coverage="no"])
1580 AS_IF([test "${enable_coverage}" != "no"], [
1581         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1582         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1583         LDFLAGS="-lgcov ${LDFLAGS}"
1584         dnl ugly...
1585         CFLAGS_save="${CFLAGS}"
1586         CXXFLAGS_save="${CXXFLAGS}"
1587         LDFLAGS_save="${LDFLAGS}"
1588 ])
1589
1590 dnl
1591 dnl  Enable release-specific flags
1592 dnl
1593 AC_ARG_ENABLE(release,
1594 [  --enable-release        activate extra optimizations (default disabled)])
1595 test "${enable_release}" != "yes" && enable_release="no"
1596
1597 dnl
1598 dnl Stream output
1599 dnl
1600 AC_ARG_ENABLE(sout,
1601   [  --enable-sout           Stream output modules (default enabled)])
1602 AS_IF([test "${enable_sout}" != "no"], [
1603   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1604 ])
1605 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1606
1607 AC_ARG_ENABLE(switcher,
1608   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1609
1610 dnl Check for libshout
1611 AC_ARG_ENABLE(shout,
1612   [  --enable-shout          libshout output plugin (default disabled)])
1613 if test "${enable_shout}" = "yes"; then
1614   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1615     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1616      VLC_ADD_PLUGIN([access_output_shout])
1617      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1618      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1619     [AC_MSG_WARN(libshout library not found)])
1620 fi
1621
1622 dnl Lua modules
1623 AC_ARG_ENABLE(lua,
1624   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface 
1625                   plugins (default enabled)]))
1626 if test "${enable_lua}" != "no"
1627 then
1628   PKG_CHECK_MODULES(LUA, lua5.1,
1629     [ have_lua=yes ],
1630     [
1631     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1632     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1633       [ have_lua=yes ],
1634       [
1635         have_lua=yes
1636         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1637           [],
1638           [ have_lua=no ] )
1639         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1640           [LUA_LIBS="-llua5.1"],
1641           AC_CHECK_LIB( lua51 , luaL_newstate,
1642             [LUA_LIBS="-llua51"],
1643             AC_CHECK_LIB( lua , luaL_newstate,
1644               [LUA_LIBS="-llua"],
1645               [ have_lua=no
1646                 AC_MSG_WARN([lua >= 5.1 not found!])
1647               ])
1648           )
1649         )
1650       ])
1651     ])
1652   if test "x${have_lua}" = "xyes" ;  then
1653      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1654      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1655      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1656   fi
1657 fi
1658 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1659
1660 dnl
1661 dnl HTTP daemon
1662 dnl
1663 AC_ARG_ENABLE(httpd,
1664   [  --enable-httpd          HTTP daemon (default enabled)])
1665 if test "${enable_httpd}" != "no"
1666 then
1667   VLC_ADD_PLUGIN([http])
1668   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1669 fi
1670 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1671
1672 dnl
1673 dnl libproxy support
1674 dnl
1675 AC_ARG_ENABLE(libproxy,
1676   [  --enable-libproxy       libproxy support (default auto)])
1677 AS_IF([test "${enable_libproxy}" != "no"], [
1678   AC_CHECK_HEADERS(proxy.h, [
1679     VLC_ADD_LIBS([access_http],[-lproxy])
1680   ], [
1681     AS_IF([test "x${enable_libproxy}" != "x"], [
1682       AC_MSG_ERROR([libproxy could not be found on your system])
1683     ])
1684   ])
1685 ])
1686
1687 dnl
1688 dnl VideoLAN manager
1689 dnl
1690 AC_ARG_ENABLE(vlm,
1691   [  --enable-vlm            VideoLAN manager (default enabled)],,
1692   [enable_vlm="${enable_sout}"])
1693 AS_IF([test "${enable_vlm}" != "no"], [
1694   AS_IF([test "${enable_sout}" = "no"], [
1695     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1696   ])
1697   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1698   VLC_ADD_PLUGIN([telnet])
1699 ])
1700 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1701
1702 dnl
1703 dnl Growl notification plugin
1704 dnl
1705 AC_ARG_ENABLE(growl,
1706   [  --enable-growl          growl notification plugin (default enabled)])
1707 AS_IF([test "${enable_growl}" != "no"], [
1708     VLC_ADD_PLUGIN([growl_udp])
1709     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1710       VLC_ADD_PLUGIN([growl])
1711       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1712     ])
1713   ]
1714 )
1715
1716 dnl
1717 dnl Libnotify notification plugin
1718 dnl
1719
1720 AC_ARG_ENABLE(notify,
1721   [  --enable-notify         libnotify notification plugin (default enabled)])
1722 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1723     PKG_CHECK_MODULES(NOTIFY, libnotify,
1724       [
1725         VLC_ADD_PLUGIN([notify])
1726         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1727         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1728       ],[
1729     AS_IF([test "${enable_notify}" = "yes"],[
1730         AC_MSG_WARN( libnotify not found) ])
1731       ])
1732   ])
1733
1734 dnl
1735 dnl Audioscrobbler plugin
1736 dnl
1737
1738 AC_ARG_ENABLE(audioscrobbler,
1739   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1740 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1741         VLC_ADD_PLUGIN([audioscrobbler])
1742   ])
1743
1744 dnl
1745 dnl Musicbrainz plugin
1746 dnl
1747 AC_ARG_ENABLE(musicbrainz,
1748   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1749   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1750       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1751     [ VLC_ADD_PLUGIN([musicbrainz])
1752       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1753       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1754        [AC_MSG_WARN(MusicBrainz library not found)])
1755    ])
1756
1757
1758 dnl
1759 dnl Taglibplugin
1760 dnl
1761 AC_ARG_ENABLE(taglib,
1762   [  --disable-taglib Taglib support (default enabled) ])
1763   AS_IF([test "${enable_taglib}" != "no"],[
1764     PKG_CHECK_MODULES(TAGLIB, taglib,
1765       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1766         VLC_ADD_PLUGIN([taglib])
1767         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1768        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1769       [AC_MSG_WARN(TagLib library not found)])
1770   ])
1771
1772
1773 dnl
1774 dnl  Input plugins
1775 dnl
1776
1777 AC_ARG_WITH(,[Input plugins:])
1778
1779 dnl  live555 input
1780 dnl
1781 if test "${enable_livedotcom}" 
1782 then
1783   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1784 fi
1785 if test "${enable_livedotcom}" = "no"
1786 then
1787   enable_live555="no"
1788 fi
1789
1790 AC_ARG_ENABLE(live555,
1791 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1792 if test "${enable_live555}" != "no"; then
1793   AC_ARG_WITH(live555-tree,
1794     [    --with-live555-tree=PATH live.com tree for static linking])
1795
1796   dnl
1797   dnl test for --with-live555-tree
1798   dnl
1799   if test "${with_livedotcom_tree}" 
1800   then
1801     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1802   with_live555_tree="${with_livedotcom_tree}"
1803   fi
1804
1805   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1806     AC_LANG_PUSH(C++)
1807     CPPFLAGS_save="${CPPFLAGS}"
1808     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1809     if test "${SYS}" = "solaris"; then
1810       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1811     fi
1812     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1813
1814     AC_CHECK_HEADERS(liveMedia_version.hh, [
1815       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1816       AC_EGREP_CPP(yes,
1817         [#include <liveMedia_version.hh>
1818          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1819          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1820          yes
1821          #endif
1822          #endif],
1823         [AC_MSG_RESULT([no])
1824          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1825 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1826       ],[
1827          AC_MSG_RESULT([yes])
1828          ])
1829     ])
1830      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1831       if test "${SYS}" = "mingw32"; then
1832         # add ws2_32 for closesocket, select, recv
1833         other_libs="$other_libs -lws2_32"
1834       fi
1835     AC_CHECK_HEADERS(liveMedia.hh, [
1836       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1837         AC_CHECK_LIB(liveMedia, main, [
1838           VLC_ADD_PLUGIN([live555])
1839           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1840         ],[],[${other_libs}])
1841     ])
1842     CPPFLAGS="${CPPFLAGS_save}"
1843     AC_LANG_POP(C++)
1844   else
1845     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1846     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1847     if test -z "${real_live555_tree}"; then
1848       dnl  The given directory can't be found
1849       AC_MSG_RESULT(no)
1850       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1851     fi
1852     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1853       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1854
1855       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1856         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1857         AC_EGREP_CPP(yes,
1858           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1859            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1860            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1861            yes
1862            #endif
1863            #endif],
1864           [AC_MSG_RESULT([no])
1865            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1866 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1867         ],[
1868            AC_MSG_RESULT([yes])
1869            ])
1870       ])
1871
1872       VLC_ADD_PLUGIN([live555])
1873
1874       if test "${SYS}" = "mingw32"; then
1875         # add ws2_32 for closesocket, select, recv
1876         VLC_ADD_LIBS([live555],[-lws2_32])
1877       fi
1878
1879       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1880       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1881       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1882       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1883
1884       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1885       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1886       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1887       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1888       if test "${SYS}" = "solaris"; then
1889         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1890       fi
1891     else
1892       dnl  The given live555 wasn't built
1893         AC_MSG_RESULT(no)
1894       if test "${enable_live555}" = "yes"; then
1895         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1896       fi        
1897     fi
1898   fi
1899 fi
1900
1901 dnl
1902 dnl  special access module for dc1394 input
1903 dnl
1904 AC_ARG_ENABLE(dc1394,
1905   [  --enable-dc1394         dc1394 access module (default disabled)])
1906 if test "${enable_dc1394}" = "yes"
1907 then
1908   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1909     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1910         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1911 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1912               VLC_ADD_PLUGIN([dc1394])
1913               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1914 dnl         ],
1915 dnl         [
1916 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1917 dnl         ])
1918       ],
1919       [
1920         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1921       ])
1922     ],
1923     [
1924       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1925     ])
1926   ],
1927   [
1928     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1929   ])
1930 fi
1931
1932 dnl
1933 dnl dv module: digital video module check for libraw1394
1934 dnl
1935 AC_ARG_ENABLE(dv,
1936 [  --enable-dv             dv input module (default disabled)])
1937 if test "${enable_dv}" = "yes"
1938 then
1939   AC_ARG_WITH(dv-raw1394,
1940   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1941   AC_ARG_WITH(dv-raw1394-tree,
1942   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1943
1944   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1945   then
1946     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1947     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1948     then
1949       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1950       AC_MSG_RESULT(yes)
1951       VLC_ADD_PLUGIN([access_dv])
1952       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1953       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1954     else
1955       dnl  No libraw1394 could be found, sorry
1956       AC_MSG_RESULT(no)
1957       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1958     fi
1959   else
1960     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1961     [ VLC_ADD_PLUGIN([access_dv])
1962         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1963     ],[
1964         if test -n "${enable_dv}"
1965         then
1966           AC_MSG_ERROR([cannot find libraw1394 headers])
1967         fi
1968     ])
1969   fi
1970
1971   dnl Check for static linking of libraw1394
1972   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1973   then
1974     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1975     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1976     if test -z "${real_dv_raw1394_tree}"
1977     then
1978       dnl  The given directory can't be found
1979       AC_MSG_RESULT(no)
1980       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1981     fi
1982     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1983     then
1984       dnl  Use a custom libraw1394
1985       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1986       VLC_ADD_PLUGIN([access_dv])
1987       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1988       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1989     else
1990       dnl  The given libraw1394 wasn't built
1991       AC_MSG_RESULT(no)
1992       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1993     fi
1994   fi
1995
1996   dnl
1997   dnl Check for libavc1394
1998   dnl
1999
2000   AC_ARG_WITH(dv-avc1394,
2001   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2002   AC_ARG_WITH(dv-avc1394-tree,
2003   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2004
2005   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2006   then
2007     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2008     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2009     then
2010       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2011       AC_MSG_RESULT(yes)
2012       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2013       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2014     else
2015       dnl  No libavc1394 could be found, sorry
2016       AC_MSG_RESULT(no)
2017       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2018     fi
2019   else
2020     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2021     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2022     ],[
2023         if test -n "${enable_dv}"
2024         then
2025           AC_MSG_ERROR([cannot find libavc1394 headers])
2026         fi
2027     ])
2028   fi
2029
2030   dnl Check for static linking of libavc1394
2031   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2032   then
2033     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2034     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2035     if test -z "${real_dv_avc1394_tree}"
2036     then
2037       dnl  The given directory can't be found
2038       AC_MSG_RESULT(no)
2039       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2040     fi
2041     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2042     then
2043       dnl  Use a custom libavc1394
2044       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2045       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2046       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2047     else
2048       dnl  The given libavc1394 wasn't built
2049       AC_MSG_RESULT(no)
2050       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2051     fi
2052   fi
2053 fi
2054
2055 dnl
2056 dnl dvdread module: check for libdvdread
2057 dnl
2058 AC_ARG_ENABLE(dvdread,
2059 [  --enable-dvdread        dvdread input module (default disabled)])
2060 if test "${enable_dvdread}" != "no"
2061 then
2062   AC_ARG_WITH(dvdread,
2063   [    --with-dvdread=PATH   libdvdread headers and libraries])
2064   AC_ARG_WITH(dvdread-tree,
2065   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2066
2067   dnl Temporary hack (yeah, sure ;)
2068   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2069       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2070   fi
2071
2072   if test -z "${with_dvdread}"
2073   then
2074     if test -z "${with_dvdread_tree}"
2075     then
2076       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2077         [ VLC_ADD_PLUGIN([dvdread])
2078           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2079         ],[
2080           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2081             [ VLC_ADD_PLUGIN([dvdread])
2082               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2083             ],[
2084               if test -n "${enable_dvdread}"
2085               then
2086               AC_MSG_ERROR([cannot find libdvdread headers])
2087              fi
2088            ])
2089         ])
2090     else
2091       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2092       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2093       if test -z "${real_dvdread_tree}"
2094       then
2095         dnl  The given directory can't be found
2096         AC_MSG_RESULT(no)
2097         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2098       fi
2099       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2100       then
2101         dnl  Use a custom libdvdread
2102         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2103         VLC_ADD_PLUGIN([dvdread])
2104         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2105         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2106       else
2107         dnl  The given libdvdread wasn't built
2108         AC_MSG_RESULT(no)
2109         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2110       fi
2111     fi
2112   else
2113     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2114     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2115     then
2116       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2117       AC_MSG_RESULT(yes)
2118       VLC_ADD_PLUGIN([dvdread])
2119       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2120       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2121     else
2122       dnl  No libdvdread could be found, sorry
2123       AC_MSG_RESULT(no)
2124       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2125     fi
2126   fi
2127 fi
2128
2129 dnl
2130 dnl  libdvdnav plugin
2131 dnl
2132 AC_ARG_ENABLE(dvdnav,
2133   [  --enable-dvdnav         dvdnav input module (default enabled)])
2134 if test "${enable_dvdnav}" != "no"
2135 then
2136   dnl Same hack than dvdread
2137   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2138       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2139   fi
2140
2141   DVDNAV_PATH="${PATH}"
2142   AC_ARG_WITH(dvdnav-config-path,
2143     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2144     [ if test "${with_dvdnav_config_path}" != "no"
2145       then
2146         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2147       fi ])
2148   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2149   if test "${DVDNAV_CONFIG}" != "no"
2150   then
2151     VLC_ADD_PLUGIN([dvdnav])
2152     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2153     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2154   fi
2155 fi
2156
2157 dnl
2158 dnl  Windows DirectShow access module
2159 dnl
2160 AC_ARG_ENABLE(dshow,
2161   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2162 if test "${enable_dshow}" != "no"
2163 then
2164   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2165   then
2166     AC_LANG_PUSH(C++)
2167       AC_CHECK_HEADERS(dshow.h,
2168       [ VLC_ADD_PLUGIN([dshow])
2169         VLC_ADD_CXXFLAGS([dshow],[])
2170         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2171     AC_LANG_POP(C++)
2172   fi
2173 fi
2174
2175 dnl
2176 dnl  Windows DirectShow BDA access module
2177 dnl
2178 AC_ARG_ENABLE(bda,
2179   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default 
2180                   enabled on Win32)]))
2181 if test "${enable_bda}" != "no"
2182 then
2183   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2184   then
2185       AC_CHECK_HEADERS(dshow.h,
2186       [ VLC_ADD_PLUGIN([bda])
2187         VLC_ADD_CXXFLAGS([bda],[])
2188         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2189   fi
2190 fi
2191
2192
2193 dnl
2194 dnl  OpenCV wrapper and example filters
2195 dnl
2196 AC_ARG_ENABLE(opencv,
2197   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2198 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2199 then
2200   AC_ARG_WITH(opencv-tree,
2201   [    --with-opencv-tree=PATH opencv tree for linking])
2202     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2203     then
2204       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2205           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2206           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2207             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2208       then
2209         AC_MSG_RESULT(yes)
2210         VLC_ADD_PLUGIN([opencv_wrapper])
2211         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2212         VLC_ADD_CFLAGS([opencv_wrapper],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
2213         AC_LANG_PUSH(C++)
2214         VLC_ADD_PLUGIN([opencv_example])
2215         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2216         VLC_ADD_CXXFLAGS([opencv_example],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
2217         AC_LANG_POP(C++)        
2218           else
2219         dnl  No opencv could be found, sorry
2220         AC_MSG_RESULT(no)
2221         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2222           fi
2223     else
2224       PKG_CHECK_MODULES(OPENCV, opencv,
2225         [
2226           VLC_ADD_PLUGIN([opencv_example])
2227           VLC_ADD_PLUGIN([opencv_wrapper])
2228           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2229           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2230           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2231         ],
2232         [AC_MSG_ERROR([libopencv not found!])]
2233       )
2234     fi
2235 fi
2236
2237
2238 dnl
2239 dnl  libsmbclient plugin
2240 dnl
2241 AC_ARG_ENABLE(smb,
2242   [  --enable-smb            smb input module (default enabled)])
2243 if test "${enable_smb}" != "no"; then
2244   AC_CHECK_HEADERS(libsmbclient.h,
2245     [ VLC_ADD_PLUGIN([access_smb])
2246       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2247     [ if test -n "${enable_smb}"; then
2248         AC_MSG_ERROR([cannot find libsmbclient headers])
2249      fi ])
2250   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2251     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2252     [#include <libsmbclient.h>])
2253 fi
2254
2255 dnl
2256 dnl  libdvbpsi ts demux/mux
2257 dnl
2258 AC_ARG_ENABLE(dvbpsi,
2259   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2260 if test "${enable_dvbpsi}" != "no"
2261 then
2262   AC_ARG_WITH(dvbpsi,
2263   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2264   AC_ARG_WITH(dvbpsi,
2265   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2266   case "${with_dvbpsi}" in
2267   ""|yes)
2268     if test -z "${with_dvbpsi_tree}"
2269     then
2270       AC_CHECK_HEADERS(dvbpsi/dr.h,
2271         [ VLC_ADD_PLUGIN([ts])
2272           if test "${enable_sout}" != "no"; then
2273             VLC_ADD_PLUGIN([mux_ts])
2274           fi
2275           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2276         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2277         [#if defined( HAVE_STDINT_H )
2278 #   include <stdint.h>
2279 #elif defined( HAVE_INTTYPES_H )
2280 #   include <inttypes.h>
2281 #endif
2282 #include <dvbpsi/dvbpsi.h>
2283 #include <dvbpsi/descriptor.h>
2284 #include <dvbpsi/pat.h>
2285 #include <dvbpsi/pmt.h>])
2286     else
2287       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2288       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2289       if test -z "${real_dvbpsi_tree}"
2290       then
2291         dnl  The given directory can't be found
2292         AC_MSG_RESULT(no)
2293         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2294       fi
2295       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2296       then
2297         dnl  Use a custom libdvbpsi
2298         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2299         VLC_ADD_PLUGIN([ts])
2300         if test "${enable_sout}" != "no"; then
2301           VLC_ADD_PLUGIN([mux_ts])
2302         fi
2303         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2304         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2305       else
2306         dnl  The given libdvbpsi wasn't built
2307         AC_MSG_RESULT(no)
2308         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2309       fi
2310     fi
2311   ;;
2312   no)
2313     dnl  Compile without dvbpsi
2314   ;;
2315   *)
2316     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2317     if test -z "${with_dvbpsi}"
2318     then
2319       LDFLAGS_test=""
2320       CPPFLAGS_test=""
2321     else
2322       LDFLAGS_test="-L${with_dvbpsi}/lib"
2323       CPPFLAGS_test="-I${with_dvbpsi}/include"
2324     fi
2325     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2326     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2327       VLC_ADD_PLUGIN([ts])
2328       if test "${enable_sout}" != "no"; then
2329         VLC_ADD_PLUGIN([mux_ts])
2330       fi
2331       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2332       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2333
2334     ],[
2335       if test -n "${enable_dvbpsi}"
2336       then
2337         AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
2338       fi
2339     ])
2340     CPPFLAGS="${CPPFLAGS_save}"
2341   ;;
2342   esac
2343   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2344     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2345   ], [], [${LIBS_ts}])
2346
2347 fi
2348
2349 dnl
2350 dnl  Video4Linux plugin
2351 dnl
2352 AC_ARG_ENABLE(v4l,
2353   [  --enable-v4l            Video4Linux input support (default disabled)])
2354 if test "${enable_v4l}" = "yes"
2355 then
2356   AC_ARG_WITH(v4l,
2357     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2358   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2359   then
2360     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2361   fi
2362
2363   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2364   AC_CHECK_HEADERS(linux/videodev.h, [
2365     VLC_ADD_PLUGIN([v4l])
2366   ],[])
2367   CPPFLAGS="${CPPFLAGS_save}"
2368 fi
2369
2370 dnl
2371 dnl  Video4Linux2 plugin
2372 dnl
2373 AC_ARG_ENABLE(v4l2,
2374   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2375 if test "${enable_v4l2}" != "no"
2376 then
2377   AC_ARG_WITH(v4l2,
2378     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2379   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2380   then
2381     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2382   fi
2383
2384   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2385   if test "${have_v4l2_alsa}" = "true"
2386   then
2387     CFLAGS="${CFLAGS_save}"
2388     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2389                     #define ALSA_PCM_NEW_SW_PARAMS_API
2390                     #include <alsa/asoundlib.h>],
2391        [snd_pcm_hw_params_get_period_time(0,0,0);],
2392         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2393     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2394     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2395   fi
2396
2397   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2398   AC_CHECK_HEADERS(linux/videodev2.h, [
2399     VLC_ADD_PLUGIN([v4l2])
2400   ],[])
2401   CPPFLAGS="${CPPFLAGS_save}"
2402 fi
2403
2404
2405 dnl
2406 dnl  special access module for Hauppauge PVR cards
2407 dnl
2408 AC_ARG_ENABLE(pvr,
2409   [  --enable-pvr            PVR cards access module (default disabled)])
2410 if test "${enable_pvr}" = "yes"
2411 then
2412   VLC_ADD_PLUGIN([pvr])
2413   AC_ARG_WITH(videodev2,
2414     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2415   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2416   then
2417     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2418   fi
2419     
2420
2421   AC_CACHE_CHECK([for new linux/videodev2.h],
2422       [ac_cv_new_linux_videodev2_h],
2423       [AC_TRY_COMPILE([
2424           #include <sys/types.h>
2425           #   ifdef VIDEODEV2_H_FILE
2426           #   include VIDEODEV2_H_FILE
2427           #   else
2428           #   include <linux/videodev2.h>
2429           #   endif
2430           ],
2431           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2432           ac_cv_new_linux_videodev2_h=yes,
2433           ac_cv_new_linux_videodev2_h=no)])
2434   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2435     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2436   fi
2437 fi
2438
2439 dnl
2440 dnl  gnomeVFS access module
2441 dnl
2442 AC_ARG_ENABLE(gnomevfs,
2443   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2444 if test "${enable_gnomevfs}" = "yes" 
2445 then
2446   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2447     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2448     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2449     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2450     VLC_ADD_PLUGIN([access_gnomevfs]),
2451     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2452 fi
2453
2454 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2455 AC_ARG_ENABLE(libcdio,
2456   [  --enable-libcdio        CD input and control library support (default enabled)])
2457
2458
2459 have_libcdio=no
2460 have_libvcdinfo=no
2461 if test "${enable_libcdio}" != "no"
2462 then
2463   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2464      have_libcdio=yes
2465      AC_DEFINE(HAVE_LIBCDIO, 1, 
2466      [Define if you have libcdio 0.78.2 or greater installed]),
2467      [AC_MSG_WARN(CD Reading and information library not found)])
2468
2469   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2470      [have_libvcdinfo=yes
2471      AC_DEFINE(HAVE_VCDINFO, 1, 
2472      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2473      [AC_MSG_WARN(VCD information library not found)])
2474 fi
2475
2476 dnl
2477 dnl  VCDX and CDDAX modules
2478 dnl
2479 AC_ARG_ENABLE(cddax,
2480   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2481                   via libcdio (default disabled)]))
2482  
2483 AC_ARG_ENABLE(libcddb,
2484   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2485  
2486 if test "${enable_cddax}" = "yes"
2487 then
2488   if test "$have_libcdio" = "yes"
2489   then
2490     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2491     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2492     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2493     VLC_ADD_PLUGIN([cddax])
2494     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2495     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2496     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2497   else 
2498     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2499     HAVE_CDDAX=no
2500   fi
2501
2502   if test "$enable_libcddb" != "no"; then
2503     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2504       HAVE_LIBCDDB=yes 
2505       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2506       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2507       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2508       ],
2509       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2510       HAVE_LIBCDDB=no])
2511   fi
2512  
2513 fi
2514
2515 AC_ARG_ENABLE(vcdx,
2516   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2517  
2518 if test "${enable_vcdx}" = "yes"
2519 then
2520   if test "${have_libvcdinfo}" = "yes"
2521   then
2522     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2523     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2524   else 
2525     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2526     HAVE_VCDX=no
2527   fi
2528
2529   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2530    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2531     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2532     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2533     HAVE_VCDX=no])
2534
2535   if test "$have_libvcdinfo" = "yes"
2536   then
2537     AC_DEFINE(HAVE_VCDX, 1, 
2538     [Define for the VCD plugin using libcdio/libvcdinfo])
2539     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2540     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2541     VLC_ADD_PLUGIN([vcdx])
2542   else 
2543     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2544     HAVE_VCDX=no
2545   fi
2546 fi
2547
2548 dnl
2549 dnl  Built-in CD-DA and VCD module
2550 dnl
2551 AC_ARG_ENABLE(cdda,           
2552   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2553  
2554 AC_ARG_ENABLE(vcd,
2555   [  --enable-vcd            built-in VCD (default enabled)])
2556
2557 if test "${enable_vcd}" != "no"
2558 then
2559   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2560   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2561     AC_MSG_RESULT(yes)
2562     VLC_ADD_PLUGIN([vcd])
2563     VLC_ADD_PLUGIN([cdda])
2564   ],[
2565     AC_MSG_RESULT(no)
2566   ])
2567
2568   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2569   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2570     AC_MSG_RESULT(yes)
2571     VLC_ADD_PLUGIN([vcd])
2572     VLC_ADD_PLUGIN([cdda])
2573     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2574   ],[
2575     AC_MSG_RESULT(no)
2576   ])
2577
2578   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2579   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2580     AC_MSG_RESULT(yes)
2581     VLC_ADD_PLUGIN([vcd])
2582     VLC_ADD_PLUGIN([cdda])
2583     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2584   ],[
2585     AC_MSG_RESULT(no)
2586   ])
2587
2588   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2589   then
2590     VLC_ADD_PLUGIN([vcd])
2591     VLC_ADD_PLUGIN([cdda])
2592   fi
2593
2594   if test "${SYS}" = "darwin"
2595   then
2596     VLC_ADD_PLUGIN([vcd])
2597     VLC_ADD_PLUGIN([cdda])
2598     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2599     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2600   fi
2601
2602   if test "$enable_libcddb" != "no"; then
2603     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2604       HAVE_LIBCDDB=yes 
2605       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2606       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2607       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2608       ],:
2609       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2610       HAVE_LIBCDDB=no])
2611   fi
2612 fi
2613
2614 dnl
2615 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2616 dnl
2617 AC_ARG_ENABLE(dvb,
2618   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2619
2620 if test "${enable_dvb}" != "no"
2621 then
2622   AC_ARG_WITH(dvb,
2623   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2624   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2625   then
2626     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2627   fi
2628   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2629   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2630   VLC_ADD_PLUGIN([dvb])
2631   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2632   CPPFLAGS="${CPPFLAGS_save}"
2633 fi
2634
2635 dnl
2636 dnl  Screen capture module
2637 dnl
2638 AC_ARG_ENABLE(screen,
2639   [  --enable-screen         Screen capture support (default enabled)])
2640 if test "${enable_screen}" != "no"; then
2641   if test "${SYS}" = "darwin"; then
2642     AC_CHECK_HEADERS(OpenGL/gl.h, [
2643       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2644         VLC_ADD_PLUGIN([screen])
2645         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2646       ])
2647     ])
2648   elif test "${SYS}" = "mingw32"; then
2649     VLC_ADD_PLUGIN([screen])
2650     VLC_ADD_LIBS([screen],[-lgdi32])
2651   elif test "${SYS}" = "mingwce"; then
2652     CPPFLAGS="${CPPFLAGS_save}"
2653   elif test "${SYS}" = "beos"; then
2654     VLC_ADD_PLUGIN([screen])
2655     VLC_ADD_CXXFLAGS([screen],[])
2656     VLC_ADD_LIBS([screen],[-lbe])
2657   else
2658     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2659     AC_CHECK_HEADERS(X11/Xlib.h, [
2660       VLC_ADD_PLUGIN([screen])
2661       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2662       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2663     ])
2664     CPPFLAGS="${CPPFLAGS_save}"
2665   fi
2666 fi
2667
2668 dnl
2669 dnl  ipv6 plugin - not for QNX yet
2670 dnl
2671 have_ipv6=no
2672 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2673   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2674 ])
2675
2676 AS_IF([test "${have_ipv6}" = "yes"], [
2677   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2678
2679
2680 AC_CHECK_FUNCS(inet_ntop,[
2681   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2682
2683
2684 dnl
2685 dnl  ogg demux plugin
2686 dnl
2687 AC_ARG_ENABLE(ogg,
2688   [  --enable-ogg            Ogg demux support (default enabled)])
2689 if test "${enable_ogg}" != "no"
2690 then
2691   AC_ARG_WITH(ogg-tree,
2692   [    --with-ogg-tree=PATH  ogg tree for static linking])
2693   if test -n "${with_ogg_tree}"
2694   then
2695     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2696     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2697     if test -z "${real_ogg_tree}"
2698     then
2699       dnl  The given directory can't be found
2700       AC_MSG_RESULT(no)
2701       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2702     fi
2703     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2704     then
2705       dnl  Use a custom ogg
2706       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2707       VLC_ADD_PLUGIN([ogg])
2708       if test "${enable_sout}" != "no"; then
2709         VLC_ADD_PLUGIN([mux_ogg])
2710       fi
2711       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2712       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2713     else
2714       dnl  The given ogg wasn't built
2715       AC_MSG_RESULT(no)
2716       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2717     fi
2718   else
2719     AC_CHECK_HEADERS(ogg/ogg.h, [
2720       AC_CHECK_LIB( ogg, oggpack_read, [
2721         VLC_ADD_PLUGIN([ogg])
2722         if test "${enable_sout}" != "no"; then
2723           VLC_ADD_PLUGIN([mux_ogg])
2724         fi
2725         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2726      ],[])
2727   fi
2728 fi
2729
2730 dnl
2731 dnl  matroska demux plugin
2732 dnl
2733 AC_ARG_ENABLE(mkv,
2734   [  --enable-mkv            Matroska demux support (default enabled)])
2735 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2736   AC_LANG_PUSH(C++)
2737   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2738     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2739     AC_EGREP_CPP(yes,
2740       [#include <ebml/EbmlVersion.h>
2741        #ifdef LIBEBML_VERSION
2742        #if LIBEBML_VERSION >= 0x000706
2743        yes
2744        #endif
2745        #endif],
2746       [AC_MSG_RESULT([yes])
2747         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2748           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2749           AC_EGREP_CPP(yes,
2750             [#include <matroska/KaxVersion.h>
2751              #ifdef LIBMATROSKA_VERSION
2752              #if LIBMATROSKA_VERSION >= 0x000705
2753              yes
2754              #endif
2755              #endif],
2756             [AC_MSG_RESULT([yes])
2757               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2758               VLC_ADD_CXXFLAGS([mkv],[])
2759               if test "${SYS}" = "darwin"; then
2760                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2761               fi
2762               AC_CHECK_LIB(ebml_pic, main, [
2763                 VLC_ADD_PLUGIN([mkv])
2764                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2765               ],
2766                 AC_CHECK_LIB(ebml, main, [
2767                   VLC_ADD_PLUGIN([mkv])
2768                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2769                 ]) 
2770               )
2771             ],
2772             [AC_MSG_RESULT([no])
2773               AC_MSG_ERROR([Your libmatroska is too old: you may get a more recent one from http://dl.matroska.org/downloads/libmatroska/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2774           ])
2775         ])
2776       ],
2777       [AC_MSG_RESULT([no])
2778         AC_MSG_ERROR([Your libebml is too old: you may get a more recent one from http://dl.matroska.org/downloads/libebml/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2779     ])
2780   ])
2781   AC_LANG_POP(C++)
2782 fi
2783
2784 dnl
2785 dnl  modplug demux plugin
2786 dnl
2787 AC_ARG_ENABLE(mod,
2788   [  --enable-mod            Mod demux support (default enabled)])
2789 if test "${enable_mod}" != "no"
2790 then
2791   AC_ARG_WITH(mod-tree,
2792   [    --with-mod-tree=PATH mod tree for static linking])
2793   if test -n "${with_mod_tree}"
2794   then
2795     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2796     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2797     if test -z "${real_mod_tree}"
2798     then
2799       dnl  The given directory can't be found
2800       AC_MSG_RESULT(no)
2801       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2802     fi
2803     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2804     then
2805       dnl  Use a custom mod
2806       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2807       VLC_ADD_PLUGIN([mod])
2808       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2809       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2810     else
2811       dnl  The given mod wasn't built
2812       AC_MSG_RESULT(no)
2813       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2814     fi
2815   else
2816     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2817       VLC_ADD_PLUGIN([mod])
2818       VLC_ADD_CXXFLAGS([mod],[])
2819       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2820   fi
2821 fi
2822
2823 dnl
2824 dnl  mpc demux plugin
2825 dnl
2826 AC_ARG_ENABLE(mpc,
2827   [  --enable-mpc            Mpc demux support (default enabled)])
2828 if test "${enable_mpc}" != "no"
2829 then
2830   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2831     VLC_ADD_PLUGIN([mpc])
2832     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2833 fi
2834
2835 dnl
2836 dnl  game music emu demux plugin
2837 dnl
2838 AC_ARG_ENABLE(gme,
2839   [  --enable-gme            Game Music Emu demux support (default enabled)])
2840 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2841 then
2842   AC_LANG_PUSH(C++)
2843   AC_ARG_WITH(gme-tree,
2844   [    --with-gme-tree=PATH gme tree for static linking])
2845   if test -n "${with_gme_tree}"
2846   then
2847     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2848     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2849     if test -z "${real_gme_tree}"
2850     then
2851       dnl  The given directory can't be found
2852       AC_MSG_RESULT(no)
2853       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2854     fi
2855     if test -f "${real_gme_tree}/gme/libgme.a"
2856     then
2857       dnl  Use a custom gme
2858       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2859       VLC_ADD_PLUGIN([gme])
2860       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2861       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2862     else
2863       dnl  The given gme wasn't built
2864       AC_MSG_RESULT(no)
2865       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2866     fi
2867   else
2868       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2869   fi
2870   AC_LANG_POP(C++)
2871 fi
2872
2873 dnl
2874 dnl  Codec plugins
2875 dnl
2876
2877 AC_ARG_WITH(,[Codec plugins:])
2878
2879 dnl
2880 dnl  mad plugin
2881 dnl
2882 AC_ARG_ENABLE(mad,
2883   [  --enable-mad            libmad module (default enabled)])
2884 if test "${enable_mad}" != "no"
2885 then
2886   AC_ARG_WITH(mad,
2887     [    --with-mad=PATH       path to libmad],[],[])
2888   if test "${with_mad}" != "no" -a -n "${with_mad}"
2889   then
2890     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2891     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2892   fi
2893
2894   AC_ARG_WITH(mad-tree,
2895     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2896   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2897   then
2898     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2899     if test -z "${real_mad_tree}"
2900     then
2901       dnl  The given directory can't be found
2902       AC_MSG_RESULT(no)
2903       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2904     fi
2905     dnl  Use a custom libmad
2906     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2907     if test -f ${real_mad_tree}/mad.h
2908     then
2909       AC_MSG_RESULT(yes)
2910       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2911       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2912       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2913       AC_CHECK_LIB(mad, mad_bit_init, [
2914         VLC_ADD_PLUGIN([mpgatofixed32])
2915         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2916         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2917       ],[])
2918       LDFLAGS="${LDFLAGS_save}"
2919     else
2920       AC_MSG_RESULT(no)
2921       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2922     fi
2923   else
2924     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2925     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2926     AC_CHECK_HEADERS(mad.h, ,
2927       [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
2928     AC_CHECK_LIB(mad, mad_bit_init, [
2929       VLC_ADD_PLUGIN([mpgatofixed32])
2930       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2931       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2932     CPPFLAGS="${CPPFLAGS_save}"
2933     LDFLAGS="${LDFLAGS_save}"
2934   fi
2935 fi
2936
2937 dnl
2938 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2939 dnl
2940 AC_ARG_ENABLE( id3tag,
2941 [  --disable-id3tag        id3tag metadata reader plugin (default enabled)])
2942 AS_IF([test "${enable_id3tag}" != "no"], [
2943   AC_CHECK_HEADERS(id3tag.h, [
2944     AC_CHECK_HEADERS(zlib.h, [
2945       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2946       VLC_ADD_PLUGIN([id3tag])
2947     ])
2948   ])
2949 ])
2950
2951 dnl
2952 dnl  avcodec decoder/encoder plugin
2953 dnl
2954
2955 AC_ARG_ENABLE(avcodec,
2956 [  --enable-avcodec        libavcodec codec (default enabled)])
2957 if test "${enable_avcodec}" != "no"
2958 then
2959   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2960     [
2961       VLC_SAVE_FLAGS
2962       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2963       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2964       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2965       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2966       VLC_ADD_PLUGIN([avcodec])
2967       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2968       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2969       VLC_RESTORE_FLAGS
2970     ],[
2971       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2972   ])
2973 fi
2974
2975 dnl
2976 dnl  avformat demuxer/muxer plugin
2977 dnl
2978
2979 AC_ARG_ENABLE(avformat,
2980 [  --enable-avformat       libavformat containers (default enabled)])
2981 if test "${enable_avformat}" != "no"
2982 then
2983   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2984     [
2985       VLC_SAVE_FLAGS
2986       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2987       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2988       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2989       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2990       VLC_ADD_PLUGIN([avformat])
2991       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
2992       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
2993       VLC_RESTORE_FLAGS
2994     ],[
2995       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2996   ])
2997 fi
2998
2999 dnl
3000 dnl  swscale image scaling and conversion plugin
3001 dnl
3002
3003 AC_ARG_ENABLE(swscale,
3004   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
3005                   (default enabled)]))
3006 if test "${enable_swscale}" != "no"
3007 then
3008   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3009     [
3010       VLC_SAVE_FLAGS
3011       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3012       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3013       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3014       VLC_ADD_PLUGIN([swscale])
3015       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3016       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3017       VLC_RESTORE_FLAGS
3018     ],[
3019       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3020       enable_imgresample=yes
3021   ])
3022 fi
3023
3024 dnl
3025 dnl  avcodec (deprecated API) image scaling and conversion plugin
3026 dnl
3027 dnl  This is build as a seperate module than the avcodec one to prevent
3028 dnl  stupid run time library load errors from disabling most codecs
3029 dnl  from VLC.
3030 dnl
3031
3032 AC_ARG_ENABLE(imgresample,
3033   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3034                   and conversion (default disabled)]))
3035 if test "${enable_imgresample}" = "yes"
3036 then
3037   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3038     [
3039       VLC_SAVE_FLAGS
3040       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3041       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3042       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3043       AC_CHECK_LIB(avcodec,img_resample,
3044         [
3045           VLC_ADD_PLUGIN([imgresample])
3046           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3047           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3048         ],[
3049           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3050           if test "${enable_swscale}" != "no"
3051           then
3052             AC_MSG_ERROR([swscale (and its fallback module imgresample) support will be missing. Use --disable-swscale to ignore this error. (This basically means that you will be missing any good software scaling module and some video chroma converters.)])
3053           fi
3054         # That sed hack to add -rpath is kind of ugly but at least it fixes
3055         # detection when linking against a shared libavcodec with
3056         # a libavutil not in one of your ld.so.conf directories.
3057         # (for example a local install)
3058         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3059       VLC_RESTORE_FLAGS
3060     ],[
3061       AC_MSG_WARN([Could not find libavcodec.])
3062   ])
3063 fi
3064
3065 dnl
3066 dnl  postproc plugin
3067 dnl
3068
3069 AC_ARG_ENABLE(postproc,
3070 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3071 if test "${enable_postproc}" != "no"
3072 then
3073   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3074     [
3075       VLC_SAVE_FLAGS
3076       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3077       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3078       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3079       VLC_ADD_PLUGIN([postproc])
3080       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3081       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3082       VLC_RESTORE_FLAGS
3083     ],[
3084       AC_MSG_ERROR([Could not find libpostproc.])
3085   ])
3086 fi
3087
3088 dnl
3089 dnl  faad decoder plugin
3090 dnl
3091 AC_ARG_ENABLE(faad,
3092 [  --enable-faad           faad codec (default disabled)])
3093 if test "${enable_faad}" = "yes"
3094 then
3095   AC_ARG_WITH(faad-tree,
3096   [    --with-faad-tree=PATH faad tree for static linking])
3097   if test -n "${with_faad_tree}"
3098   then
3099     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3100     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3101     if test -z "${real_faad_tree}"
3102     then
3103       dnl  The given directory can't be found
3104       AC_MSG_RESULT(no)
3105       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3106     fi
3107     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3108     then
3109       dnl  Use a custom faad
3110       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3111       VLC_ADD_PLUGIN([faad])
3112       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3113       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3114     else
3115       dnl  The given libfaad wasn't built
3116       AC_MSG_RESULT(no)
3117       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3118     fi
3119   else
3120     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3121     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3122     AC_CHECK_HEADERS(faad.h, ,
3123       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3124     AC_CHECK_LIB(faad, faacDecOpen, [
3125       VLC_ADD_PLUGIN([faad])
3126       VLC_ADD_LIBS([faad],[-lfaad]) ],
3127       AC_CHECK_LIB(faad, NeAACDecOpen, [
3128         VLC_ADD_PLUGIN([faad])
3129         VLC_ADD_LIBS([faad],[-lfaad]) ],
3130         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3131     LDFLAGS="${LDFLAGS_save}"
3132     CPPFLAGS="${CPPFLAGS_save}"
3133   fi
3134 fi
3135
3136 dnl
3137 dnl twolame encoder plugin
3138 dnl
3139 AC_ARG_ENABLE(twolame,
3140 [  --enable-twolame        twolame codec (default disabled)])
3141 if test "${enable_twolame}" = "yes"
3142 then
3143   AC_ARG_WITH(twolame-tree,
3144   [    --with-twolame-tree=PATH twolame tree for static linking])
3145   if test -n "${with_twolame_tree}"
3146   then
3147     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3148     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3149     if test -z "${real_twolame_tree}"
3150     then
3151       dnl  The given directory can't be found
3152       AC_MSG_RESULT(no)
3153       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3154     fi
3155     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3156     then
3157       dnl  Use a custom twolame
3158       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3159       VLC_ADD_PLUGIN([twolame])
3160       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3161       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3162     else
3163       dnl  The given libtwolame wasn't built
3164       AC_MSG_RESULT(no)
3165       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3166     fi
3167   else
3168     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3169     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3170     AC_CHECK_HEADERS(twolame.h, ,
3171       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3172     AC_CHECK_LIB(twolame, twolame_init, [
3173       VLC_ADD_PLUGIN([twolame])
3174       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3175       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3176         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3177     LDFLAGS="${LDFLAGS_save}"  
3178     CPPFLAGS="${CPPFLAGS_save}"
3179   fi
3180 fi
3181
3182 dnl
3183 dnl  QuickTime plugin
3184 dnl
3185 AC_ARG_ENABLE(quicktime,
3186   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3187 if test "${enable_quicktime}" != "no" &&
3188   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3189 then
3190   if test "${SYS}" = "mingw32"; then
3191     VLC_ADD_PLUGIN([quicktime])
3192   else
3193   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3194     [ VLC_ADD_PLUGIN([quicktime])
3195       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3196     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3197   fi
3198 fi
3199
3200 dnl
3201 dnl  Real plugin
3202 dnl
3203 AC_ARG_ENABLE(real,
3204   [  --enable-real           Real media module (default disabled)])
3205 if test "${enable_real}" = "yes"; then
3206   VLC_ADD_PLUGIN([realaudio])
3207   VLC_ADD_PLUGIN([realvideo])
3208 fi
3209
3210 dnl
3211 dnl  Real RTSP plugin
3212 dnl
3213 AC_ARG_ENABLE(realrtsp,
3214   [  --enable-realrtsp       Real RTSP module (default disabled)])
3215 if test "${enable_realrtsp}" = "yes"; then
3216   VLC_ADD_PLUGIN([access_realrtsp])
3217 fi
3218
3219 dnl
3220 dnl MP4 module
3221 dnl
3222 AC_CHECK_HEADERS(zlib.h, [
3223   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3224 ] )
3225
3226 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3227   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3228 ] )
3229
3230 dnl
3231 dnl skins2 module
3232 dnl
3233 AC_ARG_ENABLE(libtar,
3234   [  --enable-libtar support for skins2 (default enabled)])
3235
3236 AS_IF([test "${enable_libtar}" != "no"],[
3237   AC_CHECK_HEADERS(libtar.h, [
3238     VLC_ADD_LIBS([skins2],[-ltar])
3239   ] )
3240 ])
3241
3242 dnl
3243 dnl A52/AC3 decoder plugin
3244 dnl
3245 AC_ARG_ENABLE(a52,
3246   [  --enable-a52            A/52 support with liba52 (default enabled)])
3247 if test "${enable_a52}" != "no"
3248 then
3249   AC_ARG_WITH(a52,
3250     [    --with-a52=PATH       a52 headers and libraries])
3251   AC_ARG_WITH(a52-tree,
3252     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3253   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3254   then
3255     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3256     if test -z "${real_a52_tree}"
3257     then
3258       dnl  The given directory can't be found
3259       AC_MSG_RESULT(no)
3260       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3261     fi
3262     dnl  Use a custom a52dec
3263     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3264     if test -f ${real_a52_tree}/include/a52.h
3265     then
3266       AC_MSG_RESULT(yes)
3267       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3268       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3269       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3270       AC_CHECK_LIB(a52, a52_free, [
3271         VLC_ADD_PLUGIN([a52tofloat32])
3272         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3273         VLC_ADD_LIBS([a52tofloat32],[-la52])
3274         ],[
3275         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3276         then
3277           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3278         else
3279           AC_MSG_ERROR([the specified tree hasn't been compiled])
3280         fi
3281       ])
3282       LDFLAGS="${LDFLAGS_save}"
3283     else
3284       AC_MSG_RESULT(no)
3285       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3286     fi
3287   else
3288     if test -z "${with_a52}"
3289     then
3290       LDFLAGS_test=""
3291       CPPFLAGS_test=""
3292     else
3293       LDFLAGS_test="-L${with_a52}/lib"
3294       CPPFLAGS_test="-I${with_a52}/include"
3295     fi
3296     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3297     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3298     AC_CHECK_HEADERS(a52dec/a52.h, [
3299       AC_CHECK_LIB(a52, a52_free, [
3300         VLC_ADD_PLUGIN([a52tofloat32])
3301         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3302         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3303       ],[
3304         AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3305         ])
3306     ],[
3307       AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3308     ])
3309     CPPFLAGS="${CPPFLAGS_save}"
3310     LDFLAGS="${LDFLAGS_save}"
3311   fi
3312 fi
3313
3314 AC_ARG_WITH(a52-fixed,
3315       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3316       [
3317         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3318
3319 dnl
3320 dnl DTS Coherent Acoustics decoder plugin
3321 dnl
3322 AS_IF([test "x${enable_dts}" != "x"], [
3323   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3324 ])
3325 AS_IF([test "x${with_dts_tree}" != "x"], [
3326   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3327 ])
3328
3329 AC_ARG_ENABLE(dca,
3330   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3331                   (default enabled)]))
3332 AS_IF([test "${enable_dca}" != "no"], [
3333   AC_ARG_WITH(dca-tree,
3334     [    --with-dca-tree=PATH  libdca tree for static linking],,
3335     [with_dca_tree="no"])
3336   AS_IF([test "${with_dca_tree}" != "no"], [
3337     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3338     AS_IF([test -z "${real_dca_tree}"], [
3339       dnl  The given directory can't be found
3340       AC_MSG_RESULT(no)
3341       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3342     ])
3343     dnl  Use a custom libdca
3344     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3345     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3346       AC_MSG_RESULT(yes)
3347       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3348       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3349         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3350       ], [
3351         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3352       ])
3353     ], [
3354       AC_MSG_RESULT(no)
3355       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3356     ])
3357   ], [
3358     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3359       VLC_ADD_PLUGIN([dtstofloat32])
3360       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3361       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3362     ], [
3363       AS_IF([test "x${enable_dca}" != "x"], [
3364         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3365       ])
3366     ])
3367   ])
3368 ])
3369
3370 dnl
3371 dnl  Flac plugin
3372 dnl
3373 AC_ARG_ENABLE(flac,
3374   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3375 if test "${enable_flac}" = "yes"
3376 then
3377   AC_ARG_WITH(flac-tree,
3378   [    --with-flac-tree=PATH flac tree for static linking])
3379   if test -n "${with_flac_tree}"
3380   then
3381     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3382     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3383     if test -z "${real_flac_tree}"
3384     then
3385       dnl  The given directory can't be found
3386       AC_MSG_RESULT(no)
3387       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3388     fi
3389     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3390     then
3391       dnl  Use a custom flac
3392       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3393       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3394       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3395       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3396     else
3397       dnl  The given flac wasn't built
3398       AC_MSG_RESULT(no)
3399       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3400     fi
3401   else
3402     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3403       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3404      ],[])
3405   fi
3406 fi
3407
3408 dnl
3409 dnl  Libmpeg2 plugin
3410 dnl
3411 AC_ARG_ENABLE(libmpeg2,
3412   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3413 if test "${enable_libmpeg2}" != "no"
3414 then
3415   AC_ARG_WITH(libmpeg2-tree,
3416   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3417   AS_IF([test -n "${with_libmpeg2_tree}"],[
3418     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3419     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3420     if test -z "${real_libmpeg2_tree}"
3421     then
3422       dnl  The given directory can't be found
3423       AC_MSG_RESULT(no)
3424       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3425     fi
3426     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3427     then
3428       dnl  Use a custom libmpeg2
3429       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3430       VLC_ADD_PLUGIN([libmpeg2])
3431       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3432       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3433     else
3434       dnl  The given libmpeg2 wasn't built
3435       AC_MSG_RESULT(no)
3436       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3437     fi
3438   ],[
3439    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3440           VLC_ADD_PLUGIN([libmpeg2])
3441           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3442           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3443        ], 
3444       AC_MSG_WARN([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ . Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.]))
3445   ])
3446 fi
3447
3448 dnl
3449 dnl  Vorbis plugin
3450 dnl
3451 AC_ARG_ENABLE(vorbis,
3452   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3453 if test "${enable_vorbis}" != "no"
3454 then
3455   AC_ARG_WITH(vorbis-tree,
3456   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3457   if test -n "${with_vorbis_tree}"
3458   then
3459     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3460     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3461     if test -z "${real_vorbis_tree}"
3462     then
3463       dnl  The given directory can't be found
3464       AC_MSG_RESULT(no)
3465       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3466     fi
3467     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3468     then
3469       dnl  Use a custom vorbis 
3470       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3471       VLC_ADD_PLUGIN([vorbis])
3472       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3473       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3474     else
3475       dnl  The given vorbis wasn't built
3476       AC_MSG_RESULT(no)
3477       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3478     fi
3479   else
3480     AC_CHECK_HEADERS(vorbis/codec.h, [
3481       VLC_ADD_PLUGIN([vorbis])
3482       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3483
3484     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3485       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3486   fi
3487 fi
3488
3489 dnl
3490 dnl  Tremor plugin
3491 dnl
3492 AC_ARG_ENABLE(tremor,
3493   [  --enable-tremor         Tremor decoder support (default disabled)])
3494 if test "${enable_tremor}" = "yes"
3495 then
3496   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3497     VLC_ADD_PLUGIN([tremor])
3498     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3499    ],[])
3500 fi
3501
3502 dnl
3503 dnl  Speex plugin
3504 dnl
3505 AC_ARG_ENABLE(speex,
3506   [  --enable-speex          Speex decoder support (default enabled)])
3507 if test "${enable_speex}" != "no"
3508 then
3509   AC_ARG_WITH(speex-tree,
3510   [    --with-speex-tree=PATH speex tree for static linking])
3511   if test -n "${with_speex_tree}"
3512   then
3513     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3514     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3515     if test -z "${real_speex_tree}"
3516     then
3517       dnl  The given directory can't be found
3518       AC_MSG_RESULT(no)
3519       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3520     fi
3521     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3522     then
3523       dnl  Use a custom speex
3524       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3525       VLC_ADD_PLUGIN([speex])
3526       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3527       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3528     else
3529       dnl  The given speex wasn't built
3530       AC_MSG_RESULT(no)
3531       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3532     fi
3533   else
3534     AC_CHECK_HEADERS(speex/speex.h, [
3535       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3536       AC_CHECK_LIB(speex, speex_decode_int, [
3537         VLC_ADD_PLUGIN([speex])
3538         VLC_ADD_LIBS([speex],[-lspeex]) ],
3539         [ AC_MSG_RESULT([no])
3540           AC_MSG_WARN([Your libspeex is too old, please get the development
3541                        version.]) ],[])
3542       LDFLAGS="${LDFLAGS_save}"
3543       ],[])
3544   fi
3545 fi
3546
3547 dnl
3548 dnl  tarkin decoder plugin
3549 dnl
3550 AC_ARG_ENABLE(tarkin,
3551 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3552 if test "${enable_tarkin}" = "yes"
3553 then
3554   AC_ARG_WITH(tarkin-tree,
3555   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3556   if test -n "${with_tarkin_tree}"
3557   then
3558     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3559     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3560     if test -f "${real_tarkin_tree}/tarkin.o"
3561     then
3562       VLC_ADD_PLUGIN([tarkin])
3563       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3564       VLC_ADD_LIBS([tarkin],[${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg])
3565       AC_MSG_RESULT(yes)
3566     else
3567       dnl  The given tarkin tree wasn't built
3568       AC_MSG_RESULT(no)
3569       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3570                     make sure you compiled tarkin in ${with_tarkin_tree}])
3571     fi
3572   fi
3573 fi
3574
3575 dnl
3576 dnl  theora decoder plugin
3577 dnl
3578 AC_ARG_ENABLE(theora,
3579 [  --enable-theora         experimental theora codec (default disabled)])
3580 if test "${enable_theora}" = "yes"
3581 then
3582   AC_CHECK_HEADERS(theora/theora.h, [
3583     AC_CHECK_LIB(theora, theora_granule_time, [
3584       VLC_ADD_PLUGIN([theora])
3585       theora_libs="-ltheora -logg"
3586       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3587       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3588 You also need to check that you have a libogg posterior to the 1.0 release.])],
3589       [-logg])
3590   ])
3591 fi
3592
3593 dnl
3594 dnl  dirac decoder plugin
3595 dnl
3596 AC_ARG_ENABLE(dirac,
3597 [  --enable-dirac          experimental dirac codec (default disabled)])
3598 if test "${enable_dirac}" = "yes"; then
3599   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3600       VLC_ADD_PLUGIN([dirac])
3601       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3602       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3603       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3604   ])
3605 fi
3606
3607 dnl
3608 dnl  schroedinger decoder plugin (for dirac format video)
3609 dnl
3610 AC_ARG_ENABLE(schroedinger,
3611 [  --disable-schroedinger   high performance dirac codec (default enabled)])
3612 if test "${enable_schroedinger}" != "no"; then
3613   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3614       VLC_ADD_PLUGIN([schroedinger])
3615       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3616       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3617         AS_IF([test "x${enable_schroedinger}" != "x"], [
3618           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3619         ])
3620 ])
3621 fi
3622
3623 dnl
3624 dnl  PNG decoder module
3625 dnl
3626 AC_ARG_ENABLE(png,
3627   [  --enable-png            PNG support (default enabled)])
3628 if test "${enable_png}" != "no"; then
3629 AC_CHECK_HEADERS(png.h, [
3630   LDFLAGS="${LDFLAGS_save} -lz"
3631   AC_CHECK_LIB(png, png_set_rows, [
3632     VLC_ADD_LIBS([png],[-lpng -lz])
3633     VLC_ADD_PLUGIN([png])
3634     VLC_ADD_PLUGIN([osdmenu])
3635     VLC_ADD_PLUGIN([osd_parser])
3636     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3637     [],[-lz])
3638     LDFLAGS="${LDFLAGS_save}"
3639   ])
3640 fi
3641 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3642
3643 dnl
3644 dnl H264 encoder plugin (using libx264)
3645 dnl
3646 AC_ARG_ENABLE(x264,
3647   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3648 if test "${enable_x264}" != "no"; then
3649   AC_ARG_WITH(x264-tree,
3650     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3651   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3652   then
3653     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3654     if test -z "${real_x264_tree}"
3655     then
3656       dnl  The given directory can't be found
3657       AC_MSG_RESULT(no)
3658       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3659     fi
3660     dnl  Use a custom libx264
3661     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3662     if test -f ${real_x264_tree}/x264.h
3663     then
3664       AC_MSG_RESULT(yes)
3665       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3666       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3667       PKG_CHECK_MODULES(X264,x264, [
3668         VLC_ADD_PLUGIN([x264])
3669         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3670         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3671       ],[
3672         AC_MSG_ERROR([the specified tree hasn't been compiled])
3673       ])
3674       LDFLAGS="${LDFLAGS_save}"
3675     else
3676       AC_MSG_RESULT(no)
3677       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3678     fi
3679   else
3680       PKG_CHECK_MODULES(X264,x264, [
3681         VLC_ADD_PLUGIN([x264])
3682         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3683         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3684       ],[
3685         if test "${enable_x264}" = "yes"; then
3686             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3687           fi
3688       ])
3689     LDFLAGS="${LDFLAGS_save}"
3690   fi
3691 fi
3692
3693 dnl
3694 dnl libfluidsynth (MIDI synthetizer) plugin
3695 dnl
3696 AC_ARG_ENABLE(fluidsynth,
3697   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3698 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3699   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3700     VLC_ADD_PLUGIN(fluidsynth)
3701     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3702     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3703   ], [
3704     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3705       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3706     ])
3707   ])
3708 ])
3709
3710 dnl
3711 dnl Teletext Modules
3712 dnl vbi decoder plugin (using libzbvi)
3713 dnl telx module
3714 dnl uncompatible
3715 dnl
3716 AC_ARG_ENABLE(zvbi,
3717   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3718                   libzvbi (default enabled)]))
3719 AC_ARG_ENABLE(telx,
3720   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3721                   zvbi) (default disabled)]))
3722
3723 AS_IF( [test "${enable_zvbi}" != "no"],[
3724   AS_IF( [test "${enable_telx}" = "yes"],[
3725     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3726   ],[
3727     PKG_CHECK_MODULES(ZVBI,
3728         zvbi-0.2 >= 0.2.25,
3729         [
3730           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3731           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3732           VLC_ADD_PLUGIN([zvbi])
3733           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3734         ],[
3735           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3736           enable_telx="yes"
3737         ])
3738     ])  
3739   ])
3740 AS_IF( [test "${enable_telx}" = "yes"],[
3741   VLC_ADD_PLUGIN([telx])
3742   ])
3743
3744 dnl
3745 dnl asa/csri subtitle rendering module
3746 dnl
3747 AC_ARG_ENABLE(csri,
3748   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3749 AS_IF( [test "${enable_csri}" = "yes"], [
3750   PKG_CHECK_MODULES(CSRI,
3751       csri >= 0.1.0,
3752       [
3753         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3754         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3755         VLC_ADD_PLUGIN([csri])
3756       ],[
3757         AC_MSG_WARN([CSRI helper library not found])
3758       ])
3759   ])
3760
3761 dnl
3762 dnl libass subtitle rendering module
3763 dnl
3764 AC_ARG_ENABLE(libass,
3765   [  --enable-libass           Subtitle support using libass (default disabled)])
3766 AS_IF( [test "${enable_libass}" = "yes"], [
3767   PKG_CHECK_MODULES(LIBASS,
3768       libass >= 0.9.5,
3769       [
3770         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3771         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3772         VLC_ADD_PLUGIN([libass])
3773
3774                 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3775                   [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3776                    VLC_ADD_LIBS([libass],[-lfontconfig])])
3777       ],[
3778         AC_MSG_WARN([LIBASS library not found])
3779       ])
3780   ])
3781
3782 dnl
3783 dnl asa demuxer
3784 dnl
3785 AC_ARG_ENABLE(asademux,
3786   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3787 AS_IF( [test "${enable_asademux}" = "yes"], [
3788   PKG_CHECK_MODULES(PCRE,
3789       libpcre >= 6.5,
3790       [
3791         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3792         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3793         if test "${SYS}" = "mingw32"; then
3794                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3795         fi
3796         VLC_ADD_PLUGIN([asademux])
3797       ],[
3798         AC_MSG_WARN([PCRE library not found (required for asademux)])
3799       ])
3800   ])
3801
3802 dnl
3803 dnl  CMML plugin
3804 dnl
3805 AC_ARG_ENABLE(cmml,
3806   [  --enable-cmml           CMML support (default enabled)])
3807 if test "${enable_cmml}" != "no"
3808 then
3809   VLC_ADD_PLUGIN([cmml])
3810 fi
3811
3812 dnl
3813 dnl  kate decoder plugin
3814 dnl
3815 AC_ARG_ENABLE(kate,
3816 [  --enable-kate           kate codec (default enabled)])
3817 AS_IF([test "${enable_kate}" != "no"], [
3818   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3819       VLC_ADD_PLUGIN([kate])
3820       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3821       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3822         AC_CHECK_HEADERS(kate/kate.h, [
3823           AC_CHECK_LIB(kate, kate_decode_init, [
3824             VLC_ADD_PLUGIN([kate])
3825             kate_libs="-lkate -logg"
3826             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3827             AS_IF([test "x${enable_kate}" != "x"], [
3828               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3829               You also need to check that you have a libogg posterior to the 1.0 release.])
3830             ])
3831           ], [-lkate -logg])
3832         ],[
3833           AS_IF([test "x${enable_kate}" != "x"], [
3834             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3835             You also need to check that you have a libogg posterior to the 1.0 release.])
3836           ])
3837         ])
3838   ])
3839 ])
3840
3841
3842 dnl
3843 dnl  Video plugins
3844 dnl
3845
3846 AC_ARG_WITH(,[Video plugins:])
3847
3848 dnl Check for DPMS
3849 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3850   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3851   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3852     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3853     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3854       AC_MSG_RESULT(yes)
3855       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3856                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3857     ],[
3858       AC_MSG_RESULT(no)
3859     ])
3860   ],,[
3861     #include <X11/Xlib.h>
3862   ])
3863   CPPFLAGS="${CPPFLAGS_save}"
3864 fi
3865
3866 dnl
3867 dnl  X11 module
3868 dnl  (enabled by default except on win32)
3869 dnl
3870 AC_ARG_ENABLE(x11,
3871   [  --enable-x11            X11 support (default enabled)])
3872 if test "${enable_x11}" != "no" &&
3873   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3874    test "${enable_x11}" = "yes"); then
3875   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3876   AC_CHECK_HEADERS(X11/Xlib.h, [
3877     VLC_ADD_PLUGIN([panoramix])
3878     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3879     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3880     AC_CHECK_LIB(Xext, XShmAttach, [
3881       VLC_ADD_PLUGIN([x11])
3882       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3883       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3884     ])
3885   ])
3886   CPPFLAGS="${CPPFLAGS_save}"
3887 fi
3888
3889 dnl
3890 dnl  XVideo module
3891 dnl  (enabled by default except on win32)
3892 dnl
3893 AC_ARG_ENABLE(xvideo,
3894   [  --enable-xvideo         XVideo support (default enabled)])
3895 if test "${enable_xvideo}" != "no" &&
3896   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3897    test "${enable_xvideo}" = "yes"); then
3898   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3899   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3900     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3901     AC_CHECK_LIB(Xv,XvPutImage,[
3902         VLC_ADD_PLUGIN([xvideo])
3903         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3904         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3905     ])
3906     CFLAGS="${CFLAGS_save}"
3907   ]
3908   CPPFLAGS="${CPPFLAGS_save}")
3909 fi
3910
3911 dnl
3912 dnl  GLX module
3913 dnl  (enabled by default except on win32)
3914 dnl
3915 AC_ARG_ENABLE(glx,
3916   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3917 if test "${enable_glx}" != "no" &&
3918   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3919    test "${enable_glx}" = "yes"); then
3920   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3921   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3922   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3923     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3924     choke me
3925     #endif]]),
3926     [
3927       VLC_ADD_PLUGIN([glx])
3928       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3929       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3930     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3931   CPPFLAGS="${CPPFLAGS_save}"
3932 fi
3933
3934 dnl
3935 dnl  XVMC module
3936 dnl  (disabled by default except on win32)
3937 dnl
3938 AC_ARG_ENABLE(xvmc,
3939   [  --enable-xvmc           XVMC support (default disabled)])
3940 if test "${enable_xvmc}" = "yes" &&
3941   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3942    test "${enable_xvmc}" = "yes"); then
3943   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3944   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3945     VLC_ADD_PLUGIN([xvmc])
3946     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
3947     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3948   ])
3949   CPPFLAGS="${CPPFLAGS_save}"
3950 fi
3951
3952 dnl
3953 dnl  Check for the Xinerama extension
3954 dnl
3955 AC_ARG_ENABLE(xinerama,
3956   [  --enable-xinerama       Xinerama support (default enabled)])
3957 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3958   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3959    test "${enable_xvideo}" = "yes"); then
3960   ac_cv_have_xinerama="no"
3961   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3962   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3963   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3964     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3965       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3966       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3967       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3968       ac_cv_have_xinerama="yes"
3969     ],[
3970       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3971         VLC_ADD_LIBS([xvideo],[-lXinerama])
3972         VLC_ADD_LIBS([x11],[-lXinerama])
3973         VLC_ADD_LIBS([glx],[-lXinerama])
3974         ac_cv_have_xinerama="yes"
3975       ])
3976     ])
3977   ])
3978   if test "${ac_cv_have_xinerama}" = "yes"; then
3979     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3980   fi
3981   CFLAGS="${CFLAGS_save}"
3982   CPPFLAGS="${CPPFLAGS_save}"
3983
3984 dnl
3985 dnl  Check for XF86VidMode extension
3986 dnl
3987   ac_cv_have_xf86vidmode="no"
3988   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3989   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3990   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3991     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3992       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
3993       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
3994       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
3995       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
3996       ac_cv_have_xf86vidmode="yes"
3997     ],[
3998       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3999         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4000         VLC_ADD_LIBS([x11],[-lXxf86vm])
4001         VLC_ADD_LIBS([glx],[-lXxf86vm])
4002         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4003         ac_cv_have_xf86vidmode="yes"
4004       ])
4005     ])
4006   ],[true],
4007 [#ifdef HAVE_X11_XLIB_H
4008 # include <X11/Xlib.h>
4009 #endif]
4010    )
4011   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4012     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4013   ])
4014   CFLAGS="${CFLAGS_save}"
4015   CPPFLAGS="${CPPFLAGS_save}"
4016
4017 fi
4018
4019 dnl
4020 dnl  OpenGL module
4021 dnl  (enabled by default except on beos)
4022 dnl
4023 AC_ARG_ENABLE(opengl,
4024   [  --enable-opengl         OpenGL support (default enabled)])
4025 if test "${enable_opengl}" != "no" &&
4026    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4027   if test "${SYS}" != "darwin"; then
4028     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4029       VLC_ADD_PLUGIN([opengl])
4030       if test "${SYS}" != "mingw32"; then
4031         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4032       else
4033         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4034       fi
4035     ])
4036   else
4037     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4038     VLC_ADD_PLUGIN([opengl])
4039     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4040   fi
4041 fi
4042
4043 dnl
4044 dnl  SDL module
4045 dnl
4046 AC_ARG_ENABLE(sdl,
4047   [  --enable-sdl            SDL support (default enabled)])
4048 AC_ARG_ENABLE(sdl-image,
4049   [  --enable-sdl-image      SDL image support (default enabled)])
4050 if test "${enable_sdl}" != "no"
4051 then
4052   SDL_PATH="${PATH}"
4053   AC_ARG_WITH(sdl-config-path,
4054     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4055     [ if test "${with_sdl_config_path}" != "no"
4056       then
4057         SDL_PATH="${with_sdl_config_path}:${PATH}"
4058       fi ])
4059   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4060   SDL_CONFIG="${SDL12_CONFIG}"
4061   SDL_HEADER="SDL12/SDL.h"
4062   SDL_IMAGE="SDL12/SDL_image.h"
4063   if test "${SDL_CONFIG}" = "no"
4064   then
4065     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4066     SDL_CONFIG=${SDL11_CONFIG}
4067     SDL_HEADER="SDL11/SDL.h"
4068     SDL_IMAGE="SDL11/SDL_image.h"
4069   fi
4070   if test "${SDL_CONFIG}" = "no"
4071   then
4072     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4073     SDL_HEADER="SDL/SDL.h"
4074     SDL_IMAGE="SDL/SDL_image.h"
4075   fi
4076   # check for cross-compiling
4077   SDL_PREFIX=
4078   AC_ARG_WITH(sdl-prefix,
4079     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4080                                e.g use as:
4081                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4082   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4083   then
4084     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4085   fi
4086   if test "${SDL_CONFIG}" != "no"
4087   then
4088     # SDL on Darwin is heavily patched and can only run SDL_image
4089     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4090       VLC_ADD_PLUGIN([vout_sdl])
4091       VLC_ADD_PLUGIN([aout_sdl])
4092     fi
4093     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4094     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4095     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4096     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4097       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4098       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4099           As a last resort we also test for SDL.h presence),
4100       [ AC_MSG_ERROR([The development package for SDL is not installed.
4101 Please install it and try again. Alternatively you can also configure with
4102 --disable-sdl.])
4103       ])])
4104     AS_IF([ test "${enable_sdl_image}" != "no"],[
4105       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4106         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4107         VLC_ADD_PLUGIN([sdl_image])
4108         AC_CHECK_LIB(png, png_set_rows,
4109           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4110         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4111           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4112         AC_CHECK_LIB(tiff, TIFFClientOpen,
4113           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4114         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4115         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4116             As a last resort we also test for SDL_image.h presence),
4117         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4118   You should install it alongside your SDL package.])
4119         ])])
4120     ])
4121     CPPFLAGS="${CPPFLAGS_save}"
4122     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4123     then
4124       AC_MSG_ERROR([The development package for SDL is not installed.
4125 Please install it and try again. Alternatively you can also configure with
4126 --disable-sdl.])
4127     fi
4128
4129   elif test "${enable_sdl}" =  "yes"
4130   then
4131     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4132 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4133     ])
4134   fi
4135 fi
4136
4137 dnl
4138 dnl  freetype module
4139 dnl
4140 AC_ARG_ENABLE(freetype,
4141   [  --enable-freetype       freetype support (default enabled)])
4142 AC_ARG_ENABLE(fribidi,
4143   [  --enable-fribidi        fribidi support (default enabled)])
4144 if test "${enable_freetype}" != "no"
4145 then
4146    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4147       VLC_ADD_PLUGIN([freetype])
4148       have_freetype=yes
4149       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4150       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4151       if test "${SYS}" = "mingw32"; then
4152         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4153      fi
4154     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4155       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4156        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4157     AC_CHECK_HEADERS(Carbon/Carbon.h,
4158       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4159   ],[
4160   have_freetype=no
4161   AS_IF([ test "${enable_freetype}" =  "yes"],[
4162     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4163 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4164       ])
4165     ])
4166   ])
4167
4168   dnl fribidi support
4169   if test "${enable_fribidi}" != "no"
4170   then
4171     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4172       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4173       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4174     ])
4175     fi
4176 fi
4177
4178 dnl
4179 dnl  libxml2 module
4180 dnl
4181 AC_ARG_ENABLE(libxml2,
4182   [  --enable-libxml2        libxml2 support (default enabled)])
4183 if test "${enable_libxml2}" != "no"
4184 then
4185   XML2_PATH="${PATH}"
4186   AC_ARG_WITH(xml2-config-path,
4187     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4188     [ if test "${with_xml2_config_path}" != "no"; then
4189         XML2_PATH="${with_xml2_config_path}:${PATH}"
4190       fi ])
4191   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4192   if test "${XML2_CONFIG}" != "no"; then
4193     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4194     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4195     dnl depends on the xmlTextReader extension
4196     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4197     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4198     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4199       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4200         VLC_ADD_PLUGIN([xml]) ],[
4201           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4202           if test "${enable_xml2}" = "yes"; then
4203             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4204           fi])
4205        ],[
4206       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4207       if test "${enable_xml2}" = "yes"; then
4208         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4209       fi])
4210     LDFLAGS="${LDFLAGS_save}"
4211     CPPFLAGS="${CPPFLAGS_save}"
4212   else
4213     if test "${enable_xml2}" = "yes"; then
4214       AC_MSG_ERROR([Could not find libxml2])
4215     fi
4216   fi
4217 fi
4218
4219 dnl
4220 dnl  SVG module
4221 dnl
4222 AC_ARG_ENABLE(svg,
4223   [  --enable-svg            SVG support (default disabled)])
4224 if test "${enable_svg}" = "yes"
4225 then
4226   PKG_CHECK_MODULES(SVG, 
4227         librsvg-2.0 >= 2.9.0,
4228         [
4229           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4230           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4231           VLC_ADD_PLUGIN([svg]) ],
4232         [AC_MSG_WARN(SVG library not found)])
4233 fi
4234
4235 dnl
4236 dnl Snapshot vout module (with cache)
4237 dnl
4238 AC_ARG_ENABLE(snapshot,
4239   [  --enable-snapshot       snapshot module (default disabled)])
4240 if test "${enable_snapshot}" = "yes"
4241 then
4242   VLC_ADD_PLUGIN([snapshot])
4243 fi
4244
4245 dnl
4246 dnl  Qt Embedded module
4247 dnl  (disabled by default)
4248 dnl
4249 AC_ARG_ENABLE(qte,
4250   [  --enable-qte            QT Embedded support (default disabled)])
4251 if test "${enable_qte}" = "yes"
4252 then
4253   AC_ARG_WITH(qte,
4254   [    --with-qte=PATH       Qt Embedded headers and libraries])
4255   if test "${with_qte}" != "no" -a -n "${with_qte}"
4256   then
4257     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4258     VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4259   else
4260     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4261     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4262   fi
4263   VLC_ADD_PLUGIN([qte])
4264   NEED_QTE_MAIN=yes
4265   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4266   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4267     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4268   ] )
4269   CPPFLAGS="${CPPFLAGS_save}"
4270 fi
4271
4272 dnl
4273 dnl Roku HD1000 Video output module
4274 dnl
4275 AC_ARG_ENABLE(hd1000v,
4276   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4277 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4278   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4279    test "${enable_hd1000v}" = "yes"); then
4280   AC_LANG_PUSH([C++])
4281   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4282   [
4283     can_build_roku="yes"
4284   ],
4285   [
4286     can_build_roku="no"
4287     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4288   ])
4289   if test "$can_build_roku" = "yes"
4290   then
4291     VLC_ADD_PLUGIN([hd1000v])
4292     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4293   fi
4294   AC_LANG_POP([C++])
4295 fi
4296
4297 dnl
4298 dnl  Windows DirectX module
4299 dnl
4300
4301 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4302 then
4303   VLC_ADD_PLUGIN([panoramix])
4304 fi
4305
4306 AC_ARG_ENABLE(directx,
4307   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4308 if test "${enable_directx}" != "no"
4309 then
4310   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4311   then
4312     AC_ARG_WITH(directx,
4313     [    --with-directx=PATH   Win32 DirectX headers])
4314     if test -z "${with_directx}"
4315     then
4316       AC_CHECK_HEADERS(ddraw.h,
4317       [ VLC_ADD_PLUGIN([vout_directx])
4318         VLC_ADD_PLUGIN([aout_directx])
4319         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4320       ])
4321       AC_CHECK_HEADERS(GL/gl.h,
4322       [ VLC_ADD_PLUGIN([glwin32])
4323         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4324       ])
4325       AC_CHECK_HEADERS(d3d9.h,
4326       [ VLC_ADD_PLUGIN([direct3d])
4327         VLC_ADD_LIBS([direct3d],[-lgdi32])
4328       ])
4329     else
4330       AC_MSG_CHECKING(for directX headers in ${with_directx})
4331       if test -f ${with_directx}/ddraw.h
4332       then
4333         VLC_ADD_PLUGIN([vout_directx])
4334         VLC_ADD_PLUGIN([aout_directx])
4335         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4336         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4337         AC_MSG_RESULT(yes)
4338       else
4339         AC_MSG_RESULT(no)
4340         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4341       fi
4342     fi
4343   fi
4344 fi
4345
4346 dnl
4347 dnl  Linux framebuffer module
4348 dnl
4349 AC_ARG_ENABLE(fb,
4350   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4351     if test "${enable_fb}" != "no"
4352     then
4353       AC_CHECK_HEADERS(linux/fb.h, [
4354         VLC_ADD_PLUGIN([fb])
4355       ])
4356     fi
4357
4358 dnl
4359 dnl  Linux MGA module
4360 dnl
4361 AC_ARG_ENABLE(mga,
4362   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4363   [ if test "${enable_mga}" = "yes"
4364     then
4365       VLC_ADD_PLUGIN([mga])
4366     fi ])
4367
4368 dnl
4369 dnl  SVGAlib module
4370 dnl
4371 AC_ARG_ENABLE(svgalib,
4372   [  --enable-svgalib        SVGAlib support (default disabled)])
4373 if test "${enable_svgalib}" = "yes"
4374 then
4375   VLC_ADD_PLUGIN([svgalib])
4376   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4377 fi
4378
4379 dnl
4380 dnl  DirectFB module
4381 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4382 dnl  TODO: support for static linking
4383 dnl
4384 AC_ARG_ENABLE(directfb,
4385   [  --enable-directfb       DirectFB support (default disabled)])
4386 AC_ARG_WITH(directfb, 
4387   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4388
4389 if test "${enable_directfb}" = "yes"; then
4390     have_directfb="false"
4391     CPPFLAGS_mydirectfb=
4392     LIBS_mydirectfb=
4393     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4394         dnl Trying the given location
4395         CPPFLAGS_save="${CPPFLAGS}"
4396         LIBS_save="${LIBS}"
4397
4398         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4399         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4400         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4401
4402         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4403         LIBS="${LIBS} ${LIBS_new}"
4404
4405         dnl FIXME: too obscure
4406         AC_CHECK_HEADER([directfb.h], [
4407             AC_CHECK_LIB([direct],[direct_initialize], [
4408                 AC_CHECK_LIB([fusion], [fusion_enter], [
4409                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4410                 ], have_directfb="false")
4411             ], have_directfb="false")
4412         ], have_directfb="false")
4413
4414         dnl Restore flags
4415         CPPFLAGS="${CPPFLAGS_save}"
4416         LIBS="${LIBS_save}"
4417
4418         if test "${have_directfb}" = "true"; then
4419             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4420             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4421         fi
4422     else 
4423         dnl Look for directfb-config
4424         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4425         if test "${DIRECTFB_CONFIG}" != "no"; then
4426             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4427             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4428             have_directfb="true"
4429         else 
4430             dnl Trying with pkg-config
4431             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4432                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4433                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4434                 have_directfb="true"
4435                 ], [have_directfb="false"])
4436         fi
4437     fi
4438     if test "${have_directfb}" = "true"; then
4439         VLC_ADD_PLUGIN([directfb])
4440         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4441         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4442     else 
4443         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4444     fi
4445 fi
4446  
4447
4448
4449 dnl
4450 dnl  GGI module
4451 dnl
4452 AC_ARG_ENABLE(ggi,
4453   [  --enable-ggi            GGI support (default disabled)])
4454 if test "${enable_ggi}" = "yes"
4455 then
4456   VLC_ADD_PLUGIN([ggi])
4457   VLC_ADD_LIBS([ggi],[-lggi])
4458   AC_ARG_WITH(ggi,
4459     [    --with-ggi=PATH       path to libggi],
4460     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4461       then
4462         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4463         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4464       fi ])
4465 fi
4466
4467 dnl
4468 dnl  AA plugin
4469 dnl
4470 AC_ARG_ENABLE(aa,
4471   [  --enable-aa             aalib output (default disabled)])
4472 if test "${enable_aa}" = "yes"
4473 then
4474   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4475   if test "${have_aa}" = "true"
4476   then
4477     VLC_ADD_PLUGIN([aa])
4478     VLC_ADD_LIBS([aa],[-laa])
4479   fi
4480 fi
4481
4482 dnl
4483 dnl  libcaca plugin
4484 dnl
4485 AC_ARG_ENABLE(caca,
4486   [  --enable-caca           libcaca output (default disabled)])
4487 if test "${enable_caca}" = "yes"
4488 then
4489   CACA_PATH="${PATH}"
4490   AC_ARG_WITH(caca-config-path,
4491     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4492     [ if test "${with_caca_config_path}" != "no"
4493       then
4494         CACA_PATH="${with_caca_config_path}:${PATH}"
4495       fi ])
4496   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4497   if test "${CACA_CONFIG}" != "no"
4498   then
4499     VLC_ADD_PLUGIN([caca])
4500     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4501     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4502     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4503                                         caca_event_t ev;]],
4504                                         [[ev.type = 0;]]
4505                        )],
4506                        [],
4507       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4508     )
4509   fi
4510 fi
4511
4512 dnl
4513 dnl  win32 GDI plugin
4514 dnl
4515 AC_ARG_ENABLE(wingdi,
4516   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4517 if test "${enable_wingdi}" != "no"; then
4518   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4519     VLC_ADD_PLUGIN([wingdi])
4520     VLC_ADD_LIBS([wingdi],[-lgdi32])
4521   fi
4522   if test "${SYS}" = "mingwce"; then
4523     VLC_ADD_PLUGIN([wingdi])
4524     VLC_ADD_PLUGIN([wingapi])
4525   fi
4526 fi
4527
4528 dnl
4529 dnl  Audio plugins
4530 dnl
4531
4532 AC_ARG_WITH(,[Audio plugins:])
4533
4534 dnl
4535 dnl  OSS /dev/dsp module (enabled by default except on win32)
4536 dnl
4537 AC_ARG_ENABLE(oss,
4538   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4539
4540 if test "${enable_oss}" != "no" &&
4541   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4542    test "${enable_oss}" = "yes")
4543 then
4544   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4545     VLC_ADD_PLUGIN([oss])
4546     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4547   ])
4548 fi
4549
4550 dnl
4551 dnl  Esound module
4552 dnl
4553 AC_ARG_ENABLE(esd,
4554   [  --enable-esd            Esound library support (default disabled)],
4555   [if test "${enable_esd}" = "yes"
4556    then
4557      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4558      if test "${ESD_CONFIG}" != "no"
4559      then
4560        VLC_ADD_PLUGIN([esd])
4561        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4562        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4563      fi
4564    fi])
4565
4566 dnl
4567 dnl  Pulseaudio module
4568 dnl
4569 AC_ARG_ENABLE(pulse,
4570   [  --enable-pulse          Pulseaudio support (default enabled)])
4571   if test "${enable_pulse}" != "no"
4572    then
4573      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4574        [ VLC_ADD_PLUGIN([pulse])
4575         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4576         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4577        [AC_MSG_WARN(pulseaudio library not found)])
4578    fi
4579
4580 dnl
4581 dnl  Portaudio module
4582 dnl
4583 AC_ARG_ENABLE(portaudio,
4584   [  --enable-portaudio      Portaudio library support (default disabled)],
4585   [if test "${enable_portaudio}" = "yes"
4586    then
4587      VLC_ADD_PLUGIN([portaudio])
4588      VLC_ADD_CXXFLAGS([portaudio],[])
4589      if test "${SYS}" = "mingw32"; then
4590         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4591      else
4592         VLC_ADD_LIBS([portaudio],[-lportaudio])
4593      fi
4594    fi])
4595
4596 dnl
4597 dnl  aRts module
4598 dnl  broken? (froze wxWidgets back then)
4599 dnl
4600 AC_ARG_ENABLE(arts,
4601  [  --enable-arts           aRts sound server (default disabled)],
4602  [if test "${enable_arts}" = "yes"
4603   then
4604     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4605     if test "${ARTS_CONFIG}" != "no"
4606     then
4607       VLC_ADD_PLUGIN([arts])
4608       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4609       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4610     fi
4611   fi])
4612
4613 dnl
4614 dnl  ALSA module
4615 dnl
4616 AC_ARG_ENABLE(alsa,
4617   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4618 if test "${enable_alsa}" != "no"
4619 then
4620   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4621   if test "${have_alsa}" = "true"
4622   then
4623     CFLAGS="${CFLAGS_save}"
4624     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4625                     #define ALSA_PCM_NEW_SW_PARAMS_API
4626                     #include <alsa/asoundlib.h>],
4627        [snd_pcm_hw_params_get_period_time(0,0,0);],
4628         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4629     VLC_ADD_PLUGIN([alsa])
4630     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4631   else
4632     if test "${enable_alsa}" = "yes"; then
4633       AC_MSG_ERROR([Could not find ALSA development headers])
4634     fi
4635   fi
4636 fi
4637
4638 dnl
4639 dnl  win32 waveOut plugin
4640 dnl
4641 AC_ARG_ENABLE(waveout,
4642   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4643 if test "${enable_waveout}" != "no"; then
4644   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4645     VLC_ADD_PLUGIN([waveout])
4646     VLC_ADD_LIBS([waveout],[-lwinmm])
4647   fi
4648   if test "${SYS}" = "mingwce"; then
4649     VLC_ADD_PLUGIN([waveout])
4650   fi
4651 fi
4652
4653 dnl
4654 dnl  CoreAudio plugin
4655 dnl
4656 AC_ARG_ENABLE(macosx-audio,
4657   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4658 if test "${enable_macosx-audio}" != "no" &&
4659   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4660 then
4661   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4662     [ VLC_ADD_PLUGIN([auhal])
4663       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4664     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4665 fi
4666
4667 dnl
4668 dnl  Roku HD1000 audio
4669 dnl
4670 AC_ARG_ENABLE(hd1000a,
4671   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4672 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4673   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4674    test "${enable_hd1000a}" = "yes")
4675 then
4676   AC_LANG_PUSH([C++])
4677   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4678     VLC_ADD_PLUGIN([hd1000a])
4679     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4680   AC_LANG_POP([C++])
4681 fi
4682
4683 dnl
4684 dnl  JACK modules
4685 dnl
4686 AC_ARG_ENABLE(jack,
4687  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4688  [enable_jack="no"])
4689
4690 AS_IF([test "${enable_jack}" != "no"], [
4691   AC_CHECK_HEADERS(jack/jack.h, [
4692     VLC_ADD_PLUGIN([access_jack])
4693     VLC_ADD_PLUGIN([jack])
4694     VLC_ADD_LIBS([access_jack jack],[-ljack])
4695   ],[AC_MSG_ERROR([cannot find JACK headers])])
4696 ])
4697
4698 dnl
4699 dnl  CyberLink for C++ UPnP stack
4700 dnl
4701 AC_ARG_ENABLE(cyberlink,
4702   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4703   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4704   AC_ARG_WITH(cyberlink-tree,
4705     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4706
4707   dnl
4708   dnl test for --with-cyberlink-tree
4709   dnl
4710   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4711     AC_LANG_PUSH(C++)
4712     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4713     AS_IF([test -z "${real_cyberlink_tree}"], [
4714       dnl  The given directory can't be found
4715       AC_MSG_RESULT(no)
4716       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4717     ])
4718     CPPFLAGS_save="${CPPFLAGS}"
4719     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4720     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4721     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4722       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4723         VLC_ADD_PLUGIN([upnp_cc]) 
4724       ],[
4725         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4726       ])
4727     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4728     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4729       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4730       dnl The mere fact that we have to make such an ugly check sucks
4731       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4732       LIBS_save="$LIBS"
4733       LIBS_cclink="no"
4734       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4735         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4736         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4737 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4738 using namespace CyberLink;
4739
4740 class testclass : public SearchResponseListener, public MediaPlayer
4741 {
4742     virtual void deviceSearchResponseReceived( SSDPPacket *)
4743     {
4744     }
4745
4746     public:
4747       testclass (void)
4748       {
4749         addSearchResponseListener (this);
4750         start ();
4751       }
4752 };
4753 ],[testclass l;])],[LIBS_cclink="$l"])
4754       done
4755       LIBS="${LIBS_save}"
4756       dnl should not happen - otherwise this needs fixing - hence FAILURE
4757       AS_IF([test "${LIBS_cclink}" = "no"],
4758         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4759       AC_MSG_RESULT([${LIBS_cclink}])
4760       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4761     ], [
4762       AC_MSG_RESULT(no)
4763       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4764     ])
4765     CPPFLAGS="${CPPFLAGS_save}"
4766     AC_LANG_POP([C++])
4767   ])
4768 ])
4769
4770 dnl
4771 dnl UPnP Plugin (Intel SDK)
4772 dnl
4773 AC_ARG_ENABLE(upnp,
4774   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4775
4776 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4777 AS_IF([test "x${enable_upnp}" != "xno"], [
4778   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4779   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4780     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4781   ])
4782   AS_IF([test "${has_upnp}" = "yes"], [
4783     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4784   ])
4785 ], [
4786   has_upnp="no"
4787 ])
4788
4789 AS_IF([test "${has_upnp}" = "yes"], [
4790   VLC_ADD_PLUGIN([upnp_intel])
4791 ])
4792
4793
4794 dnl
4795 dnl  Interface plugins
4796 dnl
4797
4798 AC_ARG_WITH(,[Interface plugins:])
4799
4800 dnl special case for BeOS
4801 if test "${SYS}" = "beos"
4802 then
4803     VLC_ADD_PLUGIN([beos])
4804 fi
4805
4806 dnl
4807 dnl Skins2 module
4808 dnl
4809 AC_ARG_ENABLE(skins2,
4810   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4811    enabled except on MacOSX, BeOS and WinCE)])])
4812 if test "${enable_skins2}" = "yes" ||
4813   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4814    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4815
4816   dnl test for the required libraries
4817   skins2_missing_lib="no"
4818
4819   dnl freetype
4820   if test "${have_freetype}" != "yes"; then
4821     skins2_missing_lib="yes"
4822     if test "${enable_skins2}" = "yes"; then
4823       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4824     fi
4825   fi
4826
4827   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4828     VLC_ADD_PLUGIN([skins2])
4829     ALIASES="${ALIASES} svlc"
4830     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4831     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4832     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4833
4834   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4835     VLC_ADD_PLUGIN([skins2])
4836     ALIASES="${ALIASES} svlc"
4837     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4838     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4839     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4840
4841   else if test "${skins2_missing_lib}" = "no"; then
4842     VLC_ADD_PLUGIN([skins2])
4843     ALIASES="${ALIASES} svlc"
4844     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4845     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4846     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4847   fi fi fi
4848 fi
4849 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4850          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4851           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4852
4853 dnl
4854 dnl  PDA Gtk+2 module
4855 dnl
4856 AC_ARG_ENABLE(pda,
4857   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4858 if test "${enable_pda}" = "yes"
4859 then
4860   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4861   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4862   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4863   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4864   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4865   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4866   VLC_ADD_PLUGIN([pda])
4867   if test "${SYS}" != "mingw32"; then
4868     NEED_GTK2_MAIN=yes
4869     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4870     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4871   fi
4872 fi
4873 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4874
4875 dnl
4876 dnl QT 4
4877 dnl
4878 AC_ARG_ENABLE(qt4,
4879   [  --enable-qt4            QT 4 support (default enabled) ],, [
4880   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4881 ])
4882 AS_IF([test "${enable_qt4}" != "no"], [
4883   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0], [
4884     VLC_ADD_PLUGIN([qt4])
4885     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4886     ALIASES="${ALIASES} qvlc"
4887     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4888         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4889     ], [
4890         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
4891     ])
4892     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4893     AC_SUBST(QT4LOCALEDIR)
4894     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4895     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4896     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4897     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4898   ], [
4899     AS_IF([test "${enable_qt4}" = "yes"],[
4900       AC_MSG_ERROR([Qt 4 library not found])
4901     ],[
4902       AC_MSG_WARN([Qt 4 library not found])
4903     ])
4904     enable_qt4="no"
4905   ])
4906 ])
4907 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4908
4909 dnl
4910 dnl  WinCE GUI module
4911 dnl
4912 AC_ARG_ENABLE(wince,
4913   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4914 if test "${enable_wince}" != "no"; then
4915   if test "${SYS}" = "mingwce"; then
4916     VLC_ADD_PLUGIN([wince])
4917     VLC_ADD_CXXFLAGS([wince],[])
4918     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4919     dnl Gross hack
4920     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4921   elif test "${SYS}" = "mingw32"; then
4922     VLC_ADD_CXXFLAGS([wince],[])
4923     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4924     dnl Gross hack
4925     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4926   fi
4927 fi
4928
4929 dnl
4930 dnl Simple test for skins2 dependency
4931 dnl
4932 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4933   AC_MSG_ERROR([The skins2 module depends on a the Qt4 development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.])
4934 ])
4935
4936 dnl
4937 dnl  Opie QT embedded module
4938 dnl
4939 AC_ARG_ENABLE(opie,
4940   [  --enable-opie           Qt embedded interface support (default disabled)],
4941   [if test "${enable_opie}" = "yes"; then
4942      AC_ARG_WITH(qte,
4943      [    --with-qte=PATH       Qt Embedded headers and libraries])
4944      if test "${with_qte}" != "no" -a -n "${with_qte}"
4945      then
4946        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4947        VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4948      else
4949        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4950        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4951      fi
4952      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4953      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4954        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4955      ] )
4956      CPPFLAGS="${CPPFLAGS_save}"
4957
4958      VLC_ADD_PLUGIN([opie])
4959      NEED_QTE_MAIN=yes
4960      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4961      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4962      if test "${with_qte}" != "no" -a -n "${with_qte}"
4963      then
4964        MOC=${with_qte}/bin/moc
4965      else
4966        MOC=${QTDIR}/bin/moc
4967      fi
4968    fi])
4969
4970 dnl
4971 dnl  MacOS X video output/gui modules
4972 dnl
4973 AC_ARG_ENABLE(macosx,
4974   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4975 if test "x${enable_macosx}" = "xyes"
4976 then
4977   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4978   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4979   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4980   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4981   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4982   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4983   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
4984   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
4985   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4986   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4987   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4988   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4989   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
4990
4991   VLC_ADD_PLUGIN([access_eyetv])
4992   VLC_ADD_PLUGIN([qtcapture])
4993   VLC_ADD_PLUGIN([macosx])
4994   VLC_ADD_PLUGIN([minimal_macosx])
4995  
4996   ORIGCFLAGS=$CFLAGS
4997   CFLAGS="$CFLAGS -x objective-c"
4998   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>], 
4999   [VLC_ADD_PLUGIN([opengllayer])
5000   VLC_ADD_OBJCFLAGS([opengllayer], [-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5])])
5001   CFLAGS=$ORIGCFLAGS
5002 fi
5003
5004 dnl
5005 dnl  QNX RTOS module
5006 dnl
5007 AC_ARG_ENABLE(qnx,
5008   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5009     if test "${enable_qnx}" != "no"
5010     then
5011       AC_CHECK_HEADERS(Ph.h, [
5012         VLC_ADD_PLUGIN([qnx])
5013         VLC_ADD_LIBS([qnx],[-lasound -lph])
5014       ])
5015     fi
5016
5017 dnl
5018 dnl  ncurses module
5019 dnl
5020 AC_ARG_ENABLE(ncurses,
5021   [  --disable-ncurses       ncurses interface support (default enabled)],
5022   [if test "${enable_ncurses}" != "no"; then
5023     AC_CHECK_HEADER(ncurses.h,
5024       [AC_CHECK_LIB(ncursesw, mvprintw,
5025         [VLC_ADD_PLUGIN([ncurses])
5026         VLC_ADD_LIBS([ncurses],[-lncursesw])
5027         ALIASES="${ALIASES} nvlc"
5028         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5029         AC_CHECK_LIB(ncursesw, tgetent, [],
5030           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5031             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5032               [AS_IF([test "x${enable_ncurses}" != "x"],
5033                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5034                )])])
5035             ]
5036           )
5037         )
5038         ],
5039         [AC_CHECK_LIB( ncurses, mvprintw,
5040           [VLC_ADD_PLUGIN([ncurses])
5041           ALIASES="${ALIASES} nvlc"
5042           VLC_ADD_LIBS([ncurses],[-lncurses])
5043           AC_CHECK_LIB(ncurses, tgetent, [],
5044             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5045               [AS_IF([test "x${enable_ncurses}" != "x"],
5046                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5047             )]
5048           )],
5049           [AS_IF([test "x${enable_ncurses}" != "x"], [
5050             AC_MSG_ERROR([libncurses not found])])]
5051         )]
5052       )]
5053     )
5054   fi]
5055 )
5056
5057 dnl
5058 dnl  XOSD plugin
5059 dnl
5060 AC_ARG_ENABLE(xosd,
5061   [  --enable-xosd           xosd interface support (default disabled)])
5062 if test "${enable_xosd}" = "yes"
5063 then
5064   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5065   AC_CHECK_LIB(xosd,xosd_set_offset,
5066       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5067     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5068         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5069       AC_TRY_COMPILE([#include <xosd.h>],
5070          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5071           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5072   if test "${have_xosd}" = "true"
5073   then
5074     VLC_ADD_PLUGIN([xosd])
5075     VLC_ADD_LIBS([xosd],[-lxosd])
5076   fi
5077 fi
5078
5079 dnl
5080 dnl Framebuffer (overlay) plugin
5081 dnl
5082 AC_ARG_ENABLE(fbosd,
5083   [  --enable-fbosd          fbosd interface support (default disabled)])
5084 if test "${enable_fbosd}" = "yes"
5085 then
5086   AC_CHECK_HEADERS(linux/fb.h, [
5087     VLC_ADD_PLUGIN([fbosd])
5088  ])
5089 fi
5090
5091 dnl
5092 dnl Visualisation plugin
5093 dnl
5094 AC_ARG_ENABLE(visual,
5095   [  --enable-visual         visualisation plugin (default enabled)])
5096 if test "${enable_visual}" != "no"
5097 then
5098     VLC_ADD_PLUGIN([visual])
5099 fi
5100
5101 dnl
5102 dnl OpenGL visualisation plugin
5103 dnl
5104 AC_ARG_ENABLE(galaktos,
5105   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5106 if test "${enable_galaktos}" = "yes"
5107 then
5108   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5109     VLC_ADD_PLUGIN([galaktos])
5110     if test "${SYS}" != "mingw32"; then
5111       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5112     else
5113       VLC_ADD_LIBS([galaktos],[-lopengl32])
5114     fi
5115   ])
5116 fi
5117
5118 dnl
5119 dnl  goom visualization plugin
5120 dnl
5121 AC_ARG_ENABLE(goom,
5122 [  --enable-goom           goom visualisation plugin (default disabled)])
5123 if test "${enable_goom}" = "yes"
5124 then
5125   AC_ARG_WITH(goom-tree,
5126     [    --with-goom-tree=PATH goom tree for static linking (required)])
5127
5128   dnl
5129   dnl test for --with-goom-tree
5130   dnl
5131   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5132     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5133     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5134     if test -z "${real_goom_tree}"; then
5135       dnl  The given directory can't be found
5136       AC_MSG_RESULT(no)
5137       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5138     fi
5139     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5140       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5141       VLC_ADD_PLUGIN([goom])
5142       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5143       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5144     else
5145       dnl  The given libgoom2 wasn't built, try to look for the old goom
5146       AC_MSG_RESULT(no)
5147       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5148       if test -f "${real_goom_tree}/libgoom.a"; then
5149         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5150         VLC_ADD_PLUGIN([goom])
5151         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5152         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5153       else
5154         dnl  The given libgoom wasn't built
5155         AC_MSG_RESULT(no)
5156         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5157       fi
5158     fi
5159   else
5160     AC_CHECK_HEADERS(goom/goom.h, [
5161       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5162       AC_CHECK_LIB(goom2, goom_init, [
5163         VLC_ADD_PLUGIN([goom])
5164         VLC_ADD_LIBS([goom],[-lgoom2])
5165       ],[
5166         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5167       ])
5168       LDFLAGS="${LDFLAGS_save}"
5169     ])
5170   fi
5171 fi
5172
5173 dnl
5174 dnl  AtmoLight (homebrew AmbiLight)
5175 dnl
5176 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5177    AC_ARG_ENABLE(atmo,
5178 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight) 
5179                 (default enabled)]))
5180    if test "${enable_atmo}" != "no"; then
5181       AC_LANG_PUSH(C++)
5182       VLC_ADD_PLUGIN([atmo])
5183       AC_LANG_POP(C++)
5184    fi
5185 fi
5186
5187 dnl
5188 dnl  Bonjour services discovery
5189 dnl
5190 AC_ARG_ENABLE(bonjour,
5191   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5192 if test "${enable_bonjour}" != "no"
5193 then
5194   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5195     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5196        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5197       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5198       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5199       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5200       VLC_ADD_PLUGIN([bonjour]) ],
5201     [AC_MSG_WARN(avahi-client library not found)])
5202 fi
5203
5204 dnl
5205 dnl  Lirc plugin
5206 dnl
5207 AC_ARG_ENABLE(lirc,
5208   [  --enable-lirc           lirc support (default disabled)])
5209 if test "${enable_lirc}" = "yes"
5210 then
5211   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5212   if test "${have_lirc}" = "true"
5213   then
5214     VLC_ADD_PLUGIN([lirc])
5215     VLC_ADD_LIBS([lirc],[-llirc_client])
5216   fi
5217 fi
5218
5219
5220 AC_ARG_WITH(,[Misc options:])
5221
5222 dnl
5223 dnl libgcrypt
5224 dnl
5225 AC_ARG_ENABLE(libgcrypt,
5226   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5227 AS_IF([test "${enable_libgcrypt}" != "no"], [
5228   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5229 ])
5230 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5231   AS_IF([test "${have_libgcrypt}" = "yes"],[
5232     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5233   ])
5234 fi
5235 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5236
5237 dnl
5238 dnl TLS/SSL
5239 dnl
5240 AC_ARG_ENABLE(gnutls,
5241   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5242
5243 AS_IF([test "${enable_gnutls}" != "no"], [
5244   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5245     VLC_ADD_PLUGIN([gnutls])
5246     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5247     AS_IF([test "${SYS}" = "mingw32"], [
5248       dnl pkg-config --libs gnutls omits these
5249       VLC_ADD_LIBS([gnutls], [-lz])
5250       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5251     ])
5252     dnl The GnuTLS plugin invokes gcry_control directly.
5253     AS_IF([test "${have_libgcrypt}" = "yes"],[
5254       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5255       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5256     ])
5257     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5258   ], [
5259     AS_IF([test "${enable_gnutls}" = "yes"], [
5260       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5261     ])
5262   ])
5263 ])
5264
5265
5266 dnl
5267 dnl RemoteOSD plugin (VNC client as video filter)
5268 dnl
5269 AC_ARG_ENABLE(remoteosd,
5270   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5271
5272 AS_IF([test "${enable_remoteosd}" != "no"], [
5273   AS_IF([test "${have_libgcrypt}" = "yes"],[
5274     VLC_ADD_PLUGIN([remoteosd])
5275     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5276     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5277   ], [
5278     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5279   ])
5280 ])
5281
5282
5283 dnl
5284 dnl update checking system
5285 dnl
5286 AC_ARG_ENABLE(update-check,
5287   [  --enable-update-check   update checking system (default disabled)])
5288 if test "${enable_update_check}" = "yes"
5289 then
5290   if test "${have_libgcrypt}" != "yes"
5291   then
5292     AC_MSG_ERROR([libgcrypt is required for update checking system])
5293   fi
5294   VLC_ADD_LIBS([libvlc], [${LIBGCRYPT_LIBS}])
5295   VLC_ADD_CFLAGS([libvlc], [${LIBGCRYPT_CFLAGS}])
5296   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5297 fi
5298
5299 dnl
5300 dnl  Endianness check
5301 dnl
5302 AC_C_BIGENDIAN
5303 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5304   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5305 ], [
5306   DEFS_BIGENDIAN=""
5307 ])
5308 AC_SUBST(DEFS_BIGENDIAN)
5309
5310 dnl
5311 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5312 dnl
5313 loader=false
5314 AC_ARG_ENABLE(loader,
5315   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms 
5316                   (default disabled)]))
5317 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5318 AS_IF([test "${enable_loader}" = "yes"],
5319   [ VLC_ADD_PLUGIN([dmo])
5320     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5321     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5322     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5323     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5324     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5325     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5326     VLC_ADD_CPPFLAGS([realvideo],[-I../../@top_srcdir@/libs/loader -DLOADER])
5327     VLC_ADD_LIBS([realvideo],[../../libs/loader/libloader.la])
5328   ])
5329
5330 AC_ARG_WITH(,[Components:])
5331
5332 dnl
5333 dnl  the VLC binary
5334 dnl
5335 AC_ARG_ENABLE(vlc,
5336   [  --enable-vlc            build the VLC media player (default enabled)])
5337 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5338
5339 dnl
5340 dnl  Microsoft ActiveX support
5341 dnl
5342 activex=false
5343 AC_ARG_ENABLE(activex,
5344   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control 
5345                   (default enabled on Win32)]))
5346 AC_ARG_WITH(wine-sdk-path,
5347   [    --with-wine-sdk-path=PATH path to wine sdk])
5348 if test "${enable_activex}" != "no"
5349 then
5350   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5351   then
5352     AC_CHECK_PROGS(MIDL, [midl], no)
5353     if test "${with_wine_sdk_path}" != ""
5354     then
5355        WINE_SDK_PATH=${with_wine_sdk_path}
5356        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5357     else
5358        WIDL=no
5359     fi
5360     AC_LANG_PUSH(C++)
5361     AC_CHECK_HEADERS(ole2.h, 
5362       [AC_CHECK_HEADERS(olectl.h,
5363         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5364           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5365           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5366           AC_CHECK_HEADERS(objsafe.h,
5367             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5368             [
5369              #if HAVE_OLE2_H
5370              #   include <ole2.h>
5371              #endif
5372             ]
5373           )
5374           activex=:
5375           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5376         ],
5377         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5378       )],
5379       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5380     )
5381     AC_LANG_POP(C++)
5382   fi
5383 fi
5384 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5385 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5386 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5387 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5388 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5389
5390 dnl
5391 dnl  Mozilla plugin
5392 dnl
5393 mozilla=false
5394 AC_ARG_ENABLE(mozilla,
5395   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5396                   (default disabled)]))
5397 AC_ARG_WITH(mozilla-sdk-path,
5398   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5399 AC_LANG_PUSH(C++)
5400 if test "${enable_mozilla}" = "yes" 
5401 then
5402   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5403   need_xpcom_libs=false
5404
5405   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5406   then
5407     dnl New firefox-1.5 SDK api
5408     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5409       [
5410         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5411           [],
5412           [
5413             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5414               [],
5415               [
5416                 PKG_CHECK_MODULES([NSPR], [nspr],
5417                   [],
5418                   [
5419                     AC_MSG_ERROR([Please install the nspr development tools.])
5420                   ]
5421                 )
5422               ]
5423             )
5424           ])
5425         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5426         MOZILLA_REQUIRED_HEADERS=1
5427         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5428         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5429         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5430           [#if HAVE_NPAPI_H
5431            # include <npapi.h>
5432            #endif
5433           ])
5434         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5435             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5436         fi
5437         MOZILLA_REQUIRED_HEADERS=
5438         mozilla=:
5439         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5440         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5441             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5442         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5443             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5444         else
5445             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5446         fi
5447         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5448             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5449             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
5450         fi
5451         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5452         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5453         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5454         VLC_ADD_PLUGIN([mozilla])
5455         MOZILLA_CONFIG=
5456         CPPFLAGS="${CPPFLAGS_save}"
5457       ],
5458       [
5459         PKG_CHECK_MODULES([XULRUNNER], [libxul],
5460           [
5461             PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5462               [],
5463               [
5464                 PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5465                   [],
5466                   [
5467                     PKG_CHECK_MODULES([NSPR], [nspr],
5468                       [],
5469                       [
5470                         AC_MSG_ERROR([Please install the nspr development tools.])
5471                       ]
5472                     )
5473                   ]
5474                 )
5475               ]
5476             )
5477             CPPFLAGS="${CPPFLAGS_save} ${XULRUNNER_CFLAGS} ${XULRUNNER_CPPFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5478             MOZILLA_REQUIRED_HEADERS=1
5479             AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5480             AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5481               [#if HAVE_NPAPI_H
5482                # include <npapi.h>
5483                #endif
5484               ])
5485             if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5486                 AC_MSG_ERROR([Please install the Mozilla runtime package xulrunner-devel; plugplugin/npapi.h and plugin/npruntime.h were not found.])
5487             fi
5488             MOZILLA_REQUIRED_HEADERS=
5489             mozilla=:
5490             AC_DEFINE([XP_UNIX],[1],[Defined for Mozilla as we are Unix])
5491             AC_DEFINE([MOZ_X11],[1],[Defined as Unix mozilla uses X11])
5492             AC_DEFINE([OJI],[1],[Java Runtime Interface])
5493             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5494             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
5495             VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5496             VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5497             VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5498             VLC_ADD_PLUGIN([mozilla])
5499             MOZILLA_CONFIG=
5500             CPPFLAGS="${CPPFLAGS_save}"
5501           ],
5502           [
5503             AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5504             if test "${MOZILLA_CONFIG}" = "no"
5505             then
5506               AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5507               if test "${SEAMONKEY_CONFIG}" = "no"
5508               then
5509                 AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5510                 if test "${XULRUNNER_CONFIG}" = "no"
5511                 then
5512                   AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5513                 else
5514                   have_xul=true
5515                   MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5516                 fi
5517               else
5518                 MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5519               fi
5520             fi
5521           ]
5522         )
5523       ]
5524     )
5525     if test ! -z "${MOZILLA_CONFIG}"
5526     then
5527       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5528         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5529         AC_CHECK_LIB(Xt,XtStrings,
5530          [
5531            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5532            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5533          ],
5534          [],
5535          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5536         ])
5537         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5538         LDFLAGS="${LDFLAGS_save}"
5539       fi
5540
5541       mozilla=:
5542       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5543       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5544       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5545       if ${need_xpcom_libs}; then
5546          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5547       else
5548          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5549       fi
5550       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5551       MOZILLA_REQUIRED_HEADERS=1
5552       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5553       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5554       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5555         [#if HAVE_NPAPI_H
5556          # include <npapi.h>
5557          #endif
5558         ])
5559       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5560       then
5561         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5562       fi
5563       MOZILLA_REQUIRED_HEADERS=
5564       CPPFLAGS="${CPPFLAGS_save}"
5565       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5566     fi
5567     dnl End of moz_sdk = ""
5568   else
5569     dnl special case for mingw32
5570     if test "${SYS}" = "mingw32"
5571     then
5572       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5573       dnl latest gecko sdk does not have an xpcom directory
5574       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5575           mozilla_sdk_xpcom="/xpcom"
5576       fi
5577     fi
5578
5579     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5580     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5581     MOZILLA_REQUIRED_HEADERS=1
5582     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5583     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5584     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5585         [#if HAVE_NPAPI_H
5586           #include <npapi.h>
5587           #endif
5588         ])
5589     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5590     then
5591         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5592     fi
5593     MOZILLA_REQUIRED_HEADERS=
5594     mozilla=:
5595     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5596     VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
5597     if ${need_xpcom_libs}; then
5598        VLC_ADD_LIBS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
5599       if test "${SYS}" = "mingw32"; then
5600         dnl latest gecko sdk does not have embedstring
5601         if test -d "${real_mozilla_sdk}/embedstring/bin"
5602         then
5603           VLC_ADD_LIBS([mozilla],[-lembedstring])
5604         fi
5605       fi
5606     fi
5607     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5608
5609     if test -n "${CYGPATH}"; then
5610       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5611     fi
5612     CPPFLAGS="${CPPFLAGS_save}"
5613   fi
5614 fi
5615 AC_LANG_POP(C++)
5616 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5617
5618 dnl Tests for Osso and Xsp
5619 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5620   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5621     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5622     VLC_ADD_LIBS([x11 xvideo xvmc glx],[-losso])
5623  ])
5624 ])
5625 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5626   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5627   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5628 ])
5629
5630 dnl
5631 dnl  test plugins
5632 dnl
5633 AC_ARG_ENABLE(testsuite,
5634   [  --enable-testsuite      build test modules (default disabled)])
5635 if test "${enable_testsuite}" = "yes"
5636 then
5637   TESTS="test1 test2 test3 test4"
5638
5639   dnl  we define those so that bootstrap sets the right linker
5640   VLC_ADD_CXXFLAGS([test2],[])
5641   VLC_ADD_OBJCFLAGS([test3],[])
5642   dnl  this one is needed until automake knows what to do
5643   VLC_ADD_LIBS([test3],[-lobjc])
5644
5645   VLC_ADD_PLUGIN([test1])
5646   VLC_ADD_PLUGIN([test2])
5647   VLC_ADD_PLUGIN([test3])
5648   VLC_ADD_PLUGIN([test4])
5649 fi
5650
5651 dnl
5652 dnl  gtk_main plugin
5653 dnl
5654 if test "${NEED_GTK_MAIN}" != "no"
5655 then
5656     VLC_ADD_PLUGIN([gtk_main])
5657     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5658     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5659 fi
5660
5661 if test "${NEED_GNOME_MAIN}" != "no"
5662 then
5663     VLC_ADD_PLUGIN([gnome_main])
5664     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5665     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5666 fi
5667
5668 if test "${NEED_GTK2_MAIN}" != "no"
5669 then
5670     VLC_ADD_PLUGIN([gtk2_main])
5671     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5672     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5673     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5674     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5675 fi
5676
5677 if test "${NEED_GNOME2_MAIN}" != "no"
5678 then
5679     VLC_ADD_PLUGIN([gnome2_main])
5680     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5681     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5682 fi
5683
5684 dnl
5685 dnl  qte_main plugin
5686 dnl
5687 if test "${NEED_QTE_MAIN}" != "no"
5688 then
5689     VLC_ADD_PLUGIN([qte_main])
5690     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5691     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5692     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5693 fi
5694
5695 dnl
5696 dnl  Plugin and builtin checks
5697 dnl
5698 plugin_support=yes
5699
5700 dnl Automagically disable plugins if there is no system support for
5701 dnl dynamically loadable files (.so, .dll, .dylib).
5702 dnl don't forget vlc-win32 still can load .dll as plugins
5703 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5704   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5705   plugin_support=no
5706 ])
5707
5708 AS_IF([test "${enable_shared}" = "no"], [
5709   plugin_support=no
5710 ])
5711
5712 AS_IF([test "${plugin_support}" != "no"], [
5713   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5714 ])
5715 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5716
5717 dnl Temporary(?) hack for plugins/builtins transition
5718 dnl VLC_ADD_PLUGIN([${BUILTINS}])
5719 dnl BUILTINS=""
5720
5721 dnl
5722 dnl Pic and shared libvlc stuff
5723 dnl
5724 AS_IF([test "${SYS}" = "mingw32"], [
5725   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5726   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5727 ])
5728
5729 dnl
5730 dnl  Stuff used by the program
5731 dnl
5732 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5733 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5734 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5735 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5736 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5737 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5738 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5739 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5740 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5741 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5742 AC_SUBST(COPYRIGHT_MESSAGE)
5743 AC_SUBST(VERSION_MESSAGE)
5744 AC_SUBST(VERSION_MAJOR)
5745 AC_SUBST(VERSION_MINOR)
5746 AC_SUBST(VERSION_REVISION)
5747 AC_SUBST(COPYRIGHT_YEARS)
5748 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5749 if test "${build_os}" = "cygwin"
5750 then
5751     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5752 else
5753     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5754 fi
5755 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5756 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5757 dnl Win32 need s a numerical version_extra.
5758 case $( echo ${VERSION_EXTRA}|wc -m ) in 
5759        "1") VERSION_EXTRA_RC="0";;
5760        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5761        *) VERSION_EXTRA_RC="99"
5762 esac
5763 AC_SUBST(VERSION_EXTRA_RC)
5764 dnl
5765 dnl  Handle substvars that use $(top_srcdir)
5766 dnl
5767 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5768 AC_SUBST(VLC_CONFIG)
5769 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5770
5771 dnl
5772 dnl  Restore *FLAGS
5773 dnl
5774 VLC_RESTORE_FLAGS
5775
5776 dnl
5777 dnl Sort the modules list
5778 dnl 
5779 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5780
5781 dnl
5782 dnl  Create the vlc-config script
5783 dnl
5784 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5785
5786 dnl
5787 dnl  Configuration is finished
5788 dnl
5789 AC_SUBST(SYS)
5790 AC_SUBST(ARCH)
5791 AC_SUBST(ALIASES)
5792 AC_SUBST(ASM)
5793 AC_SUBST(MOC)
5794 AC_SUBST(RCC)
5795 AC_SUBST(UIC)
5796 AC_SUBST(WINDRES)
5797 AC_SUBST(MOZILLA_SDK_PATH)
5798 AC_SUBST(WINE_SDK_PATH)
5799 AC_SUBST(LIBEXT)
5800 AC_SUBST(AM_CPPFLAGS)
5801 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5802 AC_SUBST(FILE_LIBVLCCORE_DLL)
5803 AC_SUBST(FILE_LIBVLC_DLL)
5804
5805 dnl Create vlc-config.in
5806 VLC_OUTPUT_VLC_CONFIG_IN
5807
5808 AC_CONFIG_FILES([
5809   extras/package/win32/vlc.win32.nsi
5810   extras/package/macosx/Info.plist
5811   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5812   extras/package/macosx/plugin/Info.plist
5813   extras/package/macosx/plugin/InstallerInfo.plist
5814   extras/package/macosx/plugin/English.lproj/InfoPlist.strings
5815   Makefile
5816   projects/activex/Makefile
5817   projects/activex/axvlc.inf
5818   doc/Makefile
5819   extras/package/ipkg/Makefile
5820   libs/loader/Makefile
5821   libs/srtp/Makefile
5822   modules/Makefile
5823   projects/mozilla/Makefile
5824   m4/Makefile
5825   po/Makefile.in
5826   projects/activex/axvlc_rc.rc
5827   projects/mozilla/npvlc_rc.rc
5828   share/Makefile
5829   share/vlc_win32_rc.rc
5830   share/libvlc_win32_rc.rc
5831   src/Makefile
5832   test/Makefile
5833 ])
5834
5835 AC_CONFIG_FILES([
5836   modules/access/Makefile
5837   modules/access/bda/Makefile
5838   modules/access/dshow/Makefile
5839   modules/access/dvb/Makefile
5840   modules/access/mms/Makefile
5841   modules/access/cdda/Makefile
5842   modules/access/rtsp/Makefile
5843   modules/access/rtmp/Makefile
5844   modules/access/v4l2/Makefile
5845   modules/access/vcd/Makefile
5846   modules/access/vcdx/Makefile
5847   modules/access/screen/Makefile
5848   modules/access_filter/Makefile
5849   modules/access_output/Makefile
5850   modules/audio_filter/Makefile
5851   modules/audio_filter/channel_mixer/Makefile
5852   modules/audio_filter/converter/Makefile
5853   modules/audio_filter/resampler/Makefile
5854   modules/audio_filter/spatializer/Makefile
5855   modules/audio_mixer/Makefile
5856   modules/audio_output/Makefile
5857   modules/codec/Makefile
5858   modules/codec/avcodec/Makefile
5859   modules/codec/cmml/Makefile
5860   modules/codec/dmo/Makefile
5861   modules/codec/subtitles/Makefile
5862   modules/codec/spudec/Makefile
5863   modules/codec/xvmc/Makefile
5864   modules/control/Makefile
5865   modules/control/http/Makefile
5866   modules/demux/Makefile
5867   modules/demux/asf/Makefile
5868   modules/demux/avformat/Makefile
5869   modules/demux/avi/Makefile
5870   modules/demux/mp4/Makefile
5871   modules/demux/mpeg/Makefile
5872   modules/demux/playlist/Makefile
5873   modules/gui/Makefile
5874   modules/gui/beos/Makefile
5875   modules/gui/pda/Makefile
5876   modules/gui/macosx/Makefile
5877   modules/gui/minimal_macosx/Makefile
5878   modules/gui/qnx/Makefile
5879   modules/gui/qt4/Makefile
5880   modules/gui/skins2/Makefile
5881   modules/gui/wince/Makefile
5882   modules/meta_engine/Makefile
5883   modules/misc/Makefile
5884   modules/misc/dummy/Makefile
5885   modules/misc/lua/Makefile
5886   modules/misc/memcpy/Makefile
5887   modules/misc/notify/Makefile
5888   modules/misc/testsuite/Makefile
5889   modules/misc/playlist/Makefile
5890   modules/misc/osd/Makefile
5891   modules/misc/stats/Makefile
5892   modules/misc/xml/Makefile
5893   modules/misc/probe/Makefile
5894   modules/mux/Makefile
5895   modules/mux/mpeg/Makefile
5896   modules/packetizer/Makefile
5897   modules/services_discovery/Makefile
5898   modules/stream_out/Makefile
5899   modules/stream_out/transrate/Makefile
5900   modules/video_chroma/Makefile
5901   modules/video_filter/Makefile
5902   modules/video_filter/atmo/Makefile
5903   modules/video_filter/dynamicoverlay/Makefile
5904   modules/video_output/Makefile
5905   modules/video_output/msw/Makefile
5906   modules/video_output/qte/Makefile
5907   modules/video_output/x11/Makefile
5908   modules/visualization/Makefile
5909   modules/visualization/visual/Makefile
5910   modules/visualization/galaktos/Makefile
5911 ])
5912
5913 dnl Generate makefiles
5914 AC_OUTPUT
5915
5916 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5917 # not provided with the source
5918 ${SHELL} ./config.status --file=vlc-config
5919 chmod 0755 vlc-config
5920
5921 /bin/echo -n "Enabled modules: "
5922 ./vlc-config --list plugin
5923
5924 dnl Shortcut to nice compile message
5925 rm -f compile
5926 echo '#! /bin/sh' >compile
5927 echo rm -f .error\$\$ >>compile
5928 echo ERROR=0 >>compile
5929 echo export PATH=$PATH LANG=C >>compile
5930 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5931 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5932 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5933 echo rm -f .error\$\$ >>compile
5934 echo exit \$ERROR >>compile
5935 chmod a+x compile
5936
5937 printf "
5938 libvlc configuration
5939 --------------------
5940 version               : ${VERSION}
5941 system                : ${SYS}
5942 architecture          : ${ARCH}
5943 build flavour         : "
5944 test "${enable_debug}" = "yes" && printf "debug "
5945 test "${enable_cprof}" = "yes" && printf "cprof "
5946 test "${enable_gprof}" = "yes" && printf "gprof "
5947 test "${enable_optimizations}" = "yes" && printf "optim "
5948 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5949 echo ""
5950 if test "${enable_vlc}" != "no"; then
5951 echo "vlc aliases           :${ALIASES}"
5952 else
5953 echo "build vlc executable  : no"
5954 fi
5955 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5956
5957 You can tune the compiler flags in vlc-config.
5958 To build vlc and its plugins, type \`./compile' or \`make'.
5959 "
5960 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5961    echo ""
5962    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5963    echo "         turned off."
5964    echo "         FFmpeg will be REALLY slow."
5965    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5966    echo ""
5967 fi