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