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