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