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