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