WinCE: get rid of program startup mess
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc, 1.0.0-git)
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         CPP="${CPP} -isysroot ${with_macosx_sdk}" 
279         CC="${CC} -isysroot ${with_macosx_sdk}" 
280         CXX="${CXX} -isysroot ${with_macosx_sdk}"
281         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
282         LD="${LD} -syslibroot ${with_macosx_sdk}"
283     fi
284     AC_ARG_WITH(macosx-version-min,
285        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
286     if test "${with_macosx_version_min}" != "" ; then
287         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}" 
288         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
289         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
290         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
291         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
292         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
293         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
294         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
295         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
296         export MACOSX_DEPLOYMENT_TARGET
297     fi
298     ;;
299   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
300     AC_CHECK_TOOL(WINDRES, windres, :)
301
302     case "${host_os}" in
303       *wince* | *mingwce* | *mingw32ce* | *pe*)
304         SYS=mingwce
305         ;;
306       *mingw32*)
307         SYS=mingw32
308         ;;
309       *cygwin*)
310         dnl Check if we are using the mno-cygwin mode in which case we are
311         dnl actually dealing with a mingw32 compiler.
312         AC_EGREP_CPP(yes,
313             [#ifdef WIN32
314              yes
315              #endif],
316             SYS=mingw32, SYS=cygwin)
317         ;;
318     esac
319
320     if test "${SYS}" = "mingw32"; then
321         # add ws2_32 for closesocket, select, recv
322         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
323         VLC_ADD_LDFLAGS([vlc],[-mwindows])
324         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
325         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
326         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])
327     fi
328     if test "${SYS}" = "mingwce"; then
329         # add ws2 for closesocket, select, recv
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 <winsock2.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 scene],[-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)
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  if test "${SYS}" != "darwin"; then
1028     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1029  else
1030     dnl On darwin we explicitely disable it.
1031     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1032  fi
1033 fi
1034
1035 dnl Check for Darwin plugin linking flags
1036 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1037     [ac_cv_ld_darwin],
1038     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1039      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1040 if test "${ac_cv_ld_darwin}" != "no"; then
1041     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1042 fi
1043
1044 dnl Checks for __attribute__(aligned()) directive
1045 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1046     [ac_cv_c_attribute_aligned],
1047     [ac_cv_c_attribute_aligned=0
1048         CFLAGS="${CFLAGS_save} -Werror"
1049     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1050         AC_TRY_COMPILE([],
1051         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1052         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1053     done
1054         CFLAGS="${CFLAGS_save}"])
1055 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1056     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1057         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1058 fi
1059
1060 dnl Check for __attribute__((packed))
1061 AC_CACHE_CHECK([for __attribute__((packed))],
1062   [ac_cv_c_attribute_packed],
1063   [ac_cv_c_attribute_packed=no
1064    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1065                     [ac_cv_c_attribute_packed=yes])])
1066 if test "${ac_cv_c_attribute_packed}" != "no"; then
1067   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1068 fi
1069
1070 dnl
1071 dnl  Check the CPU
1072 dnl
1073 case "${host_cpu}" in
1074   "")
1075     ARCH=unknown
1076     ;;
1077   *)
1078     ARCH="${host_cpu}"
1079     ;;
1080 esac
1081
1082 dnl Check for backtrace() support
1083 AC_CHECK_HEADERS(execinfo.h)
1084 AC_CHECK_FUNCS(backtrace)
1085
1086 dnl
1087 dnl  Enable profiling
1088 dnl
1089 AC_ARG_ENABLE(gprof,
1090 [  --enable-gprof          gprof profiling (default disabled)])
1091 AC_ARG_ENABLE(cprof,
1092 [  --enable-cprof          cprof profiling (default disabled)])
1093 test "${enable_gprof}" != "yes" && enable_gprof="no"
1094 test "${enable_cprof}" != "yes" && enable_cprof="no"
1095
1096 dnl
1097 dnl  default modules
1098 dnl
1099 dnl Video filters:
1100 VLC_ADD_PLUGIN([deinterlace])
1101 VLC_ADD_PLUGIN([yuvp])
1102 VLC_ADD_PLUGIN([invert])
1103 VLC_ADD_PLUGIN([adjust])
1104 VLC_ADD_PLUGIN([transform])
1105 VLC_ADD_PLUGIN([wave])
1106 VLC_ADD_PLUGIN([ripple])
1107 VLC_ADD_PLUGIN([psychedelic])
1108 VLC_ADD_PLUGIN([gradient])
1109 VLC_ADD_PLUGIN([motionblur])
1110 VLC_ADD_PLUGIN([rv32])
1111 VLC_ADD_PLUGIN([rotate])
1112 VLC_ADD_PLUGIN([noise])
1113 VLC_ADD_PLUGIN([grain])
1114 VLC_ADD_PLUGIN([extract])
1115 VLC_ADD_PLUGIN([sharpen])
1116 VLC_ADD_PLUGIN([croppadd])
1117 VLC_ADD_PLUGIN([canvas])
1118 VLC_ADD_PLUGIN([blendbench])
1119 VLC_ADD_PLUGIN([blend])
1120 VLC_ADD_PLUGIN([scale])
1121 VLC_ADD_PLUGIN([vmem])
1122 VLC_ADD_PLUGIN([logo])
1123 VLC_ADD_PLUGIN([magnify])
1124 VLC_ADD_PLUGIN([puzzle])
1125 VLC_ADD_PLUGIN([colorthres])
1126 VLC_ADD_PLUGIN([scene])
1127 VLC_ADD_PLUGIN([yuv])
1128
1129 ALIASES="${ALIASES} cvlc"
1130
1131 dnl
1132 dnl default modules that need g++
1133 dnl
1134 AC_LANG_PUSH(C++)
1135 VLC_ADD_PLUGIN([spatializer])
1136 AC_LANG_POP(C++)
1137
1138 if test "${SYS}" != "mingwce"; then
1139   VLC_ADD_PLUGIN([gestures])
1140   VLC_ADD_PLUGIN([rc])
1141   VLC_ADD_PLUGIN([hotkeys])
1142   VLC_ADD_PLUGIN([showintf])
1143   VLC_ADD_PLUGIN([marq])
1144   VLC_ADD_PLUGIN([podcast])
1145   VLC_ADD_PLUGIN([shout])
1146   VLC_ADD_PLUGIN([sap])
1147   VLC_ADD_PLUGIN([fake])
1148   VLC_ADD_PLUGIN([folder])
1149   VLC_ADD_PLUGIN([rss])
1150   VLC_ADD_PLUGIN([mosaic])
1151   VLC_ADD_PLUGIN([wall])
1152   VLC_ADD_PLUGIN([motiondetect])
1153   VLC_ADD_PLUGIN([clone])
1154   VLC_ADD_PLUGIN([crop])
1155   VLC_ADD_PLUGIN([erase])
1156   VLC_ADD_PLUGIN([bluescreen])
1157   VLC_ADD_PLUGIN([alphamask])
1158   VLC_ADD_PLUGIN([gaussianblur])
1159   VLC_ADD_PLUGIN([i420_yuy2])
1160   VLC_ADD_PLUGIN([i422_yuy2])
1161   VLC_ADD_PLUGIN([i420_ymga])
1162   VLC_ADD_PLUGIN([i422_i420])
1163   VLC_ADD_PLUGIN([yuy2_i422])
1164   VLC_ADD_PLUGIN([yuy2_i420])
1165   VLC_ADD_PLUGIN([chain])
1166   VLC_ADD_PLUGIN([aout_file])
1167   VLC_ADD_PLUGIN([linear_resampler])
1168   VLC_ADD_PLUGIN([bandlimited_resampler])
1169   VLC_ADD_PLUGIN([float32_mixer])
1170   VLC_ADD_PLUGIN([spdif_mixer])
1171   VLC_ADD_PLUGIN([simple_channel_mixer])
1172   VLC_ADD_PLUGIN([dolby_surround_decoder])
1173   VLC_ADD_PLUGIN([headphone_channel_mixer])
1174   VLC_ADD_PLUGIN([normvol])
1175   VLC_ADD_PLUGIN([equalizer])
1176   VLC_ADD_PLUGIN([param_eq])
1177   VLC_ADD_PLUGIN([scaletempo])
1178   VLC_ADD_PLUGIN([converter_float])
1179   VLC_ADD_PLUGIN([a52tospdif])
1180   VLC_ADD_PLUGIN([dtstospdif])
1181   VLC_ADD_PLUGIN([audio_format])
1182   ALIASES="${ALIASES} rvlc"
1183 fi
1184
1185 dnl
1186 dnl Some plugins aren't useful on some platforms
1187 dnl
1188 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1189     VLC_ADD_PLUGIN([screensaver])
1190     VLC_ADD_PLUGIN([motion])
1191     VLC_ADD_PLUGIN([dynamicoverlay])
1192     VLC_ADD_PLUGIN([signals])
1193 elif test "${SYS}" != "mingwce"; then
1194     VLC_ADD_PLUGIN([ntservice])
1195     VLC_ADD_PLUGIN([access_smb])
1196     VLC_ADD_PLUGIN([dmo])
1197     VLC_ADD_PLUGIN([msn])
1198     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1199 else
1200     VLC_ADD_PLUGIN([win32text])
1201 fi
1202 if test "${SYS}" = "darwin"; then
1203     VLC_ADD_PLUGIN([quartztext])
1204     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1205 fi
1206
1207 dnl
1208 dnl  Accelerated modules
1209 dnl
1210 AC_ARG_WITH(,[])
1211 AC_ARG_WITH(,[Optimization options:])
1212
1213 dnl  Check for fully working MMX intrinsics
1214 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1215 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1216 AC_ARG_ENABLE(mmx,
1217 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1218   case "${host_cpu}" in
1219     i?86|x86_64)
1220       enable_mmx="yes"
1221       ;;
1222     *)
1223       enable_mmx="no"
1224       ;;
1225   esac
1226 ])
1227 AS_IF([test "${enable_mmx}" != "no"], [
1228   ARCH="${ARCH} mmx"
1229
1230   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1231     [ac_cv_c_mmx_intrinsics],
1232     [CFLAGS="${CFLAGS_save} -O -mmmx"
1233      AC_TRY_COMPILE([#include <mmintrin.h>
1234                      #include <stdint.h>
1235                      uint64_t frobzor;],
1236                     [__m64 a, b, c;
1237                      a = b = c = (__m64)frobzor;
1238                      a = _mm_slli_pi16(a, 3);
1239                      a = _mm_adds_pi16(a, b);
1240                      c = _mm_srli_pi16(c, 8);
1241                      c = _mm_slli_pi16(c, 3);
1242                      b = _mm_adds_pi16(b, c);
1243                      a = _mm_unpacklo_pi8(a, b);
1244                      frobzor = (uint64_t)a;],
1245                     [ac_cv_c_mmx_intrinsics=yes],
1246                     [ac_cv_c_mmx_intrinsics=no])])
1247   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1248     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1249               [Define to 1 if MMX intrinsics are available.])
1250     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1251   ])
1252
1253   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1254     [ac_cv_mmx_inline],
1255     [CFLAGS="${CFLAGS_save}"
1256      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1257                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1258   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1259     AC_DEFINE(CAN_COMPILE_MMX, 1,
1260               [Define to 1 inline MMX assembly is available.])
1261     VLC_ADD_PLUGIN([memcpymmx])
1262     VLC_ADD_PLUGIN([i420_rgb_mmx])
1263     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1264     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1265     VLC_ADD_PLUGIN([i420_ymga_mmx])
1266   ])
1267
1268   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1269     [ac_cv_mmxext_inline],
1270     [CFLAGS="${CFLAGS_save}"
1271      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1272                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1273   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1274     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1275               [Define to 1 if MMX EXT inline assembly is available.])
1276     VLC_ADD_PLUGIN([memcpymmxext])
1277   ])
1278 ])
1279
1280 dnl  Check for fully workin SSE2 intrinsics
1281 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1282 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1283 AC_ARG_ENABLE(sse,
1284 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1285 ,, [
1286   case "${host_cpu}" in
1287     i686|x86_64)
1288       enable_sse=yes
1289       ;;
1290     *)
1291       enable_sse=no
1292       ;;
1293   esac
1294 ])
1295 AS_IF([test "${enable_sse}" != "no"], [
1296   ARCH="${ARCH} sse sse2"
1297
1298   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1299     [ac_cv_c_sse2_intrinsics],
1300     [CFLAGS="${CFLAGS_save} -O -msse2"
1301      AC_TRY_COMPILE([#include <emmintrin.h>
1302                      #include <stdint.h>
1303                      uint64_t frobzor;],
1304                     [__m128i a, b, c;
1305                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1306                      a = _mm_slli_epi16(a, 3);
1307                      a = _mm_adds_epi16(a, b);
1308                      c = _mm_srli_epi16(c, 8);
1309                      c = _mm_slli_epi16(c, 3);
1310                      b = _mm_adds_epi16(b, c);
1311                      a = _mm_unpacklo_epi8(a, b);
1312                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1313                     [ac_cv_c_sse2_intrinsics=yes],
1314                     [ac_cv_c_sse2_intrinsics=no])])
1315   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1316     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1317               [Define to 1 if SSE2 intrinsics are available.])
1318     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1319   ])
1320
1321   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1322     [ac_cv_sse_inline],
1323     [CFLAGS="${CFLAGS_save}"
1324      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1325                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1326   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1327     AC_DEFINE(CAN_COMPILE_SSE, 1,
1328               [Define to 1 if SSE inline assembly is available.])
1329   ])
1330
1331   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1332     [ac_cv_sse2_inline],
1333     [CFLAGS="${CFLAGS_save}"
1334      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1335                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1336   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1337     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1338               [Define to 1 if SSE2 inline assembly is available.])
1339     VLC_ADD_PLUGIN([i420_rgb_sse2])
1340     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1341     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1342   ])
1343 ])
1344
1345 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1346     [ac_cv_3dnow_inline],
1347     [CFLAGS="${CFLAGS_save}"
1348      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1349                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1350 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1351   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1352             [Define to 1 if 3D Now! inline assembly is available.])
1353   VLC_ADD_PLUGIN([memcpy3dn])
1354 ])
1355
1356 AC_ARG_ENABLE(altivec,
1357 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1358   AS_IF([test "${host_cpu}" = "powerpc"],
1359         [enable_altivec=yes], [enable_altivec=no])
1360 ])
1361 AS_IF([test "${enable_altivec}" = "yes"], [
1362   ARCH="${ARCH} altivec";
1363   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1364     [ac_cv_altivec_inline],
1365     [CFLAGS="${CFLAGS_save}"
1366      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1367          ac_cv_altivec_inline="yes",
1368          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1369           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1370             [ac_cv_altivec_inline="-Wa,-m7400"],
1371             ac_cv_altivec_inline=no)
1372          ])])
1373   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1374     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1375               [Define to 1 if AltiVec inline assembly is available.])
1376     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1377       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1378       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1379       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1380       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1381       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1382     ])
1383     VLC_ADD_PLUGIN([memcpyaltivec])
1384     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1385   ])
1386
1387 dnl The AltiVec C extensions
1388 dnl
1389 dnl There are several possible cases:
1390 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1391 dnl                      need <altivec.h>
1392 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1393 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1394 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1395 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1396 dnl - Others: test should fail
1397   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1398   [ac_cv_c_altivec],
1399   [# OS X/PPC test (gcc 4.x)
1400    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1401    AC_TRY_COMPILE([vector unsigned char foo;],
1402      [vec_ld(0, (unsigned char *)0);],
1403      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1404      [# OS X/PPC test (gcc 3.x)
1405       CFLAGS="${CFLAGS_save} -faltivec"
1406       AC_TRY_COMPILE([vector unsigned char foo;],
1407         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1408         [ac_cv_c_altivec="-faltivec"],
1409         dnl Below this are the Linux tests
1410         [# Linux/PPC test (gcc 4.x)
1411          CFLAGS="${CFLAGS_save} -maltivec"
1412          AC_TRY_COMPILE([#include <altivec.h>],
1413            [vec_ld(0, (unsigned char *)0);],
1414            [ac_cv_c_altivec="-maltivec"],
1415            [# Linux/PPC test (gcc 3.3)
1416             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1417             AC_TRY_COMPILE([#include <altivec.h>],
1418               [vec_ld(0, (unsigned char *)0);],
1419               [ac_cv_c_altivec=""
1420                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1421               [# Linux/PPC test (gcc 3.3)
1422                CFLAGS="${CFLAGS_save} -fvec"
1423                AC_TRY_COMPILE([#include <altivec.h>],
1424                  [vec_ld(0, (unsigned char *)0);],
1425                  [ac_cv_c_altivec="-fvec"],
1426                  [ac_cv_c_altivec=no])
1427               ])
1428            ])
1429         ])
1430      ])
1431    CFLAGS="${CFLAGS_save}"
1432   ])
1433   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1434     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1435   ])
1436
1437   AC_CHECK_HEADERS(altivec.h)
1438   CPPFLAGS="${CPPFLAGS_save}"
1439   
1440   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1441     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1442               [Define to 1 if C AltiVec extensions are available.])
1443     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1444     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1445     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1446     VLC_ADD_PLUGIN([memcpyaltivec])
1447     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1448   ])
1449
1450   AC_CACHE_CHECK([if linker needs -framework vecLib],
1451     [ac_cv_ld_altivec],
1452     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1453      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1454      LDFLAGS="${LDFLAGS_save}"
1455     ])
1456   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1457     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1458   ])
1459 ])
1460
1461 dnl
1462 dnl  Special arch tuning
1463 dnl
1464 AC_ARG_WITH(tuning,
1465 [  --with-tuning=ARCH      enable special tuning for an architecture
1466                           (default Pentium 2 on IA-32 and G4 on PPC)])
1467 if test -n "${with_tuning}"; then
1468     if test "${with_tuning}" != "no"; then
1469         CFLAGS_TUNING="-mtune=${with_tuning}"
1470     fi
1471 else
1472     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1473         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1474     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1475         CFLAGS_TUNING="-mtune=pentium2"
1476     elif test "${host_cpu}" = "x86_64"; then
1477         CFLAGS_TUNING="-mtune=athlon64"
1478     elif test "${host_cpu}" = "powerpc"; then
1479         CFLAGS_TUNING="-mtune=G4";
1480     fi
1481 fi
1482
1483 dnl NOTE: this can't be cached cleanly
1484 AS_IF([test "${CFLAGS_TUNING}"],
1485    [CFLAGS_save="${CFLAGS}"
1486     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1487
1488     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1489     AC_COMPILE_IFELSE([ ],
1490                       [tuning="yes"],
1491                       [CFLAGS_TUNING=""; tuning="no"
1492                        AS_IF([test "${with_tuning}"],
1493                              [AC_MSG_ERROR([requested tuning not supported])])])
1494
1495     AC_MSG_RESULT([$tuning])
1496     CFLAGS="${CFLAGS_save}"
1497 ])
1498
1499 dnl
1500 dnl  Memory usage
1501 dnl
1502 AC_ARG_ENABLE(optimize-memory,
1503 [  --enable-optimize-memory optimize memory usage over performance])
1504 if test "${enable_optimize_memory}" = "yes"; then
1505   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1506 fi
1507
1508 dnl
1509 dnl  Enable/disable optimizations
1510 dnl
1511 AC_ARG_ENABLE(optimizations,
1512 [  --disable-optimizations disable compiler optimizations (default enabled)])
1513 if test "${enable_optimizations}" != "no"; then
1514    if test "${enable_optimize_memory}" = "yes"; then
1515       enable_optimizations="size"
1516    else
1517       enable_optimizations="speed"
1518    fi
1519 fi
1520
1521 dnl
1522 dnl  Debugging mode
1523 dnl
1524 AC_ARG_ENABLE(debug,
1525 [  --enable-debug          debug mode (default disabled)])
1526 test "${enable_debug}" != "yes" && enable_debug="no"
1527 AH_TEMPLATE(NDEBUG,
1528             [Define to 1 if debug code should NOT be compiled])
1529 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1530
1531 dnl
1532 dnl Allow runing as root (usefull for people runing on embedded platforms)
1533 dnl
1534 AC_ARG_ENABLE(run-as-root,
1535 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1536 AS_IF([test "${enable_run_as_root}" == "yes"],[
1537     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1538               [Define to 1 to allow runing VLC as root (uid 0).])
1539 ])
1540
1541 dnl
1542 dnl  Test coverage
1543 dnl
1544 AC_ARG_ENABLE(coverage,
1545         [  --enable-coverage       build for test coverage (default disabled)],,
1546         [enable_coverage="no"])
1547 AS_IF([test "${enable_coverage}" != "no"], [
1548         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1549         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1550         LDFLAGS="-lgcov ${LDFLAGS}"
1551         dnl ugly...
1552         CFLAGS_save="${CFLAGS}"
1553         CXXFLAGS_save="${CXXFLAGS}"
1554         LDFLAGS_save="${LDFLAGS}"
1555 ])
1556
1557 dnl
1558 dnl  Enable release-specific flags
1559 dnl
1560 AC_ARG_ENABLE(release,
1561 [  --enable-release        activate extra optimizations (default disabled)])
1562 test "${enable_release}" != "yes" && enable_release="no"
1563
1564 dnl
1565 dnl Stream output
1566 dnl
1567 AC_ARG_ENABLE(sout,
1568   [  --enable-sout           Stream output modules (default enabled)])
1569 AS_IF([test "${enable_sout}" != "no"], [
1570   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1571 ])
1572 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1573
1574 AC_ARG_ENABLE(switcher,
1575   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1576
1577 dnl Check for libshout
1578 AC_ARG_ENABLE(shout,
1579   [  --enable-shout          libshout output plugin (default disabled)])
1580 if test "${enable_shout}" = "yes"; then
1581   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1582     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1583      VLC_ADD_PLUGIN([access_output_shout])
1584      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1585      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1586     [AC_MSG_WARN(libshout library not found)])
1587 fi
1588
1589 dnl Lua modules
1590 AC_ARG_ENABLE(lua,
1591   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface 
1592                   plugins (default enabled)]))
1593 if test "${enable_lua}" != "no"
1594 then
1595   PKG_CHECK_MODULES(LUA, lua5.1,
1596     [ have_lua=yes ],
1597     [
1598     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1599     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1600       [ have_lua=yes ],
1601       [
1602         have_lua=yes
1603         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1604           [],
1605           [ have_lua=no ] )
1606         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1607           [LUA_LIBS="-llua5.1"],
1608           AC_CHECK_LIB( lua51 , luaL_newstate,
1609             [LUA_LIBS="-llua51"],
1610             AC_CHECK_LIB( lua , luaL_newstate,
1611               [LUA_LIBS="-llua"],
1612               [ have_lua=no
1613                 AC_MSG_WARN([lua >= 5.1 not found!])
1614               ])
1615           )
1616         )
1617       ])
1618     ])
1619   if test "x${have_lua}" = "xyes" ;  then
1620      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1621      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1622      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1623   fi
1624 fi
1625 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1626
1627 dnl
1628 dnl HTTP daemon
1629 dnl
1630 AC_ARG_ENABLE(httpd,
1631   [  --enable-httpd          HTTP daemon (default enabled)])
1632 if test "${enable_httpd}" != "no"
1633 then
1634   VLC_ADD_PLUGIN([http])
1635   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1636 fi
1637 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1638
1639 dnl
1640 dnl libproxy support
1641 dnl
1642 AC_ARG_ENABLE(libproxy,
1643   [  --enable-libproxy       libproxy support (default auto)])
1644 AS_IF([test "${enable_libproxy}" != "no"], [
1645   AC_CHECK_HEADERS(proxy.h, [
1646     VLC_ADD_LIBS([access_http],[-lproxy])
1647   ], [
1648     AS_IF([test "x${enable_libproxy}" != "x"], [
1649       AC_MSG_ERROR([libproxy could not be found on your system])
1650     ])
1651   ])
1652 ])
1653
1654 dnl
1655 dnl VideoLAN manager
1656 dnl
1657 AC_ARG_ENABLE(vlm,
1658   [  --enable-vlm            VideoLAN manager (default enabled)],,
1659   [enable_vlm="${enable_sout}"])
1660 AS_IF([test "${enable_vlm}" != "no"], [
1661   AS_IF([test "${enable_sout}" = "no"], [
1662     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1663   ])
1664   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1665   VLC_ADD_PLUGIN([telnet])
1666 ])
1667 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1668
1669 dnl
1670 dnl Growl notification plugin
1671 dnl
1672 AC_ARG_ENABLE(growl,
1673   [  --enable-growl          growl notification plugin (default disabled)],,
1674   [enable_growl=no])
1675 AS_IF([test "${enable_growl}" != "no"], [
1676     VLC_ADD_PLUGIN([growl_udp])
1677     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1678       VLC_ADD_PLUGIN([growl])
1679       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1680     ])
1681   ]
1682 )
1683
1684 dnl
1685 dnl Libnotify notification plugin
1686 dnl
1687
1688 AC_ARG_ENABLE(notify,
1689   [  --enable-notify         libnotify notification plugin (default enabled)])
1690 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1691     PKG_CHECK_MODULES(NOTIFY, libnotify,
1692       [
1693         VLC_ADD_PLUGIN([notify])
1694         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1695         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1696       ],[
1697     AS_IF([test "${enable_notify}" = "yes"],[
1698         AC_MSG_WARN( libnotify not found) ])
1699       ])
1700   ])
1701
1702 dnl
1703 dnl Audioscrobbler plugin
1704 dnl
1705
1706 AC_ARG_ENABLE(audioscrobbler,
1707   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1708 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1709         VLC_ADD_PLUGIN([audioscrobbler])
1710   ])
1711
1712 dnl
1713 dnl Taglibplugin
1714 dnl
1715 AC_ARG_ENABLE(taglib,
1716   [  --disable-taglib Taglib support (default enabled) ])
1717   AS_IF([test "${enable_taglib}" != "no"],[
1718     PKG_CHECK_MODULES(TAGLIB, taglib,
1719       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1720         VLC_ADD_PLUGIN([taglib])
1721         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1722        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1723       [AC_MSG_WARN(TagLib library not found)])
1724   ])
1725
1726
1727 dnl
1728 dnl  Input plugins
1729 dnl
1730
1731 AC_ARG_WITH(,[Input plugins:])
1732
1733 dnl  live555 input
1734 dnl
1735 if test "${enable_livedotcom}" 
1736 then
1737   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1738 fi
1739 if test "${enable_livedotcom}" = "no"
1740 then
1741   enable_live555="no"
1742 fi
1743
1744 AC_ARG_ENABLE(live555,
1745 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1746 if test "${enable_live555}" != "no"; then
1747   AC_ARG_WITH(live555-tree,
1748     [    --with-live555-tree=PATH live.com tree for static linking])
1749
1750   dnl
1751   dnl test for --with-live555-tree
1752   dnl
1753   if test "${with_livedotcom_tree}" 
1754   then
1755     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1756   with_live555_tree="${with_livedotcom_tree}"
1757   fi
1758
1759   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1760     AC_LANG_PUSH(C++)
1761     CPPFLAGS_save="${CPPFLAGS}"
1762     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1763     if test "${SYS}" = "solaris"; then
1764       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1765     fi
1766     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1767
1768     AC_CHECK_HEADERS(liveMedia_version.hh, [
1769       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1770       AC_EGREP_CPP(yes,
1771         [#include <liveMedia_version.hh>
1772          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1773          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1774          yes
1775          #endif
1776          #endif],
1777         [AC_MSG_RESULT([no])
1778          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1779 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1780       ],[
1781          AC_MSG_RESULT([yes])
1782          ])
1783     ])
1784      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1785      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1786       if test "${SYS}" = "mingw32"; then
1787         # add ws2_32 for closesocket, select, recv
1788         other_libs="$other_libs -lws2_32"
1789       fi
1790     dnl We need to check for pic because live555 don't provide shared libs
1791     dnl and we want to build a plugins so we need -fPIC on some arch.
1792     AC_CHECK_HEADERS(liveMedia.hh, [
1793       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1794         AC_CHECK_LIB(liveMedia_pic, main, [
1795           VLC_ADD_PLUGIN([live555])
1796          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1797          ],[
1798         AC_CHECK_LIB(liveMedia, main, [
1799           VLC_ADD_PLUGIN([live555])
1800           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1801         ],[],[${other_libs}]) ],[${other_libs_pic}])
1802     ],[
1803        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1804     ])
1805     CPPFLAGS="${CPPFLAGS_save}"
1806     AC_LANG_POP(C++)
1807   else
1808     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1809     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1810     if test -z "${real_live555_tree}"; then
1811       dnl  The given directory can't be found
1812       AC_MSG_RESULT(no)
1813       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1814     fi
1815     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1816       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1817
1818       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1819         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1820         AC_EGREP_CPP(yes,
1821           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1822            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1823            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1824            yes
1825            #endif
1826            #endif],
1827           [AC_MSG_RESULT([no])
1828            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1829 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1830         ],[
1831            AC_MSG_RESULT([yes])
1832            ])
1833       ])
1834
1835       VLC_ADD_PLUGIN([live555])
1836
1837       if test "${SYS}" = "mingw32"; then
1838         # add ws2_32 for closesocket, select, recv
1839         VLC_ADD_LIBS([live555],[-lws2_32])
1840       fi
1841
1842       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1843       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1844       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1845       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1846
1847       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1848       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1849       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1850       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1851       if test "${SYS}" = "solaris"; then
1852         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1853       fi
1854     else
1855       dnl  The given live555 wasn't built
1856         AC_MSG_RESULT(no)
1857       if test "${enable_live555}" = "yes"; then
1858         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1859       fi        
1860     fi
1861   fi
1862 fi
1863
1864 dnl
1865 dnl  special access module for dc1394 input
1866 dnl
1867 AC_ARG_ENABLE(dc1394,
1868   [  --enable-dc1394         dc1394 access module (default disabled)])
1869 if test "${enable_dc1394}" = "yes"
1870 then
1871   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1872     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1873         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1874 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1875               VLC_ADD_PLUGIN([dc1394])
1876               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1877 dnl         ],
1878 dnl         [
1879 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1880 dnl         ])
1881       ],
1882       [
1883         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1884       ])
1885     ],
1886     [
1887       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1888     ])
1889   ],
1890   [
1891     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1892   ])
1893 fi
1894
1895 dnl
1896 dnl dv module: digital video module check for libraw1394
1897 dnl
1898 AC_ARG_ENABLE(dv,
1899 [  --enable-dv             dv input module (default disabled)])
1900 if test "${enable_dv}" = "yes"
1901 then
1902   AC_ARG_WITH(dv-raw1394,
1903   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1904   AC_ARG_WITH(dv-raw1394-tree,
1905   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1906
1907   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1908   then
1909     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1910     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1911     then
1912       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1913       AC_MSG_RESULT(yes)
1914       VLC_ADD_PLUGIN([access_dv])
1915       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1916       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1917     else
1918       dnl  No libraw1394 could be found, sorry
1919       AC_MSG_RESULT(no)
1920       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1921     fi
1922   else
1923     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1924     [ VLC_ADD_PLUGIN([access_dv])
1925         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1926     ],[
1927         if test -n "${enable_dv}"
1928         then
1929           AC_MSG_ERROR([cannot find libraw1394 headers])
1930         fi
1931     ])
1932   fi
1933
1934   dnl Check for static linking of libraw1394
1935   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1936   then
1937     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1938     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1939     if test -z "${real_dv_raw1394_tree}"
1940     then
1941       dnl  The given directory can't be found
1942       AC_MSG_RESULT(no)
1943       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1944     fi
1945     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1946     then
1947       dnl  Use a custom libraw1394
1948       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1949       VLC_ADD_PLUGIN([access_dv])
1950       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1951       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1952     else
1953       dnl  The given libraw1394 wasn't built
1954       AC_MSG_RESULT(no)
1955       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1956     fi
1957   fi
1958
1959   dnl
1960   dnl Check for libavc1394
1961   dnl
1962
1963   AC_ARG_WITH(dv-avc1394,
1964   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1965   AC_ARG_WITH(dv-avc1394-tree,
1966   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1967
1968   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1969   then
1970     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1971     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1972     then
1973       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1974       AC_MSG_RESULT(yes)
1975       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1976       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1977     else
1978       dnl  No libavc1394 could be found, sorry
1979       AC_MSG_RESULT(no)
1980       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1981     fi
1982   else
1983     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1984     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1985     ],[
1986         if test -n "${enable_dv}"
1987         then
1988           AC_MSG_ERROR([cannot find libavc1394 headers])
1989         fi
1990     ])
1991   fi
1992
1993   dnl Check for static linking of libavc1394
1994   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1995   then
1996     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1997     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1998     if test -z "${real_dv_avc1394_tree}"
1999     then
2000       dnl  The given directory can't be found
2001       AC_MSG_RESULT(no)
2002       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2003     fi
2004     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2005     then
2006       dnl  Use a custom libavc1394
2007       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2008       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2009       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2010     else
2011       dnl  The given libavc1394 wasn't built
2012       AC_MSG_RESULT(no)
2013       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2014     fi
2015   fi
2016 fi
2017
2018 dnl
2019 dnl dvdread module: check for libdvdread
2020 dnl
2021 AC_ARG_ENABLE(dvdread,
2022 [  --enable-dvdread        dvdread input module (default disabled)])
2023 if test "${enable_dvdread}" != "no"
2024 then
2025   AC_ARG_WITH(dvdread,
2026   [    --with-dvdread=PATH   libdvdread headers and libraries])
2027   AC_ARG_WITH(dvdread-tree,
2028   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2029
2030   dnl Temporary hack (yeah, sure ;)
2031   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2032       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2033   fi
2034
2035   if test -z "${with_dvdread}"
2036   then
2037     if test -z "${with_dvdread_tree}"
2038     then
2039       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2040         [ VLC_ADD_PLUGIN([dvdread])
2041           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2042         ],[
2043           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2044             [ VLC_ADD_PLUGIN([dvdread])
2045               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2046             ],[
2047               if test -n "${enable_dvdread}"
2048               then
2049               AC_MSG_ERROR([cannot find libdvdread headers])
2050              fi
2051            ])
2052         ])
2053     else
2054       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2055       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2056       if test -z "${real_dvdread_tree}"
2057       then
2058         dnl  The given directory can't be found
2059         AC_MSG_RESULT(no)
2060         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2061       fi
2062       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2063       then
2064         dnl  Use a custom libdvdread
2065         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2066         VLC_ADD_PLUGIN([dvdread])
2067         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2068         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2069       else
2070         dnl  The given libdvdread wasn't built
2071         AC_MSG_RESULT(no)
2072         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2073       fi
2074     fi
2075   else
2076     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2077     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2078     then
2079       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2080       AC_MSG_RESULT(yes)
2081       VLC_ADD_PLUGIN([dvdread])
2082       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2083       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2084     else
2085       dnl  No libdvdread could be found, sorry
2086       AC_MSG_RESULT(no)
2087       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2088     fi
2089   fi
2090 fi
2091
2092 dnl
2093 dnl  libdvdnav plugin
2094 dnl
2095 AC_ARG_ENABLE(dvdnav,
2096   [  --enable-dvdnav         dvdnav input module (default enabled)])
2097 if test "${enable_dvdnav}" != "no"
2098 then
2099   dnl Same hack than dvdread
2100   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2101       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2102   fi
2103
2104   DVDNAV_PATH="${PATH}"
2105   AC_ARG_WITH(dvdnav-config-path,
2106     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2107     [ if test "${with_dvdnav_config_path}" != "no"
2108       then
2109         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2110       fi ])
2111   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2112   if test "${DVDNAV_CONFIG}" != "no"
2113   then
2114     VLC_ADD_PLUGIN([dvdnav])
2115     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2116     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2117   fi
2118 fi
2119
2120 dnl
2121 dnl  Windows DirectShow access module
2122 dnl
2123 AC_ARG_ENABLE(dshow,
2124   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2125 if test "${enable_dshow}" != "no"
2126 then
2127   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2128   then
2129     AC_LANG_PUSH(C++)
2130       AC_CHECK_HEADERS(dshow.h,
2131       [ VLC_ADD_PLUGIN([dshow])
2132         VLC_ADD_CXXFLAGS([dshow],[])
2133         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2134     AC_LANG_POP(C++)
2135   fi
2136 fi
2137
2138 dnl
2139 dnl  Windows DirectShow BDA access module
2140 dnl
2141 AC_ARG_ENABLE(bda,
2142   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default 
2143                   enabled on Win32)]))
2144 if test "${enable_bda}" != "no"
2145 then
2146   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2147   then
2148       AC_CHECK_HEADERS(dshow.h,
2149       [ VLC_ADD_PLUGIN([bda])
2150         VLC_ADD_CXXFLAGS([bda],[])
2151         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2152   fi
2153 fi
2154
2155
2156 dnl
2157 dnl  OpenCV wrapper and example filters
2158 dnl
2159 AC_ARG_ENABLE(opencv,
2160   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2161 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2162 then
2163   AC_ARG_WITH(opencv-tree,
2164   [    --with-opencv-tree=PATH opencv tree for linking])
2165     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2166     then
2167       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2168           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2169           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2170             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2171       then
2172         AC_MSG_RESULT(yes)
2173         VLC_ADD_PLUGIN([opencv_wrapper])
2174         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2175         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])
2176         AC_LANG_PUSH(C++)
2177         VLC_ADD_PLUGIN([opencv_example])
2178         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2179         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])
2180         AC_LANG_POP(C++)        
2181           else
2182         dnl  No opencv could be found, sorry
2183         AC_MSG_RESULT(no)
2184         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2185           fi
2186     else
2187       PKG_CHECK_MODULES(OPENCV, opencv,
2188         [
2189           VLC_ADD_PLUGIN([opencv_example])
2190           VLC_ADD_PLUGIN([opencv_wrapper])
2191           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2192           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2193           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2194         ],
2195         [AC_MSG_ERROR([libopencv not found!])]
2196       )
2197     fi
2198 fi
2199
2200
2201 dnl
2202 dnl  libsmbclient plugin
2203 dnl
2204 AC_ARG_ENABLE(smb,
2205   [  --enable-smb            smb input module (default enabled)])
2206 if test "${enable_smb}" != "no"; then
2207   AC_CHECK_HEADERS(libsmbclient.h,
2208     [ VLC_ADD_PLUGIN([access_smb])
2209       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2210     [ if test -n "${enable_smb}"; then
2211         AC_MSG_ERROR([cannot find libsmbclient headers])
2212      fi ])
2213   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2214     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2215     [#include <libsmbclient.h>])
2216 fi
2217
2218 dnl
2219 dnl  libdvbpsi ts demux/mux
2220 dnl
2221 AC_ARG_ENABLE(dvbpsi,
2222   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2223 have_dvbpsi=no
2224 if test "${enable_dvbpsi}" != "no"
2225 then
2226   AC_ARG_WITH(dvbpsi,
2227   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2228   AC_ARG_WITH(dvbpsi,
2229   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2230   case "${with_dvbpsi}" in
2231   ""|yes)
2232     if test -z "${with_dvbpsi_tree}"
2233     then
2234       AC_CHECK_HEADERS(dvbpsi/dr.h,
2235         [ VLC_ADD_PLUGIN([ts])
2236           if test "${enable_sout}" != "no"; then
2237             VLC_ADD_PLUGIN([mux_ts])
2238           fi
2239           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2240           have_dvbpsi=yes],
2241         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2242         [#if defined( HAVE_STDINT_H )
2243 #   include <stdint.h>
2244 #elif defined( HAVE_INTTYPES_H )
2245 #   include <inttypes.h>
2246 #endif
2247 #include <dvbpsi/dvbpsi.h>
2248 #include <dvbpsi/descriptor.h>
2249 #include <dvbpsi/pat.h>
2250 #include <dvbpsi/pmt.h>])
2251     else
2252       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2253       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2254       if test -z "${real_dvbpsi_tree}"
2255       then
2256         dnl  The given directory can't be found
2257         AC_MSG_RESULT(no)
2258         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2259       fi
2260       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2261       then
2262         dnl  Use a custom libdvbpsi
2263         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2264         VLC_ADD_PLUGIN([ts])
2265         if test "${enable_sout}" != "no"; then
2266           VLC_ADD_PLUGIN([mux_ts])
2267         fi
2268         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2269         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2270         have_dvbpsi=yes
2271       else
2272         dnl  The given libdvbpsi wasn't built
2273         AC_MSG_RESULT(no)
2274         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2275       fi
2276     fi
2277   ;;
2278   no)
2279     dnl  Compile without dvbpsi
2280   ;;
2281   *)
2282     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2283     if test -z "${with_dvbpsi}"
2284     then
2285       LDFLAGS_test=""
2286       CPPFLAGS_test=""
2287     else
2288       LDFLAGS_test="-L${with_dvbpsi}/lib"
2289       CPPFLAGS_test="-I${with_dvbpsi}/include"
2290     fi
2291     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2292     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2293       VLC_ADD_PLUGIN([ts])
2294       if test "${enable_sout}" != "no"; then
2295         VLC_ADD_PLUGIN([mux_ts])
2296       fi
2297       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2298       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2299       have_dvbpsi=yes
2300     ],[
2301       if test -n "${enable_dvbpsi}"
2302       then
2303         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])
2304       fi
2305     ])
2306     CPPFLAGS="${CPPFLAGS_save}"
2307   ;;
2308   esac
2309   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2310     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2311   ], [], [${LIBS_ts}])
2312
2313 fi
2314
2315 dnl
2316 dnl  Video4Linux plugin
2317 dnl
2318 AC_ARG_ENABLE(v4l,
2319   [  --enable-v4l            Video4Linux input support (default disabled)])
2320 if test "${enable_v4l}" = "yes"
2321 then
2322   AC_ARG_WITH(v4l,
2323     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2324   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2325   then
2326     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2327   fi
2328
2329   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2330   AC_CHECK_HEADERS(linux/videodev.h, [
2331     VLC_ADD_PLUGIN([v4l])
2332   ],[])
2333   CPPFLAGS="${CPPFLAGS_save}"
2334 fi
2335
2336 dnl
2337 dnl  Video4Linux2 plugin
2338 dnl
2339 AC_ARG_ENABLE(v4l2,
2340   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2341 if test "${enable_v4l2}" != "no"
2342 then
2343   AC_ARG_WITH(v4l2,
2344     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2345   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2346   then
2347     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2348   fi
2349
2350   if test "${enable_alsa}" != "no"
2351   then
2352     AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2353   fi
2354
2355   if test "${have_v4l2_alsa}" = "true"
2356   then
2357     CFLAGS="${CFLAGS_save}"
2358     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2359                     #define ALSA_PCM_NEW_SW_PARAMS_API
2360                     #include <alsa/asoundlib.h>],
2361        [snd_pcm_hw_params_get_period_time(0,0,0);],
2362         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2363     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2364     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2365   fi
2366
2367   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2368   AC_CHECK_HEADERS(linux/videodev2.h, [
2369     VLC_ADD_PLUGIN([v4l2])
2370   ],[])
2371   CPPFLAGS="${CPPFLAGS_save}"
2372 fi
2373
2374
2375 dnl
2376 dnl  special access module for Hauppauge PVR cards
2377 dnl
2378 AC_ARG_ENABLE(pvr,
2379   [  --enable-pvr            PVR cards access module (default disabled)])
2380 if test "${enable_pvr}" = "yes"
2381 then
2382   VLC_ADD_PLUGIN([pvr])
2383   AC_ARG_WITH(videodev2,
2384     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2385   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2386   then
2387     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2388   fi
2389     
2390
2391   AC_CACHE_CHECK([for new linux/videodev2.h],
2392       [ac_cv_new_linux_videodev2_h],
2393       [AC_TRY_COMPILE([
2394           #include <sys/types.h>
2395           #   ifdef VIDEODEV2_H_FILE
2396           #   include VIDEODEV2_H_FILE
2397           #   else
2398           #   include <linux/videodev2.h>
2399           #   endif
2400           ],
2401           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2402           ac_cv_new_linux_videodev2_h=yes,
2403           ac_cv_new_linux_videodev2_h=no)])
2404   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2405     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2406   fi
2407 fi
2408
2409 dnl
2410 dnl  gnomeVFS access module
2411 dnl
2412 AC_ARG_ENABLE(gnomevfs,
2413   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2414 if test "${enable_gnomevfs}" = "yes" 
2415 then
2416   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2417     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2418     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2419     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2420     VLC_ADD_PLUGIN([access_gnomevfs]),
2421     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2422 fi
2423
2424 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2425 AC_ARG_ENABLE(libcdio,
2426   [  --enable-libcdio        CD input and control library support (default enabled)])
2427
2428 AC_ARG_ENABLE(vcdinfo,
2429   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2430
2431 have_libcdio=no
2432 have_libvcdinfo=no
2433 if test "${enable_libcdio}" != "no"
2434 then
2435   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2436      have_libcdio=yes
2437      AC_DEFINE(HAVE_LIBCDIO, 1, 
2438      [Define if you have libcdio 0.78.2 or greater installed]),
2439      [AC_MSG_WARN(CD Reading and information library not found)])
2440
2441   if test "${enable_vcdinfo}" != "no"
2442   then
2443     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2444        [have_libvcdinfo=yes
2445        AC_DEFINE(HAVE_VCDINFO, 1, 
2446        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2447        [AC_MSG_WARN(VCD information library not found)])
2448   fi
2449 fi
2450
2451 dnl
2452 dnl  VCDX and CDDAX modules
2453 dnl
2454 AC_ARG_ENABLE(cddax,
2455   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2456                   via libcdio (default disabled)]))
2457  
2458 AC_ARG_ENABLE(libcddb,
2459   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2460  
2461 if test "${enable_cddax}" = "yes"
2462 then
2463   if test "$have_libcdio" = "yes"
2464   then
2465     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2466     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2467     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2468     VLC_ADD_PLUGIN([cddax])
2469     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2470     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2471     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2472   else 
2473     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2474     HAVE_CDDAX=no
2475   fi
2476
2477   if test "$enable_libcddb" != "no"; then
2478     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2479       HAVE_LIBCDDB=yes 
2480       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2481       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2482       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2483       ],
2484       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2485       HAVE_LIBCDDB=no])
2486   fi
2487  
2488 fi
2489
2490 AC_ARG_ENABLE(vcdx,
2491   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2492  
2493 if test "${enable_vcdx}" = "yes"
2494 then
2495   if test "${have_libvcdinfo}" = "yes"
2496   then
2497     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2498     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2499   else 
2500     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2501     HAVE_VCDX=no
2502   fi
2503
2504   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2505    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2506     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2507     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2508     HAVE_VCDX=no])
2509
2510   if test "$have_libvcdinfo" = "yes"
2511   then
2512     AC_DEFINE(HAVE_VCDX, 1, 
2513     [Define for the VCD plugin using libcdio/libvcdinfo])
2514     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2515     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2516     VLC_ADD_PLUGIN([vcdx])
2517   else 
2518     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2519     HAVE_VCDX=no
2520   fi
2521 fi
2522
2523 dnl
2524 dnl  Built-in CD-DA and VCD module
2525 dnl
2526 AC_ARG_ENABLE(cdda,           
2527   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2528  
2529 AC_ARG_ENABLE(vcd,
2530   [  --enable-vcd            built-in VCD (default enabled)])
2531
2532 if test "${enable_vcd}" != "no"
2533 then
2534   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2535   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2536     AC_MSG_RESULT(yes)
2537     VLC_ADD_PLUGIN([vcd])
2538     VLC_ADD_PLUGIN([cdda])
2539   ],[
2540     AC_MSG_RESULT(no)
2541   ])
2542
2543   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2544   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2545     AC_MSG_RESULT(yes)
2546     VLC_ADD_PLUGIN([vcd])
2547     VLC_ADD_PLUGIN([cdda])
2548     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2549   ],[
2550     AC_MSG_RESULT(no)
2551   ])
2552
2553   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2554   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2555     AC_MSG_RESULT(yes)
2556     VLC_ADD_PLUGIN([vcd])
2557     VLC_ADD_PLUGIN([cdda])
2558     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2559   ],[
2560     AC_MSG_RESULT(no)
2561   ])
2562
2563   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2564   then
2565     VLC_ADD_PLUGIN([vcd])
2566     VLC_ADD_PLUGIN([cdda])
2567   fi
2568
2569   if test "${SYS}" = "darwin"
2570   then
2571     VLC_ADD_PLUGIN([vcd])
2572     VLC_ADD_PLUGIN([cdda])
2573     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2574     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2575   fi
2576
2577   if test "$enable_libcddb" != "no"; then
2578     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2579       HAVE_LIBCDDB=yes 
2580       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2581       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2582       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2583       ],:
2584       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2585       HAVE_LIBCDDB=no])
2586   fi
2587 fi
2588
2589 dnl
2590 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2591 dnl
2592 AC_ARG_ENABLE(dvb,
2593   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2594
2595 if test "${enable_dvb}" != "no"
2596 then
2597     AS_IF([test "${have_dvbpsi}" = "yes" ],[  
2598     AC_ARG_WITH(dvb,
2599      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2600      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2601      then
2602        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2603      fi
2604      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2605      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2606      VLC_ADD_PLUGIN([dvb])
2607      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2608      CPPFLAGS="${CPPFLAGS_save}"
2609    ],[
2610      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2611     ]) 
2612 fi
2613
2614 dnl
2615 dnl  Screen capture module
2616 dnl
2617 AC_ARG_ENABLE(screen,
2618   [  --enable-screen         Screen capture support (default enabled)])
2619 if test "${enable_screen}" != "no"; then
2620   if test "${SYS}" = "darwin"; then
2621     AC_CHECK_HEADERS(OpenGL/gl.h, [
2622       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2623         VLC_ADD_PLUGIN([screen])
2624         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2625       ])
2626     ])
2627   elif test "${SYS}" = "mingw32"; then
2628     VLC_ADD_PLUGIN([screen])
2629     VLC_ADD_LIBS([screen],[-lgdi32])
2630   elif test "${SYS}" = "mingwce"; then
2631     CPPFLAGS="${CPPFLAGS_save}"
2632   elif test "${SYS}" = "beos"; then
2633     VLC_ADD_PLUGIN([screen])
2634     VLC_ADD_CXXFLAGS([screen],[])
2635     VLC_ADD_LIBS([screen],[-lbe])
2636   else
2637     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2638     AC_CHECK_HEADERS(X11/Xlib.h, [
2639       VLC_ADD_PLUGIN([screen])
2640       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2641       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2642     ])
2643     CPPFLAGS="${CPPFLAGS_save}"
2644   fi
2645 fi
2646
2647 dnl
2648 dnl  ipv6 plugin - not for QNX yet
2649 dnl
2650 have_ipv6=no
2651 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2652   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2653 ])
2654
2655 AS_IF([test "${have_ipv6}" = "yes"], [
2656   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2657
2658
2659 AC_CHECK_FUNCS(inet_ntop,[
2660   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2661
2662
2663 dnl
2664 dnl  ogg demux plugin
2665 dnl
2666 AC_ARG_ENABLE(ogg,
2667   [  --enable-ogg            Ogg demux support (default enabled)])
2668 if test "${enable_ogg}" != "no"
2669 then
2670   AC_ARG_WITH(ogg-tree,
2671   [    --with-ogg-tree=PATH  ogg tree for static linking])
2672   if test -n "${with_ogg_tree}"
2673   then
2674     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2675     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2676     if test -z "${real_ogg_tree}"
2677     then
2678       dnl  The given directory can't be found
2679       AC_MSG_RESULT(no)
2680       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2681     fi
2682     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2683     then
2684       dnl  Use a custom ogg
2685       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2686       VLC_ADD_PLUGIN([ogg])
2687       if test "${enable_sout}" != "no"; then
2688         VLC_ADD_PLUGIN([mux_ogg])
2689       fi
2690       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2691       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2692     else
2693       dnl  The given ogg wasn't built
2694       AC_MSG_RESULT(no)
2695       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2696     fi
2697   else
2698     AC_CHECK_HEADERS(ogg/ogg.h, [
2699       AC_CHECK_LIB( ogg, oggpack_read, [
2700         VLC_ADD_PLUGIN([ogg])
2701         if test "${enable_sout}" != "no"; then
2702           VLC_ADD_PLUGIN([mux_ogg])
2703         fi
2704         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2705      ],[])
2706   fi
2707 fi
2708
2709 dnl
2710 dnl  matroska demux plugin
2711 dnl
2712 AC_ARG_ENABLE(mkv,
2713   [  --enable-mkv            Matroska demux support (default enabled)])
2714 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2715   AC_LANG_PUSH(C++)
2716   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2717     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2718     AC_EGREP_CPP(yes,
2719       [#include <ebml/EbmlVersion.h>
2720        #ifdef LIBEBML_VERSION
2721        #if LIBEBML_VERSION >= 0x000706
2722        yes
2723        #endif
2724        #endif],
2725       [AC_MSG_RESULT([yes])
2726         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2727           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2728           AC_EGREP_CPP(yes,
2729             [#include <matroska/KaxVersion.h>
2730              #ifdef LIBMATROSKA_VERSION
2731              #if LIBMATROSKA_VERSION >= 0x000705
2732              yes
2733              #endif
2734              #endif],
2735             [AC_MSG_RESULT([yes])
2736               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2737               VLC_ADD_CXXFLAGS([mkv],[])
2738               if test "${SYS}" = "darwin"; then
2739                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2740               fi
2741               AC_CHECK_LIB(ebml_pic, main, [
2742                 VLC_ADD_PLUGIN([mkv])
2743                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2744               ],
2745                 AC_CHECK_LIB(ebml, main, [
2746                   VLC_ADD_PLUGIN([mkv])
2747                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2748                 ]) 
2749               )
2750             ],
2751             [AC_MSG_RESULT([no])
2752               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.])
2753           ])
2754         ])
2755       ],
2756       [AC_MSG_RESULT([no])
2757         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.])
2758     ])
2759   ])
2760   AC_LANG_POP(C++)
2761 fi
2762
2763 dnl
2764 dnl  modplug demux plugin
2765 dnl
2766 AC_ARG_ENABLE(mod,
2767   [  --enable-mod            Mod demux support (default enabled)])
2768 if test "${enable_mod}" != "no"
2769 then
2770   AC_ARG_WITH(mod-tree,
2771   [    --with-mod-tree=PATH mod tree for static linking])
2772   if test -n "${with_mod_tree}"
2773   then
2774     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2775     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2776     if test -z "${real_mod_tree}"
2777     then
2778       dnl  The given directory can't be found
2779       AC_MSG_RESULT(no)
2780       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2781     fi
2782     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2783     then
2784       dnl  Use a custom mod
2785       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2786       VLC_ADD_PLUGIN([mod])
2787       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2788       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2789     else
2790       dnl  The given mod wasn't built
2791       AC_MSG_RESULT(no)
2792       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2793     fi
2794   else
2795     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2796       VLC_ADD_PLUGIN([mod])
2797       VLC_ADD_CXXFLAGS([mod],[])
2798       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2799   fi
2800 fi
2801
2802 dnl
2803 dnl  mpc demux plugin
2804 dnl
2805 AC_ARG_ENABLE(mpc,
2806   [  --enable-mpc            Mpc demux support (default enabled)])
2807 if test "${enable_mpc}" != "no"
2808 then
2809   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2810     VLC_ADD_PLUGIN([mpc])
2811     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2812 fi
2813
2814 dnl
2815 dnl  game music emu demux plugin
2816 dnl
2817 AC_ARG_ENABLE(gme,
2818   [  --enable-gme            Game Music Emu demux support (default enabled)])
2819 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2820 then
2821   AC_LANG_PUSH(C++)
2822   AC_ARG_WITH(gme-tree,
2823   [    --with-gme-tree=PATH gme tree for static linking])
2824   if test -n "${with_gme_tree}"
2825   then
2826     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2827     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2828     if test -z "${real_gme_tree}"
2829     then
2830       dnl  The given directory can't be found
2831       AC_MSG_RESULT(no)
2832       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2833     fi
2834     if test -f "${real_gme_tree}/gme/libgme.a"
2835     then
2836       dnl  Use a custom gme
2837       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2838       VLC_ADD_PLUGIN([gme])
2839       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2840       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2841     else
2842       dnl  The given gme wasn't built
2843       AC_MSG_RESULT(no)
2844       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2845     fi
2846   else
2847       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2848   fi
2849   AC_LANG_POP(C++)
2850 fi
2851
2852 dnl
2853 dnl  Codec plugins
2854 dnl
2855
2856 AC_ARG_WITH(,[Codec plugins:])
2857
2858 dnl
2859 dnl  mad plugin
2860 dnl
2861 AC_ARG_ENABLE(mad,
2862   [  --enable-mad            libmad module (default enabled)])
2863 if test "${enable_mad}" != "no"
2864 then
2865   AC_ARG_WITH(mad,
2866     [    --with-mad=PATH       path to libmad],[],[])
2867   if test "${with_mad}" != "no" -a -n "${with_mad}"
2868   then
2869     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2870     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2871   fi
2872
2873   AC_ARG_WITH(mad-tree,
2874     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2875   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2876   then
2877     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2878     if test -z "${real_mad_tree}"
2879     then
2880       dnl  The given directory can't be found
2881       AC_MSG_RESULT(no)
2882       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2883     fi
2884     dnl  Use a custom libmad
2885     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2886     if test -f ${real_mad_tree}/mad.h
2887     then
2888       AC_MSG_RESULT(yes)
2889       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2890       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2891       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2892       AC_CHECK_LIB(mad, mad_bit_init, [
2893         VLC_ADD_PLUGIN([mpgatofixed32])
2894         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2895         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2896       ],[])
2897       LDFLAGS="${LDFLAGS_save}"
2898     else
2899       AC_MSG_RESULT(no)
2900       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2901     fi
2902   else
2903     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2904     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2905     AC_CHECK_HEADERS(mad.h, ,
2906       [ 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.]) ])
2907     AC_CHECK_LIB(mad, mad_bit_init, [
2908       VLC_ADD_PLUGIN([mpgatofixed32])
2909       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2910       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2911     CPPFLAGS="${CPPFLAGS_save}"
2912     LDFLAGS="${LDFLAGS_save}"
2913   fi
2914 fi
2915
2916 dnl
2917 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2918 dnl
2919 AC_ARG_ENABLE( id3tag,
2920 [  --disable-id3tag        id3tag metadata reader plugin (default enabled)])
2921 AS_IF([test "${enable_id3tag}" != "no"], [
2922   AC_CHECK_HEADERS(id3tag.h, [
2923     AC_CHECK_HEADERS(zlib.h, [
2924       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2925       VLC_ADD_PLUGIN([id3tag])
2926     ])
2927   ])
2928 ])
2929
2930 dnl
2931 dnl  avcodec decoder/encoder plugin
2932 dnl
2933
2934 if test "${with_ffmpeg_tree}"
2935 then
2936   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2937 fi
2938
2939 AC_ARG_ENABLE(avcodec,
2940 [  --enable-avcodec        libavcodec codec (default enabled)])
2941 if test "${enable_avcodec}" != "no"
2942 then
2943   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2944     [
2945       VLC_SAVE_FLAGS
2946       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2947       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2948       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2949       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2950       VLC_ADD_PLUGIN([avcodec])
2951       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2952       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2953       VLC_RESTORE_FLAGS
2954     ],[
2955       AC_MSG_FAILURE([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2956   ])
2957 fi
2958
2959 dnl
2960 dnl  avformat demuxer/muxer plugin
2961 dnl
2962
2963 AC_ARG_ENABLE(avformat,
2964 [  --enable-avformat       libavformat containers (default enabled)])
2965 if test "${enable_avformat}" != "no"
2966 then
2967   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2968     [
2969       VLC_SAVE_FLAGS
2970       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2971       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2972       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2973       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2974       VLC_ADD_PLUGIN([avformat])
2975       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
2976       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
2977       VLC_RESTORE_FLAGS
2978     ],[
2979       AC_MSG_FAILURE([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2980   ])
2981 fi
2982
2983 dnl
2984 dnl  swscale image scaling and conversion plugin
2985 dnl
2986
2987 AC_ARG_ENABLE(swscale,
2988   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
2989                   (default enabled)]))
2990 if test "${enable_swscale}" != "no"
2991 then
2992   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2993     [
2994       VLC_SAVE_FLAGS
2995       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2996       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2997       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2998       VLC_ADD_PLUGIN([swscale])
2999       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3000       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3001       VLC_RESTORE_FLAGS
3002     ],[
3003       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3004       enable_imgresample=yes
3005   ])
3006 fi
3007
3008 dnl
3009 dnl  avcodec (deprecated API) image scaling and conversion plugin
3010 dnl
3011 dnl  This is build as a seperate module than the avcodec one to prevent
3012 dnl  stupid run time library load errors from disabling most codecs
3013 dnl  from VLC.
3014 dnl
3015
3016 AC_ARG_ENABLE(imgresample,
3017   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3018                   and conversion (default disabled)]))
3019 if test "${enable_imgresample}" = "yes"
3020 then
3021   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3022     [
3023       VLC_SAVE_FLAGS
3024       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3025       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3026       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3027       AC_CHECK_LIB(avcodec,img_resample,
3028         [
3029           VLC_ADD_PLUGIN([imgresample])
3030           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3031           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3032         ],[
3033           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3034           if test "${enable_swscale}" != "no"
3035           then
3036             AC_MSG_FAILURE([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.)])
3037           fi
3038         # That sed hack to add -rpath is kind of ugly but at least it fixes
3039         # detection when linking against a shared libavcodec with
3040         # a libavutil not in one of your ld.so.conf directories.
3041         # (for example a local install)
3042         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3043       VLC_RESTORE_FLAGS
3044     ],[
3045       AC_MSG_WARN([Could not find libavcodec.])
3046   ])
3047 fi
3048
3049 dnl
3050 dnl  postproc plugin
3051 dnl
3052
3053 AC_ARG_ENABLE(postproc,
3054 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3055 if test "${enable_postproc}" != "no"
3056 then
3057   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3058     [
3059       VLC_SAVE_FLAGS
3060       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3061       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3062       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3063       VLC_ADD_PLUGIN([postproc])
3064       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3065       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3066       VLC_RESTORE_FLAGS
3067     ],[
3068       AC_MSG_ERROR([Could not find libpostproc.])
3069   ])
3070 fi
3071
3072 dnl
3073 dnl  faad decoder plugin
3074 dnl
3075 AC_ARG_ENABLE(faad,
3076 [  --enable-faad           faad codec (default disabled)])
3077 if test "${enable_faad}" = "yes"
3078 then
3079   AC_ARG_WITH(faad-tree,
3080   [    --with-faad-tree=PATH faad tree for static linking])
3081   if test -n "${with_faad_tree}"
3082   then
3083     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3084     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3085     if test -z "${real_faad_tree}"
3086     then
3087       dnl  The given directory can't be found
3088       AC_MSG_RESULT(no)
3089       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3090     fi
3091     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3092     then
3093       dnl  Use a custom faad
3094       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3095       VLC_ADD_PLUGIN([faad])
3096       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3097       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3098     else
3099       dnl  The given libfaad wasn't built
3100       AC_MSG_RESULT(no)
3101       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3102     fi
3103   else
3104     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3105     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3106     AC_CHECK_HEADERS(faad.h, ,
3107       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3108     AC_CHECK_LIB(faad, faacDecOpen, [
3109       VLC_ADD_PLUGIN([faad])
3110       VLC_ADD_LIBS([faad],[-lfaad]) ],
3111       AC_CHECK_LIB(faad, NeAACDecOpen, [
3112         VLC_ADD_PLUGIN([faad])
3113         VLC_ADD_LIBS([faad],[-lfaad]) ],
3114         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3115     LDFLAGS="${LDFLAGS_save}"
3116     CPPFLAGS="${CPPFLAGS_save}"
3117   fi
3118 fi
3119
3120 dnl
3121 dnl twolame encoder plugin
3122 dnl
3123 AC_ARG_ENABLE(twolame,
3124 [  --enable-twolame        twolame codec (default disabled)])
3125 if test "${enable_twolame}" = "yes"
3126 then
3127   AC_ARG_WITH(twolame-tree,
3128   [    --with-twolame-tree=PATH twolame tree for static linking])
3129   if test -n "${with_twolame_tree}"
3130   then
3131     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3132     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3133     if test -z "${real_twolame_tree}"
3134     then
3135       dnl  The given directory can't be found
3136       AC_MSG_RESULT(no)
3137       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3138     fi
3139     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3140     then
3141       dnl  Use a custom twolame
3142       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3143       VLC_ADD_PLUGIN([twolame])
3144       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3145       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3146     else
3147       dnl  The given libtwolame wasn't built
3148       AC_MSG_RESULT(no)
3149       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3150     fi
3151   else
3152     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3153     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3154     AC_CHECK_HEADERS(twolame.h, ,
3155       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3156     AC_CHECK_LIB(twolame, twolame_init, [
3157       VLC_ADD_PLUGIN([twolame])
3158       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3159       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3160         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3161     LDFLAGS="${LDFLAGS_save}"  
3162     CPPFLAGS="${CPPFLAGS_save}"
3163   fi
3164 fi
3165
3166 dnl
3167 dnl  QuickTime plugin
3168 dnl
3169 AC_ARG_ENABLE(quicktime,
3170   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3171 if test "${enable_quicktime}" != "no" &&
3172   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3173 then
3174   if test "${SYS}" = "mingw32"; then
3175     VLC_ADD_PLUGIN([quicktime])
3176   else
3177   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3178     [ VLC_ADD_PLUGIN([quicktime])
3179       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3180     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3181   fi
3182 fi
3183
3184 dnl
3185 dnl  Real plugin
3186 dnl
3187 AC_ARG_ENABLE(real,
3188   [  --enable-real           Real media module (default disabled)])
3189 if test "${enable_real}" = "yes"; then
3190   VLC_ADD_PLUGIN([realaudio])
3191   VLC_ADD_PLUGIN([realvideo])
3192 fi
3193
3194 dnl
3195 dnl  Real RTSP plugin
3196 dnl
3197 AC_ARG_ENABLE(realrtsp,
3198   [  --enable-realrtsp       Real RTSP module (default disabled)])
3199 if test "${enable_realrtsp}" = "yes"; then
3200   VLC_ADD_PLUGIN([access_realrtsp])
3201 fi
3202
3203 dnl
3204 dnl MP4 module
3205 dnl
3206 AC_CHECK_HEADERS(zlib.h, [
3207   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3208 ] )
3209
3210 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3211   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3212 ] )
3213
3214 dnl
3215 dnl skins2 module
3216 dnl
3217 AC_ARG_ENABLE(libtar,
3218   [  --enable-libtar         libtar support for skins2 (default enabled)])
3219
3220 AS_IF([test "${enable_libtar}" != "no"],[
3221   AC_CHECK_HEADERS(libtar.h, [
3222     VLC_ADD_LIBS([skins2],[-ltar])
3223   ] )
3224 ])
3225
3226 dnl
3227 dnl A52/AC3 decoder plugin
3228 dnl
3229 AC_ARG_ENABLE(a52,
3230   [  --enable-a52            A/52 support with liba52 (default enabled)])
3231 if test "${enable_a52}" != "no"
3232 then
3233   AC_ARG_WITH(a52,
3234     [    --with-a52=PATH       a52 headers and libraries])
3235   AC_ARG_WITH(a52-tree,
3236     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3237   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3238   then
3239     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3240     if test -z "${real_a52_tree}"
3241     then
3242       dnl  The given directory can't be found
3243       AC_MSG_RESULT(no)
3244       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3245     fi
3246     dnl  Use a custom a52dec
3247     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3248     if test -f ${real_a52_tree}/include/a52.h
3249     then
3250       AC_MSG_RESULT(yes)
3251       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3252       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3253       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3254       AC_CHECK_LIB(a52, a52_free, [
3255         VLC_ADD_PLUGIN([a52tofloat32])
3256         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3257         VLC_ADD_LIBS([a52tofloat32],[-la52])
3258         ],[
3259         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3260         then
3261           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3262         else
3263           AC_MSG_ERROR([the specified tree hasn't been compiled])
3264         fi
3265       ])
3266       LDFLAGS="${LDFLAGS_save}"
3267     else
3268       AC_MSG_RESULT(no)
3269       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3270     fi
3271   else
3272     if test -z "${with_a52}"
3273     then
3274       LDFLAGS_test=""
3275       CPPFLAGS_test=""
3276     else
3277       LDFLAGS_test="-L${with_a52}/lib"
3278       CPPFLAGS_test="-I${with_a52}/include"
3279     fi
3280     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3281     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3282     AC_CHECK_HEADERS(a52dec/a52.h, [
3283       AC_CHECK_LIB(a52, a52_free, [
3284         VLC_ADD_PLUGIN([a52tofloat32])
3285         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3286         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3287       ],[
3288         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.])
3289         ])
3290     ],[
3291       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.])
3292     ])
3293     CPPFLAGS="${CPPFLAGS_save}"
3294     LDFLAGS="${LDFLAGS_save}"
3295   fi
3296 fi
3297
3298 AC_ARG_WITH(a52-fixed,
3299       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3300       [
3301         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3302
3303 dnl
3304 dnl DTS Coherent Acoustics decoder plugin
3305 dnl
3306 AS_IF([test "x${enable_dts}" != "x"], [
3307   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3308 ])
3309 AS_IF([test "x${with_dts_tree}" != "x"], [
3310   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3311 ])
3312
3313 AC_ARG_ENABLE(dca,
3314   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3315                   (default enabled)]))
3316 AS_IF([test "${enable_dca}" != "no"], [
3317   AC_ARG_WITH(dca-tree,
3318     [    --with-dca-tree=PATH  libdca tree for static linking],,
3319     [with_dca_tree="no"])
3320   AS_IF([test "${with_dca_tree}" != "no"], [
3321     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3322     AS_IF([test -z "${real_dca_tree}"], [
3323       dnl  The given directory can't be found
3324       AC_MSG_RESULT(no)
3325       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3326     ])
3327     dnl  Use a custom libdca
3328     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3329     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3330       AC_MSG_RESULT(yes)
3331       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3332       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3333         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3334       ], [
3335         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3336       ])
3337     ], [
3338       AC_MSG_RESULT(no)
3339       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3340     ])
3341   ], [
3342     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3343       VLC_ADD_PLUGIN([dtstofloat32])
3344       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3345       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3346     ], [
3347       AS_IF([test "x${enable_dca}" != "x"], [
3348         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3349       ])
3350     ])
3351   ])
3352 ])
3353
3354 dnl
3355 dnl  Flac plugin
3356 dnl
3357 AC_ARG_ENABLE(flac,
3358   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3359 if test "${enable_flac}" = "yes"
3360 then
3361   AC_ARG_WITH(flac-tree,
3362   [    --with-flac-tree=PATH flac tree for static linking])
3363   if test -n "${with_flac_tree}"
3364   then
3365     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3366     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3367     if test -z "${real_flac_tree}"
3368     then
3369       dnl  The given directory can't be found
3370       AC_MSG_RESULT(no)
3371       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3372     fi
3373     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3374     then
3375       dnl  Use a custom flac
3376       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3377       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3378       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3379       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3380     else
3381       dnl  The given flac wasn't built
3382       AC_MSG_RESULT(no)
3383       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3384     fi
3385   else
3386     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3387       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3388      ],[])
3389   fi
3390 fi
3391
3392 dnl
3393 dnl  Libmpeg2 plugin
3394 dnl
3395 AC_ARG_ENABLE(libmpeg2,
3396   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3397 if test "${enable_libmpeg2}" != "no"
3398 then
3399   AC_ARG_WITH(libmpeg2-tree,
3400   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3401   AS_IF([test -n "${with_libmpeg2_tree}"],[
3402     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3403     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3404     if test -z "${real_libmpeg2_tree}"
3405     then
3406       dnl  The given directory can't be found
3407       AC_MSG_RESULT(no)
3408       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3409     fi
3410     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3411     then
3412       dnl  Use a custom libmpeg2
3413       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3414       VLC_ADD_PLUGIN([libmpeg2])
3415       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3416       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3417     else
3418       dnl  The given libmpeg2 wasn't built
3419       AC_MSG_RESULT(no)
3420       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3421     fi
3422   ],[
3423    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3424           VLC_ADD_PLUGIN([libmpeg2])
3425           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3426           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3427        ], 
3428       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.]))
3429   ])
3430 fi
3431
3432 dnl
3433 dnl  Vorbis plugin
3434 dnl
3435 AC_ARG_ENABLE(vorbis,
3436   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3437 if test "${enable_vorbis}" != "no"
3438 then
3439   AC_ARG_WITH(vorbis-tree,
3440   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3441   if test -n "${with_vorbis_tree}"
3442   then
3443     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3444     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3445     if test -z "${real_vorbis_tree}"
3446     then
3447       dnl  The given directory can't be found
3448       AC_MSG_RESULT(no)
3449       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3450     fi
3451     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3452     then
3453       dnl  Use a custom vorbis 
3454       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3455       VLC_ADD_PLUGIN([vorbis])
3456       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3457       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3458     else
3459       dnl  The given vorbis wasn't built
3460       AC_MSG_RESULT(no)
3461       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3462     fi
3463   else
3464     AC_CHECK_HEADERS(vorbis/codec.h, [
3465       VLC_ADD_PLUGIN([vorbis])
3466       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3467
3468     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3469       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3470   fi
3471 fi
3472
3473 dnl
3474 dnl  Tremor plugin
3475 dnl
3476 AC_ARG_ENABLE(tremor,
3477   [  --enable-tremor         Tremor decoder support (default disabled)])
3478 if test "${enable_tremor}" = "yes"
3479 then
3480   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3481     VLC_ADD_PLUGIN([tremor])
3482     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3483    ],[])
3484 fi
3485
3486 dnl
3487 dnl  Speex plugin
3488 dnl
3489 AC_ARG_ENABLE(speex,
3490   [  --enable-speex          Speex decoder support (default enabled)])
3491 if test "${enable_speex}" != "no"
3492 then
3493   AC_ARG_WITH(speex-tree,
3494   [    --with-speex-tree=PATH speex tree for static linking])
3495   if test -n "${with_speex_tree}"
3496   then
3497     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3498     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3499     if test -z "${real_speex_tree}"
3500     then
3501       dnl  The given directory can't be found
3502       AC_MSG_RESULT(no)
3503       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3504     fi
3505     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3506     then
3507       dnl  Use a custom speex
3508       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3509       VLC_ADD_PLUGIN([speex])
3510       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3511       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3512     else
3513       dnl  The given speex wasn't built
3514       AC_MSG_RESULT(no)
3515       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3516     fi
3517   else
3518     AC_CHECK_HEADERS(speex/speex.h, [
3519       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3520       AC_CHECK_LIB(speex, speex_decode_int, [
3521         VLC_ADD_PLUGIN([speex])
3522         VLC_ADD_LIBS([speex],[-lspeex]) ],
3523         [ AC_MSG_RESULT([no])
3524           AC_MSG_WARN([Your libspeex is too old, please get the development
3525                        version.]) ],[])
3526       LDFLAGS="${LDFLAGS_save}"
3527       ],[])
3528   fi
3529 fi
3530
3531 dnl
3532 dnl  tarkin decoder plugin
3533 dnl
3534 AC_ARG_ENABLE(tarkin,
3535 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3536 if test "${enable_tarkin}" = "yes"
3537 then
3538   AC_ARG_WITH(tarkin-tree,
3539   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3540   if test -n "${with_tarkin_tree}"
3541   then
3542     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3543     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3544     if test -f "${real_tarkin_tree}/tarkin.o"
3545     then
3546       VLC_ADD_PLUGIN([tarkin])
3547       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3548       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])
3549       AC_MSG_RESULT(yes)
3550     else
3551       dnl  The given tarkin tree wasn't built
3552       AC_MSG_RESULT(no)
3553       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3554                     make sure you compiled tarkin in ${with_tarkin_tree}])
3555     fi
3556   fi
3557 fi
3558
3559 dnl
3560 dnl  theora decoder plugin
3561 dnl
3562 AC_ARG_ENABLE(theora,
3563 [  --enable-theora         experimental theora codec (default disabled)])
3564 if test "${enable_theora}" = "yes"
3565 then
3566   AC_CHECK_HEADERS(theora/theora.h, [
3567     AC_CHECK_LIB(theora, theora_granule_time, [
3568       VLC_ADD_PLUGIN([theora])
3569       theora_libs="-ltheora -logg"
3570       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3571       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3572 You also need to check that you have a libogg posterior to the 1.0 release.])],
3573       [-logg])
3574   ])
3575 fi
3576
3577 dnl
3578 dnl  dirac decoder plugin
3579 dnl
3580 AC_ARG_ENABLE(dirac,
3581 [  --enable-dirac          experimental dirac codec (default disabled)])
3582 if test "${enable_dirac}" = "yes"; then
3583   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3584       VLC_ADD_PLUGIN([dirac])
3585       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3586       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3587       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3588   ])
3589 fi
3590
3591 dnl
3592 dnl  schroedinger decoder plugin (for dirac format video)
3593 dnl
3594 AC_ARG_ENABLE(schroedinger,
3595 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3596 if test "${enable_schroedinger}" != "no"; then
3597   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3598       VLC_ADD_PLUGIN([schroedinger])
3599       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3600       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3601         AS_IF([test "x${enable_schroedinger}" != "x"], [
3602           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3603         ])
3604 ])
3605 fi
3606
3607 dnl
3608 dnl  PNG decoder module
3609 dnl
3610 AC_ARG_ENABLE(png,
3611   [  --enable-png            PNG support (default enabled)])
3612 if test "${enable_png}" != "no"; then
3613 AC_CHECK_HEADERS(png.h, [
3614   LDFLAGS="${LDFLAGS_save} -lz"
3615   AC_CHECK_LIB(png, png_set_rows, [
3616     VLC_ADD_LIBS([png],[-lpng -lz])
3617     VLC_ADD_PLUGIN([png])
3618     VLC_ADD_PLUGIN([osdmenu])
3619     VLC_ADD_PLUGIN([osd_parser])
3620     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3621     [],[-lz])
3622     LDFLAGS="${LDFLAGS_save}"
3623   ])
3624 fi
3625 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3626
3627 dnl
3628 dnl H264 encoder plugin (using libx264)
3629 dnl
3630 AC_ARG_ENABLE(x264,
3631   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3632 if test "${enable_x264}" != "no"; then
3633   AC_ARG_WITH(x264-tree,
3634     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3635   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3636   then
3637     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3638     if test -z "${real_x264_tree}"
3639     then
3640       dnl  The given directory can't be found
3641       AC_MSG_RESULT(no)
3642       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3643     fi
3644     dnl  Use a custom libx264
3645     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3646     if test -f ${real_x264_tree}/x264.h
3647     then
3648       AC_MSG_RESULT(yes)
3649       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3650       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3651       PKG_CHECK_MODULES(X264,x264, [
3652         VLC_ADD_PLUGIN([x264])
3653         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3654         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3655       ],[
3656         AC_MSG_ERROR([the specified tree hasn't been compiled])
3657       ])
3658       LDFLAGS="${LDFLAGS_save}"
3659     else
3660       AC_MSG_RESULT(no)
3661       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3662     fi
3663   else
3664       PKG_CHECK_MODULES(X264,x264, [
3665         VLC_ADD_PLUGIN([x264])
3666         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3667         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3668       ],[
3669         if test "${enable_x264}" = "yes"; then
3670             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3671           fi
3672       ])
3673     LDFLAGS="${LDFLAGS_save}"
3674   fi
3675 fi
3676
3677 dnl
3678 dnl libfluidsynth (MIDI synthetizer) plugin
3679 dnl
3680 AC_ARG_ENABLE(fluidsynth,
3681   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3682 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3683   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3684     VLC_ADD_PLUGIN(fluidsynth)
3685     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3686     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3687   ], [
3688     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3689       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3690     ])
3691   ])
3692 ])
3693
3694 dnl
3695 dnl Teletext Modules
3696 dnl vbi decoder plugin (using libzbvi)
3697 dnl telx module
3698 dnl uncompatible
3699 dnl
3700 AC_ARG_ENABLE(zvbi,
3701   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3702                   libzvbi (default enabled)]))
3703 AC_ARG_ENABLE(telx,
3704   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3705                   zvbi) (default enabled if zvbi is absent)]))
3706
3707 AS_IF( [test "${enable_zvbi}" != "no"],[
3708     PKG_CHECK_MODULES(ZVBI,
3709         zvbi-0.2 >= 0.2.25,
3710         [
3711           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3712           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3713           VLC_ADD_PLUGIN([zvbi])
3714           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3715           AS_IF( [test "${enable_telx}" = "yes"],[
3716                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles. 
3717                                Using zvbi.])
3718                   ])
3719         ],[
3720           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3721         ])
3722     ])  
3723 AS_IF( [test "${enable_telx}" != "no" ],[
3724   VLC_ADD_PLUGIN([telx])
3725   ])
3726
3727 dnl
3728 dnl asa/csri subtitle rendering module
3729 dnl
3730 AC_ARG_ENABLE(csri,
3731   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3732 AS_IF( [test "${enable_csri}" = "yes"], [
3733   PKG_CHECK_MODULES(CSRI,
3734       csri >= 0.1.0,
3735       [
3736         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3737         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3738         VLC_ADD_PLUGIN([csri])
3739       ],[
3740         AC_MSG_WARN([CSRI helper library not found])
3741       ])
3742   ])
3743
3744 dnl
3745 dnl libass subtitle rendering module
3746 dnl
3747 AC_ARG_ENABLE(libass,
3748   [  --enable-libass         Subtitle support using libass (default disabled)])
3749 AS_IF( [test "${enable_libass}" = "yes"], [
3750   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3751       [
3752         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3753         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])