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