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