Remove access filter record from build system.
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc, 1.0.0)
4 VERSION_MAJOR="1"
5 VERSION_MINOR="0"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="-git"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Goldeneye"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59c)
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE(tar-ustar)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Deprecated options
34 dnl  to notify packagers that stuff has changed
35 dnl
36 AC_ARG_ENABLE(python-bindings,
37   [  --enable-python-bindings Always fails for historical reasons)],,
38   [enable_python_bindings="no"])
39 AS_IF([test "${enable_python_bindings}" != "no"], [
40   AC_MSG_ERROR([Python bindings are now built from a separate source package])
41 ])
42
43 AC_ARG_ENABLE(java-bindings,
44   [  --enable-java-bindings  Always fails for historical reasons],,
45   [enable_java_bindings="no"])
46 AS_IF([test "${enable_java_bindings}" != "no"], [
47   AC_MSG_ERROR([Java bindings are now built from a separate source package])
48 ])
49
50 dnl
51 dnl  Save *FLAGS
52 dnl
53 VLC_SAVE_FLAGS
54
55 dnl
56 dnl Check for tools
57 dnl
58 AC_PROG_CC_C99
59 AC_USE_SYSTEM_EXTENSIONS
60 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
61 AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
62
63 AM_PROG_CC_C_O
64 AC_PROG_CXX
65 AC_PROG_CPP
66 AC_PROG_OBJC
67 _AM_DEPENDENCIES([OBJC])
68 AC_PROG_EGREP
69 AC_PROG_MAKE_SET
70 AC_PROG_INSTALL
71 AM_PROG_AS
72
73 dnl Find the right ranlib, even when cross-compiling
74 AC_CHECK_TOOL(RANLIB, ranlib, :)
75 AC_CHECK_TOOL(STRIP, strip, :)
76 AC_CHECK_TOOL(AR, ar, :)
77 AC_CHECK_TOOL(LD, ld, :)
78 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
79
80 dnl Check for compiler properties
81 AC_C_CONST
82 AC_C_INLINE
83 AC_C_RESTRICT
84
85 dnl Allow binary package maintainer to pass a custom string to avoid 
86 dnl cache problem
87 AC_ARG_WITH(binary-version, 
88         AS_HELP_STRING([--with-binary-version=STRING],
89              [To avoid plugins cache problem between binary version]),[],[])
90 AS_IF([test -n "${with_binary_version}"],[
91       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
92                          [Binary specific version])
93       ])
94
95
96 dnl
97 dnl  Check for the contrib directory
98 dnl
99 AC_ARG_WITH(contrib,
100     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
101   AS_IF([test "${with_contrib}" != "no"],[
102     AC_MSG_CHECKING([for libs in extras/contrib])
103     topdir="`dirname $0`"
104     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
105        topdir="`pwd`/$topdir"
106     fi
107   AS_IF([test -d ${topdir}/extras/contrib/lib],[
108    AS_IF([test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
109       if test "${with_contrib}" = "yes"; then
110         AC_MSG_RESULT([no])
111         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
112       else
113         AC_MSG_RESULT([no])
114         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
115       fi
116      ],[
117     AC_MSG_RESULT([yes])
118     export PATH=${topdir}/extras/contrib/bin:$PATH
119     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
120     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
121     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
122     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
123     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
124     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
125     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
126     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
127     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
128         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
129     else
130         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
131     fi
132     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
133     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
134
135     if test -z $with_mozilla_sdk_path; then
136        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
137     fi
138     if test -z $with_cyberlink_tree; then
139        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
140     fi
141
142     if test ".`uname -s`" = ".Darwin"; then
143       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
144       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
145     elif test ".`uname -s`" = ".BeOS"; then
146       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
147       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
148     fi
149     ])
150   ],[
151     AC_MSG_RESULT([no])
152   ])
153 ])
154 dnl
155 dnl  Set default values
156 dnl
157 LDFLAGS_vlc="${LDFLAGS}"
158
159 dnl
160 dnl  Check the operating system
161 dnl
162 case "${host_os}" in
163   "")
164     SYS=unknown
165     ;;
166   linux*)
167     SYS=linux
168     ;;
169   bsdi*)
170     SYS=bsdi
171     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
172     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
173     ;;
174   *bsd*)
175     SYS="${host_os}"
176     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
177     case "${host_os}" in
178       freebsd*)
179         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
180         CPPFLAGS="${CPPFLAGS_save}"
181         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
182         LDFLAGS="${LDFLAGS_save}"
183         ;;
184     esac
185     ;;
186   darwin*)
187     SYS=darwin
188     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
189     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
190     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
191     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
192     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
193     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
194     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
195     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
196     VLC_ADD_LDFLAGS([avcodec avformat swscale imgresample postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
197     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
198     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,CoreFoundation])
199     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
200     AC_ARG_ENABLE(macosx-defaults,
201       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration
202                      on Mac OS X (default enabled)]))
203     if test "x${enable_macosx_defaults}" != "xno"
204     then
205         echo ""
206         echo "Building with Mac OS X defaults:"
207         with_macosx_version_min="10.4"
208         echo "  Assuming --with-macosx-version-min=10.4"
209         build_dir=`pwd`
210         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
211         ac_default_prefix="${build_dir}/vlc_install_dir"
212         enable_macosx="yes"
213         echo "  Assuming --enable-macosx"
214         enable_faad="yes"
215         echo "  Assuming --enable-faad"
216         enable_flac="yes"
217         echo "  Assuming --enable-flac"
218         enable_theora="yes"
219         echo "  Assuming --enable-theora"
220         enable_shout="yes"
221         echo "  Assuming --enable-shout"
222         enable_cddax="yes"
223         echo "  Assuming --enable-cddax"
224         enable_vcdx="yes"
225         echo "  Assuming --enable-vcdx"
226         enable_caca="yes"
227         echo "  Assuming --enable-caca"
228         enable_goom="yes"
229         echo "  Assuming --enable-goom"
230         enable_ncurses="yes"
231         echo "  Assuming --enable-ncurses"
232         enable_twolame="yes"
233         echo "  Assuming --enable-twolame"
234         enable_realrtsp="yes"
235         echo "  Assuming --enable-realrtsp"
236         enable_update_check="yes"
237         echo "  Assuming --enable-update-check"
238         enable_libass="yes"
239         echo "  Assuming --enable-libass"
240         enable_asademux="yes"
241         echo "  Assuming --enable-asademux"
242
243         enable_skins2="no"
244         echo "  Assuming --disable-skins2"
245         enable_x11="no"
246         echo "  Assuming --disable-x11"
247         enable_glx="no"
248         echo "  Assuming --disable-glx"
249         enable_xvideo="no"
250         echo "  Assuming --disable-xvideo"
251     fi
252     if test ".`uname -p`" = ".i386"; then
253         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
254         dnl without hacking it a lot, we disable mmx and sse.
255         dnl (that bug is about ld being unable to handle
256         dnl text relocation)
257         save_cflags="$CFLAGS"
258         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
259         AC_TRY_LINK(
260             [int a;], [asm("movq _a,%mm0\n");],
261             ac_ld_does_not_support_text_reloc=no,
262             ac_ld_does_not_support_text_reloc=yes)
263         CFLAGS="$save_cflags"
264
265         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
266             enable_mmx="no"
267             echo "  Assuming --disable-mmx (due to a bug in ld)"
268             enable_sse="no"
269             echo "  Assuming --disable-sse (due to a bug in ld)"
270         fi
271     fi
272     dnl
273     dnl  Check for Mac OS X SDK settings
274     dnl
275     AC_ARG_WITH(macosx-sdk,
276        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
277     if test "${with_macosx_sdk}" != "" ; then
278         CC="${CC} -isysroot ${with_macosx_sdk}" 
279         CXX="${CXX} -isysroot ${with_macosx_sdk}"
280         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
281         LD="${LD} -syslibroot ${with_macosx_sdk}"
282     fi
283     AC_ARG_WITH(macosx-version-min,
284        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
285     if test "${with_macosx_version_min}" != "" ; then
286         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
287         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
288         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
289         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
290         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
291         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
292         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
293         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
294         export MACOSX_DEPLOYMENT_TARGET
295     fi
296     ;;
297   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
298     AC_CHECK_TOOL(WINDRES, windres, :)
299
300     case "${host_os}" in
301       *wince* | *mingwce* | *mingw32ce* | *pe*)
302         SYS=mingwce
303         ;;
304       *mingw32*)
305         SYS=mingw32
306         ;;
307       *cygwin*)
308         dnl Check if we are using the mno-cygwin mode in which case we are
309         dnl actually dealing with a mingw32 compiler.
310         AC_EGREP_CPP(yes,
311             [#ifdef WIN32
312              yes
313              #endif],
314             SYS=mingw32, SYS=cygwin)
315         ;;
316     esac
317
318     if test "${SYS}" = "mingw32"; then
319         # add ws2_32 for closesocket, select, recv
320         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
321         VLC_ADD_LDFLAGS([vlc],[-mwindows])
322         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
323         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
324         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd],[-lws2_32])
325     fi
326     if test "${SYS}" = "mingwce"; then
327         # add ws2 for closesocket, select, recv
328         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
329         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
330         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd],[-lws2])
331         VLC_ADD_LIBS([libvlc],[-lmmtimer])
332    fi
333     ;;
334   *nto*)
335     SYS=nto
336     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
337     ;;
338   solaris*)
339     SYS=solaris
340     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
341     # Perhaps it is useful other places as well? 
342     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
343     ;;
344   hpux*)
345     SYS=hpux
346     ;;
347   beos)
348     SYS=beos
349     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
350     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
351     VLC_ADD_CXXFLAGS([beos],[])
352     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
353     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
354     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
355     VLC_ADD_LIBS([access_file],[-lpoll])
356     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
357     dnl Check for BONE
358     if test -f /boot/beos/system/lib/libbind.so; then
359         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
360     else
361         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
362     fi
363
364     dnl Ugly check for Zeta
365     if test -f /boot/beos/system/lib/libzeta.so; then
366         VLC_ADD_LIBS([beos],[-lzeta])
367     fi
368     ;;
369   *)
370     SYS="${host_os}"
371     ;;
372 esac
373 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
374 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
375 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
376 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
377 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
378
379 dnl
380 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
381 dnl for program foo on win32
382
383 case "${build_os}" in
384     cygwin|msys)
385         ac_executable_extensions=".exe"
386     ;;
387     *)
388     ;;
389 esac
390
391 dnl 
392 dnl  Libtool
393 dnl  It's very bad, but our former custom system was worst
394 dnl  -- Courmisch
395 dnl
396
397 dnl override platform specific check for dependent libraries
398 dnl otherwise libtool linking of shared libraries will
399 dnl fail on anything other than pass_all.
400 AC_CACHE_VAL(lt_cv_deplibs_check_method,
401     [lt_cv_deplibs_check_method=pass_all])
402
403 AC_DISABLE_STATIC
404 dnl AC_DISABLE_FAST_INSTALL
405 AC_LIBTOOL_DLOPEN
406 AC_LIBTOOL_WIN32_DLL
407 m4_undefine([AC_PROG_F77])
408 m4_defun([AC_PROG_F77],[])
409 AC_PROG_LIBTOOL
410
411 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
412 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
413
414 lt_cv_deplibs_check_method=pass_all
415
416
417 dnl
418 dnl Gettext stuff
419 dnl
420 AM_GNU_GETTEXT_VERSION([0.17])
421 AM_GNU_GETTEXT([external])
422 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
423
424 dnl
425 dnl Iconv stuff
426 dnl
427 AM_ICONV
428 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
429 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
430
431 dnl Check for the need to include the mingwex lib for mingw32
432 if test "${SYS}" = "mingw32"
433 then
434     AC_CHECK_LIB(mingwex,opendir,
435         AC_CHECK_LIB(mingw32,opendir,,
436             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
437     )
438 fi
439
440 dnl Check for fnative-struct or mms-bitfields support for mingw32
441 if test "${SYS}" = "mingw32"
442 then
443     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
444         [ac_cv_c_mms_bitfields],
445         [CFLAGS="${CFLAGS_save} -mms-bitfields"
446          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
447     if test "${ac_cv_c_mms_bitfields}" != "no"; then
448         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
449         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
450     else
451         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
452             [ac_cv_c_fnative_struct],
453             [CFLAGS="${CFLAGS_save} -fnative-struct"
454              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
455         if test "${ac_cv_c_fnative_struct}" != "no"; then
456             CFLAGS_save="${CFLAGS_save} -fnative-struct";
457             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
458         fi
459     fi
460
461     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
462 fi
463
464 dnl Check for fvtable-thunks support for mingw32
465 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
466 then
467 AC_LANG_PUSH(C++)
468     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
469         [ac_cv_cxx_fvtable_thunks],
470         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
471          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
472                         ac_cv_cxx_fvtable_thunks=no)])
473     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
474         CXXFLAGS_mingw32_special="-fvtable-thunks"
475     fi
476
477     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
478 AC_LANG_POP(C++)
479 fi
480
481 dnl Plugin compilation stuff
482
483 VLC_LIBRARY_SUFFIX
484
485 dnl The -DSYS_FOO flag
486 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
487
488 dnl Check for system libs needed
489 need_libc=false
490
491 dnl Check for usual libc functions
492 AC_CHECK_FUNCS([gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid_r memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy strdup strndup strnlen atof lldiv posix_fadvise posix_madvise uselocale])
493 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
494 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
495 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
496 AC_FUNC_ALLOCA
497
498 AH_BOTTOM([#include <vlc_fixups.h>])
499
500 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
501
502 dnl Check for setlocal and langinfo
503 AC_CHECK_FUNCS(setlocale)
504 AC_CHECK_HEADERS(langinfo.h)
505 AC_CHECK_FUNCS(nl_langinfo)
506
507 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
508   [AC_TRY_LINK([#include <langinfo.h>],
509     [char* cs = nl_langinfo(CODESET);],
510     ac_cv_langinfo_codeset=yes,
511     ac_cv_langinfo_codeset=no)
512   ])
513 if test ${ac_cv_langinfo_codeset} = yes; then
514   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
515     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
516 fi
517
518 AC_CHECK_FUNCS(connect,,[
519   AC_CHECK_LIB(socket,connect,[
520     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
521     LIBS_socket="-lsocket"
522   ])
523 ])
524
525 AC_CHECK_FUNCS(send,,[
526   AC_CHECK_LIB(socket,send,[
527     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])
528   ])
529 ])
530
531 AC_CHECK_FUNCS(gethostbyname,,[
532   AC_CHECK_LIB(nsl,gethostbyname,[
533     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
534   ],[
535     AC_CHECK_LIB(bind,gethostbyname,[
536       VLC_ADD_LIBS([access_mms],[-lbind])
537     ])
538   ])
539 ])
540
541 AC_CHECK_HEADERS(zlib.h, [
542   VLC_ADD_LIBS([access_http],[-lz])
543 ])
544
545 dnl Check for socklen_t
546 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
547 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
548 ac_cv_type_socklen_t,
549 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
550 [#include <sys/types.h>
551 #ifdef WIN32
552 # include <winsock2.h>
553 # include <ws2tcpip.h>
554 #else
555 # include <sys/socket.h>
556 #endif]], [[socklen_t len; len = 0;]])],
557 ac_cv_type_socklen_t=yes,
558 ac_cv_type_socklen_t=no)])
559 AS_IF([test "$ac_cv_type_socklen_t" = no],
560  [AC_DEFINE(socklen_t, int)])
561
562 dnl Check for struct sockaddr_storage
563 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
564 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
565 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
566   [AC_TRY_COMPILE(
567     [#include <sys/types.h>
568      #if defined( UNDER_CE )
569      # include <winsock.h>
570      #elif defined( WIN32 )
571      # include <winsock2.h>
572      #else
573      # include <sys/socket.h>
574      #endif], [struct sockaddr_storage addr;],
575      ac_cv_struct_sockaddr_storage=yes,
576      ac_cv_struct_sockaddr_storage=no)])
577 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
578   AC_DEFINE(sockaddr_storage, sockaddr)
579   AC_DEFINE(ss_family, sa_family)
580 ])
581
582 dnl getaddrinfo, getnameinfo and gai_strerror check
583 dnl  -lnsl and -lsocket are needed on Solaris;
584 dnl  we purposedly make the test fail on Windows
585 LIBS_save="${LIBS}"
586 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
587 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
588
589 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
590 dnl are
591 LIBS="${LIBS_gai}"
592 AC_CHECK_FUNCS([getnameinfo gai_strerror])
593 LIBS="${LIBS_save}"
594
595 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
596 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
597 [#include <sys/types.h>
598 #if defined( WIN32 ) || defined( UNDER_CE )
599 # if defined(UNDER_CE) && defined(sockaddr_storage)
600 #  undef sockaddr_storage
601 # endif
602 # include <winsock2.h>
603 # include <ws2tcpip.h>
604 #else
605 # include <netdb.h>
606 #endif])
607
608 dnl Check for va_copy
609 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
610   AC_TRY_LINK(
611     [#include <stdarg.h>],
612     [va_list ap1, ap2; va_copy(ap1,ap2);],
613     [ac_cv_c_va_copy="yes"],
614     [ac_cv_c_va_copy="no"]))
615 if test "${ac_cv_c_va_copy}" = "yes"; then
616   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
617 fi
618 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
619   AC_TRY_LINK(
620     [#include <stdarg.h>],
621     [va_list ap1, ap2; __va_copy(ap1,ap2);],
622     [ac_cv_c___va_copy="yes"],
623     [ac_cv_c___va_copy="no"]))
624 if test "${ac_cv_c___va_copy}" = "yes"; then
625   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
626 fi
627
628 AC_CHECK_FUNCS(inet_aton,,[
629   AC_CHECK_LIB(resolv,inet_aton,[
630     VLC_ADD_LIBS([libvlc],[-lresolv])
631   ])
632 ])
633
634 dnl Check for getopt (always use builtin one on win32)
635 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
636 need_getopt=:
637 else
638 need_getopt=false
639 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
640 [ # FreeBSD has a gnugetopt library for this:
641   AC_CHECK_LIB([gnugetopt],[getopt_long],
642     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
643      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
644     [need_getopt=:])])
645 fi
646 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
647
648 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
649 AC_TYPE_SIGNAL
650 AC_CHECK_LIB(m,cos,[
651   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
652 ])
653 AC_CHECK_LIB(m,pow,[
654   VLC_ADD_LIBS([avcodec avformat swscale imgresample postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
655 ])
656 AC_CHECK_LIB(m,sqrt,[
657   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
658 ])
659 AC_CHECK_LIB(m,ceil,[
660   VLC_ADD_LIBS([mosaic],[-lm])
661 ])
662 AC_CHECK_LIB(m,exp,[
663   VLC_ADD_LIBS([gaussianblur],[-lm])
664 ])
665 AC_CHECK_LIB(m,round,[
666   VLC_ADD_LIBS([dbus],[-lm])
667 ])
668 AC_CHECK_LIB(mx,sqrtf,[
669   VLC_ADD_LIBS([x264],[-lmx])
670 ])
671 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
672
673 dnl Check for dynamic plugins
674 ac_cv_have_plugins=no
675
676 # OS X style
677 AC_CHECK_HEADERS(mach-o/dyld.h,
678   [AC_CHECK_FUNCS(NSLinkModule,
679     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
680      ac_cv_have_plugins=yes])])
681
682 # HP-UX style
683 if test "${ac_cv_have_plugins}" = "no"; then
684   AC_CHECK_HEADERS(dl.h)
685   ac_cv_my_have_shl_load=no
686   AC_CHECK_FUNC(shl_load,
687    [ac_cv_my_have_shl_load=yes,
688     AC_CHECK_LIB(dld, shl_load,
689      [ac_cv_my_have_shl_load=yes
690       VLC_ADD_LIBS([libvlc],[-ldld])])])
691   if test "${ac_cv_my_have_shl_load}" = "yes"; then
692     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
693     ac_cv_have_plugins=yes
694   fi
695 fi
696
697 # Whatever style
698 if test "${ac_cv_have_plugins}" = "no"; then
699   AC_CHECK_LIB(dld, dld_link,
700    [VLC_ADD_LIBS([libvlc],[-ldld])
701     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
702     ac_cv_have_plugins=yes])
703 fi
704
705 # Win32 style
706 if test "${ac_cv_have_plugins}" = "no"; then
707   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
708     AC_CHECK_LIB(kernel32, main,
709      [VLC_ADD_LIBS([libvlc],[-lkernel32])
710       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
711       ac_cv_have_plugins=yes])
712   fi
713 fi
714
715 # WinCE style
716 if test "${ac_cv_have_plugins}" = "no"; then
717   if test "${SYS}" = "mingwce"; then
718     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
719     ac_cv_have_plugins=yes
720   fi
721 fi
722
723 # BeOS style
724 if test "${ac_cv_have_plugins}" = "no"; then
725   AC_CHECK_HEADERS(image.h)
726   AC_CHECK_FUNCS(load_add_on,
727    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
728     ac_cv_have_plugins=yes])
729 fi
730
731 # Only test for dlopen() if the others didn't work
732 if test "${ac_cv_have_plugins}" = "no"; then
733   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
734   ac_cv_my_have_dlopen=no
735   AC_CHECK_FUNC(dlopen,
736     ac_cv_my_have_dlopen=yes,
737     AC_CHECK_LIB(dl, dlopen,
738       ac_cv_my_have_dlopen=yes
739       VLC_ADD_LIBS([libvlc realaudio realvideo],[-ldl]),
740       AC_CHECK_LIB(svld, dlopen,
741         ac_cv_my_have_dlopen=yes
742         VLC_ADD_LIBS([libvlc],[-lsvld]))))
743   if test "${ac_cv_my_have_dlopen}" = "yes"; then
744     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
745     ac_cv_have_plugins=yes
746   fi
747 fi
748
749 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
750 dnl Check for pthreads - borrowed from XMMS
751 THREAD_LIB=error
752 if test "${THREAD_LIB}" = "error"; then
753   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
754 fi
755 if test "${THREAD_LIB}" = "error"; then
756   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
757 fi
758 if test "${THREAD_LIB}" = "error"; then
759   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
760 fi
761 if test "${THREAD_LIB}" = "error"; then
762   AC_CHECK_FUNCS(pthread_mutex_lock)
763   THREAD_LIB=""
764 fi
765
766 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
767
768 AC_CHECK_LIB(rt, clock_nanosleep, [
769   VLC_ADD_LIBS([libvlc],[-lrt])
770   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
771 ], [
772   dnl HP/UX port
773   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
774 ])
775
776 have_nanosleep=false
777 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
778   AC_CHECK_LIB(rt,nanosleep,
779     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
780     [AC_CHECK_LIB(posix4,nanosleep,
781         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
782   )
783 ])
784 if ${have_nanosleep}; then
785   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
786 fi
787 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
788
789 dnl Check for misc headers
790 AC_MSG_CHECKING(for strncasecmp in strings.h)
791 AC_EGREP_HEADER(strncasecmp,strings.h,[
792   AC_MSG_RESULT(yes)
793   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
794             Define if <strings.h> defines strncasecmp.)],[
795   AC_MSG_RESULT(no)])
796
797 dnl Check for headers
798 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h locale.h)
799 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h xlocale.h)
800 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h])
801 AC_CHECK_HEADERS([net/if.h], [], [],
802   [
803     #include <sys/socket.h>
804   ])
805 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
806 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
807 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
808 AC_CHECK_HEADERS(syslog.h)
809 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
810
811 AC_HEADER_TIME
812
813 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
814 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
815 AC_CHECK_TYPE(ssize_t,, [
816   AC_DEFINE(ssize_t, int)
817 ])
818
819 dnl Check for poll
820 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
821 if test ${SYS} != "mingw32"
822 then
823     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])
824 fi
825 ])
826
827 dnl Check for dirent
828 need_dirent=false
829 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
830 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
831
832 dnl Mac OS X and other OSes don't have declaration for nanosleep
833 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
834 AC_MSG_CHECKING(for nanosleep in time.h)
835 AC_EGREP_HEADER(nanosleep,time.h,[
836   AC_MSG_RESULT(yes)
837   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
838             Define if <time.h> defines nanosleep.)
839 ],[
840   AC_MSG_RESULT(no)
841 ])
842 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
843
844 dnl Make sure we have timespecs
845 AC_MSG_CHECKING(for timespec in sys/time.h)
846 AC_EGREP_HEADER(timespec,sys/time.h,[
847   AC_MSG_RESULT(yes)
848   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
849             Define if <sys/time.h> defines struct timespec.)
850 ],[
851   AC_MSG_RESULT(no)
852 ])
853
854 dnl Check for threads library
855 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
856 AC_CHECK_HEADERS(pthread.h kernel/scheduler.h kernel/OS.h)
857 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
858
859 dnl Find where are the X headers and libraries
860 AC_PATH_XTRA()
861
862 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.
863 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
864 AC_ARG_VAR(PKG_CONFIG_PATH, 
865            [Paths where to find .pc not at the default location])
866 PKG_PROG_PKG_CONFIG()
867
868 dnl Check for hal
869 AC_ARG_ENABLE(hal,
870   [  --enable-hal            Linux HAL services discovery (default enabled)])
871  
872 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
873 then
874   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
875     [
876       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
877       VLC_ADD_PLUGIN([hal])
878       VLC_ADD_PLUGIN([probe_hal])
879       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
880       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],
881     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
882   )
883 fi
884
885 dnl Check for dbus
886 AC_ARG_ENABLE(dbus,
887   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
888 case "${SYS}" in
889     linux*|*bsd*)
890 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
891 then
892   dnl api stable dbus
893   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
894     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
895       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
896       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
897       dnl Check for dbus control interface
898         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
899         if test "${enable_dbus_control}" != "no"
900         then
901           VLC_ADD_PLUGIN([dbus])
902           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
903           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
904         fi
905       dnl Check for Telepathy
906         AC_ARG_ENABLE(telepathy,
907           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
908         if test "${enable_telepathy}" != "no"; then
909           VLC_ADD_PLUGIN([telepathy])
910           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
911           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
912         fi
913         dnl Power Management Inhibiter
914         VLC_ADD_PLUGIN([inhibit])
915         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
916         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
917     ],
918     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
919   )
920 fi
921 ;;
922 esac
923
924 dnl Build the gtk_main plugins?
925 NEED_GTK_MAIN=no
926 NEED_GNOME_MAIN=no
927 NEED_GTK2_MAIN=no
928 NEED_GNOME2_MAIN=no
929
930 dnl build the qte plugin ?
931 NEED_QTE_MAIN=no
932
933 dnl Check for ntohl, etc.
934 AC_CACHE_CHECK([for ntohl in sys/param.h],
935     [ac_cv_c_ntohl_sys_param_h],
936     [CFLAGS="${CFLAGS_save} -Wall -Werror"
937      AC_TRY_COMPILE([#include <sys/param.h>],
938         [int meuh; ntohl(meuh);],
939         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
940 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
941     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
942 fi
943 CFLAGS="${CFLAGS_save}"
944
945 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
946 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
947
948 dnl Check for various optimization flags
949 AC_CACHE_CHECK([if \$CC accepts -Os],
950     [ac_cv_c_os],
951     [CFLAGS="${CFLAGS_save} -Os"
952      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
953 if test "${ac_cv_c_os}" != "no"; then
954     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
955 else 
956     AC_CACHE_CHECK([if \$CC accepts -O],
957         [ac_cv_c_o],
958         [CFLAGS="${CFLAGS_save} -O"
959          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
960     if test "${ac_cv_c_o}" != "no"; then
961         if test "${ac_cv_c_o3}" = "no"; then
962             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
963         fi
964     fi
965 fi
966
967 AC_CACHE_CHECK([if \$CC accepts -O3],
968     [ac_cv_c_o3],
969     [CFLAGS="${CFLAGS_save} -O3"
970      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
971 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
972     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
973 else
974     AC_CACHE_CHECK([if \$CC accepts -O2],
975         [ac_cv_c_o2],
976         [CFLAGS="${CFLAGS_save} -O2"
977          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
978     if test "${ac_cv_c_o2}" != "no"; then
979         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
980     else
981         AC_CACHE_CHECK([if \$CC accepts -O],
982             [ac_cv_c_o],
983             [CFLAGS="${CFLAGS_save} -O"
984              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
985         if test "${ac_cv_c_o}" != "no"; then
986             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
987         fi
988     fi
989 fi
990
991 AC_CACHE_CHECK([if \$CC accepts -O0],
992     [ac_cv_c_o0],
993     [CFLAGS="${CFLAGS_save} -O0"
994      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
995 if test "${ac_cv_c_o0}" != "no"; then
996     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
997 fi
998
999 dnl Check for -ffast-math
1000 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1001     [ac_cv_c_fast_math],
1002     [CFLAGS="${CFLAGS_save} -ffast-math"
1003      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1004 if test "${ac_cv_c_fast_math}" != "no"; then
1005     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1006 fi
1007
1008 dnl Check for -funroll-loops
1009 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1010 if test "${SYS}" != "beos"
1011 then
1012   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1013       [ac_cv_c_unroll_loops],
1014       [CFLAGS="${CFLAGS_save} -funroll-loops"
1015        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1016   if test "${ac_cv_c_unroll_loops}" != "no"; then
1017       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1018   fi
1019 fi
1020
1021 dnl Check for -fomit-frame-pointer
1022 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1023     [ac_cv_c_omit_frame_pointer],
1024     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1025      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1026 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1027     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1028 fi
1029
1030 dnl Check for Darwin plugin linking flags
1031 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1032     [ac_cv_ld_darwin],
1033     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1034      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1035 if test "${ac_cv_ld_darwin}" != "no"; then
1036     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1037 fi
1038
1039 dnl Checks for __attribute__(aligned()) directive
1040 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1041     [ac_cv_c_attribute_aligned],
1042     [ac_cv_c_attribute_aligned=0
1043         CFLAGS="${CFLAGS_save} -Werror"
1044     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1045         AC_TRY_COMPILE([],
1046         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1047         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1048     done
1049         CFLAGS="${CFLAGS_save}"])
1050 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1051     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1052         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1053 fi
1054
1055 dnl Check for __attribute__((packed))
1056 AC_CACHE_CHECK([for __attribute__((packed))],
1057   [ac_cv_c_attribute_packed],
1058   [ac_cv_c_attribute_packed=no
1059    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1060                     [ac_cv_c_attribute_packed=yes])])
1061 if test "${ac_cv_c_attribute_packed}" != "no"; then
1062   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1063 fi
1064
1065 dnl
1066 dnl  Check the CPU
1067 dnl
1068 case "${host_cpu}" in
1069   "")
1070     ARCH=unknown
1071     ;;
1072   *)
1073     ARCH="${host_cpu}"
1074     ;;
1075 esac
1076
1077 dnl Check for backtrace() support
1078 AC_CHECK_HEADERS(execinfo.h)
1079 AC_CHECK_FUNCS(backtrace)
1080
1081 dnl
1082 dnl  Enable profiling
1083 dnl
1084 AC_ARG_ENABLE(gprof,
1085 [  --enable-gprof          gprof profiling (default disabled)])
1086 AC_ARG_ENABLE(cprof,
1087 [  --enable-cprof          cprof profiling (default disabled)])
1088 test "${enable_gprof}" != "yes" && enable_gprof="no"
1089 test "${enable_cprof}" != "yes" && enable_cprof="no"
1090
1091 dnl
1092 dnl  default modules
1093 dnl
1094 VLC_ADD_PLUGIN([dummy])
1095 VLC_ADD_PLUGIN([stats])
1096 VLC_ADD_PLUGIN([logger])
1097 VLC_ADD_PLUGIN([memcpy])
1098 dnl Demuxers:
1099 VLC_ADD_PLUGIN([mpgv])
1100 VLC_ADD_PLUGIN([mpga])
1101 VLC_ADD_PLUGIN([m4v])
1102 VLC_ADD_PLUGIN([m4a])
1103 VLC_ADD_PLUGIN([h264])
1104 VLC_ADD_PLUGIN([cdg])
1105 VLC_ADD_PLUGIN([ps])
1106 VLC_ADD_PLUGIN([avi])
1107 VLC_ADD_PLUGIN([asf])
1108 VLC_ADD_PLUGIN([mp4])
1109 dnl Text codecs:
1110 VLC_ADD_PLUGIN([cvdsub])
1111 VLC_ADD_PLUGIN([svcdsub])
1112 VLC_ADD_PLUGIN([spudec])
1113 VLC_ADD_PLUGIN([subsdec])
1114 VLC_ADD_PLUGIN([subsusf])
1115 VLC_ADD_PLUGIN([t140])
1116 VLC_ADD_PLUGIN([dvbsub])
1117 VLC_ADD_PLUGIN([cc])
1118 dnl Video codecs:
1119 dnl Audio codecs:
1120 VLC_ADD_PLUGIN([araw])
1121 VLC_ADD_PLUGIN([adpcm])
1122 VLC_ADD_PLUGIN([mpeg_audio])
1123 VLC_ADD_PLUGIN([lpcm])
1124 VLC_ADD_PLUGIN([a52])
1125 VLC_ADD_PLUGIN([dts])
1126 VLC_ADD_PLUGIN([flac])
1127 VLC_ADD_PLUGIN([aes3])
1128 dnl Video filters:
1129 VLC_ADD_PLUGIN([deinterlace])
1130 VLC_ADD_PLUGIN([invert])
1131 VLC_ADD_PLUGIN([adjust])
1132 VLC_ADD_PLUGIN([transform])
1133 VLC_ADD_PLUGIN([wave])
1134 VLC_ADD_PLUGIN([ripple])
1135 VLC_ADD_PLUGIN([psychedelic])
1136 VLC_ADD_PLUGIN([gradient])
1137 VLC_ADD_PLUGIN([motionblur])
1138 VLC_ADD_PLUGIN([rv32])
1139 VLC_ADD_PLUGIN([rotate])
1140 VLC_ADD_PLUGIN([noise])
1141 VLC_ADD_PLUGIN([grain])
1142 VLC_ADD_PLUGIN([extract])
1143 VLC_ADD_PLUGIN([sharpen])
1144 VLC_ADD_PLUGIN([croppadd])
1145 VLC_ADD_PLUGIN([canvas])
1146 VLC_ADD_PLUGIN([blendbench])
1147 VLC_ADD_PLUGIN([blend])
1148 VLC_ADD_PLUGIN([scale])
1149 VLC_ADD_PLUGIN([image])
1150 VLC_ADD_PLUGIN([vmem])
1151 VLC_ADD_PLUGIN([logo])
1152 VLC_ADD_PLUGIN([magnify])
1153 VLC_ADD_PLUGIN([puzzle])
1154 VLC_ADD_PLUGIN([colorthres])
1155 dnl Meta demuxers:
1156 VLC_ADD_PLUGIN([playlist])
1157 VLC_ADD_PLUGIN([export])
1158 VLC_ADD_PLUGIN([nsc])
1159 VLC_ADD_PLUGIN([xtag])
1160 dnl Channel mixing audio filters:
1161 VLC_ADD_PLUGIN([converter_fixed])
1162 VLC_ADD_PLUGIN([mono])
1163 VLC_ADD_PLUGIN([trivial_channel_mixer])
1164 dnl Resampling audio filters:
1165 VLC_ADD_PLUGIN([trivial_resampler])
1166 VLC_ADD_PLUGIN([ugly_resampler])
1167 dnl Audio mixers:
1168 VLC_ADD_PLUGIN([trivial_mixer])
1169 dnl Video chromas:
1170 VLC_ADD_PLUGIN([i420_rgb])
1171 VLC_ADD_PLUGIN([grey_yuv])
1172 dnl Video codecs:
1173 VLC_ADD_PLUGIN([rawvideo])
1174 dnl Access filters:
1175 VLC_ADD_PLUGIN([access_filter_timeshift])
1176 VLC_ADD_PLUGIN([access_filter_dump])
1177 VLC_ADD_PLUGIN([access_filter_bandwidth])
1178
1179 ALIASES="${ALIASES} cvlc"
1180
1181 dnl
1182 dnl default modules that need g++
1183 dnl
1184 AC_LANG_PUSH(C++)
1185 VLC_ADD_PLUGIN([spatializer])
1186 AC_LANG_POP(C++)
1187
1188 if test "${SYS}" != "mingwce"; then
1189   VLC_ADD_PLUGIN([gestures])
1190   VLC_ADD_PLUGIN([rc])
1191   VLC_ADD_PLUGIN([hotkeys])
1192   VLC_ADD_PLUGIN([showintf])
1193   VLC_ADD_PLUGIN([marq])
1194   VLC_ADD_PLUGIN([podcast])
1195   VLC_ADD_PLUGIN([shout])
1196   VLC_ADD_PLUGIN([sap])
1197   VLC_ADD_PLUGIN([fake])
1198   VLC_ADD_PLUGIN([folder])
1199   VLC_ADD_PLUGIN([rss])
1200   VLC_ADD_PLUGIN([mosaic])
1201   VLC_ADD_PLUGIN([wall])
1202   VLC_ADD_PLUGIN([motiondetect])
1203   VLC_ADD_PLUGIN([clone])
1204   VLC_ADD_PLUGIN([crop])
1205   VLC_ADD_PLUGIN([erase])
1206   VLC_ADD_PLUGIN([bluescreen])
1207   VLC_ADD_PLUGIN([alphamask])
1208   VLC_ADD_PLUGIN([gaussianblur])
1209   VLC_ADD_PLUGIN([i420_yuy2])
1210   VLC_ADD_PLUGIN([i422_yuy2])
1211   VLC_ADD_PLUGIN([i420_ymga])
1212   VLC_ADD_PLUGIN([i422_i420])
1213   VLC_ADD_PLUGIN([yuy2_i422])
1214   VLC_ADD_PLUGIN([yuy2_i420])
1215   VLC_ADD_PLUGIN([chain])
1216   VLC_ADD_PLUGIN([aout_file])
1217   VLC_ADD_PLUGIN([linear_resampler])
1218   VLC_ADD_PLUGIN([bandlimited_resampler])
1219   VLC_ADD_PLUGIN([float32_mixer])
1220   VLC_ADD_PLUGIN([spdif_mixer])
1221   VLC_ADD_PLUGIN([simple_channel_mixer])
1222   VLC_ADD_PLUGIN([dolby_surround_decoder])
1223   VLC_ADD_PLUGIN([headphone_channel_mixer])
1224   VLC_ADD_PLUGIN([normvol])
1225   VLC_ADD_PLUGIN([equalizer])
1226   VLC_ADD_PLUGIN([param_eq])
1227   VLC_ADD_PLUGIN([scaletempo])
1228   VLC_ADD_PLUGIN([converter_float])
1229   VLC_ADD_PLUGIN([a52tospdif])
1230   VLC_ADD_PLUGIN([dtstospdif])
1231   VLC_ADD_PLUGIN([audio_format])
1232   ALIASES="${ALIASES} rvlc"
1233 fi
1234
1235 dnl
1236 dnl Some plugins aren't useful on some platforms
1237 dnl
1238 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1239     VLC_ADD_PLUGIN([screensaver])
1240     VLC_ADD_PLUGIN([motion])
1241     VLC_ADD_PLUGIN([dynamicoverlay])
1242     VLC_ADD_PLUGIN([signals])
1243 elif test "${SYS}" != "mingwce"; then
1244     VLC_ADD_PLUGIN([ntservice])
1245     VLC_ADD_PLUGIN([access_smb])
1246     VLC_ADD_PLUGIN([dmo])
1247     VLC_ADD_PLUGIN([msn])
1248     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1249 else
1250     VLC_ADD_PLUGIN([win32text])
1251 fi
1252 if test "${SYS}" = "darwin"; then
1253     VLC_ADD_PLUGIN([quartztext])
1254     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1255 fi
1256
1257 dnl
1258 dnl  Accelerated modules
1259 dnl
1260 AC_ARG_WITH(,[])
1261 AC_ARG_WITH(,[Optimization options:])
1262
1263 dnl  Check for fully working MMX intrinsics
1264 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1265 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1266 AC_ARG_ENABLE(mmx,
1267 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1268   case "${host_cpu}" in
1269     i?86|x86_64)
1270       enable_mmx="yes"
1271       ;;
1272     *)
1273       enable_mmx="no"
1274       ;;
1275   esac
1276 ])
1277 AS_IF([test "${enable_mmx}" != "no"], [
1278   ARCH="${ARCH} mmx"
1279
1280   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1281     [ac_cv_c_mmx_intrinsics],
1282     [CFLAGS="${CFLAGS_save} -O -mmmx"
1283      AC_TRY_COMPILE([#include <mmintrin.h>
1284                      #include <stdint.h>
1285                      uint64_t frobzor;],
1286                     [__m64 a, b, c;
1287                      a = b = c = (__m64)frobzor;
1288                      a = _mm_slli_pi16(a, 3);
1289                      a = _mm_adds_pi16(a, b);
1290                      c = _mm_srli_pi16(c, 8);
1291                      c = _mm_slli_pi16(c, 3);
1292                      b = _mm_adds_pi16(b, c);
1293                      a = _mm_unpacklo_pi8(a, b);
1294                      frobzor = (uint64_t)a;],
1295                     [ac_cv_c_mmx_intrinsics=yes],
1296                     [ac_cv_c_mmx_intrinsics=no])])
1297   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1298     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1299               [Define to 1 if MMX intrinsics are available.])
1300     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1301   ])
1302
1303   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1304     [ac_cv_mmx_inline],
1305     [CFLAGS="${CFLAGS_save}"
1306      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1307                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1308   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1309     AC_DEFINE(CAN_COMPILE_MMX, 1,
1310               [Define to 1 inline MMX assembly is available.])
1311     VLC_ADD_PLUGIN([memcpymmx])
1312     VLC_ADD_PLUGIN([i420_rgb_mmx])
1313     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1314     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1315     VLC_ADD_PLUGIN([i420_ymga_mmx])
1316   ])
1317
1318   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1319     [ac_cv_mmxext_inline],
1320     [CFLAGS="${CFLAGS_save}"
1321      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1322                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1323   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1324     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1325               [Define to 1 if MMX EXT inline assembly is available.])
1326     VLC_ADD_PLUGIN([memcpymmxext])
1327   ])
1328 ])
1329
1330 dnl  Check for fully workin SSE2 intrinsics
1331 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1332 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1333 AC_ARG_ENABLE(sse,
1334 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1335 ,, [
1336   case "${host_cpu}" in
1337     i686|x86_64)
1338       enable_sse=yes
1339       ;;
1340     *)
1341       enable_sse=no
1342       ;;
1343   esac
1344 ])
1345 AS_IF([test "${enable_sse}" != "no"], [
1346   ARCH="${ARCH} sse sse2"
1347
1348   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1349     [ac_cv_c_sse2_intrinsics],
1350     [CFLAGS="${CFLAGS_save} -O -msse2"
1351      AC_TRY_COMPILE([#include <emmintrin.h>
1352                      #include <stdint.h>
1353                      uint64_t frobzor;],
1354                     [__m128i a, b, c;
1355                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1356                      a = _mm_slli_epi16(a, 3);
1357                      a = _mm_adds_epi16(a, b);
1358                      c = _mm_srli_epi16(c, 8);
1359                      c = _mm_slli_epi16(c, 3);
1360                      b = _mm_adds_epi16(b, c);
1361                      a = _mm_unpacklo_epi8(a, b);
1362                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1363                     [ac_cv_c_sse2_intrinsics=yes],
1364                     [ac_cv_c_sse2_intrinsics=no])])
1365   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1366     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1367               [Define to 1 if SSE2 intrinsics are available.])
1368     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1369   ])
1370
1371   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1372     [ac_cv_sse_inline],
1373     [CFLAGS="${CFLAGS_save}"
1374      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1375                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1376   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1377     AC_DEFINE(CAN_COMPILE_SSE, 1,
1378               [Define to 1 if SSE inline assembly is available.])
1379   ])
1380
1381   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1382     [ac_cv_sse2_inline],
1383     [CFLAGS="${CFLAGS_save}"
1384      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1385                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1386   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1387     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1388               [Define to 1 if SSE2 inline assembly is available.])
1389     VLC_ADD_PLUGIN([i420_rgb_sse2])
1390     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1391     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1392   ])
1393 ])
1394
1395 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1396     [ac_cv_3dnow_inline],
1397     [CFLAGS="${CFLAGS_save}"
1398      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1399                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1400 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1401   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1402             [Define to 1 if 3D Now! inline assembly is available.])
1403   VLC_ADD_PLUGIN([memcpy3dn])
1404 ])
1405
1406 AC_ARG_ENABLE(altivec,
1407 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1408   AS_IF([test "${host_cpu}" = "powerpc"],
1409         [enable_altivec=yes], [enable_altivec=no])
1410 ])
1411 AS_IF([test "${enable_altivec}" = "yes"], [
1412   ARCH="${ARCH} altivec";
1413   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1414     [ac_cv_altivec_inline],
1415     [CFLAGS="${CFLAGS_save}"
1416      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1417          ac_cv_altivec_inline="yes",
1418          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1419           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1420             [ac_cv_altivec_inline="-Wa,-m7400"],
1421             ac_cv_altivec_inline=no)
1422          ])])
1423   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1424     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1425               [Define to 1 if AltiVec inline assembly is available.])
1426     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1427       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1428       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1429       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1430       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1431       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1432     ])
1433     VLC_ADD_PLUGIN([memcpyaltivec])
1434     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1435   ])
1436
1437 dnl The AltiVec C extensions
1438 dnl
1439 dnl There are several possible cases:
1440 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1441 dnl                      need <altivec.h>
1442 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1443 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1444 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1445 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1446 dnl - Others: test should fail
1447   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1448   [ac_cv_c_altivec],
1449   [# OS X/PPC test (gcc 4.x)
1450    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1451    AC_TRY_COMPILE([vector unsigned char foo;],
1452      [vec_ld(0, (unsigned char *)0);],
1453      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1454      [# OS X/PPC test (gcc 3.x)
1455       CFLAGS="${CFLAGS_save} -faltivec"
1456       AC_TRY_COMPILE([vector unsigned char foo;],
1457         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1458         [ac_cv_c_altivec="-faltivec"],
1459         dnl Below this are the Linux tests
1460         [# Linux/PPC test (gcc 4.x)
1461          CFLAGS="${CFLAGS_save} -maltivec"
1462          AC_TRY_COMPILE([#include <altivec.h>],
1463            [vec_ld(0, (unsigned char *)0);],
1464            [ac_cv_c_altivec="-maltivec"],
1465            [# Linux/PPC test (gcc 3.3)
1466             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1467             AC_TRY_COMPILE([#include <altivec.h>],
1468               [vec_ld(0, (unsigned char *)0);],
1469               [ac_cv_c_altivec=""
1470                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1471               [# Linux/PPC test (gcc 3.3)
1472                CFLAGS="${CFLAGS_save} -fvec"
1473                AC_TRY_COMPILE([#include <altivec.h>],
1474                  [vec_ld(0, (unsigned char *)0);],
1475                  [ac_cv_c_altivec="-fvec"],
1476                  [ac_cv_c_altivec=no])
1477               ])
1478            ])
1479         ])
1480      ])
1481    CFLAGS="${CFLAGS_save}"
1482   ])
1483   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1484     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1485   ])
1486
1487   AC_CHECK_HEADERS(altivec.h)
1488   CPPFLAGS="${CPPFLAGS_save}"
1489   
1490   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1491     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1492               [Define to 1 if C AltiVec extensions are available.])
1493     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1494     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1495     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1496     VLC_ADD_PLUGIN([memcpyaltivec])
1497     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1498   ])
1499
1500   AC_CACHE_CHECK([if linker needs -framework vecLib],
1501     [ac_cv_ld_altivec],
1502     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1503      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1504      LDFLAGS="${LDFLAGS_save}"
1505     ])
1506   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1507     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1508   ])
1509 ])
1510
1511 dnl
1512 dnl  Special arch tuning
1513 dnl
1514 AC_ARG_WITH(tuning,
1515 [  --with-tuning=ARCH      enable special tuning for an architecture
1516                           (default Pentium 2 on IA-32 and G4 on PPC)])
1517 if test -n "${with_tuning}"; then
1518     if test "${with_tuning}" != "no"; then
1519         CFLAGS_TUNING="-mtune=${with_tuning}"
1520     fi
1521 else
1522     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1523         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1524     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1525         CFLAGS_TUNING="-mtune=pentium2"
1526     elif test "${host_cpu}" = "x86_64"; then
1527         CFLAGS_TUNING="-mtune=athlon64"
1528     elif test "${host_cpu}" = "powerpc"; then
1529         CFLAGS_TUNING="-mtune=G4";
1530     fi
1531 fi
1532
1533 dnl NOTE: this can't be cached cleanly
1534 AS_IF([test "${CFLAGS_TUNING}"],
1535    [CFLAGS_save="${CFLAGS}"
1536     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1537
1538     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1539     AC_COMPILE_IFELSE([ ],
1540                       [tuning="yes"],
1541                       [CFLAGS_TUNING=""; tuning="no"
1542                        AS_IF([test "${with_tuning}"],
1543                              [AC_MSG_ERROR([requested tuning not supported])])])
1544
1545     AC_MSG_RESULT([$tuning])
1546     CFLAGS="${CFLAGS_save}"
1547 ])
1548
1549 dnl
1550 dnl  Memory usage
1551 dnl
1552 AC_ARG_ENABLE(optimize-memory,
1553 [  --enable-optimize-memory optimize memory usage over performance])
1554 if test "${enable_optimize_memory}" = "yes"; then
1555   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1556 fi
1557
1558 dnl
1559 dnl  Enable/disable optimizations
1560 dnl
1561 AC_ARG_ENABLE(optimizations,
1562 [  --disable-optimizations disable compiler optimizations (default enabled)])
1563 if test "${enable_optimizations}" != "no"; then
1564    if test "${enable_optimize_memory}" = "yes"; then
1565       enable_optimizations="size"
1566    else
1567       enable_optimizations="speed"
1568    fi
1569 fi
1570
1571 dnl
1572 dnl  Debugging mode
1573 dnl
1574 AC_ARG_ENABLE(debug,
1575 [  --enable-debug          debug mode (default disabled)])
1576 test "${enable_debug}" != "yes" && enable_debug="no"
1577 AH_TEMPLATE(NDEBUG,
1578             [Define to 1 if debug code should NOT be compiled])
1579 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1580
1581 dnl
1582 dnl  Test coverage
1583 dnl
1584 AC_ARG_ENABLE(coverage,
1585         [  --enable-coverage       build for test coverage (default disabled)],,
1586         [enable_coverage="no"])
1587 AS_IF([test "${enable_coverage}" != "no"], [
1588         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1589         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1590         LDFLAGS="-lgcov ${LDFLAGS}"
1591         dnl ugly...
1592         CFLAGS_save="${CFLAGS}"
1593         CXXFLAGS_save="${CXXFLAGS}"
1594         LDFLAGS_save="${LDFLAGS}"
1595 ])
1596
1597 dnl
1598 dnl  Enable release-specific flags
1599 dnl
1600 AC_ARG_ENABLE(release,
1601 [  --enable-release        activate extra optimizations (default disabled)])
1602 test "${enable_release}" != "yes" && enable_release="no"
1603
1604 dnl
1605 dnl Stream output
1606 dnl
1607 AC_ARG_ENABLE(sout,
1608   [  --enable-sout           Stream output modules (default enabled)])
1609 AS_IF([test "${enable_sout}" != "no"], [
1610   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1611 ])
1612 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1613
1614 AC_ARG_ENABLE(switcher,
1615   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1616
1617 dnl Check for libshout
1618 AC_ARG_ENABLE(shout,
1619   [  --enable-shout          libshout output plugin (default disabled)])
1620 if test "${enable_shout}" = "yes"; then
1621   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1622     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1623      VLC_ADD_PLUGIN([access_output_shout])
1624      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1625      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1626     [AC_MSG_WARN(libshout library not found)])
1627 fi
1628
1629 dnl Lua modules
1630 AC_ARG_ENABLE(lua,
1631   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface 
1632                   plugins (default enabled)]))
1633 if test "${enable_lua}" != "no"
1634 then
1635   PKG_CHECK_MODULES(LUA, lua5.1,
1636     [ have_lua=yes ],
1637     [
1638     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1639     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1640       [ have_lua=yes ],
1641       [
1642         have_lua=yes
1643         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1644           [],
1645           [ have_lua=no ] )
1646         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1647           [LUA_LIBS="-llua5.1"],
1648           AC_CHECK_LIB( lua51 , luaL_newstate,
1649             [LUA_LIBS="-llua51"],
1650             AC_CHECK_LIB( lua , luaL_newstate,
1651               [LUA_LIBS="-llua"],
1652               [ have_lua=no
1653                 AC_MSG_WARN([lua >= 5.1 not found!])
1654               ])
1655           )
1656         )
1657       ])
1658     ])
1659   if test "x${have_lua}" = "xyes" ;  then
1660      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1661      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1662      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1663   fi
1664 fi
1665 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1666
1667 dnl
1668 dnl HTTP daemon
1669 dnl
1670 AC_ARG_ENABLE(httpd,
1671   [  --enable-httpd          HTTP daemon (default enabled)])
1672 if test "${enable_httpd}" != "no"
1673 then
1674   VLC_ADD_PLUGIN([http])
1675   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1676 fi
1677 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1678
1679 dnl
1680 dnl libproxy support
1681 dnl
1682 AC_ARG_ENABLE(libproxy,
1683   [  --enable-libproxy       libproxy support (default auto)])
1684 AS_IF([test "${enable_libproxy}" != "no"], [
1685   AC_CHECK_HEADERS(proxy.h, [
1686     VLC_ADD_LIBS([access_http],[-lproxy])
1687   ], [
1688     AS_IF([test "x${enable_libproxy}" != "x"], [
1689       AC_MSG_ERROR([libproxy could not be found on your system])
1690     ])
1691   ])
1692 ])
1693
1694 dnl
1695 dnl VideoLAN manager
1696 dnl
1697 AC_ARG_ENABLE(vlm,
1698   [  --enable-vlm            VideoLAN manager (default enabled)],,
1699   [enable_vlm="${enable_sout}"])
1700 AS_IF([test "${enable_vlm}" != "no"], [
1701   AS_IF([test "${enable_sout}" = "no"], [
1702     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1703   ])
1704   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1705   VLC_ADD_PLUGIN([telnet])
1706 ])
1707 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1708
1709 dnl
1710 dnl Growl notification plugin
1711 dnl
1712 AC_ARG_ENABLE(growl,
1713   [  --enable-growl          growl notification plugin (default disabled)],,
1714   [enable_growl=no])
1715 AS_IF([test "${enable_growl}" != "no"], [
1716     VLC_ADD_PLUGIN([growl_udp])
1717     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1718       VLC_ADD_PLUGIN([growl])
1719       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1720     ])
1721   ]
1722 )
1723
1724 dnl
1725 dnl Libnotify notification plugin
1726 dnl
1727
1728 AC_ARG_ENABLE(notify,
1729   [  --enable-notify         libnotify notification plugin (default enabled)])
1730 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1731     PKG_CHECK_MODULES(NOTIFY, libnotify,
1732       [
1733         VLC_ADD_PLUGIN([notify])
1734         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1735         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1736       ],[
1737     AS_IF([test "${enable_notify}" = "yes"],[
1738         AC_MSG_WARN( libnotify not found) ])
1739       ])
1740   ])
1741
1742 dnl
1743 dnl Audioscrobbler plugin
1744 dnl
1745
1746 AC_ARG_ENABLE(audioscrobbler,
1747   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1748 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1749         VLC_ADD_PLUGIN([audioscrobbler])
1750   ])
1751
1752 dnl
1753 dnl Musicbrainz plugin
1754 dnl
1755 AC_ARG_ENABLE(musicbrainz,
1756   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1757   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1758       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1759     [ VLC_ADD_PLUGIN([musicbrainz])
1760       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1761       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1762        [AC_MSG_WARN(MusicBrainz library not found)])
1763    ])
1764
1765
1766 dnl
1767 dnl Taglibplugin
1768 dnl
1769 AC_ARG_ENABLE(taglib,
1770   [  --disable-taglib Taglib support (default enabled) ])
1771   AS_IF([test "${enable_taglib}" != "no"],[
1772     PKG_CHECK_MODULES(TAGLIB, taglib,
1773       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1774         VLC_ADD_PLUGIN([taglib])
1775         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1776        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1777       [AC_MSG_WARN(TagLib library not found)])
1778   ])
1779
1780
1781 dnl
1782 dnl  Input plugins
1783 dnl
1784
1785 AC_ARG_WITH(,[Input plugins:])
1786
1787 dnl  live555 input
1788 dnl
1789 if test "${enable_livedotcom}" 
1790 then
1791   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1792 fi
1793 if test "${enable_livedotcom}" = "no"
1794 then
1795   enable_live555="no"
1796 fi
1797
1798 AC_ARG_ENABLE(live555,
1799 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1800 if test "${enable_live555}" != "no"; then
1801   AC_ARG_WITH(live555-tree,
1802     [    --with-live555-tree=PATH live.com tree for static linking])
1803
1804   dnl
1805   dnl test for --with-live555-tree
1806   dnl
1807   if test "${with_livedotcom_tree}" 
1808   then
1809     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1810   with_live555_tree="${with_livedotcom_tree}"
1811   fi
1812
1813   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1814     AC_LANG_PUSH(C++)
1815     CPPFLAGS_save="${CPPFLAGS}"
1816     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1817     if test "${SYS}" = "solaris"; then
1818       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1819     fi
1820     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1821
1822     AC_CHECK_HEADERS(liveMedia_version.hh, [
1823       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1824       AC_EGREP_CPP(yes,
1825         [#include <liveMedia_version.hh>
1826          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1827          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1828          yes
1829          #endif
1830          #endif],
1831         [AC_MSG_RESULT([no])
1832          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1833 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1834       ],[
1835          AC_MSG_RESULT([yes])
1836          ])
1837     ])
1838      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1839      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1840       if test "${SYS}" = "mingw32"; then
1841         # add ws2_32 for closesocket, select, recv
1842         other_libs="$other_libs -lws2_32"
1843       fi
1844     dnl We need to check for pic because live555 don't provide shared libs
1845     dnl and we want to build a plugins so we need -fPIC on some arch.
1846     AC_CHECK_HEADERS(liveMedia.hh, [
1847       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1848         AC_CHECK_LIB(liveMedia_pic, main, [
1849           VLC_ADD_PLUGIN([live555])
1850          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1851          ],[
1852         AC_CHECK_LIB(liveMedia, main, [
1853           VLC_ADD_PLUGIN([live555])
1854           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1855         ],[],[${other_libs}]) ],[${other_libs_pic}])
1856     ])
1857     CPPFLAGS="${CPPFLAGS_save}"
1858     AC_LANG_POP(C++)
1859   else
1860     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1861     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1862     if test -z "${real_live555_tree}"; then
1863       dnl  The given directory can't be found
1864       AC_MSG_RESULT(no)
1865       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1866     fi
1867     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1868       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1869
1870       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1871         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1872         AC_EGREP_CPP(yes,
1873           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1874            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1875            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1876            yes
1877            #endif
1878            #endif],
1879           [AC_MSG_RESULT([no])
1880            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1881 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1882         ],[
1883            AC_MSG_RESULT([yes])
1884            ])
1885       ])
1886
1887       VLC_ADD_PLUGIN([live555])
1888
1889       if test "${SYS}" = "mingw32"; then
1890         # add ws2_32 for closesocket, select, recv
1891         VLC_ADD_LIBS([live555],[-lws2_32])
1892       fi
1893
1894       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1895       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1896       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1897       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1898
1899       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1900       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1901       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1902       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1903       if test "${SYS}" = "solaris"; then
1904         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1905       fi
1906     else
1907       dnl  The given live555 wasn't built
1908         AC_MSG_RESULT(no)
1909       if test "${enable_live555}" = "yes"; then
1910         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1911       fi        
1912     fi
1913   fi
1914 fi
1915
1916 dnl
1917 dnl  special access module for dc1394 input
1918 dnl
1919 AC_ARG_ENABLE(dc1394,
1920   [  --enable-dc1394         dc1394 access module (default disabled)])
1921 if test "${enable_dc1394}" = "yes"
1922 then
1923   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1924     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1925         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1926 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1927               VLC_ADD_PLUGIN([dc1394])
1928               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1929 dnl         ],
1930 dnl         [
1931 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1932 dnl         ])
1933       ],
1934       [
1935         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1936       ])
1937     ],
1938     [
1939       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1940     ])
1941   ],
1942   [
1943     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1944   ])
1945 fi
1946
1947 dnl
1948 dnl dv module: digital video module check for libraw1394
1949 dnl
1950 AC_ARG_ENABLE(dv,
1951 [  --enable-dv             dv input module (default disabled)])
1952 if test "${enable_dv}" = "yes"
1953 then
1954   AC_ARG_WITH(dv-raw1394,
1955   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1956   AC_ARG_WITH(dv-raw1394-tree,
1957   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1958
1959   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1960   then
1961     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1962     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1963     then
1964       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1965       AC_MSG_RESULT(yes)
1966       VLC_ADD_PLUGIN([access_dv])
1967       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1968       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1969     else
1970       dnl  No libraw1394 could be found, sorry
1971       AC_MSG_RESULT(no)
1972       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1973     fi
1974   else
1975     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1976     [ VLC_ADD_PLUGIN([access_dv])
1977         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1978     ],[
1979         if test -n "${enable_dv}"
1980         then
1981           AC_MSG_ERROR([cannot find libraw1394 headers])
1982         fi
1983     ])
1984   fi
1985
1986   dnl Check for static linking of libraw1394
1987   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1988   then
1989     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1990     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1991     if test -z "${real_dv_raw1394_tree}"
1992     then
1993       dnl  The given directory can't be found
1994       AC_MSG_RESULT(no)
1995       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1996     fi
1997     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1998     then
1999       dnl  Use a custom libraw1394
2000       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
2001       VLC_ADD_PLUGIN([access_dv])
2002       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
2003       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
2004     else
2005       dnl  The given libraw1394 wasn't built
2006       AC_MSG_RESULT(no)
2007       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
2008     fi
2009   fi
2010
2011   dnl
2012   dnl Check for libavc1394
2013   dnl
2014
2015   AC_ARG_WITH(dv-avc1394,
2016   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2017   AC_ARG_WITH(dv-avc1394-tree,
2018   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2019
2020   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2021   then
2022     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2023     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2024     then
2025       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2026       AC_MSG_RESULT(yes)
2027       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2028       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2029     else
2030       dnl  No libavc1394 could be found, sorry
2031       AC_MSG_RESULT(no)
2032       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2033     fi
2034   else
2035     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2036     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2037     ],[
2038         if test -n "${enable_dv}"
2039         then
2040           AC_MSG_ERROR([cannot find libavc1394 headers])
2041         fi
2042     ])
2043   fi
2044
2045   dnl Check for static linking of libavc1394
2046   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2047   then
2048     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2049     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2050     if test -z "${real_dv_avc1394_tree}"
2051     then
2052       dnl  The given directory can't be found
2053       AC_MSG_RESULT(no)
2054       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2055     fi
2056     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2057     then
2058       dnl  Use a custom libavc1394
2059       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2060       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2061       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2062     else
2063       dnl  The given libavc1394 wasn't built
2064       AC_MSG_RESULT(no)
2065       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2066     fi
2067   fi
2068 fi
2069
2070 dnl
2071 dnl dvdread module: check for libdvdread
2072 dnl
2073 AC_ARG_ENABLE(dvdread,
2074 [  --enable-dvdread        dvdread input module (default disabled)])
2075 if test "${enable_dvdread}" != "no"
2076 then
2077   AC_ARG_WITH(dvdread,
2078   [    --with-dvdread=PATH   libdvdread headers and libraries])
2079   AC_ARG_WITH(dvdread-tree,
2080   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2081
2082   dnl Temporary hack (yeah, sure ;)
2083   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2084       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2085   fi
2086
2087   if test -z "${with_dvdread}"
2088   then
2089     if test -z "${with_dvdread_tree}"
2090     then
2091       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2092         [ VLC_ADD_PLUGIN([dvdread])
2093           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2094         ],[
2095           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2096             [ VLC_ADD_PLUGIN([dvdread])
2097               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2098             ],[
2099               if test -n "${enable_dvdread}"
2100               then
2101               AC_MSG_ERROR([cannot find libdvdread headers])
2102              fi
2103            ])
2104         ])
2105     else
2106       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2107       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2108       if test -z "${real_dvdread_tree}"
2109       then
2110         dnl  The given directory can't be found
2111         AC_MSG_RESULT(no)
2112         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2113       fi
2114       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2115       then
2116         dnl  Use a custom libdvdread
2117         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2118         VLC_ADD_PLUGIN([dvdread])
2119         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2120         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2121       else
2122         dnl  The given libdvdread wasn't built
2123         AC_MSG_RESULT(no)
2124         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2125       fi
2126     fi
2127   else
2128     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2129     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2130     then
2131       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2132       AC_MSG_RESULT(yes)
2133       VLC_ADD_PLUGIN([dvdread])
2134       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2135       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2136     else
2137       dnl  No libdvdread could be found, sorry
2138       AC_MSG_RESULT(no)
2139       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2140     fi
2141   fi
2142 fi
2143
2144 dnl
2145 dnl  libdvdnav plugin
2146 dnl
2147 AC_ARG_ENABLE(dvdnav,
2148   [  --enable-dvdnav         dvdnav input module (default enabled)])
2149 if test "${enable_dvdnav}" != "no"
2150 then
2151   dnl Same hack than dvdread
2152   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2153       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2154   fi
2155
2156   DVDNAV_PATH="${PATH}"
2157   AC_ARG_WITH(dvdnav-config-path,
2158     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2159     [ if test "${with_dvdnav_config_path}" != "no"
2160       then
2161         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2162       fi ])
2163   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2164   if test "${DVDNAV_CONFIG}" != "no"
2165   then
2166     VLC_ADD_PLUGIN([dvdnav])
2167     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2168     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2169   fi
2170 fi
2171
2172 dnl
2173 dnl  Windows DirectShow access module
2174 dnl
2175 AC_ARG_ENABLE(dshow,
2176   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2177 if test "${enable_dshow}" != "no"
2178 then
2179   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2180   then
2181     AC_LANG_PUSH(C++)
2182       AC_CHECK_HEADERS(dshow.h,
2183       [ VLC_ADD_PLUGIN([dshow])
2184         VLC_ADD_CXXFLAGS([dshow],[])
2185         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2186     AC_LANG_POP(C++)
2187   fi
2188 fi
2189
2190 dnl
2191 dnl  Windows DirectShow BDA access module
2192 dnl
2193 AC_ARG_ENABLE(bda,
2194   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default 
2195                   enabled on Win32)]))
2196 if test "${enable_bda}" != "no"
2197 then
2198   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2199   then
2200       AC_CHECK_HEADERS(dshow.h,
2201       [ VLC_ADD_PLUGIN([bda])
2202         VLC_ADD_CXXFLAGS([bda],[])
2203         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2204   fi
2205 fi
2206
2207
2208 dnl
2209 dnl  OpenCV wrapper and example filters
2210 dnl
2211 AC_ARG_ENABLE(opencv,
2212   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2213 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2214 then
2215   AC_ARG_WITH(opencv-tree,
2216   [    --with-opencv-tree=PATH opencv tree for linking])
2217     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2218     then
2219       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2220           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2221           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2222             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2223       then
2224         AC_MSG_RESULT(yes)
2225         VLC_ADD_PLUGIN([opencv_wrapper])
2226         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2227         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])
2228         AC_LANG_PUSH(C++)
2229         VLC_ADD_PLUGIN([opencv_example])
2230         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2231         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])
2232         AC_LANG_POP(C++)        
2233           else
2234         dnl  No opencv could be found, sorry
2235         AC_MSG_RESULT(no)
2236         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2237           fi
2238     else
2239       PKG_CHECK_MODULES(OPENCV, opencv,
2240         [
2241           VLC_ADD_PLUGIN([opencv_example])
2242           VLC_ADD_PLUGIN([opencv_wrapper])
2243           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2244           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2245           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2246         ],
2247         [AC_MSG_ERROR([libopencv not found!])]
2248       )
2249     fi
2250 fi
2251
2252
2253 dnl
2254 dnl  libsmbclient plugin
2255 dnl
2256 AC_ARG_ENABLE(smb,
2257   [  --enable-smb            smb input module (default enabled)])
2258 if test "${enable_smb}" != "no"; then
2259   AC_CHECK_HEADERS(libsmbclient.h,
2260     [ VLC_ADD_PLUGIN([access_smb])
2261       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2262     [ if test -n "${enable_smb}"; then
2263         AC_MSG_ERROR([cannot find libsmbclient headers])
2264      fi ])
2265   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2266     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2267     [#include <libsmbclient.h>])
2268 fi
2269
2270 dnl
2271 dnl  libdvbpsi ts demux/mux
2272 dnl
2273 AC_ARG_ENABLE(dvbpsi,
2274   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2275 if test "${enable_dvbpsi}" != "no"
2276 then
2277   AC_ARG_WITH(dvbpsi,
2278   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2279   AC_ARG_WITH(dvbpsi,
2280   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2281   case "${with_dvbpsi}" in
2282   ""|yes)
2283     if test -z "${with_dvbpsi_tree}"
2284     then
2285       AC_CHECK_HEADERS(dvbpsi/dr.h,
2286         [ VLC_ADD_PLUGIN([ts])
2287           if test "${enable_sout}" != "no"; then
2288             VLC_ADD_PLUGIN([mux_ts])
2289           fi
2290           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2291         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2292         [#if defined( HAVE_STDINT_H )
2293 #   include <stdint.h>
2294 #elif defined( HAVE_INTTYPES_H )
2295 #   include <inttypes.h>
2296 #endif
2297 #include <dvbpsi/dvbpsi.h>
2298 #include <dvbpsi/descriptor.h>
2299 #include <dvbpsi/pat.h>
2300 #include <dvbpsi/pmt.h>])
2301     else
2302       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2303       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2304       if test -z "${real_dvbpsi_tree}"
2305       then
2306         dnl  The given directory can't be found
2307         AC_MSG_RESULT(no)
2308         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2309       fi
2310       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2311       then
2312         dnl  Use a custom libdvbpsi
2313         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2314         VLC_ADD_PLUGIN([ts])
2315         if test "${enable_sout}" != "no"; then
2316           VLC_ADD_PLUGIN([mux_ts])
2317         fi
2318         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2319         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2320       else
2321         dnl  The given libdvbpsi wasn't built
2322         AC_MSG_RESULT(no)
2323         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2324       fi
2325     fi
2326   ;;
2327   no)
2328     dnl  Compile without dvbpsi
2329   ;;
2330   *)
2331     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2332     if test -z "${with_dvbpsi}"
2333     then
2334       LDFLAGS_test=""
2335       CPPFLAGS_test=""
2336     else
2337       LDFLAGS_test="-L${with_dvbpsi}/lib"
2338       CPPFLAGS_test="-I${with_dvbpsi}/include"
2339     fi
2340     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2341     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2342       VLC_ADD_PLUGIN([ts])
2343       if test "${enable_sout}" != "no"; then
2344         VLC_ADD_PLUGIN([mux_ts])
2345       fi
2346       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2347       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2348
2349     ],[
2350       if test -n "${enable_dvbpsi}"
2351       then
2352         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])
2353       fi
2354     ])
2355     CPPFLAGS="${CPPFLAGS_save}"
2356   ;;
2357   esac
2358   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2359     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2360   ], [], [${LIBS_ts}])
2361
2362 fi
2363
2364 dnl
2365 dnl  Video4Linux plugin
2366 dnl
2367 AC_ARG_ENABLE(v4l,
2368   [  --enable-v4l            Video4Linux input support (default disabled)])
2369 if test "${enable_v4l}" = "yes"
2370 then
2371   AC_ARG_WITH(v4l,
2372     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2373   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2374   then
2375     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2376   fi
2377
2378   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2379   AC_CHECK_HEADERS(linux/videodev.h, [
2380     VLC_ADD_PLUGIN([v4l])
2381   ],[])
2382   CPPFLAGS="${CPPFLAGS_save}"
2383 fi
2384
2385 dnl
2386 dnl  Video4Linux2 plugin
2387 dnl
2388 AC_ARG_ENABLE(v4l2,
2389   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2390 if test "${enable_v4l2}" != "no"
2391 then
2392   AC_ARG_WITH(v4l2,
2393     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2394   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2395   then
2396     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2397   fi
2398
2399   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2400   if test "${have_v4l2_alsa}" = "true"
2401   then
2402     CFLAGS="${CFLAGS_save}"
2403     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2404                     #define ALSA_PCM_NEW_SW_PARAMS_API
2405                     #include <alsa/asoundlib.h>],
2406        [snd_pcm_hw_params_get_period_time(0,0,0);],
2407         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2408     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2409     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2410   fi
2411
2412   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2413   AC_CHECK_HEADERS(linux/videodev2.h, [
2414     VLC_ADD_PLUGIN([v4l2])
2415   ],[])
2416   CPPFLAGS="${CPPFLAGS_save}"
2417 fi
2418
2419
2420 dnl
2421 dnl  special access module for Hauppauge PVR cards
2422 dnl
2423 AC_ARG_ENABLE(pvr,
2424   [  --enable-pvr            PVR cards access module (default disabled)])
2425 if test "${enable_pvr}" = "yes"
2426 then
2427   VLC_ADD_PLUGIN([pvr])
2428   AC_ARG_WITH(videodev2,
2429     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2430   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2431   then
2432     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2433   fi
2434     
2435
2436   AC_CACHE_CHECK([for new linux/videodev2.h],
2437       [ac_cv_new_linux_videodev2_h],
2438       [AC_TRY_COMPILE([
2439           #include <sys/types.h>
2440           #   ifdef VIDEODEV2_H_FILE
2441           #   include VIDEODEV2_H_FILE
2442           #   else
2443           #   include <linux/videodev2.h>
2444           #   endif
2445           ],
2446           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2447           ac_cv_new_linux_videodev2_h=yes,
2448           ac_cv_new_linux_videodev2_h=no)])
2449   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2450     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2451   fi
2452 fi
2453
2454 dnl
2455 dnl  gnomeVFS access module
2456 dnl
2457 AC_ARG_ENABLE(gnomevfs,
2458   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2459 if test "${enable_gnomevfs}" = "yes" 
2460 then
2461   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2462     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2463     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2464     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2465     VLC_ADD_PLUGIN([access_gnomevfs]),
2466     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2467 fi
2468
2469 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2470 AC_ARG_ENABLE(libcdio,
2471   [  --enable-libcdio        CD input and control library support (default enabled)])
2472
2473
2474 have_libcdio=no
2475 have_libvcdinfo=no
2476 if test "${enable_libcdio}" != "no"
2477 then
2478   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2479      have_libcdio=yes
2480      AC_DEFINE(HAVE_LIBCDIO, 1, 
2481      [Define if you have libcdio 0.78.2 or greater installed]),
2482      [AC_MSG_WARN(CD Reading and information library not found)])
2483
2484   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2485      [have_libvcdinfo=yes
2486      AC_DEFINE(HAVE_VCDINFO, 1, 
2487      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2488      [AC_MSG_WARN(VCD information library not found)])
2489 fi
2490
2491 dnl
2492 dnl  VCDX and CDDAX modules
2493 dnl
2494 AC_ARG_ENABLE(cddax,
2495   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2496                   via libcdio (default disabled)]))
2497  
2498 AC_ARG_ENABLE(libcddb,
2499   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2500  
2501 if test "${enable_cddax}" = "yes"
2502 then
2503   if test "$have_libcdio" = "yes"
2504   then
2505     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2506     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2507     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2508     VLC_ADD_PLUGIN([cddax])
2509     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2510     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2511     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2512   else 
2513     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2514     HAVE_CDDAX=no
2515   fi
2516
2517   if test "$enable_libcddb" != "no"; then
2518     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2519       HAVE_LIBCDDB=yes 
2520       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2521       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2522       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2523       ],
2524       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2525       HAVE_LIBCDDB=no])
2526   fi
2527  
2528 fi
2529
2530 AC_ARG_ENABLE(vcdx,
2531   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2532  
2533 if test "${enable_vcdx}" = "yes"
2534 then
2535   if test "${have_libvcdinfo}" = "yes"
2536   then
2537     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2538     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2539   else 
2540     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2541     HAVE_VCDX=no
2542   fi
2543
2544   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2545    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2546     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2547     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2548     HAVE_VCDX=no])
2549
2550   if test "$have_libvcdinfo" = "yes"
2551   then
2552     AC_DEFINE(HAVE_VCDX, 1, 
2553     [Define for the VCD plugin using libcdio/libvcdinfo])
2554     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2555     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2556     VLC_ADD_PLUGIN([vcdx])
2557   else 
2558     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2559     HAVE_VCDX=no
2560   fi
2561 fi
2562
2563 dnl
2564 dnl  Built-in CD-DA and VCD module
2565 dnl
2566 AC_ARG_ENABLE(cdda,           
2567   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2568  
2569 AC_ARG_ENABLE(vcd,
2570   [  --enable-vcd            built-in VCD (default enabled)])
2571
2572 if test "${enable_vcd}" != "no"
2573 then
2574   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2575   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2576     AC_MSG_RESULT(yes)
2577     VLC_ADD_PLUGIN([vcd])
2578     VLC_ADD_PLUGIN([cdda])
2579   ],[
2580     AC_MSG_RESULT(no)
2581   ])
2582
2583   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2584   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2585     AC_MSG_RESULT(yes)
2586     VLC_ADD_PLUGIN([vcd])
2587     VLC_ADD_PLUGIN([cdda])
2588     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2589   ],[
2590     AC_MSG_RESULT(no)
2591   ])
2592
2593   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2594   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2595     AC_MSG_RESULT(yes)
2596     VLC_ADD_PLUGIN([vcd])
2597     VLC_ADD_PLUGIN([cdda])
2598     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2599   ],[
2600     AC_MSG_RESULT(no)
2601   ])
2602
2603   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2604   then
2605     VLC_ADD_PLUGIN([vcd])
2606     VLC_ADD_PLUGIN([cdda])
2607   fi
2608
2609   if test "${SYS}" = "darwin"
2610   then
2611     VLC_ADD_PLUGIN([vcd])
2612     VLC_ADD_PLUGIN([cdda])
2613     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2614     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2615   fi
2616
2617   if test "$enable_libcddb" != "no"; then
2618     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2619       HAVE_LIBCDDB=yes 
2620       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2621       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2622       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2623       ],:
2624       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2625       HAVE_LIBCDDB=no])
2626   fi
2627 fi
2628
2629 dnl
2630 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2631 dnl
2632 AC_ARG_ENABLE(dvb,
2633   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2634
2635 if test "${enable_dvb}" != "no"
2636 then
2637   AC_ARG_WITH(dvb,
2638   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2639   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2640   then
2641     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2642   fi
2643   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2644   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2645   VLC_ADD_PLUGIN([dvb])
2646   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2647   CPPFLAGS="${CPPFLAGS_save}"
2648 fi
2649
2650 dnl
2651 dnl  Screen capture module
2652 dnl
2653 AC_ARG_ENABLE(screen,
2654   [  --enable-screen         Screen capture support (default enabled)])
2655 if test "${enable_screen}" != "no"; then
2656   if test "${SYS}" = "darwin"; then
2657     AC_CHECK_HEADERS(OpenGL/gl.h, [
2658       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2659         VLC_ADD_PLUGIN([screen])
2660         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2661       ])
2662     ])
2663   elif test "${SYS}" = "mingw32"; then
2664     VLC_ADD_PLUGIN([screen])
2665     VLC_ADD_LIBS([screen],[-lgdi32])
2666   elif test "${SYS}" = "mingwce"; then
2667     CPPFLAGS="${CPPFLAGS_save}"
2668   elif test "${SYS}" = "beos"; then
2669     VLC_ADD_PLUGIN([screen])
2670     VLC_ADD_CXXFLAGS([screen],[])
2671     VLC_ADD_LIBS([screen],[-lbe])
2672   else
2673     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2674     AC_CHECK_HEADERS(X11/Xlib.h, [
2675       VLC_ADD_PLUGIN([screen])
2676       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2677       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2678     ])
2679     CPPFLAGS="${CPPFLAGS_save}"
2680   fi
2681 fi
2682
2683 dnl
2684 dnl  ipv6 plugin - not for QNX yet
2685 dnl
2686 have_ipv6=no
2687 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2688   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2689 ])
2690
2691 AS_IF([test "${have_ipv6}" = "yes"], [
2692   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2693
2694
2695 AC_CHECK_FUNCS(inet_ntop,[
2696   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2697
2698
2699 dnl
2700 dnl  ogg demux plugin
2701 dnl
2702 AC_ARG_ENABLE(ogg,
2703   [  --enable-ogg            Ogg demux support (default enabled)])
2704 if test "${enable_ogg}" != "no"
2705 then
2706   AC_ARG_WITH(ogg-tree,
2707   [    --with-ogg-tree=PATH  ogg tree for static linking])
2708   if test -n "${with_ogg_tree}"
2709   then
2710     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2711     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2712     if test -z "${real_ogg_tree}"
2713     then
2714       dnl  The given directory can't be found
2715       AC_MSG_RESULT(no)
2716       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2717     fi
2718     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2719     then
2720       dnl  Use a custom ogg
2721       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2722       VLC_ADD_PLUGIN([ogg])
2723       if test "${enable_sout}" != "no"; then
2724         VLC_ADD_PLUGIN([mux_ogg])
2725       fi
2726       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2727       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2728     else
2729       dnl  The given ogg wasn't built
2730       AC_MSG_RESULT(no)
2731       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2732     fi
2733   else
2734     AC_CHECK_HEADERS(ogg/ogg.h, [
2735       AC_CHECK_LIB( ogg, oggpack_read, [
2736         VLC_ADD_PLUGIN([ogg])
2737         if test "${enable_sout}" != "no"; then
2738           VLC_ADD_PLUGIN([mux_ogg])
2739         fi
2740         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2741      ],[])
2742   fi
2743 fi
2744
2745 dnl
2746 dnl  matroska demux plugin
2747 dnl
2748 AC_ARG_ENABLE(mkv,
2749   [  --enable-mkv            Matroska demux support (default enabled)])
2750 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2751   AC_LANG_PUSH(C++)
2752   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2753     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2754     AC_EGREP_CPP(yes,
2755       [#include <ebml/EbmlVersion.h>
2756        #ifdef LIBEBML_VERSION
2757        #if LIBEBML_VERSION >= 0x000706
2758        yes
2759        #endif
2760        #endif],
2761       [AC_MSG_RESULT([yes])
2762         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2763           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2764           AC_EGREP_CPP(yes,
2765             [#include <matroska/KaxVersion.h>
2766              #ifdef LIBMATROSKA_VERSION
2767              #if LIBMATROSKA_VERSION >= 0x000705
2768              yes
2769              #endif
2770              #endif],
2771             [AC_MSG_RESULT([yes])
2772               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2773               VLC_ADD_CXXFLAGS([mkv],[])
2774               if test "${SYS}" = "darwin"; then
2775                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2776               fi
2777               AC_CHECK_LIB(ebml_pic, main, [
2778                 VLC_ADD_PLUGIN([mkv])
2779                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2780               ],
2781                 AC_CHECK_LIB(ebml, main, [
2782                   VLC_ADD_PLUGIN([mkv])
2783                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2784                 ]) 
2785               )
2786             ],
2787             [AC_MSG_RESULT([no])
2788               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.])
2789           ])
2790         ])
2791       ],
2792       [AC_MSG_RESULT([no])
2793         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.])
2794     ])
2795   ])
2796   AC_LANG_POP(C++)
2797 fi
2798
2799 dnl
2800 dnl  modplug demux plugin
2801 dnl
2802 AC_ARG_ENABLE(mod,
2803   [  --enable-mod            Mod demux support (default enabled)])
2804 if test "${enable_mod}" != "no"
2805 then
2806   AC_ARG_WITH(mod-tree,
2807   [    --with-mod-tree=PATH mod tree for static linking])
2808   if test -n "${with_mod_tree}"
2809   then
2810     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2811     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2812     if test -z "${real_mod_tree}"
2813     then
2814       dnl  The given directory can't be found
2815       AC_MSG_RESULT(no)
2816       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2817     fi
2818     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2819     then
2820       dnl  Use a custom mod
2821       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2822       VLC_ADD_PLUGIN([mod])
2823       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2824       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2825     else
2826       dnl  The given mod wasn't built
2827       AC_MSG_RESULT(no)
2828       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2829     fi
2830   else
2831     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2832       VLC_ADD_PLUGIN([mod])
2833       VLC_ADD_CXXFLAGS([mod],[])
2834       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2835   fi
2836 fi
2837
2838 dnl
2839 dnl  mpc demux plugin
2840 dnl
2841 AC_ARG_ENABLE(mpc,
2842   [  --enable-mpc            Mpc demux support (default enabled)])
2843 if test "${enable_mpc}" != "no"
2844 then
2845   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2846     VLC_ADD_PLUGIN([mpc])
2847     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2848 fi
2849
2850 dnl
2851 dnl  game music emu demux plugin
2852 dnl
2853 AC_ARG_ENABLE(gme,
2854   [  --enable-gme            Game Music Emu demux support (default enabled)])
2855 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2856 then
2857   AC_LANG_PUSH(C++)
2858   AC_ARG_WITH(gme-tree,
2859   [    --with-gme-tree=PATH gme tree for static linking])
2860   if test -n "${with_gme_tree}"
2861   then
2862     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2863     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2864     if test -z "${real_gme_tree}"
2865     then
2866       dnl  The given directory can't be found
2867       AC_MSG_RESULT(no)
2868       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2869     fi
2870     if test -f "${real_gme_tree}/gme/libgme.a"
2871     then
2872       dnl  Use a custom gme
2873       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2874       VLC_ADD_PLUGIN([gme])
2875       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2876       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2877     else
2878       dnl  The given gme wasn't built
2879       AC_MSG_RESULT(no)
2880       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2881     fi
2882   else
2883       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2884   fi
2885   AC_LANG_POP(C++)
2886 fi
2887
2888 dnl
2889 dnl  Codec plugins
2890 dnl
2891
2892 AC_ARG_WITH(,[Codec plugins:])
2893
2894 dnl
2895 dnl  mad plugin
2896 dnl
2897 AC_ARG_ENABLE(mad,
2898   [  --enable-mad            libmad module (default enabled)])
2899 if test "${enable_mad}" != "no"
2900 then
2901   AC_ARG_WITH(mad,
2902     [    --with-mad=PATH       path to libmad],[],[])
2903   if test "${with_mad}" != "no" -a -n "${with_mad}"
2904   then
2905     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2906     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2907   fi
2908
2909   AC_ARG_WITH(mad-tree,
2910     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2911   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2912   then
2913     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2914     if test -z "${real_mad_tree}"
2915     then
2916       dnl  The given directory can't be found
2917       AC_MSG_RESULT(no)
2918       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2919     fi
2920     dnl  Use a custom libmad
2921     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2922     if test -f ${real_mad_tree}/mad.h
2923     then
2924       AC_MSG_RESULT(yes)
2925       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2926       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2927       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2928       AC_CHECK_LIB(mad, mad_bit_init, [
2929         VLC_ADD_PLUGIN([mpgatofixed32])
2930         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2931         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2932       ],[])
2933       LDFLAGS="${LDFLAGS_save}"
2934     else
2935       AC_MSG_RESULT(no)
2936       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2937     fi
2938   else
2939     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2940     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2941     AC_CHECK_HEADERS(mad.h, ,
2942       [ 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.]) ])
2943     AC_CHECK_LIB(mad, mad_bit_init, [
2944       VLC_ADD_PLUGIN([mpgatofixed32])
2945       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2946       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2947     CPPFLAGS="${CPPFLAGS_save}"
2948     LDFLAGS="${LDFLAGS_save}"
2949   fi
2950 fi
2951
2952 dnl
2953 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2954 dnl
2955 AC_ARG_ENABLE( id3tag,
2956 [  --disable-id3tag        id3tag metadata reader plugin (default enabled)])
2957 AS_IF([test "${enable_id3tag}" != "no"], [
2958   AC_CHECK_HEADERS(id3tag.h, [
2959     AC_CHECK_HEADERS(zlib.h, [
2960       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2961       VLC_ADD_PLUGIN([id3tag])
2962     ])
2963   ])
2964 ])
2965
2966 dnl
2967 dnl  avcodec decoder/encoder plugin
2968 dnl
2969
2970 if test "${with_ffmpeg_tree}"
2971 then
2972   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2973 fi
2974
2975 AC_ARG_ENABLE(avcodec,
2976 [  --enable-avcodec        libavcodec codec (default enabled)])
2977 if test "${enable_avcodec}" != "no"
2978 then
2979   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2980     [
2981       VLC_SAVE_FLAGS
2982       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2983       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2984       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2985       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2986       VLC_ADD_PLUGIN([avcodec])
2987       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2988       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2989       VLC_RESTORE_FLAGS
2990     ],[
2991       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2992   ])
2993 fi
2994
2995 dnl
2996 dnl  avformat demuxer/muxer plugin
2997 dnl
2998
2999 AC_ARG_ENABLE(avformat,
3000 [  --enable-avformat       libavformat containers (default enabled)])
3001 if test "${enable_avformat}" != "no"
3002 then
3003   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3004     [
3005       VLC_SAVE_FLAGS
3006       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3007       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3008       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3009       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3010       VLC_ADD_PLUGIN([avformat])
3011       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3012       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3013       VLC_RESTORE_FLAGS
3014     ],[
3015       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3016   ])
3017 fi
3018
3019 dnl
3020 dnl  swscale image scaling and conversion plugin
3021 dnl
3022
3023 AC_ARG_ENABLE(swscale,
3024   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
3025                   (default enabled)]))
3026 if test "${enable_swscale}" != "no"
3027 then
3028   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3029     [
3030       VLC_SAVE_FLAGS
3031       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3032       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3033       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3034       VLC_ADD_PLUGIN([swscale])
3035       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3036       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3037       VLC_RESTORE_FLAGS
3038     ],[
3039       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3040       enable_imgresample=yes
3041   ])
3042 fi
3043
3044 dnl
3045 dnl  avcodec (deprecated API) image scaling and conversion plugin
3046 dnl
3047 dnl  This is build as a seperate module than the avcodec one to prevent
3048 dnl  stupid run time library load errors from disabling most codecs
3049 dnl  from VLC.
3050 dnl
3051
3052 AC_ARG_ENABLE(imgresample,
3053   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3054                   and conversion (default disabled)]))
3055 if test "${enable_imgresample}" = "yes"
3056 then
3057   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3058     [
3059       VLC_SAVE_FLAGS
3060       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3061       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3062       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3063       AC_CHECK_LIB(avcodec,img_resample,
3064         [
3065           VLC_ADD_PLUGIN([imgresample])
3066           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3067           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3068         ],[
3069           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3070           if test "${enable_swscale}" != "no"
3071           then
3072             AC_MSG_ERROR([swscale (and its fallback module imgresample) support will be missing. Use --disable-swscale to ignore this error. (This basically means that you will be missing any good software scaling module and some video chroma converters.)])
3073           fi
3074         # That sed hack to add -rpath is kind of ugly but at least it fixes
3075         # detection when linking against a shared libavcodec with
3076         # a libavutil not in one of your ld.so.conf directories.
3077         # (for example a local install)
3078         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3079       VLC_RESTORE_FLAGS
3080     ],[
3081       AC_MSG_WARN([Could not find libavcodec.])
3082   ])
3083 fi
3084
3085 dnl
3086 dnl  postproc plugin
3087 dnl
3088
3089 AC_ARG_ENABLE(postproc,
3090 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3091 if test "${enable_postproc}" != "no"
3092 then
3093   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3094     [
3095       VLC_SAVE_FLAGS
3096       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3097       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3098       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3099       VLC_ADD_PLUGIN([postproc])
3100       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3101       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3102       VLC_RESTORE_FLAGS
3103     ],[
3104       AC_MSG_ERROR([Could not find libpostproc.])
3105   ])
3106 fi
3107
3108 dnl
3109 dnl  faad decoder plugin
3110 dnl
3111 AC_ARG_ENABLE(faad,
3112 [  --enable-faad           faad codec (default disabled)])
3113 if test "${enable_faad}" = "yes"
3114 then
3115   AC_ARG_WITH(faad-tree,
3116   [    --with-faad-tree=PATH faad tree for static linking])
3117   if test -n "${with_faad_tree}"
3118   then
3119     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3120     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3121     if test -z "${real_faad_tree}"
3122     then
3123       dnl  The given directory can't be found
3124       AC_MSG_RESULT(no)
3125       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3126     fi
3127     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3128     then
3129       dnl  Use a custom faad
3130       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3131       VLC_ADD_PLUGIN([faad])
3132       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3133       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3134     else
3135       dnl  The given libfaad wasn't built
3136       AC_MSG_RESULT(no)
3137       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3138     fi
3139   else
3140     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3141     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3142     AC_CHECK_HEADERS(faad.h, ,
3143       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3144     AC_CHECK_LIB(faad, faacDecOpen, [
3145       VLC_ADD_PLUGIN([faad])
3146       VLC_ADD_LIBS([faad],[-lfaad]) ],
3147       AC_CHECK_LIB(faad, NeAACDecOpen, [
3148         VLC_ADD_PLUGIN([faad])
3149         VLC_ADD_LIBS([faad],[-lfaad]) ],
3150         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3151     LDFLAGS="${LDFLAGS_save}"
3152     CPPFLAGS="${CPPFLAGS_save}"
3153   fi
3154 fi
3155
3156 dnl
3157 dnl twolame encoder plugin
3158 dnl
3159 AC_ARG_ENABLE(twolame,
3160 [  --enable-twolame        twolame codec (default disabled)])
3161 if test "${enable_twolame}" = "yes"
3162 then
3163   AC_ARG_WITH(twolame-tree,
3164   [    --with-twolame-tree=PATH twolame tree for static linking])
3165   if test -n "${with_twolame_tree}"
3166   then
3167     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3168     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3169     if test -z "${real_twolame_tree}"
3170     then
3171       dnl  The given directory can't be found
3172       AC_MSG_RESULT(no)
3173       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3174     fi
3175     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3176     then
3177       dnl  Use a custom twolame
3178       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3179       VLC_ADD_PLUGIN([twolame])
3180       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3181       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3182     else
3183       dnl  The given libtwolame wasn't built
3184       AC_MSG_RESULT(no)
3185       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3186     fi
3187   else
3188     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3189     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3190     AC_CHECK_HEADERS(twolame.h, ,
3191       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3192     AC_CHECK_LIB(twolame, twolame_init, [
3193       VLC_ADD_PLUGIN([twolame])
3194       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3195       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3196         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3197     LDFLAGS="${LDFLAGS_save}"  
3198     CPPFLAGS="${CPPFLAGS_save}"
3199   fi
3200 fi
3201
3202 dnl
3203 dnl  QuickTime plugin
3204 dnl
3205 AC_ARG_ENABLE(quicktime,
3206   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3207 if test "${enable_quicktime}" != "no" &&
3208   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3209 then
3210   if test "${SYS}" = "mingw32"; then
3211     VLC_ADD_PLUGIN([quicktime])
3212   else
3213   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3214     [ VLC_ADD_PLUGIN([quicktime])
3215       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3216     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3217   fi
3218 fi
3219
3220 dnl
3221 dnl  Real plugin
3222 dnl
3223 AC_ARG_ENABLE(real,
3224   [  --enable-real           Real media module (default disabled)])
3225 if test "${enable_real}" = "yes"; then
3226   VLC_ADD_PLUGIN([realaudio])
3227   VLC_ADD_PLUGIN([realvideo])
3228 fi
3229
3230 dnl
3231 dnl  Real RTSP plugin
3232 dnl
3233 AC_ARG_ENABLE(realrtsp,
3234   [  --enable-realrtsp       Real RTSP module (default disabled)])
3235 if test "${enable_realrtsp}" = "yes"; then
3236   VLC_ADD_PLUGIN([access_realrtsp])
3237 fi
3238
3239 dnl
3240 dnl MP4 module
3241 dnl
3242 AC_CHECK_HEADERS(zlib.h, [
3243   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3244 ] )
3245
3246 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3247   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3248 ] )
3249
3250 dnl
3251 dnl skins2 module
3252 dnl
3253 AC_ARG_ENABLE(libtar,
3254   [  --enable-libtar support for skins2 (default enabled)])
3255
3256 AS_IF([test "${enable_libtar}" != "no"],[
3257   AC_CHECK_HEADERS(libtar.h, [
3258     VLC_ADD_LIBS([skins2],[-ltar])
3259   ] )
3260 ])
3261
3262 dnl
3263 dnl A52/AC3 decoder plugin
3264 dnl
3265 AC_ARG_ENABLE(a52,
3266   [  --enable-a52            A/52 support with liba52 (default enabled)])
3267 if test "${enable_a52}" != "no"
3268 then
3269   AC_ARG_WITH(a52,
3270     [    --with-a52=PATH       a52 headers and libraries])
3271   AC_ARG_WITH(a52-tree,
3272     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3273   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3274   then
3275     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3276     if test -z "${real_a52_tree}"
3277     then
3278       dnl  The given directory can't be found
3279       AC_MSG_RESULT(no)
3280       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3281     fi
3282     dnl  Use a custom a52dec
3283     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3284     if test -f ${real_a52_tree}/include/a52.h
3285     then
3286       AC_MSG_RESULT(yes)
3287       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3288       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3289       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3290       AC_CHECK_LIB(a52, a52_free, [
3291         VLC_ADD_PLUGIN([a52tofloat32])
3292         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3293         VLC_ADD_LIBS([a52tofloat32],[-la52])
3294         ],[
3295         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3296         then
3297           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3298         else
3299           AC_MSG_ERROR([the specified tree hasn't been compiled])
3300         fi
3301       ])
3302       LDFLAGS="${LDFLAGS_save}"
3303     else
3304       AC_MSG_RESULT(no)
3305       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3306     fi
3307   else
3308     if test -z "${with_a52}"
3309     then
3310       LDFLAGS_test=""
3311       CPPFLAGS_test=""
3312     else
3313       LDFLAGS_test="-L${with_a52}/lib"
3314       CPPFLAGS_test="-I${with_a52}/include"
3315     fi
3316     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3317     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3318     AC_CHECK_HEADERS(a52dec/a52.h, [
3319       AC_CHECK_LIB(a52, a52_free, [
3320         VLC_ADD_PLUGIN([a52tofloat32])
3321         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3322         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3323       ],[
3324         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.])
3325         ])
3326     ],[
3327       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.])
3328     ])
3329     CPPFLAGS="${CPPFLAGS_save}"
3330     LDFLAGS="${LDFLAGS_save}"
3331   fi
3332 fi
3333
3334 AC_ARG_WITH(a52-fixed,
3335       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3336       [
3337         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3338
3339 dnl
3340 dnl DTS Coherent Acoustics decoder plugin
3341 dnl
3342 AS_IF([test "x${enable_dts}" != "x"], [
3343   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3344 ])
3345 AS_IF([test "x${with_dts_tree}" != "x"], [
3346   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3347 ])
3348
3349 AC_ARG_ENABLE(dca,
3350   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3351                   (default enabled)]))
3352 AS_IF([test "${enable_dca}" != "no"], [
3353   AC_ARG_WITH(dca-tree,
3354     [    --with-dca-tree=PATH  libdca tree for static linking],,
3355     [with_dca_tree="no"])
3356   AS_IF([test "${with_dca_tree}" != "no"], [
3357     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3358     AS_IF([test -z "${real_dca_tree}"], [
3359       dnl  The given directory can't be found
3360       AC_MSG_RESULT(no)
3361       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3362     ])
3363     dnl  Use a custom libdca
3364     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3365     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3366       AC_MSG_RESULT(yes)
3367       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3368       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3369         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3370       ], [
3371         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3372       ])
3373     ], [
3374       AC_MSG_RESULT(no)
3375       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3376     ])
3377   ], [
3378     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3379       VLC_ADD_PLUGIN([dtstofloat32])
3380       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3381       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3382     ], [
3383       AS_IF([test "x${enable_dca}" != "x"], [
3384         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3385       ])
3386     ])
3387   ])
3388 ])
3389
3390 dnl
3391 dnl  Flac plugin
3392 dnl
3393 AC_ARG_ENABLE(flac,
3394   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3395 if test "${enable_flac}" = "yes"
3396 then
3397   AC_ARG_WITH(flac-tree,
3398   [    --with-flac-tree=PATH flac tree for static linking])
3399   if test -n "${with_flac_tree}"
3400   then
3401     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3402     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3403     if test -z "${real_flac_tree}"
3404     then
3405       dnl  The given directory can't be found
3406       AC_MSG_RESULT(no)
3407       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3408     fi
3409     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3410     then
3411       dnl  Use a custom flac
3412       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3413       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3414       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3415       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3416     else
3417       dnl  The given flac wasn't built
3418       AC_MSG_RESULT(no)
3419       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3420     fi
3421   else
3422     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3423       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3424      ],[])
3425   fi
3426 fi
3427
3428 dnl
3429 dnl  Libmpeg2 plugin
3430 dnl
3431 AC_ARG_ENABLE(libmpeg2,
3432   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3433 if test "${enable_libmpeg2}" != "no"
3434 then
3435   AC_ARG_WITH(libmpeg2-tree,
3436   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3437   AS_IF([test -n "${with_libmpeg2_tree}"],[
3438     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3439     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3440     if test -z "${real_libmpeg2_tree}"
3441     then
3442       dnl  The given directory can't be found
3443       AC_MSG_RESULT(no)
3444       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3445     fi
3446     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3447     then
3448       dnl  Use a custom libmpeg2
3449       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3450       VLC_ADD_PLUGIN([libmpeg2])
3451       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3452       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3453     else
3454       dnl  The given libmpeg2 wasn't built
3455       AC_MSG_RESULT(no)
3456       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3457     fi
3458   ],[
3459    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3460           VLC_ADD_PLUGIN([libmpeg2])
3461           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3462           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3463        ], 
3464       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.]))
3465   ])
3466 fi
3467
3468 dnl
3469 dnl  Vorbis plugin
3470 dnl
3471 AC_ARG_ENABLE(vorbis,
3472   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3473 if test "${enable_vorbis}" != "no"
3474 then
3475   AC_ARG_WITH(vorbis-tree,
3476   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3477   if test -n "${with_vorbis_tree}"
3478   then
3479     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3480     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3481     if test -z "${real_vorbis_tree}"
3482     then
3483       dnl  The given directory can't be found
3484       AC_MSG_RESULT(no)
3485       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3486     fi
3487     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3488     then
3489       dnl  Use a custom vorbis 
3490       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3491       VLC_ADD_PLUGIN([vorbis])
3492       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3493       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3494     else
3495       dnl  The given vorbis wasn't built
3496       AC_MSG_RESULT(no)
3497       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3498     fi
3499   else
3500     AC_CHECK_HEADERS(vorbis/codec.h, [
3501       VLC_ADD_PLUGIN([vorbis])
3502       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3503
3504     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3505       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3506   fi
3507 fi
3508
3509 dnl
3510 dnl  Tremor plugin
3511 dnl
3512 AC_ARG_ENABLE(tremor,
3513   [  --enable-tremor         Tremor decoder support (default disabled)])
3514 if test "${enable_tremor}" = "yes"
3515 then
3516   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3517     VLC_ADD_PLUGIN([tremor])
3518     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3519    ],[])
3520 fi
3521
3522 dnl
3523 dnl  Speex plugin
3524 dnl
3525 AC_ARG_ENABLE(speex,
3526   [  --enable-speex          Speex decoder support (default enabled)])
3527 if test "${enable_speex}" != "no"
3528 then
3529   AC_ARG_WITH(speex-tree,
3530   [    --with-speex-tree=PATH speex tree for static linking])
3531   if test -n "${with_speex_tree}"
3532   then
3533     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3534     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3535     if test -z "${real_speex_tree}"
3536     then
3537       dnl  The given directory can't be found
3538       AC_MSG_RESULT(no)
3539       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3540     fi
3541     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3542     then
3543       dnl  Use a custom speex
3544       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3545       VLC_ADD_PLUGIN([speex])
3546       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3547       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3548     else
3549       dnl  The given speex wasn't built
3550       AC_MSG_RESULT(no)
3551       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3552     fi
3553   else
3554     AC_CHECK_HEADERS(speex/speex.h, [
3555       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3556       AC_CHECK_LIB(speex, speex_decode_int, [
3557         VLC_ADD_PLUGIN([speex])
3558         VLC_ADD_LIBS([speex],[-lspeex]) ],
3559         [ AC_MSG_RESULT([no])
3560           AC_MSG_WARN([Your libspeex is too old, please get the development
3561                        version.]) ],[])
3562       LDFLAGS="${LDFLAGS_save}"
3563       ],[])
3564   fi
3565 fi
3566
3567 dnl
3568 dnl  tarkin decoder plugin
3569 dnl
3570 AC_ARG_ENABLE(tarkin,
3571 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3572 if test "${enable_tarkin}" = "yes"
3573 then
3574   AC_ARG_WITH(tarkin-tree,
3575   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3576   if test -n "${with_tarkin_tree}"
3577   then
3578     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3579     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3580     if test -f "${real_tarkin_tree}/tarkin.o"
3581     then
3582       VLC_ADD_PLUGIN([tarkin])
3583       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3584       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])
3585       AC_MSG_RESULT(yes)
3586     else
3587       dnl  The given tarkin tree wasn't built
3588       AC_MSG_RESULT(no)
3589       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3590                     make sure you compiled tarkin in ${with_tarkin_tree}])
3591     fi
3592   fi
3593 fi
3594
3595 dnl
3596 dnl  theora decoder plugin
3597 dnl
3598 AC_ARG_ENABLE(theora,
3599 [  --enable-theora         experimental theora codec (default disabled)])
3600 if test "${enable_theora}" = "yes"
3601 then
3602   AC_CHECK_HEADERS(theora/theora.h, [
3603     AC_CHECK_LIB(theora, theora_granule_time, [
3604       VLC_ADD_PLUGIN([theora])
3605       theora_libs="-ltheora -logg"
3606       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3607       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3608 You also need to check that you have a libogg posterior to the 1.0 release.])],
3609       [-logg])
3610   ])
3611 fi
3612
3613 dnl
3614 dnl  dirac decoder plugin
3615 dnl
3616 AC_ARG_ENABLE(dirac,
3617 [  --enable-dirac          experimental dirac codec (default disabled)])
3618 if test "${enable_dirac}" = "yes"; then
3619   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3620       VLC_ADD_PLUGIN([dirac])
3621       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3622       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3623       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3624   ])
3625 fi
3626
3627 dnl
3628 dnl  schroedinger decoder plugin (for dirac format video)
3629 dnl
3630 AC_ARG_ENABLE(schroedinger,
3631 [  --disable-schroedinger   high performance dirac codec (default enabled)])
3632 if test "${enable_schroedinger}" != "no"; then
3633   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3634       VLC_ADD_PLUGIN([schroedinger])
3635       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3636       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3637         AS_IF([test "x${enable_schroedinger}" != "x"], [
3638           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3639         ])
3640 ])
3641 fi
3642
3643 dnl
3644 dnl  PNG decoder module
3645 dnl
3646 AC_ARG_ENABLE(png,
3647   [  --enable-png            PNG support (default enabled)])
3648 if test "${enable_png}" != "no"; then
3649 AC_CHECK_HEADERS(png.h, [
3650   LDFLAGS="${LDFLAGS_save} -lz"
3651   AC_CHECK_LIB(png, png_set_rows, [
3652     VLC_ADD_LIBS([png],[-lpng -lz])
3653     VLC_ADD_PLUGIN([png])
3654     VLC_ADD_PLUGIN([osdmenu])
3655     VLC_ADD_PLUGIN([osd_parser])
3656     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3657     [],[-lz])
3658     LDFLAGS="${LDFLAGS_save}"
3659   ])
3660 fi
3661 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3662
3663 dnl
3664 dnl H264 encoder plugin (using libx264)
3665 dnl
3666 AC_ARG_ENABLE(x264,
3667   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3668 if test "${enable_x264}" != "no"; then
3669   AC_ARG_WITH(x264-tree,
3670     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3671   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3672   then
3673     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3674     if test -z "${real_x264_tree}"
3675     then
3676       dnl  The given directory can't be found
3677       AC_MSG_RESULT(no)
3678       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3679     fi
3680     dnl  Use a custom libx264
3681     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3682     if test -f ${real_x264_tree}/x264.h
3683     then
3684       AC_MSG_RESULT(yes)
3685       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3686       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3687       PKG_CHECK_MODULES(X264,x264, [
3688         VLC_ADD_PLUGIN([x264])
3689         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3690         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3691       ],[
3692         AC_MSG_ERROR([the specified tree hasn't been compiled])
3693       ])
3694       LDFLAGS="${LDFLAGS_save}"
3695     else
3696       AC_MSG_RESULT(no)
3697       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3698     fi
3699   else
3700       PKG_CHECK_MODULES(X264,x264, [
3701         VLC_ADD_PLUGIN([x264])
3702         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3703         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3704       ],[
3705         if test "${enable_x264}" = "yes"; then
3706             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3707           fi
3708       ])
3709     LDFLAGS="${LDFLAGS_save}"
3710   fi
3711 fi
3712
3713 dnl
3714 dnl libfluidsynth (MIDI synthetizer) plugin
3715 dnl
3716 AC_ARG_ENABLE(fluidsynth,
3717   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3718 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3719   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3720     VLC_ADD_PLUGIN(fluidsynth)
3721     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3722     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3723   ], [
3724     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3725       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3726     ])
3727   ])
3728 ])
3729
3730 dnl
3731 dnl Teletext Modules
3732 dnl vbi decoder plugin (using libzbvi)
3733 dnl telx module
3734 dnl uncompatible
3735 dnl
3736 AC_ARG_ENABLE(zvbi,
3737   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3738                   libzvbi (default enabled)]))
3739 AC_ARG_ENABLE(telx,
3740   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3741                   zvbi) (default disabled)]))
3742
3743 AS_IF( [test "${enable_zvbi}" != "no"],[
3744   AS_IF( [test "${enable_telx}" = "yes"],[
3745     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3746   ],[
3747     PKG_CHECK_MODULES(ZVBI,
3748         zvbi-0.2 >= 0.2.25,
3749         [
3750           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3751           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3752           VLC_ADD_PLUGIN([zvbi])
3753           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3754         ],[
3755           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3756           enable_telx="yes"
3757         ])
3758     ])  
3759   ])
3760 AS_IF( [test "${enable_telx}" = "yes"],[
3761   VLC_ADD_PLUGIN([telx])
3762   ])