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