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