be402578cc2f97d846cf5998b2448677b3744b08
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_COPYRIGHT([Copyright 2002-2009 the VideoLAN team])
4
5 AC_INIT(vlc, 1.1.0-git)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="1"
8 VERSION_REVISION="0"
9 VERSION_EXTRA="-git"
10 PKGDIR="vlc"
11 AC_SUBST(PKGDIR)
12
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="Yellow Bastard"
15 COPYRIGHT_YEARS="1996-2009"
16
17 AC_PREREQ(2.59c)
18 AC_CONFIG_SRCDIR(src/libvlc.c)
19 AC_CONFIG_AUX_DIR(autotools)
20 AC_CONFIG_MACRO_DIR(m4)
21 AC_CONFIG_LIBOBJ_DIR(compat)
22 AC_CANONICAL_BUILD
23 AC_CANONICAL_HOST
24
25 AM_INIT_AUTOMAKE(tar-ustar)
26 AM_CONFIG_HEADER(config.h)
27
28 dnl Too many people are not aware of maintainer mode:
29 dnl If you want to use it, you definitely know what you are doing, so
30 dnl you can specify "--disable-maintainer-mode". But if you want the default
31 dnl automake behavior, you've likely never heard of maintainer mode, so we
32 dnl can't expect you to enable it manually.
33
34 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
35     [enable_maintainer_mode="yes"])
36 AM_MAINTAINER_MODE
37
38 dnl
39 dnl Directories
40 dnl
41 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
42 dnl AC_SUBST(vlcincludedir)
43 vlcdatadir="\${datadir}/\${PKGDIR}"
44 AC_SUBST(vlcdatadir)
45 vlclibdir="\${libdir}/\${PKGDIR}"
46 AC_SUBST(vlclibdir)
47
48 dnl
49 dnl  Deprecated options
50 dnl  to notify packagers that stuff has changed
51 dnl
52 AC_ARG_ENABLE(python-bindings,
53   [  --enable-python-bindings Always fails for historical reasons)],,
54   [enable_python_bindings="no"])
55 AS_IF([test "${enable_python_bindings}" != "no"], [
56   AC_MSG_ERROR([Python bindings are now built from a separate source package])
57 ])
58
59 AC_ARG_ENABLE(java-bindings,
60   [  --enable-java-bindings  Always fails for historical reasons],,
61   [enable_java_bindings="no"])
62 AS_IF([test "${enable_java_bindings}" != "no"], [
63   AC_MSG_ERROR([Java bindings are now built from a separate source package])
64 ])
65
66 dnl
67 dnl  Save *FLAGS
68 dnl
69 VLC_SAVE_FLAGS
70
71 dnl
72 dnl Check for tools
73 dnl
74 AC_PROG_CC_C99
75 AC_USE_SYSTEM_EXTENSIONS
76 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
77
78 AM_PROG_CC_C_O
79 AC_PROG_CXX
80 AC_PROG_CPP
81 AC_PROG_OBJC
82 _AM_DEPENDENCIES([OBJC])
83 AC_PROG_EGREP
84 AC_PROG_MAKE_SET
85 AC_PROG_INSTALL
86 AM_PROG_AS
87
88 dnl Find the right ranlib, even when cross-compiling
89 AC_CHECK_TOOL(RANLIB, ranlib, :)
90 AC_CHECK_TOOL(STRIP, strip, :)
91 AC_CHECK_TOOL(AR, ar, :)
92 AC_CHECK_TOOL(LD, ld, :)
93 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
94
95 dnl Check for compiler properties
96 AC_C_CONST
97 AC_C_INLINE
98 AC_C_RESTRICT
99
100 dnl Allow binary package maintainer to pass a custom string to avoid
101 dnl cache problem
102 AC_ARG_WITH(binary-version,
103         AS_HELP_STRING([--with-binary-version=STRING],
104              [To avoid plugins cache problem between binary version]),[],[])
105 AS_IF([test -n "${with_binary_version}"],[
106       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
107                          [Binary specific version])
108       ])
109
110
111 dnl
112 dnl  Check for the contrib directory
113 dnl
114 AC_ARG_WITH(contrib,
115     [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
116   AS_IF([test "${with_contrib}" != "no"],[
117     AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
118     if test -z "$CONTRIB_DIR"
119     then
120       topdir="`dirname $0`"
121       if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
122          topdir="`pwd`/$topdir"
123       fi
124       CONTRIB_DIR=${topdir}/extras/contrib
125     fi
126     AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
127   AS_IF([test -d ${CONTRIB_DIR}/lib],[
128    AS_IF([test "`grep HOST ${CONTRIB_DIR}/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
129       if test "${with_contrib}" = "yes"; then
130         AC_MSG_RESULT([no])
131         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
132       else
133         AC_MSG_RESULT([no])
134         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
135       fi
136      ],[
137     AC_MSG_RESULT([yes])
138     export PATH=${CONTRIB_DIR}/bin:$PATH
139     CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
140     CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
141     CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
142     CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
143     CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
144     CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
145     OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
146     OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
147     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
148         export PKG_CONFIG_PATH=${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
149     else
150         export PKG_CONFIG_LIBDIR=${CONTRIB_DIR}/lib/pkgconfig
151     fi
152     LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
153     LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
154
155     if test -z $with_mozilla_sdk_path; then
156        with_mozilla_sdk_path=${CONTRIB_DIR}/gecko-sdk
157     fi
158     if test -z $with_cyberlink_tree; then
159        with_cyberlink_tree=${CONTRIB_DIR}/src/clinkcc
160     fi
161
162     if test ".`uname -s`" = ".Darwin"; then
163       export LD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH
164       export DYLD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH
165     elif test ".`uname -s`" = ".BeOS"; then
166       export LIBRARY_PATH=${CONTRIB_DIR}/lib:$LIBRARY_PATH
167       export BELIBRARIES=${CONTRIB_DIR}/lib:$BELIBRARIES
168     fi
169     ])
170   ],[
171     AC_MSG_RESULT([no])
172   ])
173 ])
174 dnl
175 dnl  Set default values
176 dnl
177 LDFLAGS_vlc="${LDFLAGS}"
178
179 dnl
180 dnl  Check the operating system
181 dnl
182 case "${host_os}" in
183   "")
184     SYS=unknown
185     ;;
186   linux*)
187     SYS=linux
188     ;;
189   bsdi*)
190     SYS=bsdi
191     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
192     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
193     ;;
194   *bsd*)
195     SYS="${host_os}"
196     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
197     case "${host_os}" in
198       freebsd*)
199         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
200         CPPFLAGS="${CPPFLAGS_save}"
201         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
202         LDFLAGS="${LDFLAGS_save}"
203         ;;
204     esac
205     ;;
206   darwin*)
207     SYS=darwin
208     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
209     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
210     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
211     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
212     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
213     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
214     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
215     VLC_ADD_LDFLAGS([libvlc],[-Wl,-undefined,dynamic_lookup])
216     VLC_ADD_LDFLAGS([avcodec avformat swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
217     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
218     VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
219     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
220     AC_ARG_ENABLE(macosx-defaults,
221       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
222     if test "x${enable_macosx_defaults}" != "xno"
223     then
224         echo ""
225         echo "Building with Mac OS X defaults:"
226         with_macosx_version_min="10.5"
227         echo "  Assuming --with-macosx-version-min=10.5"
228         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
229         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
230         build_dir=`pwd`
231         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
232         ac_default_prefix="${build_dir}/vlc_install_dir"
233         enable_macosx="yes"
234         echo "  Assuming --enable-macosx"
235         enable_faad="yes"
236         echo "  Assuming --enable-faad"
237         enable_flac="yes"
238         echo "  Assuming --enable-flac"
239         enable_theora="yes"
240         echo "  Assuming --enable-theora"
241         enable_shout="yes"
242         echo "  Assuming --enable-shout"
243         enable_cddax="yes"
244         echo "  Assuming --enable-cddax"
245         enable_vcdx="yes"
246         echo "  Assuming --enable-vcdx"
247         enable_caca="yes"
248         echo "  Assuming --enable-caca"
249         enable_goom="yes"
250         echo "  Assuming --enable-goom"
251         enable_ncurses="yes"
252         echo "  Assuming --enable-ncurses"
253         enable_twolame="yes"
254         echo "  Assuming --enable-twolame"
255         enable_realrtsp="yes"
256         echo "  Assuming --enable-realrtsp"
257         enable_update_check="yes"
258         echo "  Assuming --enable-update-check"
259         enable_libass="yes"
260         echo "  Assuming --enable-libass"
261         enable_asademux="yes"
262         echo "  Assuming --enable-asademux"
263
264         enable_skins2="no"
265         echo "  Assuming --disable-skins2"
266         enable_x11="no"
267         echo "  Assuming --disable-x11"
268         enable_xcb="no"
269         echo "  Assuming --disable-xcb"
270         enable_glx="no"
271         echo "  Assuming --disable-glx"
272         enable_xvideo="no"
273         echo "  Assuming --disable-xvideo"
274     fi
275     dnl
276     dnl  Check for Mac OS X SDK settings
277     dnl
278     AC_ARG_WITH(macosx-sdk,
279        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
280     if test "${with_macosx_sdk}" != "" ; then
281         CPP="${CPP} -isysroot ${with_macosx_sdk}"
282         CC="${CC} -isysroot ${with_macosx_sdk}"
283         CXX="${CXX} -isysroot ${with_macosx_sdk}"
284         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
285         LD="${LD} -syslibroot ${with_macosx_sdk}"
286     fi
287     AC_ARG_WITH(macosx-version-min,
288        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
289     if test "${with_macosx_version_min}" != "" ; then
290         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
291         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
292         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
293         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
294         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
295         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
296         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
297         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
298         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
299         export MACOSX_DEPLOYMENT_TARGET
300     fi
301     ;;
302   darwin9*)
303     if (test ".`uname -p`" = ".i386"); then
304         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
305         dnl without hacking it a lot, we disable mmx and sse.
306         dnl (that bug is about ld being unable to handle
307         dnl text relocation)
308         save_cflags="$CFLAGS"
309         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
310         AC_TRY_LINK(
311             [int a;], [asm("movq _a,%mm0\n");],
312             ac_ld_does_not_support_text_reloc=no,
313             ac_ld_does_not_support_text_reloc=yes)
314         CFLAGS="$save_cflags"
315
316         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
317             enable_mmx="no"
318             echo "  Assuming --disable-mmx (due to a bug in ld)"
319             enable_sse="no"
320             echo "  Assuming --disable-sse (due to a bug in ld)"
321         fi
322     fi
323     ;;
324   *mingw32* | *cygwin* | *wince* | *mingwce*)
325     AC_CHECK_TOOL(WINDRES, windres, :)
326     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
327
328     case "${host_os}" in
329       *wince* | *mingwce* | *mingw32ce*)
330         SYS=mingwce
331         dnl Sadly CeGCC still needs non-wince macros
332         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
333         ;;
334       *mingw32*)
335         SYS=mingw32
336         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
337         ;;
338       *cygwin*)
339         dnl Check if we are using the mno-cygwin mode in which case we are
340         dnl actually dealing with a mingw32 compiler.
341         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
342         AC_EGREP_CPP(yes,
343             [#ifdef WIN32
344              yes
345              #endif],
346             SYS=mingw32, SYS=cygwin)
347         ;;
348     esac
349
350     if test "${SYS}" = "mingw32"; then
351         # add ws2_32 for closesocket, select, recv
352         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
353         VLC_ADD_LDFLAGS([vlc],[-mwindows])
354         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
355         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
356         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 zvbi],[-lws2_32])
357         VLC_ADD_LIBS([access_file], [-lshlwapi])
358     fi
359     if test "${SYS}" = "mingwce"; then
360         # add ws2 for closesocket, select, recv
361         VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd],[-lws2])
362         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
363    fi
364     ;;
365   *nto*)
366     SYS=nto
367     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
368     ;;
369   solaris*)
370     SYS=solaris
371     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
372     # Perhaps it is useful other places as well?
373     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
374     ;;
375   hpux*)
376     SYS=hpux
377     ;;
378   beos)
379     SYS=beos
380     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
381     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
382     VLC_ADD_CXXFLAGS([beos],[])
383     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
384     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
385     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
386     VLC_ADD_LIBS([access_file],[-lpoll])
387     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
388     dnl Check for BONE
389     if test -f /boot/beos/system/lib/libbind.so; then
390         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lbind -lsocket])
391     else
392         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lnet])
393     fi
394
395     dnl Ugly check for Zeta
396     if test -f /boot/beos/system/lib/libzeta.so; then
397         VLC_ADD_LIBS([beos],[-lzeta])
398     fi
399     ;;
400   *)
401     SYS="${host_os}"
402     ;;
403 esac
404 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
405 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
406 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
407 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
408 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
409
410 dnl
411 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
412 dnl for program foo on win32
413
414 case "${build_os}" in
415     cygwin|msys)
416         ac_executable_extensions=".exe"
417     ;;
418     *)
419     ;;
420 esac
421
422 dnl
423 dnl  Libtool
424 dnl  It's very bad, but our former custom system was worst
425 dnl  -- Courmisch
426 dnl
427
428 dnl override platform specific check for dependent libraries
429 dnl otherwise libtool linking of shared libraries will
430 dnl fail on anything other than pass_all.
431 AC_CACHE_VAL(lt_cv_deplibs_check_method,
432     [lt_cv_deplibs_check_method=pass_all])
433
434 AC_DISABLE_STATIC
435 dnl AC_DISABLE_FAST_INSTALL
436 AC_LIBTOOL_DLOPEN
437 AC_LIBTOOL_WIN32_DLL
438 m4_undefine([AC_PROG_F77])
439 m4_defun([AC_PROG_F77],[])
440 AC_PROG_LIBTOOL
441
442 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
443 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
444
445 lt_cv_deplibs_check_method=pass_all
446
447
448 dnl
449 dnl Gettext stuff
450 dnl
451 AM_GNU_GETTEXT_VERSION([0.17])
452 AM_GNU_GETTEXT([external])
453 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
454
455 dnl
456 dnl Iconv stuff
457 dnl
458 AM_ICONV
459 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
460 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
461
462 dnl Check for broken versions of mingw-runtime compatability library
463 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
464     AC_MSG_CHECKING(for broken mingw-runtime)
465     AC_PREPROC_IFELSE([
466 #include <_mingw.h>
467 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
468 # error Attempting to use mingw-runtime with broken vsnprintf support
469 #endif
470 ], [
471         AC_MSG_RESULT([ok])
472 ], [
473         AC_MSG_RESULT([present])
474         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
475 ])
476     dnl force use of mingw provided c99 *printf over msvcrt
477     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
478     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
479 ])
480
481 dnl Check for the need to include the mingwex lib for mingw32
482 if test "${SYS}" = "mingw32"
483 then
484     AC_CHECK_LIB(mingwex,opendir,
485         AC_CHECK_LIB(mingw32,opendir,,
486             [VLC_ADD_LIBS([libvlccore gtk],[-lmingwex])])
487     )
488 fi
489
490 dnl Check for fnative-struct or mms-bitfields support for mingw32
491 if test "${SYS}" = "mingw32"
492 then
493     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
494         [ac_cv_c_mms_bitfields],
495         [CFLAGS="${CFLAGS_save} -mms-bitfields"
496          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
497     if test "${ac_cv_c_mms_bitfields}" != "no"; then
498         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
499         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
500     else
501         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
502             [ac_cv_c_fnative_struct],
503             [CFLAGS="${CFLAGS_save} -fnative-struct"
504              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
505         if test "${ac_cv_c_fnative_struct}" != "no"; then
506             CFLAGS_save="${CFLAGS_save} -fnative-struct";
507             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
508         fi
509     fi
510
511     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
512 fi
513
514 dnl Check for fvtable-thunks support for mingw32
515 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
516 then
517 AC_LANG_PUSH(C++)
518     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
519         [ac_cv_cxx_fvtable_thunks],
520         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
521          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
522                         ac_cv_cxx_fvtable_thunks=no)])
523     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
524         CXXFLAGS_mingw32_special="-fvtable-thunks"
525     fi
526
527     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
528 AC_LANG_POP(C++)
529 fi
530
531 dnl
532 dnl Buggy glibc prevention. Purposedly not cached.
533 dnl Ubuntu alone has 20 bug numbers for this...
534 dnl
535 AC_MSG_CHECKING(for buggy GNU/libc versions)
536 AC_PREPROC_IFELSE([
537 #include <limits.h>
538 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
539   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
540 # error GNU/libc with dcgettext killer bug!
541 #endif
542 ], [
543   AC_MSG_RESULT([not present])
544 ], [
545   AC_MSG_RESULT([found])
546   AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
547     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
548 work-around for this. Check with your distribution vendor on how to update the
549 glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
550 be sure to not use LibVLC from other applications/wrappers.])
551   ], [
552     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
553   ])
554 ])
555
556 dnl Plugin compilation stuff
557
558 VLC_LIBRARY_SUFFIX
559
560 dnl The -DSYS_FOO flag
561 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
562
563 dnl Check for system libs needed
564 need_libc=false
565
566 dnl Check for usual libc functions
567 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])
568 AC_FUNC_ALLOCA
569 AC_CHECK_FUNCS(fcntl)
570 AC_REPLACE_FUNCS([asprintf atof atoll getcwd gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab])
571 AC_CHECK_FUNCS([stricmp strnicmp])
572 AC_CHECK_FUNCS(fdatasync,,
573   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
574 ])
575
576 dnl Check for Linux system calls
577 AC_CHECK_FUNCS([vmsplice])
578
579 AH_BOTTOM([#include <vlc_fixups.h>])
580
581 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
582
583 dnl Check for setlocal and langinfo
584 AC_CHECK_FUNCS(setlocale)
585 AC_CHECK_HEADERS(langinfo.h)
586 AC_CHECK_FUNCS(nl_langinfo)
587
588 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
589   [AC_TRY_LINK([#include <langinfo.h>],
590     [char* cs = nl_langinfo(CODESET);],
591     ac_cv_langinfo_codeset=yes,
592     ac_cv_langinfo_codeset=no)
593   ])
594 if test ${ac_cv_langinfo_codeset} = yes; then
595   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
596     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
597 fi
598
599 AC_CHECK_FUNCS(connect,,[
600   AC_CHECK_LIB(socket,connect,[
601     VLC_ADD_LIBS([libvlccore cdda cddax],-lsocket)
602     LIBS_socket="-lsocket"
603   ])
604 ])
605
606 AC_CHECK_FUNCS(send,,[
607   AC_CHECK_LIB(socket,send,[
608     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])
609   ])
610 ])
611
612
613 dnl Check for socklen_t
614 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
615 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
616 ac_cv_type_socklen_t,
617 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
618 [#include <sys/types.h>
619 #ifdef WIN32
620 # include <winsock2.h>
621 # include <ws2tcpip.h>
622 #else
623 # include <sys/socket.h>
624 #endif]], [[socklen_t len; len = 0;]])],
625 ac_cv_type_socklen_t=yes,
626 ac_cv_type_socklen_t=no)])
627 AS_IF([test "$ac_cv_type_socklen_t" = no],
628  [AC_DEFINE(socklen_t, int)])
629
630 dnl Check for struct sockaddr_storage
631 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
632 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
633 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
634   [AC_TRY_COMPILE(
635     [#include <sys/types.h>
636      #if defined( UNDER_CE )
637      # include <winsock2.h>
638      #elif defined( WIN32 )
639      # include <winsock2.h>
640      #else
641      # include <sys/socket.h>
642      #endif], [struct sockaddr_storage addr;],
643      ac_cv_struct_sockaddr_storage=yes,
644      ac_cv_struct_sockaddr_storage=no)])
645 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
646   AC_DEFINE(sockaddr_storage, sockaddr)
647   AC_DEFINE(ss_family, sa_family)
648 ])
649
650 dnl getaddrinfo, getnameinfo and gai_strerror check
651 dnl  -lnsl and -lsocket are needed on Solaris;
652 dnl  we purposedly make the test fail on Windows
653 LIBS_save="${LIBS}"
654 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
655 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
656
657 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
658 dnl are
659 LIBS="${LIBS_gai}"
660 AC_CHECK_FUNCS([getnameinfo gai_strerror])
661 LIBS="${LIBS_save}"
662
663 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
664 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
665 [#include <sys/types.h>
666 #if defined( WIN32 ) || defined( UNDER_CE )
667 # if defined(UNDER_CE) && defined(sockaddr_storage)
668 #  undef sockaddr_storage
669 # endif
670 # include <winsock2.h>
671 # include <ws2tcpip.h>
672 #else
673 # include <netdb.h>
674 #endif])
675
676 dnl Check for va_copy
677 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
678   AC_TRY_LINK(
679     [#include <stdarg.h>],
680     [va_list ap1, ap2; va_copy(ap1,ap2);],
681     [ac_cv_c_va_copy="yes"],
682     [ac_cv_c_va_copy="no"]))
683 if test "${ac_cv_c_va_copy}" = "yes"; then
684   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
685 fi
686 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
687   AC_TRY_LINK(
688     [#include <stdarg.h>],
689     [va_list ap1, ap2; __va_copy(ap1,ap2);],
690     [ac_cv_c___va_copy="yes"],
691     [ac_cv_c___va_copy="no"]))
692 if test "${ac_cv_c___va_copy}" = "yes"; then
693   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
694 fi
695
696 AC_CHECK_FUNCS(inet_aton,,[
697   AC_CHECK_LIB(resolv,inet_aton,[
698     VLC_ADD_LIBS([libvlccore],[-lresolv])
699   ])
700 ])
701
702 dnl Check for getopt (always use builtin one on win32)
703 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
704 need_getopt=:
705 else
706 need_getopt=false
707 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
708 [ # FreeBSD has a gnugetopt library for this:
709   AC_CHECK_LIB([gnugetopt],[getopt_long],
710     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
711      VLC_ADD_LIBS([libvlccore],[-lgnugetopt])],
712     [need_getopt=:])])
713 fi
714 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
715
716 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
717 AC_TYPE_SIGNAL
718 AC_CHECK_LIB(m,cos,[
719   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene],[-lm])
720 ])
721 AC_CHECK_LIB(m,pow,[
722   VLC_ADD_LIBS([avcodec avformat swscale postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlccore freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
723 ])
724 AC_CHECK_LIB(m,sqrt,[
725   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
726 ])
727 AC_CHECK_LIB(m,ceil,[
728   VLC_ADD_LIBS([hotkeys mosaic],[-lm])
729 ])
730 AC_CHECK_LIB(m,exp,[
731   VLC_ADD_LIBS([gaussianblur],[-lm])
732 ])
733 AC_CHECK_LIB(m,round,[
734   VLC_ADD_LIBS([dbus],[-lm])
735 ])
736 AC_CHECK_LIB(mx,sqrtf,[
737   VLC_ADD_LIBS([x264],[-lmx])
738 ])
739 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
740
741 dnl Check for dynamic plugins
742 ac_cv_have_plugins=no
743
744 # HP-UX style
745 if test "${ac_cv_have_plugins}" = "no"; then
746   AC_CHECK_HEADERS(dl.h)
747   ac_cv_my_have_shl_load=no
748   AC_CHECK_FUNC(shl_load,
749    [ac_cv_my_have_shl_load=yes,
750     AC_CHECK_LIB(dld, shl_load,
751      [ac_cv_my_have_shl_load=yes
752       VLC_ADD_LIBS([libvlccore],[-ldld])])])
753   if test "${ac_cv_my_have_shl_load}" = "yes"; then
754     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
755     ac_cv_have_plugins=yes
756   fi
757 fi
758
759 # Win32 style
760 if test "${ac_cv_have_plugins}" = "no"; then
761   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
762     AC_CHECK_LIB(kernel32, main,
763      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
764       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
765       ac_cv_have_plugins=yes])
766   fi
767 fi
768
769 # WinCE style
770 if test "${ac_cv_have_plugins}" = "no"; then
771   if test "${SYS}" = "mingwce"; then
772     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
773     ac_cv_have_plugins=yes
774   fi
775 fi
776
777 # BeOS style
778 if test "${ac_cv_have_plugins}" = "no"; then
779   AC_CHECK_HEADERS(image.h)
780   AC_CHECK_FUNCS(load_add_on,
781    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
782     ac_cv_have_plugins=yes])
783 fi
784
785 # Only test for dlopen() if the others didn't work
786 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
787   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
788   ac_cv_my_have_dlopen=no
789   AC_CHECK_FUNC(dlopen,
790     ac_cv_my_have_dlopen=yes,
791     AC_CHECK_LIB(dl, dlopen,
792       ac_cv_my_have_dlopen=yes
793       VLC_ADD_LIBS([libvlccore realaudio realvideo],[-ldl]),
794       AC_CHECK_LIB(svld, dlopen,
795         ac_cv_my_have_dlopen=yes
796         VLC_ADD_LIBS([libvlccore],[-lsvld]))))
797   if test "${ac_cv_my_have_dlopen}" = "yes"; then
798     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
799     ac_cv_have_plugins=yes
800   fi
801 fi
802
803 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
804 dnl Check for pthreads - borrowed from XMMS
805 THREAD_LIB=error
806 if test "${THREAD_LIB}" = "error"; then
807   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
808 fi
809 if test "${THREAD_LIB}" = "error"; then
810   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
811 fi
812 if test "${THREAD_LIB}" = "error"; then
813   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
814 fi
815 if test "${THREAD_LIB}" = "error"; then
816   AC_CHECK_FUNCS(pthread_mutex_lock)
817   THREAD_LIB=""
818 fi
819
820 VLC_ADD_LIBS([libvlccore libvlc plugin],[${THREAD_LIB}])
821
822 AC_CHECK_LIB(rt, clock_nanosleep, [
823   VLC_ADD_LIBS([libvlccore],[-lrt])
824   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
825 ], [
826   dnl HP/UX port
827   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
828 ])
829
830 have_nanosleep=false
831 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
832   AC_CHECK_LIB(rt,nanosleep,
833     [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
834     [AC_CHECK_LIB(posix4,nanosleep,
835         [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
836   )
837 ])
838 if ${have_nanosleep}; then
839   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
840 fi
841 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
842
843 dnl Check for misc headers
844 AC_MSG_CHECKING(for strncasecmp in strings.h)
845 AC_EGREP_HEADER(strncasecmp,strings.h,[
846   AC_MSG_RESULT(yes)
847   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
848             Define if <strings.h> defines strncasecmp.)],[
849   AC_MSG_RESULT(no)])
850
851 dnl Check for headers
852 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
853 AC_CHECK_HEADERS(fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h sys/mount.h)
854 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
855 AC_CHECK_HEADERS([net/if.h], [], [],
856   [
857     #include <sys/types.h>
858     #include <sys/socket.h>
859   ])
860 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
861 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
862 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h])
863 AC_CHECK_HEADERS(syslog.h)
864 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
865
866 AC_HEADER_TIME
867
868 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
869 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
870 AC_CHECK_TYPE(ssize_t,, [
871   AC_DEFINE(ssize_t, int)
872 ])
873
874 dnl Check for poll
875 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
876 if test ${SYS} != "mingw32"
877 then
878     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])
879 fi
880 ])
881
882 dnl Check for dirent
883 need_dirent=false
884 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
885 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
886
887 dnl Mac OS X and other OSes don't have declaration for nanosleep
888 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
889 AC_MSG_CHECKING(for nanosleep in time.h)
890 AC_EGREP_HEADER(nanosleep,time.h,[
891   AC_MSG_RESULT(yes)
892   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
893             Define if <time.h> defines nanosleep.)
894 ],[
895   AC_MSG_RESULT(no)
896 ])
897 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
898
899 dnl Make sure we have timespecs
900 AC_MSG_CHECKING(for timespec in sys/time.h)
901 AC_EGREP_HEADER(timespec,sys/time.h,[
902   AC_MSG_RESULT(yes)
903   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
904             Define if <sys/time.h> defines struct timespec.)
905 ],[
906   AC_MSG_RESULT(no)
907 ])
908
909 dnl Check for threads library
910 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
911 AC_CHECK_HEADERS(pthread.h)
912 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
913
914 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.
915 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
916 AC_ARG_VAR(PKG_CONFIG_PATH,
917            [Paths where to find .pc not at the default location])
918 PKG_PROG_PKG_CONFIG()
919
920 dnl
921 dnl Check for zlib.h and -lz along with system -lminizip if available
922 dnl 
923 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
924 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
925 if test "${have_zlib}" = "yes"
926 then
927   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
928   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
929     AC_CHECK_HEADERS([unzip.h], [ 
930       have_minizip=yes
931       MINIZIP_LIBS="-lminizip -lz"
932     ], [
933       have_minizip=no
934       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
935       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
936     ])
937   ])
938   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
939   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
940   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
941   VLC_ADD_PLUGIN([unzip])
942   VLC_ADD_PLUGIN([zip])
943 fi
944 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
945
946
947 dnl Check for hal
948 AC_ARG_ENABLE(hal,
949   [  --enable-hal            Linux HAL services discovery (default enabled)])
950
951 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
952 then
953   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
954     [
955       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
956       VLC_ADD_PLUGIN([hal])
957       VLC_ADD_PLUGIN([probe_hal])
958       VLC_ADD_LIBS([libvlccore hal probe_hal],[$HAL_LIBS])
959       VLC_ADD_CFLAGS([libvlccore hal probe_hal],[$HAL_CFLAGS])],
960     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
961   )
962 fi
963
964 dnl Check for mtp
965 AC_ARG_ENABLE(mtp,
966   [  --enable-mtp            MTP devices support (default enabled)])
967
968 if test "${enable_mtp}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
969 then
970   PKG_CHECK_MODULES(MTP, libmtp >= 0.3.0,
971     [ VLC_ADD_PLUGIN([mtp])
972       VLC_ADD_PLUGIN([access_mtp])
973       VLC_ADD_LIBS([mtp access_mtp],[$MTP_LIBS])
974       VLC_ADD_CFLAGS([mtp access_mtp],[$MTP_CFLAGS])],
975        [AC_MSG_WARN(MTP library not found)]
976   )
977 fi
978
979 dnl Check for dbus
980 AC_ARG_ENABLE(dbus,
981   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
982 case "${SYS}" in
983     linux*|*bsd*)
984 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
985 then
986   dnl api stable dbus
987   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
988     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
989       VLC_ADD_LIBS([screensaver libvlccore],[$DBUS_LIBS])
990       VLC_ADD_CFLAGS([screensaver libvlccore],[$DBUS_CFLAGS])
991       dnl Check for dbus control interface
992         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
993         if test "${enable_dbus_control}" != "no"
994         then
995           VLC_ADD_PLUGIN([dbus])
996           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
997           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
998         fi
999       dnl Check for Telepathy
1000         AC_ARG_ENABLE(telepathy,
1001           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
1002         if test "${enable_telepathy}" != "no"; then
1003           VLC_ADD_PLUGIN([telepathy])
1004           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
1005           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
1006         fi
1007         dnl Power Management Inhibiter
1008         VLC_ADD_PLUGIN([inhibit])
1009         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
1010         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
1011     ],
1012     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
1013   )
1014 fi
1015 ;;
1016 esac
1017
1018 dnl Build the gtk_main plugins?
1019 NEED_GTK_MAIN=no
1020 NEED_GNOME_MAIN=no
1021 NEED_GTK2_MAIN=no
1022 NEED_GNOME2_MAIN=no
1023
1024 dnl build the qte plugin ?
1025 NEED_QTE_MAIN=no
1026
1027 dnl Check for ntohl, etc.
1028 AC_CACHE_CHECK([for ntohl in sys/param.h],
1029     [ac_cv_c_ntohl_sys_param_h],
1030     [CFLAGS="${CFLAGS_save} -Wall -Werror"
1031      AC_TRY_COMPILE([#include <sys/param.h>],
1032         [int meuh; ntohl(meuh);],
1033         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
1034 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
1035     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
1036 fi
1037 CFLAGS="${CFLAGS_save}"
1038
1039 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])
1040 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
1041
1042 dnl Check for various optimization flags
1043 AC_CACHE_CHECK([if \$CC accepts -Os],
1044     [ac_cv_c_os],
1045     [CFLAGS="${CFLAGS_save} -Os"
1046      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1047 if test "${ac_cv_c_os}" != "no"; then
1048     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
1049 else
1050     AC_CACHE_CHECK([if \$CC accepts -O],
1051         [ac_cv_c_o],
1052         [CFLAGS="${CFLAGS_save} -O"
1053          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1054     if test "${ac_cv_c_o}" != "no"; then
1055         if test "${ac_cv_c_o3}" = "no"; then
1056             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1057         fi
1058     fi
1059 fi
1060
1061 AC_CACHE_CHECK([if \$CC accepts -O4],
1062     [ac_cv_c_o4],
1063     [CFLAGS="${CFLAGS_save} -O4"
1064      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1065 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1066     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1067 else
1068     AC_CACHE_CHECK([if \$CC accepts -O3],
1069         [ac_cv_c_o3],
1070         [CFLAGS="${CFLAGS_save} -O3"
1071          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1072     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1073         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1074     else
1075         AC_CACHE_CHECK([if \$CC accepts -O2],
1076             [ac_cv_c_o2],
1077             [CFLAGS="${CFLAGS_save} -O2"
1078              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1079         if test "${ac_cv_c_o2}" != "no"; then
1080             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1081         else
1082             AC_CACHE_CHECK([if \$CC accepts -O],
1083                 [ac_cv_c_o],
1084                 [CFLAGS="${CFLAGS_save} -O"
1085                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1086             if test "${ac_cv_c_o}" != "no"; then
1087                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1088             fi
1089         fi
1090     fi
1091 fi
1092
1093 AC_CACHE_CHECK([if \$CC accepts -O0],
1094     [ac_cv_c_o0],
1095     [CFLAGS="${CFLAGS_save} -O0"
1096      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1097 if test "${ac_cv_c_o0}" != "no"; then
1098     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1099 fi
1100
1101 dnl Check for -ffast-math
1102 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1103     [ac_cv_c_fast_math],
1104     [CFLAGS="${CFLAGS_save} -ffast-math"
1105      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1106 if test "${ac_cv_c_fast_math}" != "no"; then
1107     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1108 fi
1109
1110 dnl Check for -funroll-loops
1111 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1112 if test "${SYS}" != "beos"
1113 then
1114   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1115       [ac_cv_c_unroll_loops],
1116       [CFLAGS="${CFLAGS_save} -funroll-loops"
1117        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1118   if test "${ac_cv_c_unroll_loops}" != "no"; then
1119       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1120   fi
1121 fi
1122
1123 dnl Check for -fomit-frame-pointer
1124 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1125     [ac_cv_c_omit_frame_pointer],
1126     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1127      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1128 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1129  if test "${SYS}" != "darwin"; then
1130     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1131  else
1132     dnl On darwin we explicitely disable it.
1133     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1134  fi
1135 fi
1136
1137 dnl Check for Darwin plugin linking flags
1138 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1139     [ac_cv_ld_darwin],
1140     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1141      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1142 if test "${ac_cv_ld_darwin}" != "no"; then
1143     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1144 fi
1145
1146 dnl Checks for __attribute__(aligned()) directive
1147 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1148     [ac_cv_c_attribute_aligned],
1149     [ac_cv_c_attribute_aligned=0
1150         CFLAGS="${CFLAGS_save} -Werror"
1151     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1152         AC_TRY_COMPILE([],
1153         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1154         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1155     done
1156         CFLAGS="${CFLAGS_save}"])
1157 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1158     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1159         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1160 fi
1161
1162 dnl Check for __attribute__((packed))
1163 AC_CACHE_CHECK([for __attribute__((packed))],
1164   [ac_cv_c_attribute_packed],
1165   [ac_cv_c_attribute_packed=no
1166    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1167                     [ac_cv_c_attribute_packed=yes])])
1168 if test "${ac_cv_c_attribute_packed}" != "no"; then
1169   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1170 fi
1171
1172 dnl
1173 dnl  Check the CPU
1174 dnl
1175 case "${host_cpu}" in
1176   "")
1177     ARCH=unknown
1178     ;;
1179   *)
1180     ARCH="${host_cpu}"
1181     ;;
1182 esac
1183
1184 dnl Check for backtrace() support
1185 AC_CHECK_HEADERS(execinfo.h)
1186 AC_CHECK_FUNCS(backtrace)
1187
1188 dnl
1189 dnl  Enable profiling
1190 dnl
1191 AC_ARG_ENABLE(gprof,
1192 [  --enable-gprof          gprof profiling (default disabled)])
1193 AC_ARG_ENABLE(cprof,
1194 [  --enable-cprof          cprof profiling (default disabled)])
1195 test "${enable_gprof}" != "yes" && enable_gprof="no"
1196 test "${enable_cprof}" != "yes" && enable_cprof="no"
1197
1198 dnl
1199 dnl  default modules
1200 dnl
1201 dnl Video filters:
1202 VLC_ADD_PLUGIN([deinterlace])
1203 VLC_ADD_PLUGIN([yuvp])
1204 VLC_ADD_PLUGIN([invert])
1205 VLC_ADD_PLUGIN([mirror])
1206 VLC_ADD_PLUGIN([adjust])
1207 VLC_ADD_PLUGIN([transform])
1208 VLC_ADD_PLUGIN([wave])
1209 VLC_ADD_PLUGIN([ripple])
1210 VLC_ADD_PLUGIN([psychedelic])
1211 VLC_ADD_PLUGIN([gradient])
1212 VLC_ADD_PLUGIN([motionblur])
1213 VLC_ADD_PLUGIN([rv32])
1214 VLC_ADD_PLUGIN([rotate])
1215 VLC_ADD_PLUGIN([noise])
1216 VLC_ADD_PLUGIN([grain])
1217 VLC_ADD_PLUGIN([extract])
1218 VLC_ADD_PLUGIN([sharpen])
1219 VLC_ADD_PLUGIN([croppadd])
1220 VLC_ADD_PLUGIN([canvas])
1221 VLC_ADD_PLUGIN([blendbench])
1222 VLC_ADD_PLUGIN([blend])
1223 VLC_ADD_PLUGIN([scale])
1224 VLC_ADD_PLUGIN([vmem])
1225 VLC_ADD_PLUGIN([logo])
1226 VLC_ADD_PLUGIN([magnify])
1227 VLC_ADD_PLUGIN([puzzle])
1228 VLC_ADD_PLUGIN([colorthres])
1229 VLC_ADD_PLUGIN([scene])
1230 VLC_ADD_PLUGIN([yuv])
1231
1232 ALIASES="${ALIASES} cvlc"
1233
1234 dnl
1235 dnl default modules that need g++
1236 dnl
1237 AC_LANG_PUSH(C++)
1238 VLC_ADD_PLUGIN([spatializer])
1239 AC_LANG_POP(C++)
1240
1241 if test "${SYS}" != "mingwce"; then
1242   VLC_ADD_PLUGIN([gestures])
1243   VLC_ADD_PLUGIN([rc])
1244   VLC_ADD_PLUGIN([hotkeys])
1245   VLC_ADD_PLUGIN([showintf])
1246   VLC_ADD_PLUGIN([marq])
1247   VLC_ADD_PLUGIN([podcast])
1248   VLC_ADD_PLUGIN([shout])
1249   VLC_ADD_PLUGIN([sap])
1250   VLC_ADD_PLUGIN([fake])
1251   VLC_ADD_PLUGIN([folder])
1252   VLC_ADD_PLUGIN([rss])
1253   VLC_ADD_PLUGIN([mosaic])
1254   VLC_ADD_PLUGIN([wall])
1255   VLC_ADD_PLUGIN([motiondetect])
1256   VLC_ADD_PLUGIN([clone])
1257   VLC_ADD_PLUGIN([crop])
1258   VLC_ADD_PLUGIN([erase])
1259   VLC_ADD_PLUGIN([bluescreen])
1260   VLC_ADD_PLUGIN([alphamask])
1261   VLC_ADD_PLUGIN([gaussianblur])
1262   VLC_ADD_PLUGIN([i420_yuy2])
1263   VLC_ADD_PLUGIN([i422_yuy2])
1264   VLC_ADD_PLUGIN([i420_ymga])
1265   VLC_ADD_PLUGIN([i422_i420])
1266   VLC_ADD_PLUGIN([yuy2_i422])
1267   VLC_ADD_PLUGIN([yuy2_i420])
1268   VLC_ADD_PLUGIN([chain])
1269   VLC_ADD_PLUGIN([aout_file])
1270   VLC_ADD_PLUGIN([linear_resampler])
1271   VLC_ADD_PLUGIN([bandlimited_resampler])
1272   VLC_ADD_PLUGIN([float32_mixer])
1273   VLC_ADD_PLUGIN([spdif_mixer])
1274   VLC_ADD_PLUGIN([simple_channel_mixer])
1275   VLC_ADD_PLUGIN([dolby_surround_decoder])
1276   VLC_ADD_PLUGIN([headphone_channel_mixer])
1277   VLC_ADD_PLUGIN([normvol])
1278   VLC_ADD_PLUGIN([equalizer])
1279   VLC_ADD_PLUGIN([param_eq])
1280   VLC_ADD_PLUGIN([scaletempo])
1281   VLC_ADD_PLUGIN([converter_float])
1282   VLC_ADD_PLUGIN([a52tospdif])
1283   VLC_ADD_PLUGIN([dtstospdif])
1284   VLC_ADD_PLUGIN([audio_format])
1285   ALIASES="${ALIASES} rvlc"
1286 fi
1287
1288 if test "${SYS}" = "mingwce"; then
1289   VLC_ADD_PLUGIN([chain])
1290   VLC_ADD_PLUGIN([aout_file])
1291   VLC_ADD_PLUGIN([linear_resampler])
1292   VLC_ADD_PLUGIN([bandlimited_resampler])
1293   VLC_ADD_PLUGIN([float32_mixer])
1294   VLC_ADD_PLUGIN([spdif_mixer])
1295   VLC_ADD_PLUGIN([simple_channel_mixer])
1296   VLC_ADD_PLUGIN([headphone_channel_mixer])
1297   VLC_ADD_PLUGIN([normvol])
1298   VLC_ADD_PLUGIN([converter_float])
1299   VLC_ADD_PLUGIN([a52tospdif])
1300   VLC_ADD_PLUGIN([dtstospdif])
1301   VLC_ADD_PLUGIN([audio_format])
1302   VLC_ADD_PLUGIN([i420_yuy2])
1303   VLC_ADD_PLUGIN([i422_yuy2])
1304   VLC_ADD_PLUGIN([i420_ymga])
1305   VLC_ADD_PLUGIN([i422_i420])
1306   VLC_ADD_PLUGIN([yuy2_i422])
1307   VLC_ADD_PLUGIN([yuy2_i420])
1308 fi
1309
1310 dnl
1311 dnl Some plugins aren't useful on some platforms
1312 dnl
1313 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1314     VLC_ADD_PLUGIN([screensaver])
1315     VLC_ADD_PLUGIN([motion])
1316     VLC_ADD_PLUGIN([dynamicoverlay])
1317     VLC_ADD_PLUGIN([signals])
1318 elif test "${SYS}" != "mingwce"; then
1319     VLC_ADD_PLUGIN([ntservice])
1320     VLC_ADD_PLUGIN([access_smb])
1321     VLC_ADD_PLUGIN([dmo])
1322     VLC_ADD_PLUGIN([msn])
1323     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1324     VLC_ADD_PLUGIN([globalhotkeys])
1325 else
1326     VLC_ADD_PLUGIN([win32text])
1327 fi
1328 if test "${SYS}" = "darwin"; then
1329     VLC_ADD_PLUGIN([quartztext])
1330     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1331 fi
1332
1333 dnl
1334 dnl  Accelerated modules
1335 dnl
1336 AC_ARG_WITH(,[])
1337 AC_ARG_WITH(,[Optimization options:])
1338
1339 dnl  Check for fully working MMX intrinsics
1340 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1341 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1342 AC_ARG_ENABLE(mmx,
1343 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1344   case "${host_cpu}" in
1345     i?86|x86_64)
1346       enable_mmx="yes"
1347       ;;
1348     *)
1349       enable_mmx="no"
1350       ;;
1351   esac
1352 ])
1353 AS_IF([test "${enable_mmx}" != "no"], [
1354   ARCH="${ARCH} mmx"
1355
1356   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1357     [ac_cv_c_mmx_intrinsics],
1358     [CFLAGS="${CFLAGS_save} -O -mmmx"
1359      AC_TRY_COMPILE([#include <mmintrin.h>
1360                      #include <stdint.h>
1361                      uint64_t frobzor;],
1362                     [__m64 a, b, c;
1363                      a = b = c = (__m64)frobzor;
1364                      a = _mm_slli_pi16(a, 3);
1365                      a = _mm_adds_pi16(a, b);
1366                      c = _mm_srli_pi16(c, 8);
1367                      c = _mm_slli_pi16(c, 3);
1368                      b = _mm_adds_pi16(b, c);
1369                      a = _mm_unpacklo_pi8(a, b);
1370                      frobzor = (uint64_t)a;],
1371                     [ac_cv_c_mmx_intrinsics=yes],
1372                     [ac_cv_c_mmx_intrinsics=no])])
1373   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1374     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1375               [Define to 1 if MMX intrinsics are available.])
1376     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1377   ])
1378
1379   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1380     [ac_cv_mmx_inline],
1381     [CFLAGS="${CFLAGS_save}"
1382      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1383                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1384   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1385     AC_DEFINE(CAN_COMPILE_MMX, 1,
1386               [Define to 1 inline MMX assembly is available.])
1387     VLC_ADD_PLUGIN([memcpymmx])
1388     VLC_ADD_PLUGIN([i420_rgb_mmx])
1389     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1390     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1391     VLC_ADD_PLUGIN([i420_ymga_mmx])
1392   ])
1393
1394   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1395     [ac_cv_mmxext_inline],
1396     [CFLAGS="${CFLAGS_save}"
1397      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1398                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1399   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1400     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1401               [Define to 1 if MMX EXT inline assembly is available.])
1402     VLC_ADD_PLUGIN([memcpymmxext])
1403   ])
1404 ])
1405
1406 dnl  Check for fully workin SSE2 intrinsics
1407 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1408 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1409 AC_ARG_ENABLE(sse,
1410 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1411 ,, [
1412   case "${host_cpu}" in
1413     i686|x86_64)
1414       enable_sse=yes
1415       ;;
1416     *)
1417       enable_sse=no
1418       ;;
1419   esac
1420 ])
1421 AS_IF([test "${enable_sse}" != "no"], [
1422   ARCH="${ARCH} sse sse2"
1423
1424   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1425     [ac_cv_c_sse2_intrinsics],
1426     [CFLAGS="${CFLAGS_save} -O -msse2"
1427      AC_TRY_COMPILE([#include <emmintrin.h>
1428                      #include <stdint.h>
1429                      uint64_t frobzor;],
1430                     [__m128i a, b, c;
1431                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1432                      a = _mm_slli_epi16(a, 3);
1433                      a = _mm_adds_epi16(a, b);
1434                      c = _mm_srli_epi16(c, 8);
1435                      c = _mm_slli_epi16(c, 3);
1436                      b = _mm_adds_epi16(b, c);
1437                      a = _mm_unpacklo_epi8(a, b);
1438                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1439                     [ac_cv_c_sse2_intrinsics=yes],
1440                     [ac_cv_c_sse2_intrinsics=no])])
1441   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1442     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1443               [Define to 1 if SSE2 intrinsics are available.])
1444     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1445   ])
1446
1447   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1448     [ac_cv_sse_inline],
1449     [CFLAGS="${CFLAGS_save}"
1450      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1451                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1452   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1453     AC_DEFINE(CAN_COMPILE_SSE, 1,
1454               [Define to 1 if SSE inline assembly is available.])
1455   ])
1456
1457   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1458     [ac_cv_sse2_inline],
1459     [CFLAGS="${CFLAGS_save}"
1460      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1461                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1462   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1463     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1464               [Define to 1 if SSE2 inline assembly is available.])
1465     VLC_ADD_PLUGIN([i420_rgb_sse2])
1466     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1467     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1468   ])
1469 ])
1470
1471 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1472     [ac_cv_3dnow_inline],
1473     [CFLAGS="${CFLAGS_save}"
1474      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1475                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1476 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1477   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1478             [Define to 1 if 3D Now! inline assembly is available.])
1479   VLC_ADD_PLUGIN([memcpy3dn])
1480 ])
1481
1482 AC_ARG_ENABLE(altivec,
1483 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1484   AS_IF([test "${host_cpu}" = "powerpc"],
1485         [enable_altivec=yes], [enable_altivec=no])
1486 ])
1487 AS_IF([test "${enable_altivec}" = "yes"], [
1488   ARCH="${ARCH} altivec";
1489   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1490     [ac_cv_altivec_inline],
1491     [CFLAGS="${CFLAGS_save}"
1492      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1493          ac_cv_altivec_inline="yes",
1494          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1495           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1496             [ac_cv_altivec_inline="-Wa,-m7400"],
1497             ac_cv_altivec_inline=no)
1498          ])])
1499   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1500     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1501               [Define to 1 if AltiVec inline assembly is available.])
1502     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1503       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1504       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1505       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1506       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1507       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1508     ])
1509     VLC_ADD_PLUGIN([memcpyaltivec])
1510     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1511   ])
1512
1513 dnl The AltiVec C extensions
1514 dnl
1515 dnl There are several possible cases:
1516 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1517 dnl                      need <altivec.h>
1518 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1519 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1520 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1521 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1522 dnl - Others: test should fail
1523   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1524   [ac_cv_c_altivec],
1525   [# OS X/PPC test (gcc 4.x)
1526    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1527    AC_TRY_COMPILE([vector unsigned char foo;],
1528      [vec_ld(0, (unsigned char *)0);],
1529      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1530      [# OS X/PPC test (gcc 3.x)
1531       CFLAGS="${CFLAGS_save} -faltivec"
1532       AC_TRY_COMPILE([vector unsigned char foo;],
1533         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1534         [ac_cv_c_altivec="-faltivec"],
1535         dnl Below this are the Linux tests
1536         [# Linux/PPC test (gcc 4.x)
1537          CFLAGS="${CFLAGS_save} -maltivec"
1538          AC_TRY_COMPILE([#include <altivec.h>],
1539            [vec_ld(0, (unsigned char *)0);],
1540            [ac_cv_c_altivec="-maltivec"],
1541            [# Linux/PPC test (gcc 3.3)
1542             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1543             AC_TRY_COMPILE([#include <altivec.h>],
1544               [vec_ld(0, (unsigned char *)0);],
1545               [ac_cv_c_altivec=""
1546                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1547               [# Linux/PPC test (gcc 3.3)
1548                CFLAGS="${CFLAGS_save} -fvec"
1549                AC_TRY_COMPILE([#include <altivec.h>],
1550                  [vec_ld(0, (unsigned char *)0);],
1551                  [ac_cv_c_altivec="-fvec"],
1552                  [ac_cv_c_altivec=no])
1553               ])
1554            ])
1555         ])
1556      ])
1557    CFLAGS="${CFLAGS_save}"
1558   ])
1559   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1560     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1561   ])
1562
1563   AC_CHECK_HEADERS(altivec.h)
1564   CPPFLAGS="${CPPFLAGS_save}"
1565
1566   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1567     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1568               [Define to 1 if C AltiVec extensions are available.])
1569     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1570     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1571     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1572     VLC_ADD_PLUGIN([memcpyaltivec])
1573     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1574   ])
1575
1576   AC_CACHE_CHECK([if linker needs -framework vecLib],
1577     [ac_cv_ld_altivec],
1578     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1579      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1580      LDFLAGS="${LDFLAGS_save}"
1581     ])
1582   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1583     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1584   ])
1585 ])
1586
1587 dnl
1588 dnl  Special arch tuning
1589 dnl
1590 AC_ARG_WITH(tuning,
1591 [  --with-tuning=ARCH      enable special tuning for an architecture
1592                           (default Pentium 2 on IA-32 and G4 on PPC)])
1593 if test -n "${with_tuning}"; then
1594     if test "${with_tuning}" != "no"; then
1595         CFLAGS_TUNING="-mtune=${with_tuning}"
1596     fi
1597 else
1598     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1599         CFLAGS_TUNING="-march=prescott -mtune=generic"
1600     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1601         CFLAGS_TUNING="-mtune=pentium2"
1602     elif test "${host_cpu}" = "x86_64"; then
1603         CFLAGS_TUNING="-mtune=athlon64"
1604     elif test "${host_cpu}" = "powerpc"; then
1605         CFLAGS_TUNING="-mtune=G4";
1606     fi
1607 fi
1608
1609 dnl NOTE: this can't be cached cleanly
1610 AS_IF([test "${CFLAGS_TUNING}"],
1611    [CFLAGS_save="${CFLAGS}"
1612     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1613
1614     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1615     AC_COMPILE_IFELSE([ ],
1616                       [tuning="yes"],
1617                       [CFLAGS_TUNING=""; tuning="no"
1618                        AS_IF([test "${with_tuning}"],
1619                              [AC_MSG_ERROR([requested tuning not supported])])])
1620
1621     AC_MSG_RESULT([$tuning])
1622     CFLAGS="${CFLAGS_save}"
1623 ])
1624
1625 dnl
1626 dnl  Memory usage
1627 dnl
1628 AC_ARG_ENABLE(optimize-memory,
1629 [  --enable-optimize-memory optimize memory usage over performance])
1630 if test "${enable_optimize_memory}" = "yes"; then
1631   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1632 fi
1633
1634 dnl
1635 dnl  Enable/disable optimizations
1636 dnl
1637 AC_ARG_ENABLE(optimizations,
1638 [  --disable-optimizations disable compiler optimizations (default enabled)])
1639 if test "${enable_optimizations}" != "no"; then
1640    if test "${enable_optimize_memory}" = "yes"; then
1641       enable_optimizations="size"
1642    else
1643       enable_optimizations="speed"
1644    fi
1645 fi
1646
1647 dnl
1648 dnl  Debugging mode
1649 dnl
1650 AC_ARG_ENABLE(debug,
1651 [  --enable-debug          debug mode (default disabled)])
1652 test "${enable_debug}" != "yes" && enable_debug="no"
1653 AH_TEMPLATE(NDEBUG,
1654             [Define to 1 if debug code should NOT be compiled])
1655 AS_IF([test "x${enable_debug}" = "xno"], [
1656   AC_DEFINE(NDEBUG)
1657 ], [
1658   AC_CHECK_HEADERS([valgrind/valgrind.h])
1659 ])
1660
1661 dnl
1662 dnl Allow runing as root (usefull for people runing on embedded platforms)
1663 dnl
1664 AC_ARG_ENABLE(run-as-root,
1665 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1666 AS_IF([test "${enable_run_as_root}" = "yes"],[
1667     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1668               [Define to 1 to allow runing VLC as root (uid 0).])
1669 ])
1670
1671 dnl
1672 dnl  Test coverage
1673 dnl
1674 AC_ARG_ENABLE(coverage,
1675         [  --enable-coverage       build for test coverage (default disabled)],,
1676         [enable_coverage="no"])
1677 AS_IF([test "${enable_coverage}" != "no"], [
1678         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1679         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1680         LDFLAGS="-lgcov ${LDFLAGS}"
1681         dnl ugly...
1682         CFLAGS_save="${CFLAGS}"
1683         CXXFLAGS_save="${CXXFLAGS}"
1684         LDFLAGS_save="${LDFLAGS}"
1685 ])
1686
1687 dnl
1688 dnl  Enable release-specific flags
1689 dnl
1690 AC_ARG_ENABLE(release,
1691 [  --enable-release        activate extra optimizations (default disabled)])
1692 test "${enable_release}" != "yes" && enable_release="no"
1693
1694 dnl
1695 dnl Stream output
1696 dnl
1697 AC_ARG_ENABLE(sout,
1698   [  --enable-sout           Stream output modules (default enabled)])
1699 AS_IF([test "${enable_sout}" != "no"], [
1700   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1701 ])
1702 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1703
1704 dnl Check for libshout
1705 PKG_ENABLE_MODULES_VLC([access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
1706
1707 dnl Lua modules
1708 AC_ARG_ENABLE(lua,
1709   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1710                   plugins (default enabled)]))
1711 if test "${enable_lua}" != "no"
1712 then
1713   PKG_CHECK_MODULES(LUA, lua5.1,
1714     [ have_lua=yes ],
1715     [
1716     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1717     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1718       [ have_lua=yes ],
1719       [
1720         have_lua=yes
1721         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1722           [],
1723           [ have_lua=no ] )
1724         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1725           [LUA_LIBS="-llua5.1"],
1726           AC_CHECK_LIB( lua51 , luaL_newstate,
1727             [LUA_LIBS="-llua51"],
1728             AC_CHECK_LIB( lua , luaL_newstate,
1729               [LUA_LIBS="-llua"],
1730               [ have_lua=no
1731                 AC_MSG_WARN([lua >= 5.1 not found!])
1732               ])
1733           )
1734         )
1735       ])
1736     ])
1737   if test "x${have_lua}" = "xyes" ;  then
1738      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1739      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1740      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1741   fi
1742 fi
1743 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1744
1745 dnl
1746 dnl HTTP daemon
1747 dnl
1748 AC_ARG_ENABLE(httpd,
1749   [  --enable-httpd          HTTP daemon (default enabled)])
1750 if test "${enable_httpd}" != "no"
1751 then
1752   VLC_ADD_PLUGIN([http])
1753   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1754 fi
1755 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1756
1757 dnl
1758 dnl libproxy support
1759 dnl
1760 PKG_ENABLE_MODULES_VLC([LIBPROXY], [libproxy-1.0], [libproxy support], [auto])
1761
1762
1763 dnl
1764 dnl VideoLAN manager
1765 dnl
1766 AC_ARG_ENABLE(vlm,
1767   [  --enable-vlm            VideoLAN manager (default enabled)],,
1768   [enable_vlm="${enable_sout}"])
1769 AS_IF([test "${enable_vlm}" != "no"], [
1770   AS_IF([test "${enable_sout}" = "no"], [
1771     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1772   ])
1773   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1774   VLC_ADD_PLUGIN([telnet])
1775 ])
1776 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1777
1778 dnl
1779 dnl Growl notification plugin
1780 dnl
1781 AC_ARG_ENABLE(growl,
1782   [  --enable-growl          growl notification plugin (default disabled)],,
1783   [enable_growl=no])
1784 AS_IF([test "${enable_growl}" != "no"], [
1785     VLC_ADD_PLUGIN([growl_udp])
1786     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1787       VLC_ADD_PLUGIN([growl])
1788       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1789     ])
1790   ]
1791 )
1792
1793 dnl
1794 dnl Libnotify notification plugin
1795 dnl
1796
1797 AC_ARG_ENABLE(notify,
1798   [  --enable-notify         libnotify notification plugin (default enabled)])
1799 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1800     PKG_CHECK_MODULES(NOTIFY, libnotify,
1801       [
1802         VLC_ADD_PLUGIN([notify])
1803         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1804         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1805       ],[
1806     AS_IF([test "${enable_notify}" = "yes"],[
1807         AC_MSG_WARN( libnotify not found) ])
1808       ])
1809   ])
1810
1811 dnl
1812 dnl Audioscrobbler plugin
1813 dnl
1814
1815 AC_ARG_ENABLE(audioscrobbler,
1816   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1817 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1818         VLC_ADD_PLUGIN([audioscrobbler])
1819   ])
1820
1821 dnl
1822 dnl Taglibplugin
1823 dnl
1824 AC_ARG_ENABLE(taglib,
1825   [  --disable-taglib        Taglib support (default enabled) ])
1826   AS_IF([test "${enable_taglib}" != "no"],[
1827     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1828       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1829         VLC_ADD_PLUGIN([taglib])
1830         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1831        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1832       [AC_MSG_WARN(TagLib library not found)])
1833   ])
1834
1835 dnl
1836 dnl  Input plugins
1837 dnl
1838
1839 AC_ARG_WITH(,[Input plugins:])
1840
1841 dnl  live555 input
1842 dnl
1843 if test "${enable_livedotcom}"
1844 then
1845   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1846 fi
1847 if test "${enable_livedotcom}" = "no"
1848 then
1849   enable_live555="no"
1850 fi
1851
1852 AC_ARG_ENABLE(live555,
1853 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1854 if test "${enable_live555}" != "no"; then
1855   AC_ARG_WITH(live555-tree,
1856     [    --with-live555-tree=PATH live.com tree for static linking])
1857
1858   dnl
1859   dnl test for --with-live555-tree
1860   dnl
1861   if test "${with_livedotcom_tree}"
1862   then
1863     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1864   with_live555_tree="${with_livedotcom_tree}"
1865   fi
1866
1867   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1868     AC_LANG_PUSH(C++)
1869     CPPFLAGS_save="${CPPFLAGS}"
1870     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1871     if test "${SYS}" = "solaris"; then
1872       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1873     fi
1874     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1875
1876     AC_CHECK_HEADERS(liveMedia_version.hh, [
1877       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1878       AC_EGREP_CPP(yes,
1879         [#include <liveMedia_version.hh>
1880          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1881          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1882          yes
1883          #endif
1884          #endif],
1885         [AC_MSG_RESULT([no])
1886          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1887 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1888       ],[
1889          AC_MSG_RESULT([yes])
1890          ])
1891     ])
1892      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1893      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1894       if test "${SYS}" = "mingw32"; then
1895         # add ws2_32 for closesocket, select, recv
1896         other_libs="$other_libs -lws2_32"
1897       fi
1898     dnl We need to check for pic because live555 don't provide shared libs
1899     dnl and we want to build a plugins so we need -fPIC on some arch.
1900     AC_CHECK_HEADERS(liveMedia.hh, [
1901       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1902         AC_CHECK_LIB(liveMedia_pic, main, [
1903           VLC_ADD_PLUGIN([live555])
1904          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1905          ],[
1906         AC_CHECK_LIB(liveMedia, main, [
1907           VLC_ADD_PLUGIN([live555])
1908           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1909         ],[],[${other_libs}]) ],[${other_libs_pic}])
1910     ],[
1911        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1912     ])
1913     CPPFLAGS="${CPPFLAGS_save}"
1914     AC_LANG_POP(C++)
1915   else
1916     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1917     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1918     if test -z "${real_live555_tree}"; then
1919       dnl  The given directory can't be found
1920       AC_MSG_RESULT(no)
1921       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1922     fi
1923     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1924       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1925
1926       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1927         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1928         AC_EGREP_CPP(yes,
1929           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1930            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1931            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1932            yes
1933            #endif
1934            #endif],
1935           [AC_MSG_RESULT([no])
1936            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1937 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1938         ],[
1939            AC_MSG_RESULT([yes])
1940            ])
1941       ])
1942
1943       VLC_ADD_PLUGIN([live555])
1944
1945       if test "${SYS}" = "mingw32"; then
1946         # add ws2_32 for closesocket, select, recv
1947         VLC_ADD_LIBS([live555],[-lws2_32])
1948       fi
1949
1950       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1951       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1952       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1953       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1954
1955       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1956       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1957       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1958       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1959       if test "${SYS}" = "solaris"; then
1960         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1961       fi
1962     else
1963       dnl  The given live555 wasn't built
1964         AC_MSG_RESULT(no)
1965       if test "${enable_live555}" = "yes"; then
1966         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1967       fi        
1968     fi
1969   fi
1970 fi
1971
1972 dnl
1973 dnl  special access module for dc1394 input
1974 dnl
1975 AC_ARG_ENABLE(dc1394,
1976   [  --enable-dc1394         dc1394 access module (default disabled)])
1977 if test "${enable_dc1394}" = "yes"
1978 then
1979   dnl
1980   dnl Check for libraw1394
1981   dnl
1982   PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 2.0.1,
1983     [
1984       VLC_ADD_LIBS([dc1394],[`${PKG_CONFIG} --libs libraw1394`])
1985       VLC_ADD_CPPFLAGS([dc1394],[`${PKG_CONFIG} --cflags libraw1394`])
1986     ],
1987     [AC_MSG_ERROR([Couldn't find libraw1394 >= 2.0.1, install libraw1394 development package])]
1988   )
1989
1990   dnl
1991   dnl Check for libdc1394
1992   dnl
1993   PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.2,
1994     [
1995       VLC_ADD_PLUGIN([dc1394])
1996       VLC_ADD_LIBS([dc1394],[`${PKG_CONFIG} --libs libdc1394-2`])
1997       VLC_ADD_CPPFLAGS([access_dv],[`${PKG_CONFIG} --cflags libdc1394-2`])
1998     ],
1999     [AC_MSG_ERROR([Couldn't find libdc1394 >= 2.0.2, install libdc1394 development package])]
2000   )
2001 fi
2002
2003 dnl
2004 dnl dv module: digital video module check for libraw1394
2005 dnl
2006 AC_ARG_ENABLE(dv,
2007 [  --enable-dv             dv input module (default disabled)])
2008 if test "${enable_dv}" = "yes"
2009 then
2010   dnl
2011   dnl Check for libraw1394
2012   dnl
2013   PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 2.0.1,
2014     [
2015       VLC_ADD_LIBS([access_dv],[`${PKG_CONFIG} --libs libraw1394`])
2016       VLC_ADD_CPPFLAGS([access_dv],[`${PKG_CONFIG} --cflags libraw1394`])
2017     ],
2018     [AC_MSG_ERROR([Couldn't find libraw1394 >= 2.0.1, install libraw1394 development package])]
2019   )
2020
2021   dnl
2022   dnl Check for libavc1394
2023   dnl
2024   PKG_CHECK_MODULES(LIBAVC1394, libavc1394 >= 0.5.3,
2025     [
2026       VLC_ADD_PLUGIN([access_dv])
2027       VLC_ADD_LIBS([access_dv],[`${PKG_CONFIG} --libs libavc1394`])
2028       VLC_ADD_CPPFLAGS([access_dv],[`${PKG_CONFIG} --cflags libavc1394`])
2029     ],
2030     [AC_MSG_ERROR([Couldn't find libavc1394 >= 0.5.1, install libavc1394 development package])]
2031   )
2032 fi
2033
2034 dnl
2035 dnl dvdread module: check for libdvdread
2036 dnl
2037 AC_ARG_ENABLE(dvdread,
2038 [  --enable-dvdread        dvdread input module (default disabled)])
2039 if test "${enable_dvdread}" != "no"
2040 then
2041   AC_ARG_WITH(dvdread,
2042   [    --with-dvdread=PATH   libdvdread headers and libraries])
2043   AC_ARG_WITH(dvdread-tree,
2044   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2045
2046   dnl Temporary hack (yeah, sure ;)
2047   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2048       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2049   fi
2050
2051   if test -z "${with_dvdread}"
2052   then
2053     if test -z "${with_dvdread_tree}"
2054     then
2055       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2056         [ VLC_ADD_PLUGIN([dvdread])
2057           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2058         ],[
2059           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2060             [ VLC_ADD_PLUGIN([dvdread])
2061               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2062             ],[
2063               if test -n "${enable_dvdread}"
2064               then
2065               AC_MSG_ERROR([cannot find libdvdread headers])
2066              fi
2067            ])
2068         ])
2069     else
2070       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2071       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2072       if test -z "${real_dvdread_tree}"
2073       then
2074         dnl  The given directory can't be found
2075         AC_MSG_RESULT(no)
2076         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2077       fi
2078       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2079       then
2080         dnl  Use a custom libdvdread
2081         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2082         VLC_ADD_PLUGIN([dvdread])
2083         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2084         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2085       else
2086         dnl  The given libdvdread wasn't built
2087         AC_MSG_RESULT(no)
2088         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2089       fi
2090     fi
2091   else
2092     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2093     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2094     then
2095       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2096       AC_MSG_RESULT(yes)
2097       VLC_ADD_PLUGIN([dvdread])
2098       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2099       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2100     else
2101       dnl  No libdvdread could be found, sorry
2102       AC_MSG_RESULT(no)
2103       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2104     fi
2105   fi
2106 fi
2107
2108 dnl
2109 dnl  libdvdnav plugin
2110 dnl
2111 AC_ARG_ENABLE(dvdnav,
2112   [  --enable-dvdnav         dvdnav input module (default enabled)])
2113 if test "${enable_dvdnav}" != "no"
2114 then
2115   dnl Same hack than dvdread
2116   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2117       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2118   fi
2119
2120   DVDNAV_PATH="${PATH}"
2121   AC_ARG_WITH(dvdnav-config-path,
2122     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2123     [ if test "${with_dvdnav_config_path}" != "no"
2124       then
2125         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2126       fi ])
2127   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2128   if test "${DVDNAV_CONFIG}" != "no"
2129   then
2130     VLC_ADD_PLUGIN([dvdnav])
2131     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2132     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2133   fi
2134 fi
2135
2136 dnl
2137 dnl  Windows DirectShow access module
2138 dnl
2139 AC_ARG_ENABLE(dshow,
2140   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2141 if test "${enable_dshow}" != "no"
2142 then
2143   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2144   then
2145     AC_LANG_PUSH(C++)
2146       AC_CHECK_HEADERS(dshow.h,
2147       [ VLC_ADD_PLUGIN([dshow])
2148         VLC_ADD_CXXFLAGS([dshow],[])
2149         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2150     AC_LANG_POP(C++)
2151   fi
2152 fi
2153
2154 dnl
2155 dnl  Windows DirectShow BDA access module
2156 dnl
2157 AC_ARG_ENABLE(bda,
2158   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2159                   enabled on Win32)]))
2160 if test "${enable_bda}" != "no"
2161 then
2162   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2163   then
2164       AC_CHECK_HEADERS(dshow.h,
2165       [ VLC_ADD_PLUGIN([bda])
2166         VLC_ADD_CXXFLAGS([bda],[])
2167         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2168   fi
2169 fi
2170
2171
2172 dnl
2173 dnl  OpenCV wrapper and example filters
2174 dnl
2175 AC_ARG_ENABLE(opencv,
2176   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2177 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2178 then
2179   AC_ARG_WITH(opencv-tree,
2180   [    --with-opencv-tree=PATH opencv tree for linking])
2181     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2182     then
2183       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2184       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2185       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2186         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2187       then
2188         AC_MSG_RESULT(yes)
2189         VLC_ADD_PLUGIN([opencv_wrapper])
2190         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2191         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])
2192         AC_LANG_PUSH(C++)
2193         VLC_ADD_PLUGIN([opencv_example])
2194         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2195         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])
2196         AC_LANG_POP(C++)
2197           else
2198         dnl  No opencv could be found, sorry
2199         AC_MSG_RESULT(no)
2200         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2201           fi
2202     else
2203       PKG_CHECK_MODULES(OPENCV, opencv,
2204         [
2205           VLC_ADD_PLUGIN([opencv_example])
2206           VLC_ADD_PLUGIN([opencv_wrapper])
2207           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2208           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2209           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2210         ],
2211         [AC_MSG_ERROR([libopencv not found!])]
2212       )
2213     fi
2214 fi
2215
2216
2217 dnl
2218 dnl  libsmbclient plugin
2219 dnl
2220 AC_ARG_ENABLE(smb,
2221   [  --enable-smb            smb input module (default enabled)])
2222 if test "${enable_smb}" != "no"; then
2223   AC_CHECK_HEADERS(libsmbclient.h,
2224     [ VLC_ADD_PLUGIN([access_smb])
2225       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2226     [ if test -n "${enable_smb}"; then
2227         AC_MSG_ERROR([cannot find libsmbclient headers])
2228      fi ])
2229 fi
2230
2231 dnl
2232 dnl  libdvbpsi ts demux/mux
2233 dnl
2234 AC_ARG_ENABLE(dvbpsi,
2235   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2236 have_dvbpsi=no
2237 if test "${enable_dvbpsi}" != "no"
2238 then
2239   AC_ARG_WITH(dvbpsi,
2240   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2241   AC_ARG_WITH(dvbpsi,
2242   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2243   case "${with_dvbpsi}" in
2244   ""|yes)
2245     if test -z "${with_dvbpsi_tree}"
2246     then
2247       AC_CHECK_HEADERS(dvbpsi/dr.h,
2248         [ VLC_ADD_PLUGIN([ts])
2249           if test "${enable_sout}" != "no"; then
2250             VLC_ADD_PLUGIN([mux_ts])
2251           fi
2252           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2253           have_dvbpsi=yes],
2254         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2255         [#if defined( HAVE_STDINT_H )
2256 #   include <stdint.h>
2257 #elif defined( HAVE_INTTYPES_H )
2258 #   include <inttypes.h>
2259 #endif
2260 #include <dvbpsi/dvbpsi.h>
2261 #include <dvbpsi/descriptor.h>
2262 #include <dvbpsi/pat.h>
2263 #include <dvbpsi/pmt.h>])
2264     else
2265       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2266       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2267       if test -z "${real_dvbpsi_tree}"
2268       then
2269         dnl  The given directory can't be found
2270         AC_MSG_RESULT(no)
2271         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2272       fi
2273       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2274       then
2275         dnl  Use a custom libdvbpsi
2276         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2277         VLC_ADD_PLUGIN([ts])
2278         if test "${enable_sout}" != "no"; then
2279           VLC_ADD_PLUGIN([mux_ts])
2280         fi
2281         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2282         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2283         have_dvbpsi=yes
2284       else
2285         dnl  The given libdvbpsi wasn't built
2286         AC_MSG_RESULT(no)
2287         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2288       fi
2289     fi
2290   ;;
2291   no)
2292     dnl  Compile without dvbpsi
2293   ;;
2294   *)
2295     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2296     if test -z "${with_dvbpsi}"
2297     then
2298       LDFLAGS_test=""
2299       CPPFLAGS_test=""
2300     else
2301       LDFLAGS_test="-L${with_dvbpsi}/lib"
2302       CPPFLAGS_test="-I${with_dvbpsi}/include"
2303     fi
2304     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2305     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2306       VLC_ADD_PLUGIN([ts])
2307       if test "${enable_sout}" != "no"; then
2308         VLC_ADD_PLUGIN([mux_ts])
2309       fi
2310       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2311       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2312       have_dvbpsi=yes
2313     ],[
2314       if test -n "${enable_dvbpsi}"
2315       then
2316         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])
2317       fi
2318     ])
2319     CPPFLAGS="${CPPFLAGS_save}"
2320   ;;
2321   esac
2322   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2323     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2324   ], [], [${LIBS_ts}])
2325
2326 fi
2327
2328 dnl
2329 dnl  Video4Linux plugin
2330 dnl
2331 AC_ARG_ENABLE(v4l,
2332   [  --enable-v4l            Video4Linux input support (default disabled)])
2333 if test "${enable_v4l}" = "yes"
2334 then
2335   AC_ARG_WITH(v4l,
2336     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2337   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2338   then
2339     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2340   fi
2341
2342   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2343   AC_CHECK_HEADERS(linux/videodev.h, [
2344     VLC_ADD_PLUGIN([v4l])
2345   ],[])
2346   CPPFLAGS="${CPPFLAGS_save}"
2347 fi
2348
2349 dnl
2350 dnl  Video4Linux2 plugin
2351 dnl
2352 AC_ARG_ENABLE(v4l2,
2353   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2354 if test "${enable_v4l2}" != "no"
2355 then
2356   AC_ARG_WITH(v4l2,
2357     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2358   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2359   then
2360     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2361   fi
2362
2363   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2364   AC_CHECK_HEADERS(linux/videodev2.h, [
2365     VLC_ADD_PLUGIN([v4l2])
2366   ],[])
2367   CPPFLAGS="${CPPFLAGS_save}"
2368 fi
2369
2370 dnl
2371 dnl libv4l2 support for video4linux.
2372 dnl
2373 AC_ARG_ENABLE( libv4l2,
2374   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2375 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2376 then
2377     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2378       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2379       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2380       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2381       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2382     )
2383 fi
2384
2385 dnl
2386 dnl  special access module for Hauppauge PVR cards
2387 dnl
2388 AC_ARG_ENABLE(pvr,
2389   [  --enable-pvr            PVR cards access module (default disabled)])
2390 if test "${enable_pvr}" = "yes"
2391 then
2392   VLC_ADD_PLUGIN([pvr])
2393   AC_ARG_WITH(videodev2,
2394     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2395   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2396   then
2397     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2398   fi
2399
2400   AC_CACHE_CHECK([for new linux/videodev2.h],
2401       [ac_cv_new_linux_videodev2_h],
2402       [AC_TRY_COMPILE([
2403           #include <sys/types.h>
2404           #   ifdef VIDEODEV2_H_FILE
2405           #   include VIDEODEV2_H_FILE
2406           #   else
2407           #   include <linux/videodev2.h>
2408           #   endif
2409           ],
2410           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2411           ac_cv_new_linux_videodev2_h=yes,
2412           ac_cv_new_linux_videodev2_h=no)])
2413   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2414     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2415   fi
2416 fi
2417
2418 dnl
2419 dnl  gnomeVFS access module
2420 dnl
2421 AC_ARG_ENABLE(gnomevfs,
2422   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2423 if test "${enable_gnomevfs}" = "yes"
2424 then
2425   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2426     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2427     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2428     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2429     VLC_ADD_PLUGIN([access_gnomevfs]),
2430     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2431 fi
2432
2433 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2434 AC_ARG_ENABLE(libcdio,
2435   [  --enable-libcdio        CD input and control library support (default enabled)])
2436
2437 AC_ARG_ENABLE(vcdinfo,
2438   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2439
2440 have_libcdio=no
2441 have_libvcdinfo=no
2442 if test "${enable_libcdio}" != "no"
2443 then
2444   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2445      have_libcdio=yes
2446      AC_DEFINE(HAVE_LIBCDIO, 1,
2447      [Define if you have libcdio 0.78.2 or greater installed]),
2448      [AC_MSG_WARN(CD Reading and information library not found)])
2449
2450   if test "${enable_vcdinfo}" != "no"
2451   then
2452     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2453        [have_libvcdinfo=yes
2454        AC_DEFINE(HAVE_VCDINFO, 1,
2455        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2456        [AC_MSG_WARN(VCD information library not found)])
2457   fi
2458 fi
2459
2460 dnl
2461 dnl  VCDX and CDDAX modules
2462 dnl
2463 AC_ARG_ENABLE(cddax,
2464   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2465                   via libcdio (default disabled)]))
2466
2467 AC_ARG_ENABLE(libcddb,
2468   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2469
2470 if test "${enable_cddax}" = "yes"
2471 then
2472   if test "$have_libcdio" = "yes"
2473   then
2474     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2475     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2476     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2477     VLC_ADD_PLUGIN([cddax])
2478     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2479     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2480     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2481   else
2482     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2483     HAVE_CDDAX=no
2484   fi
2485
2486   if test "$enable_libcddb" != "no"; then
2487     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2488       HAVE_LIBCDDB=yes
2489       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2490       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2491       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2492       ],
2493       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2494       HAVE_LIBCDDB=no])
2495   fi
2496
2497 fi
2498
2499 AC_ARG_ENABLE(vcdx,
2500   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2501
2502 if test "${enable_vcdx}" = "yes"
2503 then
2504   if test "${have_libvcdinfo}" = "yes"
2505   then
2506     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2507     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2508   else
2509     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2510     HAVE_VCDX=no
2511   fi
2512
2513   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2514    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2515     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2516     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2517     HAVE_VCDX=no])
2518
2519   if test "$have_libvcdinfo" = "yes"
2520   then
2521     AC_DEFINE(HAVE_VCDX, 1,
2522     [Define for the VCD plugin using libcdio/libvcdinfo])
2523     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2524     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2525     VLC_ADD_PLUGIN([vcdx])
2526   else
2527     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2528     HAVE_VCDX=no
2529   fi
2530 fi
2531
2532 dnl
2533 dnl  Built-in CD-DA and VCD module
2534 dnl
2535 AC_ARG_ENABLE(cdda,
2536   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2537
2538 AC_ARG_ENABLE(vcd,
2539   [  --enable-vcd            built-in VCD (default enabled)])
2540
2541 if test "${enable_vcd}" != "no"
2542 then
2543   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2544   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2545     AC_MSG_RESULT(yes)
2546     VLC_ADD_PLUGIN([vcd])
2547     VLC_ADD_PLUGIN([cdda])
2548   ],[
2549     AC_MSG_RESULT(no)
2550   ])
2551
2552   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2553   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2554     AC_MSG_RESULT(yes)
2555     VLC_ADD_PLUGIN([vcd])
2556     VLC_ADD_PLUGIN([cdda])
2557     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2558   ],[
2559     AC_MSG_RESULT(no)
2560   ])
2561
2562   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2563   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2564     AC_MSG_RESULT(yes)
2565     VLC_ADD_PLUGIN([vcd])
2566     VLC_ADD_PLUGIN([cdda])
2567     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2568   ],[
2569     AC_MSG_RESULT(no)
2570   ])
2571
2572   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2573   then
2574     VLC_ADD_PLUGIN([vcd])
2575     VLC_ADD_PLUGIN([cdda])
2576   fi
2577
2578   if test "${SYS}" = "darwin"
2579   then
2580     VLC_ADD_PLUGIN([vcd])
2581     VLC_ADD_PLUGIN([cdda])
2582     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2583     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2584   fi
2585
2586   if test "$enable_libcddb" != "no"; then
2587     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2588       HAVE_LIBCDDB=yes
2589       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2590       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2591       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2592       ],:
2593       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2594       HAVE_LIBCDDB=no])
2595   fi
2596 fi
2597
2598 dnl
2599 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2600 dnl
2601 AC_ARG_ENABLE(dvb,
2602   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2603
2604 if test "${enable_dvb}" != "no"
2605 then
2606     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2607     AC_ARG_WITH(dvb,
2608      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2609      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2610      then
2611        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2612      fi
2613      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2614      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2615      VLC_ADD_PLUGIN([dvb])
2616      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2617      CPPFLAGS="${CPPFLAGS_save}"
2618    ],[
2619      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2620     ])
2621 fi
2622
2623 dnl
2624 dnl  Screen capture module
2625 dnl
2626 AC_ARG_ENABLE(screen,
2627   [  --enable-screen         Screen capture support (default enabled)])
2628 if test "${enable_screen}" != "no"; then
2629   if test "${SYS}" = "darwin"; then
2630     AC_CHECK_HEADERS(OpenGL/gl.h, [
2631       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2632         VLC_ADD_PLUGIN([screen])
2633         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2634       ])
2635     ])
2636   elif test "${SYS}" = "mingw32"; then
2637     VLC_ADD_PLUGIN([screen])
2638     VLC_ADD_LIBS([screen],[-lgdi32])
2639   elif test "${SYS}" = "mingwce"; then
2640     CPPFLAGS="${CPPFLAGS_save}"
2641   elif test "${SYS}" = "beos"; then
2642     VLC_ADD_PLUGIN([screen])
2643     VLC_ADD_CXXFLAGS([screen],[])
2644     VLC_ADD_LIBS([screen],[-lbe])
2645   fi
2646 fi
2647
2648 dnl
2649 dnl  ipv6 plugin - not for QNX yet
2650 dnl
2651 have_ipv6=no
2652 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2653   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2654 ])
2655
2656 AS_IF([test "${have_ipv6}" = "yes"], [
2657   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2658
2659
2660 AC_CHECK_FUNCS(inet_ntop,[
2661   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2662
2663
2664 dnl
2665 dnl  ogg demux plugin
2666 dnl
2667 PKG_ENABLE_MODULES_VLC([OGG], [ogg >= 1.0], [Ogg demux support], [auto])
2668 if test "${enable_sout}" != "no"; then
2669     PKG_ENABLE_MODULES_VLC([MUX_OGG], [ogg >= 1.0], [Ogg demux support], [auto])
2670 fi
2671
2672 dnl
2673 dnl  matroska demux plugin
2674 dnl
2675 AC_ARG_ENABLE(mkv,
2676   [  --enable-mkv            Matroska demux support (default enabled)])
2677 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2678   AC_LANG_PUSH(C++)
2679   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2680     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2681     AC_EGREP_CPP(yes,
2682       [#include <ebml/EbmlVersion.h>
2683        #ifdef LIBEBML_VERSION
2684        #if LIBEBML_VERSION >= 0x000706
2685        yes
2686        #endif
2687        #endif],
2688       [AC_MSG_RESULT([yes])
2689         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2690           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2691           AC_EGREP_CPP(yes,
2692             [#include <matroska/KaxVersion.h>
2693              #ifdef LIBMATROSKA_VERSION
2694              #if LIBMATROSKA_VERSION >= 0x000705
2695              yes
2696              #endif
2697              #endif],
2698             [AC_MSG_RESULT([yes])
2699               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2700               VLC_ADD_CXXFLAGS([mkv],[])
2701               if test "${SYS}" = "darwin"; then
2702                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2703               fi
2704               AC_CHECK_LIB(ebml_pic, main, [
2705                 VLC_ADD_PLUGIN([mkv])
2706                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2707               ],
2708                 AC_CHECK_LIB(ebml, main, [
2709                   VLC_ADD_PLUGIN([mkv])
2710                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2711                 ])
2712               )
2713             ],
2714             [AC_MSG_RESULT([no])
2715               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.])
2716           ])
2717         ])
2718       ],
2719       [AC_MSG_RESULT([no])
2720         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.])
2721     ])
2722   ])
2723   AC_LANG_POP(C++)
2724 fi
2725
2726 dnl
2727 dnl  modplug demux plugin
2728 dnl
2729 AC_ARG_ENABLE(mod,
2730   [  --enable-mod            Mod demux support (default enabled)])
2731 if test "${enable_mod}" != "no"
2732 then
2733   AC_ARG_WITH(mod-tree,
2734   [    --with-mod-tree=PATH mod tree for static linking])
2735   if test -n "${with_mod_tree}"
2736   then
2737     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2738     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2739     if test -z "${real_mod_tree}"
2740     then
2741       dnl  The given directory can't be found
2742       AC_MSG_RESULT(no)
2743       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2744     fi
2745     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2746     then
2747       dnl  Use a custom mod
2748       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2749       VLC_ADD_PLUGIN([mod])
2750       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2751       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2752     else
2753       dnl  The given mod wasn't built
2754       AC_MSG_RESULT(no)
2755       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2756     fi
2757   else
2758     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2759       VLC_ADD_PLUGIN([mod])
2760       VLC_ADD_CXXFLAGS([mod],[])
2761       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2762   fi
2763 fi
2764
2765 dnl
2766 dnl  mpc demux plugin
2767 dnl
2768 AC_ARG_ENABLE(mpc,
2769   [  --enable-mpc            Mpc demux support (default enabled)])
2770 if test "${enable_mpc}" != "no"
2771 then
2772   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2773     VLC_ADD_PLUGIN([mpc])
2774     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2775     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2776     VLC_ADD_PLUGIN([mpc])
2777     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2778 fi
2779
2780 dnl
2781 dnl  game music emu demux plugin
2782 dnl
2783 AC_ARG_ENABLE(gme,
2784   [  --enable-gme            Game Music Emu demux support (default enabled)])
2785 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2786 then
2787   AC_LANG_PUSH(C++)
2788   AC_ARG_WITH(gme-tree,
2789   [    --with-gme-tree=PATH gme tree for static linking])
2790   if test -n "${with_gme_tree}"
2791   then
2792     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2793     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2794     if test -z "${real_gme_tree}"
2795     then
2796       dnl  The given directory can't be found
2797       AC_MSG_RESULT(no)
2798       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2799     fi
2800     if test -f "${real_gme_tree}/gme/libgme.a"
2801     then
2802       dnl  Use a custom gme
2803       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2804       VLC_ADD_PLUGIN([gme])
2805       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2806       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2807     else
2808       dnl  The given gme wasn't built
2809       AC_MSG_RESULT(no)
2810       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2811     fi
2812   else
2813       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2814   fi
2815   AC_LANG_POP(C++)
2816 fi
2817
2818 dnl
2819 dnl  Codec plugins
2820 dnl
2821
2822 AC_ARG_WITH(,[Codec plugins:])
2823
2824 dnl
2825 dnl wmafixed plugin
2826 dnl
2827 AC_ARG_ENABLE(wma-fixed,
2828   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2829 if test "${enable_wma_fixed}" = "yes"
2830 then
2831   VLC_ADD_PLUGIN([wma_fixed])
2832 fi
2833
2834 dnl
2835 dnl shine fixed point mp3 encoder
2836 dnl
2837 AC_ARG_ENABLE(shine,
2838   [  --enable-shine          shine mp3 encoding module (default disabled)])
2839 if test "${enable_shine}" = "yes"
2840 then
2841   VLC_ADD_PLUGIN([shine])
2842 fi
2843
2844 dnl
2845 dnl  mad plugin
2846 dnl
2847 AC_ARG_ENABLE(mad,
2848   [  --enable-mad            libmad module (default enabled)])
2849 if test "${enable_mad}" != "no"
2850 then
2851   AC_ARG_WITH(mad,
2852     [    --with-mad=PATH       path to libmad],[],[])
2853   if test "${with_mad}" != "no" -a -n "${with_mad}"
2854   then
2855     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2856     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2857   fi
2858
2859   AC_ARG_WITH(mad-tree,
2860     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2861   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2862   then
2863     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2864     if test -z "${real_mad_tree}"
2865     then
2866       dnl  The given directory can't be found
2867       AC_MSG_RESULT(no)
2868       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2869     fi
2870     dnl  Use a custom libmad
2871     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2872     if test -f ${real_mad_tree}/mad.h
2873     then
2874       AC_MSG_RESULT(yes)
2875       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2876       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2877       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2878       AC_CHECK_LIB(mad, mad_bit_init, [
2879         VLC_ADD_PLUGIN([mpgatofixed32])
2880         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2881         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2882       ],[])
2883       LDFLAGS="${LDFLAGS_save}"
2884     else
2885       AC_MSG_RESULT(no)
2886       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2887     fi
2888   else
2889     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2890     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2891     AC_CHECK_HEADERS(mad.h, ,
2892       [ 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.]) ])
2893     AC_CHECK_LIB(mad, mad_bit_init, [
2894       VLC_ADD_PLUGIN([mpgatofixed32])
2895       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2896       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2897     CPPFLAGS="${CPPFLAGS_save}"
2898     LDFLAGS="${LDFLAGS_save}"
2899   fi
2900 fi
2901
2902 dnl
2903 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2904 dnl
2905 AC_ARG_ENABLE( id3tag,
2906 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2907 AS_IF([test "${enable_id3tag}" = "yes"], [
2908   AC_CHECK_HEADERS(id3tag.h, [
2909       AS_IF([test "${have_zlib}" = "yes"],[
2910           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2911           VLC_ADD_PLUGIN([id3tag])
2912        ])
2913     ])
2914 ])
2915
2916 dnl
2917 dnl  avcodec decoder/encoder plugin
2918 dnl
2919
2920 if test "${with_ffmpeg_tree}"
2921 then
2922   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2923 fi
2924
2925 AC_ARG_ENABLE(avcodec,
2926 [  --enable-avcodec        libavcodec codec (default enabled)])
2927 if test "${enable_avcodec}" != "no"
2928 then
2929   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2930     [
2931       VLC_SAVE_FLAGS
2932       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2933       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2934       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2935       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2936       VLC_ADD_PLUGIN([avcodec])
2937       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2938       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2939       VLC_RESTORE_FLAGS
2940       have_avcodec="yes"
2941     ],[
2942       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2943   ])
2944 fi
2945
2946 dnl
2947 dnl stream_out switcher needs libavcodec
2948 dnl
2949 AC_ARG_ENABLE(switcher,
2950   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2951 AS_IF([test "${enable_switcher}" = "yes"], [
2952   AS_IF([test "x${have_avcodec}" = "xyes"], [
2953     VLC_ADD_PLUGIN([stream_out_switcher])
2954     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS])
2955     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS])
2956   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2957   ])
2958 ])
2959
2960
2961 dnl
2962 dnl  avformat demuxer/muxer plugin
2963 dnl
2964
2965 AC_ARG_ENABLE(avformat,
2966 [  --enable-avformat       libavformat containers (default enabled)])
2967 if test "${enable_avformat}" != "no"
2968 then
2969   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2970     [
2971       VLC_SAVE_FLAGS
2972       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2973       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2974       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2975       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2976       VLC_ADD_PLUGIN([avformat])
2977       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
2978       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
2979       VLC_RESTORE_FLAGS
2980     ],[
2981       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2982   ])
2983 fi
2984
2985 dnl
2986 dnl  swscale image scaling and conversion plugin
2987 dnl
2988
2989 AC_ARG_ENABLE(swscale,
2990   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2991                   (default enabled)]))
2992 if test "${enable_swscale}" != "no"
2993 then
2994   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2995     [
2996       VLC_SAVE_FLAGS
2997       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2998       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2999       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3000       VLC_ADD_PLUGIN([swscale])
3001       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3002       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3003       VLC_RESTORE_FLAGS
3004     ],[
3005       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.])
3006   ])
3007 fi
3008
3009 dnl
3010 dnl  postproc plugin
3011 dnl
3012
3013 AC_ARG_ENABLE(postproc,
3014 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3015 if test "${enable_postproc}" != "no"
3016 then
3017   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3018     [
3019       VLC_SAVE_FLAGS
3020       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3021       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3022       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3023       VLC_ADD_PLUGIN([postproc])
3024       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3025       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3026       VLC_RESTORE_FLAGS
3027     ],[
3028       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
3029   ])
3030 fi
3031
3032 dnl
3033 dnl  faad decoder plugin
3034 dnl
3035 AC_ARG_ENABLE(faad,
3036 [  --enable-faad           faad codec (default disabled)])
3037 if test "${enable_faad}" = "yes"
3038 then
3039   AC_ARG_WITH(faad-tree,
3040   [    --with-faad-tree=PATH faad tree for static linking])
3041   if test -n "${with_faad_tree}"
3042   then
3043     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3044     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3045     if test -z "${real_faad_tree}"
3046     then
3047       dnl  The given directory can't be found
3048       AC_MSG_RESULT(no)
3049       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3050     fi
3051     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3052     then
3053       dnl  Use a custom faad
3054       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3055       VLC_ADD_PLUGIN([faad])
3056       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3057       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3058     else
3059       dnl  The given libfaad wasn't built
3060       AC_MSG_RESULT(no)
3061       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3062     fi
3063   else
3064     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3065     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3066     AC_CHECK_HEADERS(faad.h, ,
3067       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3068     AC_CHECK_LIB(faad, faacDecOpen, [
3069       VLC_ADD_PLUGIN([faad])
3070       VLC_ADD_LIBS([faad],[-lfaad]) ],
3071       AC_CHECK_LIB(faad, NeAACDecOpen, [
3072         VLC_ADD_PLUGIN([faad])
3073         VLC_ADD_LIBS([faad],[-lfaad]) ],
3074         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3075     LDFLAGS="${LDFLAGS_save}"
3076     CPPFLAGS="${CPPFLAGS_save}"
3077   fi
3078 fi
3079
3080 dnl
3081 dnl twolame encoder plugin
3082 dnl
3083 AC_ARG_ENABLE(twolame,
3084 [  --enable-twolame        twolame codec (default disabled)])
3085 if test "${enable_twolame}" = "yes"
3086 then
3087   AC_ARG_WITH(twolame-tree,
3088   [    --with-twolame-tree=PATH twolame tree for static linking])
3089   if test -n "${with_twolame_tree}"
3090   then
3091     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3092     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3093     if test -z "${real_twolame_tree}"
3094     then
3095       dnl  The given directory can't be found
3096       AC_MSG_RESULT(no)
3097       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3098     fi
3099     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3100     then
3101       dnl  Use a custom twolame
3102       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3103       VLC_ADD_PLUGIN([twolame])
3104       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3105       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3106     else
3107       dnl  The given libtwolame wasn't built
3108       AC_MSG_RESULT(no)
3109       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3110     fi
3111   else
3112     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3113     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3114     AC_CHECK_HEADERS(twolame.h, ,
3115       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3116     AC_CHECK_LIB(twolame, twolame_init, [
3117       VLC_ADD_PLUGIN([twolame])
3118       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3119       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3120         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3121     LDFLAGS="${LDFLAGS_save}"
3122     CPPFLAGS="${CPPFLAGS_save}"
3123   fi
3124 fi
3125
3126 dnl
3127 dnl  QuickTime plugin
3128 dnl
3129 AC_ARG_ENABLE(quicktime,
3130   [  --enable-quicktime      QuickTime module (deprecated)])
3131 if test "${enable_quicktime}" = "yes"; then
3132   if test "${SYS}" = "mingw32"; then
3133     VLC_ADD_PLUGIN([quicktime])
3134   else
3135   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3136     [ VLC_ADD_PLUGIN([quicktime])
3137       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3138     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3139   fi
3140 fi
3141
3142 dnl
3143 dnl  Real plugin
3144 dnl
3145 AC_ARG_ENABLE(real,
3146   [  --enable-real           Real media module (default disabled)])
3147 if test "${enable_real}" = "yes"; then
3148   VLC_ADD_PLUGIN([realaudio])
3149   VLC_ADD_PLUGIN([realvideo])
3150 fi
3151
3152 dnl
3153 dnl  Real RTSP plugin
3154 dnl
3155 AC_ARG_ENABLE(realrtsp,
3156   [  --enable-realrtsp       Real RTSP module (default disabled)])
3157 if test "${enable_realrtsp}" = "yes"; then
3158   VLC_ADD_PLUGIN([access_realrtsp])
3159 fi
3160
3161 AC_ARG_ENABLE(libsysfs,
3162   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3163
3164 AS_IF([test "${enable_libsysfs}" != "no"],[
3165   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3166     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3167   ] )
3168 ])
3169
3170 dnl
3171 dnl skins2 module
3172 dnl
3173 AC_ARG_ENABLE(libtar,
3174   [  --enable-libtar         libtar support for skins2 (default enabled)])
3175
3176 AS_IF([test "${enable_libtar}" != "no"],[
3177   AC_CHECK_HEADERS(libtar.h, [
3178     VLC_ADD_LIBS([skins2],[-ltar])
3179   ] )
3180 ])
3181
3182 dnl
3183 dnl A52/AC3 decoder plugin
3184 dnl
3185 AC_ARG_ENABLE(a52,
3186   [  --enable-a52            A/52 support with liba52 (default enabled)])
3187 if test "${enable_a52}" != "no"
3188 then
3189   AC_ARG_WITH(a52,
3190     [    --with-a52=PATH       a52 headers and libraries])
3191   AC_ARG_WITH(a52-tree,
3192     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3193   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3194   then
3195     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3196     if test -z "${real_a52_tree}"
3197     then
3198       dnl  The given directory can't be found
3199       AC_MSG_RESULT(no)
3200       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3201     fi
3202     dnl  Use a custom a52dec
3203     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3204     if test -f ${real_a52_tree}/include/a52.h
3205     then
3206       AC_MSG_RESULT(yes)
3207       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3208       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3209       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3210       AC_CHECK_LIB(a52, a52_free, [
3211         VLC_ADD_PLUGIN([a52tofloat32])
3212         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3213         VLC_ADD_LIBS([a52tofloat32],[-la52])
3214         ],[
3215         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3216         then
3217           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3218         else
3219           AC_MSG_ERROR([the specified tree hasn't been compiled])
3220         fi
3221       ])
3222       LDFLAGS="${LDFLAGS_save}"
3223     else
3224       AC_MSG_RESULT(no)
3225       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3226     fi
3227   else
3228     if test -z "${with_a52}"
3229     then
3230       LDFLAGS_test=""
3231       CPPFLAGS_test=""
3232     else
3233       LDFLAGS_test="-L${with_a52}/lib"
3234       CPPFLAGS_test="-I${with_a52}/include"
3235     fi
3236     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3237     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3238     AC_CHECK_HEADERS(a52dec/a52.h, [
3239       AC_CHECK_LIB(a52, a52_free, [
3240         VLC_ADD_PLUGIN([a52tofloat32])
3241         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3242         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3243       ],[
3244         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.])
3245         ])
3246     ],[
3247       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.])
3248     ])
3249     CPPFLAGS="${CPPFLAGS_save}"
3250     LDFLAGS="${LDFLAGS_save}"
3251   fi
3252 fi
3253
3254 AC_ARG_WITH(a52-fixed,
3255       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3256       [
3257         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3258
3259 dnl
3260 dnl DTS Coherent Acoustics decoder plugin
3261 dnl
3262 AS_IF([test "x${enable_dts}" != "x"], [
3263   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3264 ])
3265 AS_IF([test "x${with_dts_tree}" != "x"], [
3266   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3267 ])
3268
3269 AC_ARG_ENABLE(dca,
3270   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca
3271                   (default enabled)]))
3272 AS_IF([test "${enable_dca}" != "no"], [
3273   AC_ARG_WITH(dca-tree,
3274     [    --with-dca-tree=PATH  libdca tree for static linking],,
3275     [with_dca_tree="no"])
3276   AS_IF([test "${with_dca_tree}" != "no"], [
3277     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3278     AS_IF([test -z "${real_dca_tree}"], [
3279       dnl  The given directory can't be found
3280       AC_MSG_RESULT(no)
3281       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3282     ])
3283     dnl  Use a custom libdca
3284     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3285     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3286       AC_MSG_RESULT(yes)
3287       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3288       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3289         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3290       ], [
3291         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3292       ])
3293     ], [
3294       AC_MSG_RESULT(no)
3295       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3296     ])
3297   ], [
3298     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3299       VLC_ADD_PLUGIN([dtstofloat32])
3300       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3301       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3302     ], [
3303       AS_IF([test "x${enable_dca}" != "x"], [
3304         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3305       ])
3306     ])
3307   ])
3308 ])
3309
3310 dnl
3311 dnl  Flac plugin
3312 dnl
3313 PKG_ENABLE_MODULES_VLC([FLAC], [flac], [libflac decoder/encoder support], [auto])
3314
3315 dnl
3316 dnl  Libmpeg2 plugin
3317 dnl
3318 AC_ARG_ENABLE(libmpeg2,
3319   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3320 if test "${enable_libmpeg2}" != "no"
3321 then
3322   AC_ARG_WITH(libmpeg2-tree,
3323   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3324   AS_IF([test -n "${with_libmpeg2_tree}"],[
3325     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3326     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3327     if test -z "${real_libmpeg2_tree}"
3328     then
3329       dnl  The given directory can't be found
3330       AC_MSG_RESULT(no)
3331       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3332     fi
3333     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3334     then
3335       dnl  Use a custom libmpeg2
3336       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3337       VLC_ADD_PLUGIN([libmpeg2])
3338       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3339       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3340     else
3341       dnl  The given libmpeg2 wasn't built
3342       AC_MSG_RESULT(no)
3343       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3344     fi
3345   ],[
3346    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[
3347           VLC_ADD_PLUGIN([libmpeg2])
3348           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3349           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3350        ],
3351       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.]))
3352   ])
3353 fi
3354
3355 dnl
3356 dnl  Vorbis plugin
3357 dnl
3358 PKG_ENABLE_MODULES_VLC([VORBIS], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3359
3360 dnl
3361 dnl  Tremor plugin
3362 dnl
3363 AC_ARG_ENABLE(tremor,
3364   [  --enable-tremor         Tremor decoder support (default disabled)])
3365 if test "${enable_tremor}" = "yes"
3366 then
3367   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3368     VLC_ADD_PLUGIN([tremor])
3369     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3370    ],[])
3371 fi
3372
3373 dnl
3374 dnl  Speex plugin
3375 dnl
3376 PKG_ENABLE_MODULES_VLC([SPEEX], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3377
3378 dnl
3379 dnl  tarkin decoder plugin
3380 dnl
3381 AC_ARG_ENABLE(tarkin,
3382 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3383 if test "${enable_tarkin}" = "yes"
3384 then
3385   AC_ARG_WITH(tarkin-tree,
3386   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3387   if test -n "${with_tarkin_tree}"
3388   then
3389     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3390     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3391     if test -f "${real_tarkin_tree}/tarkin.o"
3392     then
3393       VLC_ADD_PLUGIN([tarkin])
3394       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3395       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])
3396       AC_MSG_RESULT(yes)
3397     else
3398       dnl  The given tarkin tree wasn't built
3399       AC_MSG_RESULT(no)
3400       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3401                     make sure you compiled tarkin in ${with_tarkin_tree}])
3402     fi
3403   fi
3404 fi
3405
3406 dnl
3407 dnl  theora decoder plugin
3408 dnl
3409 PKG_ENABLE_MODULES_VLC([THEORA], [ogg theora >= 1.0], [experimental theora codec], [auto])
3410
3411 dnl
3412 dnl  dirac encoder plugin
3413 dnl
3414 PKG_ENABLE_MODULES_VLC([DIRAC], [dirac >= 0.10.0], [dirac encoder], [auto], [], [ -lstdc++])
3415
3416 dnl
3417 dnl  schroedinger decoder plugin (for dirac format video)
3418 dnl
3419 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3420
3421 dnl
3422 dnl  PNG decoder module
3423 dnl
3424 AC_ARG_ENABLE(png,
3425   [  --enable-png            PNG support (default enabled)])
3426 if test "${enable_png}" != "no"; then
3427 AC_CHECK_HEADERS(png.h, [
3428   LDFLAGS="${LDFLAGS_save} -lz"
3429   AC_CHECK_LIB(png, png_set_rows, [
3430     VLC_ADD_LIBS([png],[-lpng -lz])
3431     VLC_ADD_PLUGIN([png])
3432     VLC_ADD_PLUGIN([osdmenu])
3433     VLC_ADD_PLUGIN([osd_parser])
3434     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3435     [],[-lz])
3436     LDFLAGS="${LDFLAGS_save}"
3437   ])
3438 fi
3439 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3440
3441 dnl
3442 dnl H264 encoder plugin (using libx264)
3443 dnl
3444 AC_ARG_ENABLE(x264,
3445   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3446 if test "${enable_x264}" != "no"; then
3447   AC_ARG_WITH(x264-tree,
3448     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3449   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3450   then
3451     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3452     if test -z "${real_x264_tree}"
3453     then
3454       dnl  The given directory can't be found
3455       AC_MSG_RESULT(no)
3456       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3457     fi
3458     dnl  Use a custom libx264
3459     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3460     if test -f ${real_x264_tree}/x264.h
3461     then
3462       AC_MSG_RESULT(yes)
3463       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3464       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3465       PKG_CHECK_MODULES(X264,x264, [
3466         VLC_ADD_PLUGIN([x264])
3467         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3468         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3469         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3470           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3471         fi
3472       ],[
3473         AC_MSG_ERROR([the specified tree hasn't been compiled])
3474       ])
3475       LDFLAGS="${LDFLAGS_save}"
3476     else
3477       AC_MSG_RESULT(no)
3478       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3479     fi
3480   else
3481       PKG_CHECK_MODULES(X264,x264, [
3482         VLC_ADD_PLUGIN([x264])
3483         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3484
3485         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3486           [ac_cv_ld_bsymbolic],
3487           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3488             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3489             LDFLAGS="${LDFLAGS_save}"
3490           ])
3491         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3492           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3493         ])
3494
3495         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3496         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3497           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3498         fi
3499       ],[
3500         if test "${enable_x264}" = "yes"; then
3501             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3502           fi
3503       ])
3504     LDFLAGS="${LDFLAGS_save}"
3505   fi
3506 fi
3507
3508 dnl
3509 dnl libfluidsynth (MIDI synthetizer) plugin
3510 dnl
3511 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3512
3513 dnl
3514 dnl Teletext Modules
3515 dnl vbi decoder plugin (using libzbvi)
3516 dnl telx module
3517 dnl uncompatible
3518 dnl
3519 AC_ARG_ENABLE(zvbi,
3520   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3521                   libzvbi (default enabled)]))
3522 AC_ARG_ENABLE(telx,
3523   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3524                   zvbi) (default enabled if zvbi is absent)]))
3525
3526 AS_IF( [test "${enable_zvbi}" != "no"],[
3527     PKG_CHECK_MODULES(ZVBI,
3528         zvbi-0.2 >= 0.2.25,
3529         [
3530           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3531           if test "${SYS}" = "mingw32"; then
3532               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3533           fi
3534           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3535           VLC_ADD_PLUGIN([zvbi])
3536           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3537           AS_IF( [test "${enable_telx}" = "yes"],[
3538                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3539                                Using zvbi.])
3540                   ])
3541         ],[
3542           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3543         ])
3544     ])
3545 AS_IF( [test "${enable_telx}" != "no" ],[
3546   VLC_ADD_PLUGIN([telx])
3547   ])
3548
3549 dnl
3550 dnl libass subtitle rendering module
3551 dnl
3552 AC_ARG_ENABLE(libass,
3553   [  --enable-libass         Subtitle support using libass (default disabled)])
3554 AS_IF( [test "${enable_libass}" = "yes"], [
3555   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3556       [
3557         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3558         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3559         VLC_ADD_PLUGIN([libass])
3560
3561         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3562           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3563         if test "${SYS}" = "mingw32"; then
3564            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz])
3565         else
3566            VLC_ADD_LIBS([libass],[-lfontconfig])
3567         fi
3568        ])
3569       ],[
3570         AC_MSG_WARN([LIBASS library not found])
3571       ])
3572   ])
3573
3574 dnl
3575 dnl asa demuxer
3576 dnl
3577 AC_ARG_ENABLE(asademux,
3578   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3579 AS_IF( [test "${enable_asademux}" = "yes"], [
3580   PKG_CHECK_MODULES(PCRE,
3581       libpcre >= 6.5,
3582       [
3583         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3584         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3585         if test "${SYS}" = "mingw32"; then
3586             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3587         fi
3588         VLC_ADD_PLUGIN([asademux])
3589       ],[
3590         AC_MSG_WARN([PCRE library not found (required for asademux)])
3591       ])
3592   ])
3593
3594 dnl
3595 dnl  CMML plugin
3596 dnl
3597 AC_ARG_ENABLE(cmml,
3598   [  --enable-cmml           CMML support (default enabled)])
3599 if test "${enable_cmml}" != "no"
3600 then
3601   VLC_ADD_PLUGIN([cmml])
3602 fi
3603
3604 dnl
3605 dnl  kate decoder plugin
3606 dnl
3607 AC_ARG_ENABLE(kate,
3608 [  --enable-kate           kate codec (default enabled)])
3609 AS_IF([test "${enable_kate}" != "no"], [
3610   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3611       VLC_ADD_PLUGIN([kate])
3612       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3613       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3614         AC_CHECK_HEADERS(kate/kate.h, [
3615           AC_CHECK_LIB(kate, kate_decode_init, [
3616             VLC_ADD_PLUGIN([kate])
3617             kate_libs="-lkate -logg"
3618             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3619             AS_IF([test "x${enable_kate}" != "x"], [
3620               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3621               You also need to check that you have a libogg posterior to the 1.0 release.])
3622             ])
3623           ], [-lkate -logg])
3624         ],[
3625           AS_IF([test "x${enable_kate}" != "x"], [
3626             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3627             You also need to check that you have a libogg posterior to the 1.0 release.])
3628           ])
3629         ])
3630   ])
3631 ])
3632
3633
3634 dnl
3635 dnl  tiger decoder plugin
3636 dnl
3637 PKG_ENABLE_MODULES_VLC([TIGER], [tiger >= 0.3.1], [Tiger rendering library for Kate streams],[auto])
3638
3639
3640 dnl
3641 dnl  Video plugins
3642 dnl
3643
3644 AC_ARG_WITH(,[Video plugins:])
3645
3646 dnl
3647 dnl  Xlib
3648 dnl
3649
3650 AC_PATH_XTRA()
3651 AC_ARG_ENABLE(x11,
3652   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3653   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3654     enable_x11="yes"
3655   ], [
3656     enable_x11="no"
3657   ])
3658 ])
3659
3660 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3661
3662 AS_IF([test "${enable_x11}" != "no"], [
3663   AC_CHECK_HEADERS(X11/Xlib.h, [
3664     VLC_ADD_PLUGIN([x11])
3665     VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3666     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3667
3668     AC_CHECK_LIB(Xext, XShmAttach, [VLC_ADD_LIBS([x11],[-lXext])])
3669   ])
3670
3671 dnl Check for DPMS
3672   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3673     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3674     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3675       AC_MSG_RESULT(yes)
3676       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3677                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3678     ],[
3679       AC_MSG_RESULT(no)
3680     ])
3681   ],,[
3682     #include <X11/Xlib.h>
3683   ])
3684 ])
3685
3686 dnl
3687 dnl  XVideo module
3688 dnl  (enabled by default except on win32)
3689 dnl
3690 AC_ARG_ENABLE(xvideo,
3691   [  --enable-xvideo         XVideo support (default enabled)],, [
3692     enable_xvideo="$enable_x11"
3693 ])
3694 AS_IF([test "${enable_xvideo}" != "no"], [
3695   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3696     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3697     AC_CHECK_LIB(Xv,XvPutImage,[
3698         VLC_ADD_PLUGIN([xvideo])
3699         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3700         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3701     ])
3702     CFLAGS="${CFLAGS_save}"
3703   ])
3704 ])
3705
3706 dnl
3707 dnl  GLX module
3708 dnl  (enabled by default except on win32)
3709 dnl
3710 AC_ARG_ENABLE(glx,
3711   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3712   enable_glx="$enable_x11"
3713 ])
3714 AS_IF([test "${enable_glx}" != "no"], [
3715   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3716   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3717     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3718     choke me
3719     #endif]]),
3720     [
3721       VLC_ADD_PLUGIN([glx])
3722       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3723       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3724     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3725 ])
3726
3727 dnl
3728 dnl  XVMC module
3729 dnl  (disabled by default except on win32)
3730 dnl
3731 AC_ARG_ENABLE(xvmc,
3732   [  --enable-xvmc           XvMC support (default disabled)],, [
3733   enable_xvmc="no"
3734 ])
3735 AS_IF([test "${enable_xvmc}" != "no"], [
3736   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3737     VLC_ADD_PLUGIN([xvmc])
3738     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3739     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3740   ], [
3741     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3742   ])
3743 ])
3744
3745 dnl
3746 dnl  Check for the Xinerama extension
3747 dnl
3748 AC_ARG_ENABLE(xinerama,
3749   [  --enable-xinerama       Xinerama support (default enabled)],, [
3750   enable_xinerama="$enable_xvideo"
3751 ])
3752 AS_IF([test "$enable_xinerama" != "no"], [
3753   ac_cv_have_xinerama="no"
3754   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3755   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3756     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3757       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3758       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3759       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3760       VLC_ADD_LIBS([xvmc],[-lXinerama_pic])
3761       ac_cv_have_xinerama="yes"
3762     ],[
3763       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3764         VLC_ADD_LIBS([xvideo],[-lXinerama])
3765         VLC_ADD_LIBS([x11],[-lXinerama])
3766         VLC_ADD_LIBS([glx],[-lXinerama])
3767         VLC_ADD_LIBS([xvmc],[-lXinerama])
3768         ac_cv_have_xinerama="yes"
3769       ])
3770     ])
3771   ])
3772   if test "${ac_cv_have_xinerama}" = "yes"; then
3773     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3774   fi
3775
3776 dnl
3777 dnl  Check for XF86VidMode extension
3778 dnl
3779   ac_cv_have_xf86vidmode="no"
3780   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3781     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3782       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
3783       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
3784       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
3785       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
3786       ac_cv_have_xf86vidmode="yes"
3787     ],[
3788       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3789         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
3790         VLC_ADD_LIBS([x11],[-lXxf86vm])
3791         VLC_ADD_LIBS([glx],[-lXxf86vm])
3792         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
3793         ac_cv_have_xf86vidmode="yes"
3794       ])
3795     ])
3796   ],[true],
3797 [#ifdef HAVE_X11_XLIB_H
3798 # include <X11/Xlib.h>
3799 #endif]
3800    )
3801   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3802     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3803   ])
3804   CFLAGS="${CFLAGS_save}"
3805 ])
3806
3807 dnl End of Xlib tests
3808 CPPFLAGS="${CPPFLAGS_save}"
3809
3810
3811 dnl
3812 dnl  X C Bindings modules
3813 dnl
3814 AC_ARG_ENABLE(xcb,
3815   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3816   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3817     enable_xcb="yes"
3818   ], [
3819     enable_xcb="no"
3820   ])
3821 ])
3822
3823 AS_IF([test "${enable_xcb}" != "no"], [
3824   PKG_CHECK_MODULES(XPROTO, [xproto])
3825
3826   dnl libxcb
3827   PKG_CHECK_MODULES(XCB, [xcb])
3828   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3829   VLC_ADD_PLUGIN([xcb])
3830   VLC_ADD_PLUGIN([xcb_screen])
3831
3832   AS_IF([test "${enable_xvideo}" != "no"], [
3833     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3834       VLC_ADD_PLUGIN([xcb_xv])
3835     ], [
3836       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3837         VLC_ADD_PLUGIN([xcb_xv])
3838         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3839       ])
3840     ])
3841   ])
3842
3843   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3844     VLC_ADD_PLUGIN([panoramix])
3845     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3846     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3847   ], [true])
3848
3849   dnl xcb-utils
3850   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
3851
3852   VLC_ADD_PLUGIN([xcb_window])
3853   VLC_ADD_PLUGIN([globalhotkeys])
3854   VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
3855   VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
3856 ])
3857
3858
3859 dnl
3860 dnl  OpenGL module
3861 dnl  (enabled by default except on beos)
3862 dnl
3863 AC_ARG_ENABLE(opengl,
3864   [  --enable-opengl         OpenGL support (default enabled)])
3865 if test "${enable_opengl}" != "no" &&
3866    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3867   if test "${SYS}" != "darwin"; then
3868     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3869       VLC_ADD_PLUGIN([opengl])
3870       if test "${SYS}" != "mingw32"; then
3871         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3872       else
3873         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3874       fi
3875     ])
3876   else
3877     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3878     VLC_ADD_PLUGIN([opengl])
3879     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3880   fi
3881 fi
3882
3883 dnl
3884 dnl  SDL module
3885 dnl
3886 AC_ARG_ENABLE(sdl,
3887   [  --enable-sdl            SDL support (default enabled)])
3888 AC_ARG_ENABLE(sdl-image,
3889   [  --enable-sdl-image      SDL image support (default enabled)])
3890 if test "${enable_sdl}" != "no"
3891 then
3892   SDL_PATH="${PATH}"
3893   AC_ARG_WITH(sdl-config-path,
3894     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3895     [ if test "${with_sdl_config_path}" != "no"
3896       then
3897         SDL_PATH="${with_sdl_config_path}:${PATH}"
3898       fi ])
3899   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3900   SDL_CONFIG="${SDL12_CONFIG}"
3901   SDL_HEADER="SDL12/SDL.h"
3902   SDL_IMAGE="SDL12/SDL_image.h"
3903   if test "${SDL_CONFIG}" = "no"
3904   then
3905     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3906     SDL_CONFIG=${SDL11_CONFIG}
3907     SDL_HEADER="SDL11/SDL.h"
3908     SDL_IMAGE="SDL11/SDL_image.h"
3909   fi
3910   if test "${SDL_CONFIG}" = "no"
3911   then
3912     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3913     SDL_HEADER="SDL/SDL.h"
3914     SDL_IMAGE="SDL/SDL_image.h"
3915   fi
3916   # check for cross-compiling
3917   SDL_PREFIX=
3918   AC_ARG_WITH(sdl-prefix,
3919     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3920                                e.g use as:
3921                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3922   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3923   then
3924     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3925   fi
3926   if test "${SDL_CONFIG}" != "no"
3927   then
3928     # SDL on Darwin is heavily patched and can only run SDL_image
3929     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3930       VLC_ADD_PLUGIN([vout_sdl])
3931       VLC_ADD_PLUGIN([aout_sdl])
3932     fi
3933     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3934     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3935     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3936     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3937       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3938       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3939           As a last resort we also test for SDL.h presence),
3940       [ AC_MSG_ERROR([The development package for SDL is not installed.
3941 Please install it and try again. Alternatively you can also configure with
3942 --disable-sdl.])
3943       ])])
3944     AS_IF([ test "${enable_sdl_image}" != "no"],[
3945       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3946         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3947         VLC_ADD_PLUGIN([sdl_image])
3948         AC_CHECK_LIB(png, png_set_rows,
3949           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3950         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3951           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3952         AC_CHECK_LIB(tiff, TIFFClientOpen,
3953           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3954         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3955         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3956             As a last resort we also test for SDL_image.h presence),
3957         [ AC_MSG_WARN([The development package for SDL_image is not installed.
3958   You should install it alongside your SDL package.])
3959         ])])
3960     ])
3961     CPPFLAGS="${CPPFLAGS_save}"
3962     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3963     then
3964       AC_MSG_ERROR([The development package for SDL is not installed.
3965 Please install it and try again. Alternatively you can also configure with
3966 --disable-sdl.])
3967     fi
3968
3969   elif test "${enable_sdl}" =  "yes"
3970   then
3971     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3972 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3973     ])
3974   fi
3975 fi
3976
3977 dnl
3978 dnl  freetype module
3979 dnl
3980 AC_ARG_ENABLE(freetype,
3981   [  --enable-freetype       freetype support (default enabled)])
3982 AC_ARG_ENABLE(fribidi,
3983   [  --enable-fribidi        fribidi support (default enabled)])
3984 AC_ARG_ENABLE(fontconfig,
3985   [  --enable-fontconfig,    fontconfig support (default enabled)])
3986 if test "${enable_freetype}" != "no"
3987 then
3988    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3989       VLC_ADD_PLUGIN([freetype])
3990       have_freetype=yes
3991       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3992       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3993       if test "${SYS}" = "mingw32"; then
3994         VLC_ADD_LIBS([skins2],[-lxml2])
3995         VLC_ADD_LIBS([freetype],[-liconv])
3996       fi
3997       if test "${enable_fontconfig}" != "no"
3998       then
3999         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4000           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4001            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4002         AC_CHECK_HEADERS(Carbon/Carbon.h,
4003           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4004       fi
4005   ],[
4006   have_freetype=no
4007   AS_IF([ test "${enable_freetype}" =  "yes"],[
4008     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4009 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4010       ])
4011     ])
4012   ])
4013
4014   dnl fribidi support
4015   if test "${enable_fribidi}" != "no"
4016   then
4017     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4018       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4019       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4020     ])
4021     fi
4022 fi
4023
4024 dnl
4025 dnl  libxml2 module
4026 dnl
4027 AC_ARG_ENABLE(libxml2,
4028   [  --enable-libxml2        libxml2 support (default enabled)])
4029 AS_IF([test "${enable_libxml2}" != "no"], [
4030   PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5], [
4031     VLC_ADD_CPPFLAGS([xml],[${XML2_CFLAGS}])
4032     VLC_ADD_LIBS([xml],[${XML2_LIBS}])
4033     VLC_ADD_PLUGIN([xml])
4034   ], [
4035     AS_IF([test "x${enable_xml2}" != "x"], [
4036       AC_MSG_ERROR([Could not find libxml version 2.5 or higher])
4037     ])
4038   ])
4039 ])
4040
4041 dnl
4042 dnl  SVG module
4043 dnl
4044 PKG_ENABLE_MODULES_VLC([SVG], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
4045
4046 dnl
4047 dnl Snapshot vout module (with cache)
4048 dnl
4049 AC_ARG_ENABLE(snapshot,
4050   [  --enable-snapshot       snapshot module (default disabled)])
4051 if test "${enable_snapshot}" = "yes"
4052 then
4053   VLC_ADD_PLUGIN([snapshot])
4054 fi
4055
4056 dnl
4057 dnl  Qt Embedded module
4058 dnl  (disabled by default)
4059 dnl
4060 AC_ARG_ENABLE(qte,
4061   [  --enable-qte            QT Embedded support (default disabled)])
4062 if test "${enable_qte}" = "yes"
4063 then
4064   AC_ARG_WITH(qte,
4065   [    --with-qte=PATH       Qt Embedded headers and libraries])
4066   if test "${with_qte}" != "no" -a -n "${with_qte}"
4067   then
4068     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4069     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])
4070   else
4071     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4072     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4073   fi
4074   VLC_ADD_PLUGIN([qte])
4075   NEED_QTE_MAIN=yes
4076   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4077   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4078     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4079   ] )
4080   CPPFLAGS="${CPPFLAGS_save}"
4081 fi
4082
4083 dnl
4084 dnl Roku HD1000 Video output module
4085 dnl
4086 AC_ARG_ENABLE(hd1000v,
4087   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4088 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4089   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4090    test "${enable_hd1000v}" = "yes"); then
4091   AC_LANG_PUSH([C++])
4092   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4093   [
4094     can_build_roku="yes"
4095   ],
4096   [
4097     can_build_roku="no"
4098     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4099   ])
4100   if test "$can_build_roku" = "yes"
4101   then
4102     VLC_ADD_PLUGIN([hd1000v])
4103     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4104   fi
4105   AC_LANG_POP([C++])
4106 fi
4107
4108 dnl
4109 dnl  Windows DirectX module
4110 dnl
4111
4112 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4113 then
4114   VLC_ADD_PLUGIN([panoramix])
4115 fi
4116
4117 AC_ARG_ENABLE(directx,
4118   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4119 if test "${enable_directx}" != "no"
4120 then
4121   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4122   then
4123     AC_ARG_WITH(directx,
4124     [    --with-directx=PATH   Win32 DirectX headers])
4125     if test -z "${with_directx}"
4126     then
4127       AC_CHECK_HEADERS(ddraw.h,
4128       [ VLC_ADD_PLUGIN([directx])
4129         VLC_ADD_PLUGIN([aout_directx])
4130         VLC_ADD_LIBS([directx],[-lgdi32])
4131       ])
4132       AC_CHECK_HEADERS(GL/gl.h,
4133       [ VLC_ADD_PLUGIN([glwin32])
4134         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4135       ])
4136       AC_CHECK_HEADERS(d3d9.h,
4137       [ VLC_ADD_PLUGIN([direct3d])
4138         VLC_ADD_LIBS([direct3d],[-lgdi32])
4139       ])
4140     else
4141       AC_MSG_CHECKING(for directX headers in ${with_directx})
4142       if test -f ${with_directx}/ddraw.h
4143       then
4144         VLC_ADD_PLUGIN([directx])
4145         VLC_ADD_PLUGIN([aout_directx])
4146         VLC_ADD_CPPFLAGS([directx aout_directx],[-I${with_directx}])
4147         VLC_ADD_LIBS([directx],[-lgdi32])
4148         AC_MSG_RESULT(yes)
4149       else
4150         AC_MSG_RESULT(no)
4151         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4152       fi
4153     fi
4154   fi
4155 fi
4156
4157 dnl
4158 dnl  Linux framebuffer module
4159 dnl
4160 AC_ARG_ENABLE(fb,
4161   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4162     if test "${enable_fb}" != "no"
4163     then
4164       AC_CHECK_HEADERS(linux/fb.h, [
4165         VLC_ADD_PLUGIN([fb])
4166       ])
4167     fi
4168
4169 dnl
4170 dnl  Linux MGA module
4171 dnl
4172 AC_ARG_ENABLE(mga,
4173   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4174   [ if test "${enable_mga}" = "yes"
4175     then
4176       VLC_ADD_PLUGIN([mga])
4177     fi ])
4178
4179 dnl
4180 dnl  OMAP Framebuffer module
4181 dnl
4182 AC_ARG_ENABLE(omapfb,
4183   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4184     if test "${enable_omapfb}" = "yes"
4185     then
4186       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4187         VLC_ADD_PLUGIN([omapfb])
4188         AC_CHECK_HEADERS(X11/Xlib.h, [
4189           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4190       ])
4191     fi
4192
4193 dnl
4194 dnl  SVGAlib module
4195 dnl
4196 AC_ARG_ENABLE(svgalib,
4197   [  --enable-svgalib        SVGAlib support (default disabled)])
4198 if test "${enable_svgalib}" = "yes"
4199 then
4200   VLC_ADD_PLUGIN([svgalib])
4201   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4202 fi
4203
4204 dnl
4205 dnl  DirectFB module
4206 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4207 dnl  TODO: support for static linking
4208 dnl
4209 AC_ARG_ENABLE(directfb,
4210   [  --enable-directfb       DirectFB support (default disabled)])
4211 AC_ARG_WITH(directfb,
4212   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4213
4214 if test "${enable_directfb}" = "yes"; then
4215     have_directfb="false"
4216     CPPFLAGS_mydirectfb=
4217     LIBS_mydirectfb=
4218     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4219         dnl Trying the given location
4220         CPPFLAGS_save="${CPPFLAGS}"
4221         LIBS_save="${LIBS}"
4222
4223         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4224         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4225         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4226
4227         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4228         LIBS="${LIBS} ${LIBS_new}"
4229
4230         dnl FIXME: too obscure
4231         AC_CHECK_HEADER([directfb.h], [
4232             AC_CHECK_LIB([direct],[direct_initialize], [
4233                 AC_CHECK_LIB([fusion], [fusion_enter], [
4234                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4235                 ], have_directfb="false")
4236             ], have_directfb="false")
4237         ], have_directfb="false")
4238
4239         dnl Restore flags
4240         CPPFLAGS="${CPPFLAGS_save}"
4241         LIBS="${LIBS_save}"
4242
4243         if test "${have_directfb}" = "true"; then
4244             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4245             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4246         fi
4247     else
4248         dnl Look for directfb-config
4249         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4250         if test "${DIRECTFB_CONFIG}" != "no"; then
4251             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4252             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4253             have_directfb="true"
4254         else
4255             dnl Trying with pkg-config
4256             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4257                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4258                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4259                 have_directfb="true"
4260                 ], [have_directfb="false"])
4261         fi
4262     fi
4263     if test "${have_directfb}" = "true"; then
4264         VLC_ADD_PLUGIN([directfb])
4265         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4266         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4267     else
4268         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4269     fi
4270 fi
4271
4272
4273
4274 dnl
4275 dnl  GGI module
4276 dnl
4277 AC_ARG_ENABLE(ggi,
4278   [  --enable-ggi            GGI support (default disabled)])
4279 if test "${enable_ggi}" = "yes"
4280 then
4281   AC_CHECK_HEADER([ggi/ggi.h],[
4282     VLC_ADD_PLUGIN([ggi])
4283     VLC_ADD_LIBS([ggi],[-lggi])
4284     AC_ARG_WITH(ggi,
4285       [    --with-ggi=PATH       path to libggi],
4286       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4287         then
4288           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4289           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4290         fi ])
4291     ],[
4292        AC_MSG_ERROR([LibGGI development files can't be found])
4293     ])
4294 fi
4295
4296 dnl
4297 dnl  AA plugin
4298 dnl
4299 AC_ARG_ENABLE(aa,
4300   [  --enable-aa             aalib output (default disabled)])
4301 if test "${enable_aa}" = "yes"
4302 then
4303   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4304   if test "${have_aa}" = "true"
4305   then
4306     VLC_ADD_PLUGIN([aa])
4307     VLC_ADD_LIBS([aa],[-laa])
4308   fi
4309 fi
4310
4311 dnl
4312 dnl  libcaca plugin
4313 dnl
4314 AC_ARG_ENABLE(caca,
4315   [  --enable-caca           libcaca output (default disabled)])
4316 if test "${enable_caca}" = "yes"
4317 then
4318   CACA_PATH="${PATH}"
4319   AC_ARG_WITH(caca-config-path,
4320     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4321     [ if test "${with_caca_config_path}" != "no"
4322       then
4323         CACA_PATH="${with_caca_config_path}:${PATH}"
4324       fi ])
4325   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4326   if test "${CACA_CONFIG}" != "no"
4327   then
4328     VLC_ADD_PLUGIN([caca])
4329     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4330     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4331     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4332                                         caca_event_t ev;]],
4333                                         [[ev.type = 0;]]
4334                        )],
4335                        [],
4336       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4337     )
4338   fi
4339 fi
4340
4341 dnl
4342 dnl  win32 GDI plugin
4343 dnl
4344 AC_ARG_ENABLE(wingdi,
4345   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4346 if test "${enable_wingdi}" != "no"; then
4347   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4348     VLC_ADD_PLUGIN([wingdi])
4349     VLC_ADD_LIBS([wingdi],[-lgdi32])
4350   fi
4351   if test "${SYS}" = "mingwce"; then
4352     VLC_ADD_PLUGIN([wingdi])
4353     VLC_ADD_PLUGIN([wingapi])
4354     VLC_ADD_LIBS([wingdi],[-laygshell])
4355     VLC_ADD_LIBS([wingapi],[-laygshell])
4356   fi
4357 fi
4358
4359 dnl
4360 dnl  Audio plugins
4361 dnl
4362
4363 AC_ARG_WITH(,[Audio plugins:])
4364
4365 dnl
4366 dnl  OSS /dev/dsp module (enabled by default except on win32)
4367 dnl
4368 AC_ARG_ENABLE(oss,
4369   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4370
4371 if test "${enable_oss}" != "no" &&
4372   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4373    test "${enable_oss}" = "yes")
4374 then
4375   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4376     VLC_ADD_PLUGIN([oss])
4377     VLC_ADD_PLUGIN([access_oss])
4378     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4379   ])
4380 fi
4381
4382 dnl
4383 dnl  Pulseaudio module
4384 dnl
4385 PKG_ENABLE_MODULES_VLC([PULSE], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4386
4387 dnl
4388 dnl  Portaudio module
4389 dnl
4390 AC_ARG_ENABLE(portaudio,
4391   [  --enable-portaudio      Portaudio library support (default disabled)],
4392   [if test "${enable_portaudio}" = "yes"
4393    then
4394      VLC_ADD_PLUGIN([portaudio])
4395      VLC_ADD_CXXFLAGS([portaudio],[])
4396      if test "${SYS}" = "mingw32"; then
4397         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4398      else
4399         VLC_ADD_LIBS([portaudio],[-lportaudio])
4400      fi
4401    fi])
4402
4403 dnl
4404 dnl  ALSA module
4405 dnl
4406 AC_ARG_ENABLE(alsa,
4407   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4408 if test "${enable_alsa}" != "no"
4409 then
4410   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4411   if test "${have_alsa}" = "true"
4412   then
4413     CFLAGS="${CFLAGS_save}"
4414     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4415                     #define ALSA_PCM_NEW_SW_PARAMS_API
4416                     #include <alsa/asoundlib.h>],
4417        [snd_pcm_hw_params_get_period_time(0,0,0);],
4418         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4419     VLC_ADD_PLUGIN([alsa])
4420     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4421     VLC_ADD_PLUGIN([access_alsa])
4422     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4423   else
4424     if test "${enable_alsa}" = "yes"; then
4425       AC_MSG_ERROR([Could not find ALSA development headers])
4426     fi
4427   fi
4428 fi
4429
4430 dnl
4431 dnl  win32 waveOut plugin
4432 dnl
4433 AC_ARG_ENABLE(waveout,
4434   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4435 if test "${enable_waveout}" != "no"; then
4436   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4437     VLC_ADD_PLUGIN([waveout])
4438     VLC_ADD_LIBS([waveout],[-lwinmm])
4439   fi
4440   if test "${SYS}" = "mingwce"; then
4441     VLC_ADD_PLUGIN([waveout])
4442   fi
4443 fi
4444
4445 dnl
4446 dnl  CoreAudio plugin
4447 dnl
4448 AC_ARG_ENABLE(macosx-audio,
4449   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4450 if test "${enable_macosx-audio}" != "no" &&
4451   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4452 then
4453   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4454     [ VLC_ADD_PLUGIN([auhal])
4455       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4456     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4457 fi
4458
4459 dnl
4460 dnl  Roku HD1000 audio
4461 dnl
4462 AC_ARG_ENABLE(hd1000a,
4463   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4464 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4465   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4466    test "${enable_hd1000a}" = "yes")
4467 then
4468   AC_LANG_PUSH([C++])
4469   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4470     VLC_ADD_PLUGIN([hd1000a])
4471     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4472   AC_LANG_POP([C++])
4473 fi
4474
4475 dnl
4476 dnl  JACK modules
4477 dnl
4478 AC_ARG_ENABLE(jack,
4479  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4480  [enable_jack="no"])
4481
4482 AS_IF([test "${enable_jack}" != "no"], [
4483   AC_CHECK_HEADERS(jack/jack.h, [
4484     VLC_ADD_PLUGIN([access_jack])
4485     VLC_ADD_PLUGIN([jack])
4486     VLC_ADD_LIBS([access_jack jack],[-ljack])
4487   ],[AC_MSG_ERROR([cannot find JACK headers])])
4488 ])
4489
4490 dnl
4491 dnl  CyberLink for C++ UPnP stack
4492 dnl
4493 AC_ARG_ENABLE(cyberlink,
4494   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])