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