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