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