]> git.sesse.net Git - vlc/blob - configure.ac
a3d349c3c6807175802103ad94d37b8d5b797adb
[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 imgresample postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
196     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
197     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,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 imgresample postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
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. Use --disable-avcodec to ignore this error.])
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. Use --disable-avformat to ignore this error.])
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_WARN([Could not find libswscale or libavutil. Trying to enable imgresample.])
2990       enable_imgresample=yes
2991   ])
2992 fi
2993
2994 dnl
2995 dnl  avcodec (deprecated API) image scaling and conversion plugin
2996 dnl
2997 dnl  This is build as a seperate module than the avcodec one to prevent
2998 dnl  stupid run time library load errors from disabling most codecs
2999 dnl  from VLC.
3000 dnl
3001
3002 AC_ARG_ENABLE(imgresample,
3003 [  --enable-imgresample deprecated libavcodec image scaling and conversion (default disabled)])
3004 if test "${enable_imgresample}" = "yes"
3005 then
3006   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec, libavutil],
3007     [
3008       VLC_SAVE_FLAGS
3009       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3010       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3011       LIBS="${CFLAGS} ${IMGRESAMPLE_LIBS}"
3012       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3013       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3014       AC_CHECK_LIB(avcodec,img_resample,
3015         [
3016           VLC_ADD_PLUGIN([imgresample])
3017           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3018           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3019         ],[
3020           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3021           if test "${enable_swscale}" != "no"
3022           then
3023             AC_MSG_ERROR([swscale (and its fallback module imgresample) support will be missing. Use --disable-swscale to ignore this error. (This basically means that you will be missing any good software scaling module and some video chroma converters.)])
3024           fi
3025         ])
3026       VLC_RESTORE_FLAGS
3027     ],[
3028       AC_MSG_WARN([Could not find libavcodec or libavutil.])
3029   ])
3030 fi
3031
3032 dnl
3033 dnl  postproc plugin
3034 dnl
3035
3036 AC_ARG_ENABLE(postproc,
3037 [  --enable-postproc   libpostproc image post-processing (default enabled)])
3038 if test "${enable_postproc}" != "no"
3039 then
3040   PKG_CHECK_MODULES(POSTPROC,[libpostproc],
3041     [
3042       VLC_SAVE_FLAGS
3043       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3044       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3045       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3046       VLC_ADD_PLUGIN([postproc])
3047       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3048       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3049       VLC_RESTORE_FLAGS
3050     ],[
3051       AC_MSG_ERROR([Could not find libpostproc.])
3052   ])
3053 fi
3054
3055 dnl
3056 dnl  faad decoder plugin
3057 dnl
3058 AC_ARG_ENABLE(faad,
3059 [  --enable-faad           faad codec (default disabled)])
3060 if test "${enable_faad}" = "yes"
3061 then
3062   AC_ARG_WITH(faad-tree,
3063   [    --with-faad-tree=PATH faad tree for static linking])
3064   if test -n "${with_faad_tree}"
3065   then
3066     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3067     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3068     if test -z "${real_faad_tree}"
3069     then
3070       dnl  The given directory can't be found
3071       AC_MSG_RESULT(no)
3072       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3073     fi
3074     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3075     then
3076       dnl  Use a custom faad
3077       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3078       VLC_ADD_BUILTINS([faad])
3079       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3080       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3081     else
3082       dnl  The given libfaad wasn't built
3083       AC_MSG_RESULT(no)
3084       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3085     fi
3086   else
3087     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3088     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3089     AC_CHECK_HEADERS(faad.h, ,
3090       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3091     AC_CHECK_LIB(faad, faacDecOpen, [
3092       VLC_ADD_PLUGIN([faad])
3093       VLC_ADD_LIBS([faad],[-lfaad]) ],
3094       AC_CHECK_LIB(faad, NeAACDecOpen, [
3095         VLC_ADD_PLUGIN([faad])
3096         VLC_ADD_LIBS([faad],[-lfaad]) ],
3097         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3098     LDFLAGS="${LDFLAGS_save}"
3099     CPPFLAGS="${CPPFLAGS_save}"
3100   fi
3101 fi
3102
3103 dnl
3104 dnl twolame encoder plugin
3105 dnl
3106 AC_ARG_ENABLE(twolame,
3107 [  --enable-twolame        twolame codec (default disabled)])
3108 if test "${enable_twolame}" = "yes"
3109 then
3110   AC_ARG_WITH(twolame-tree,
3111   [    --with-twolame-tree=PATH twolame tree for static linking])
3112   if test -n "${with_twolame_tree}"
3113   then
3114     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3115     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3116     if test -z "${real_twolame_tree}"
3117     then
3118       dnl  The given directory can't be found
3119       AC_MSG_RESULT(no)
3120       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3121     fi
3122     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3123     then
3124       dnl  Use a custom twolame
3125       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3126       VLC_ADD_BUILTINS([twolame])
3127       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3128       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3129     else
3130       dnl  The given libtwolame wasn't built
3131       AC_MSG_RESULT(no)
3132       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3133     fi
3134   else
3135     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3136     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3137     AC_CHECK_HEADERS(twolame.h, ,
3138       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3139     AC_CHECK_LIB(twolame, twolame_init, [
3140       VLC_ADD_PLUGIN([twolame])
3141       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3142       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3143         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3144     LDFLAGS="${LDFLAGS_save}"  
3145     CPPFLAGS="${CPPFLAGS_save}"
3146   fi
3147 fi
3148
3149 dnl
3150 dnl  QuickTime plugin
3151 dnl
3152 AC_ARG_ENABLE(quicktime,
3153   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3154 if test "${enable_quicktime}" != "no" &&
3155   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3156 then
3157   if test "${SYS}" = "mingw32"; then
3158     VLC_ADD_BUILTINS([quicktime])
3159   else
3160   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3161     [ VLC_ADD_PLUGIN([quicktime])
3162       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3163     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3164   fi
3165 fi
3166
3167 dnl
3168 dnl  Real plugin
3169 dnl
3170 AC_ARG_ENABLE(real,
3171   [  --enable-real           Real media module (default disabled)])
3172 if test "${enable_real}" = "yes"; then
3173   VLC_ADD_PLUGIN([realaudio])
3174   VLC_ADD_PLUGIN([realvideo])
3175 fi
3176
3177 dnl
3178 dnl  Real RTSP plugin
3179 dnl
3180 AC_ARG_ENABLE(realrtsp,
3181   [  --enable-realrtsp       Real RTSP module (default disabled)])
3182 if test "${enable_realrtsp}" = "yes"; then
3183   VLC_ADD_PLUGIN([access_realrtsp])
3184 fi
3185
3186 dnl
3187 dnl MP4 module
3188 dnl
3189 AC_CHECK_HEADERS(zlib.h, [
3190   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3191 ] )
3192
3193 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3194   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3195 ] )
3196
3197 dnl
3198 dnl skins2 module
3199 dnl
3200 AC_ARG_ENABLE(libtar,
3201   [  --enable-libtar support for skins2 (default enabled)])
3202
3203 AS_IF([test "${enable_libtar}" != "no"],[
3204   AC_CHECK_HEADERS(libtar.h, [
3205     VLC_ADD_LIBS([skins2],[-ltar])
3206   ] )
3207 ])
3208
3209 dnl
3210 dnl A52/AC3 decoder plugin
3211 dnl
3212 AC_ARG_ENABLE(a52,
3213   [  --enable-a52            A/52 support with liba52 (default enabled)])
3214 if test "${enable_a52}" != "no"
3215 then
3216   AC_ARG_WITH(a52,
3217     [    --with-a52=PATH       a52 headers and libraries])
3218   AC_ARG_WITH(a52-tree,
3219     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3220   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3221   then
3222     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3223     if test -z "${real_a52_tree}"
3224     then
3225       dnl  The given directory can't be found
3226       AC_MSG_RESULT(no)
3227       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3228     fi
3229     dnl  Use a custom a52dec
3230     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3231     if test -f ${real_a52_tree}/include/a52.h
3232     then
3233       AC_MSG_RESULT(yes)
3234       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3235       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3236       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3237       AC_CHECK_LIB(a52, a52_free, [
3238         VLC_ADD_BUILTINS([a52tofloat32])
3239         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3240         VLC_ADD_LIBS([a52tofloat32],[-la52])
3241         ],[
3242         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3243         then
3244           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3245         else
3246           AC_MSG_ERROR([the specified tree hasn't been compiled])
3247         fi
3248       ])
3249       LDFLAGS="${LDFLAGS_save}"
3250     else
3251       AC_MSG_RESULT(no)
3252       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3253     fi
3254   else
3255     if test -z "${with_a52}"
3256     then
3257       LDFLAGS_test=""
3258       CPPFLAGS_test=""
3259     else
3260       LDFLAGS_test="-L${with_a52}/lib"
3261       CPPFLAGS_test="-I${with_a52}/include"
3262     fi
3263     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3264     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3265     AC_CHECK_HEADERS(a52dec/a52.h, [
3266       AC_CHECK_LIB(a52, a52_free, [
3267         VLC_ADD_PLUGIN([a52tofloat32])
3268         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3269         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3270       ],[
3271         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.])
3272         ])
3273     ],[
3274       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.])
3275     ])
3276     CPPFLAGS="${CPPFLAGS_save}"
3277     LDFLAGS="${LDFLAGS_save}"
3278   fi
3279 fi
3280
3281 AC_ARG_WITH(a52-fixed,
3282       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3283       [
3284         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3285
3286 dnl
3287 dnl DTS Coherent Acoustics decoder plugin
3288 dnl
3289 AS_IF([test "x${enable_dts}" != "x"], [
3290   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3291 ])
3292 AS_IF([test "x${with_dts_tree}" != "x"], [
3293   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3294 ])
3295
3296 AC_ARG_ENABLE(dca,
3297   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3298 AS_IF([test "${enable_dca}" != "no"], [
3299   AC_ARG_WITH(dca-tree,
3300     [    --with-dca-tree=PATH  libdca tree for static linking],,
3301     [with_dca_tree="no"])
3302   AS_IF([test "${with_dca_tree}" != "no"], [
3303     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3304     AS_IF([test -z "${real_dca_tree}"], [
3305       dnl  The given directory can't be found
3306       AC_MSG_RESULT(no)
3307       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3308     ])
3309     dnl  Use a custom libdca
3310     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3311     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3312       AC_MSG_RESULT(yes)
3313       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3314       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3315         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3316       ], [
3317         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3318       ])
3319     ], [
3320       AC_MSG_RESULT(no)
3321       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3322     ])
3323   ], [
3324     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3325       VLC_ADD_PLUGIN([dtstofloat32])
3326       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3327       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3328     ], [
3329       AS_IF([test "x${enable_dca}" != "x"], [
3330         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3331       ])
3332     ])
3333   ])
3334 ])
3335
3336 dnl
3337 dnl  Flac plugin
3338 dnl
3339 AC_ARG_ENABLE(flac,
3340   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3341 if test "${enable_flac}" = "yes"
3342 then
3343   AC_ARG_WITH(flac-tree,
3344   [    --with-flac-tree=PATH flac tree for static linking])
3345   if test -n "${with_flac_tree}"
3346   then
3347     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3348     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3349     if test -z "${real_flac_tree}"
3350     then
3351       dnl  The given directory can't be found
3352       AC_MSG_RESULT(no)
3353       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3354     fi
3355     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3356     then
3357       dnl  Use a custom flac
3358       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3359       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3360       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3361       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3362     else
3363       dnl  The given flac wasn't built
3364       AC_MSG_RESULT(no)
3365       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3366     fi
3367   else
3368     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3369       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3370      ],[])
3371   fi
3372 fi
3373
3374 dnl
3375 dnl  Libmpeg2 plugin
3376 dnl
3377 AC_ARG_ENABLE(libmpeg2,
3378   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3379 if test "${enable_libmpeg2}" != "no"
3380 then
3381   AC_ARG_WITH(libmpeg2-tree,
3382   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3383   if test -n "${with_libmpeg2_tree}"
3384   then
3385     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3386     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3387     if test -z "${real_libmpeg2_tree}"
3388     then
3389       dnl  The given directory can't be found
3390       AC_MSG_RESULT(no)
3391       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3392     fi
3393     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3394     then
3395       dnl  Use a custom libmpeg2
3396       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3397       VLC_ADD_BUILTINS([libmpeg2])
3398       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3399       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3400       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3401     else
3402       dnl  The given libmpeg2 wasn't built
3403       AC_MSG_RESULT(no)
3404       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3405     fi
3406   else
3407     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3408       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3409       AC_EGREP_CPP(yes,
3410         [#include <mpeg2dec/mpeg2.h>
3411          #ifdef MPEG2_RELEASE
3412          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3413          yes
3414          #endif
3415          #endif],
3416         [AC_MSG_RESULT([yes])
3417           VLC_ADD_PLUGIN([libmpeg2])
3418           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3419         [AC_MSG_RESULT([no])
3420           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.])])],
3421
3422       [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.])]
3423     )
3424   fi
3425 fi
3426
3427 dnl
3428 dnl  Vorbis plugin
3429 dnl
3430 AC_ARG_ENABLE(vorbis,
3431   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3432 if test "${enable_vorbis}" != "no"
3433 then
3434   AC_ARG_WITH(vorbis-tree,
3435   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3436   if test -n "${with_vorbis_tree}"
3437   then
3438     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3439     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3440     if test -z "${real_vorbis_tree}"
3441     then
3442       dnl  The given directory can't be found
3443       AC_MSG_RESULT(no)
3444       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3445     fi
3446     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3447     then
3448       dnl  Use a custom vorbis 
3449       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3450       VLC_ADD_PLUGIN([vorbis])
3451       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3452       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3453     else
3454       dnl  The given vorbis wasn't built
3455       AC_MSG_RESULT(no)
3456       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3457     fi
3458   else
3459     AC_CHECK_HEADERS(vorbis/codec.h, [
3460       VLC_ADD_PLUGIN([vorbis])
3461       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3462
3463     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3464       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3465   fi
3466 fi
3467
3468 dnl
3469 dnl  Tremor plugin
3470 dnl
3471 AC_ARG_ENABLE(tremor,
3472   [  --enable-tremor         Tremor decoder support (default disabled)])
3473 if test "${enable_tremor}" = "yes"
3474 then
3475   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3476     VLC_ADD_PLUGIN([tremor])
3477     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3478    ],[])
3479 fi
3480
3481 dnl
3482 dnl  Speex plugin
3483 dnl
3484 AC_ARG_ENABLE(speex,
3485   [  --enable-speex          Speex decoder support (default enabled)])
3486 if test "${enable_speex}" != "no"
3487 then
3488   AC_ARG_WITH(speex-tree,
3489   [    --with-speex-tree=PATH speex tree for static linking])
3490   if test -n "${with_speex_tree}"
3491   then
3492     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3493     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3494     if test -z "${real_speex_tree}"
3495     then
3496       dnl  The given directory can't be found
3497       AC_MSG_RESULT(no)
3498       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3499     fi
3500     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3501     then
3502       dnl  Use a custom speex
3503       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3504       VLC_ADD_PLUGIN([speex])
3505       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3506       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3507     else
3508       dnl  The given speex wasn't built
3509       AC_MSG_RESULT(no)
3510       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3511     fi
3512   else
3513     AC_CHECK_HEADERS(speex/speex.h, [
3514       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3515       AC_CHECK_LIB(speex, speex_decode_int, [
3516         VLC_ADD_PLUGIN([speex])
3517         VLC_ADD_LIBS([speex],[-lspeex]) ],
3518         [ AC_MSG_RESULT([no])
3519           AC_MSG_WARN([Your libspeex is too old, please get the development
3520                        version.]) ],[])
3521       LDFLAGS="${LDFLAGS_save}"
3522       ],[])
3523   fi
3524 fi
3525
3526 dnl
3527 dnl  tarkin decoder plugin
3528 dnl
3529 AC_ARG_ENABLE(tarkin,
3530 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3531 if test "${enable_tarkin}" = "yes"
3532 then
3533   AC_ARG_WITH(tarkin-tree,
3534   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3535   if test -n "${with_tarkin_tree}"
3536   then
3537     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3538     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3539     if test -f "${real_tarkin_tree}/tarkin.o"
3540     then
3541       VLC_ADD_BUILTINS([tarkin])
3542       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3543       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])
3544       AC_MSG_RESULT(yes)
3545     else
3546       dnl  The given tarkin tree wasn't built
3547       AC_MSG_RESULT(no)
3548       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3549                     make sure you compiled tarkin in ${with_tarkin_tree}])
3550     fi
3551   fi
3552 fi
3553
3554 dnl
3555 dnl  theora decoder plugin
3556 dnl
3557 AC_ARG_ENABLE(theora,
3558 [  --enable-theora         experimental theora codec (default disabled)])
3559 if test "${enable_theora}" = "yes"
3560 then
3561   AC_CHECK_HEADERS(theora/theora.h, [
3562     AC_CHECK_LIB(theora, theora_granule_time, [
3563       VLC_ADD_PLUGIN([theora])
3564       theora_libs="-ltheora -logg"
3565       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3566       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3567 You also need to check that you have a libogg posterior to the 1.0 release.])],
3568       [-logg])
3569   ])
3570 fi
3571
3572 dnl
3573 dnl  dirac decoder plugin
3574 dnl
3575 AC_ARG_ENABLE(dirac,
3576 [  --enable-dirac          experimental dirac codec (default disabled)])
3577 if test "${enable_dirac}" = "yes"; then
3578   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.9.0], [
3579       VLC_ADD_PLUGIN([dirac])
3580       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3581       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3582       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3583   ])
3584 fi
3585
3586 dnl
3587 dnl  PNG decoder module
3588 dnl
3589 AC_ARG_ENABLE(png,
3590   [  --enable-png            PNG support (default enabled)])
3591 if test "${enable_png}" != "no"; then
3592 AC_CHECK_HEADERS(png.h, [
3593   LDFLAGS="${LDFLAGS_save} -lz"
3594   AC_CHECK_LIB(png, png_set_rows, [
3595     VLC_ADD_LIBS([png],[-lpng -lz])
3596     VLC_ADD_PLUGIN([png])
3597     VLC_ADD_PLUGIN([osdmenu])
3598     VLC_ADD_PLUGIN([osd_parser])
3599     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3600     [],[-lz])
3601     LDFLAGS="${LDFLAGS_save}"
3602   ])
3603 fi
3604 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3605
3606 dnl
3607 dnl H264 encoder plugin (using libx264)
3608 dnl
3609 AC_ARG_ENABLE(x264,
3610   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3611 if test "${enable_x264}" != "no"; then
3612   AC_ARG_WITH(x264-tree,
3613     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3614   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3615   then
3616     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3617     if test -z "${real_x264_tree}"
3618     then
3619       dnl  The given directory can't be found
3620       AC_MSG_RESULT(no)
3621       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3622     fi
3623     dnl  Use a custom libx264
3624     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3625     if test -f ${real_x264_tree}/x264.h
3626     then
3627       AC_MSG_RESULT(yes)
3628       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3629       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3630       PKG_CHECK_MODULES(X264,x264, [
3631         VLC_ADD_PLUGIN([x264])
3632         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3633         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3634       ],[
3635         AC_MSG_ERROR([the specified tree hasn't been compiled])
3636       ])
3637       LDFLAGS="${LDFLAGS_save}"
3638     else
3639       AC_MSG_RESULT(no)
3640       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3641     fi
3642   else
3643       PKG_CHECK_MODULES(X264,x264, [
3644         VLC_ADD_PLUGIN([x264])
3645         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3646         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3647       ],[
3648         if test "${enable_x264}" = "yes"; then
3649             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3650           fi
3651       ])
3652     LDFLAGS="${LDFLAGS_save}"
3653   fi
3654 fi
3655
3656 dnl
3657 dnl libfluidsynth (MIDI synthetizer) plugin
3658 dnl
3659 AC_ARG_ENABLE(fluidsynth,
3660   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3661 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3662   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3663     VLC_ADD_PLUGIN(fluidsynth)
3664     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3665     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3666   ], [
3667     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3668       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3669     ])
3670   ])
3671 ])
3672
3673 dnl
3674 dnl Teletext Modules
3675 dnl vbi decoder plugin (using libzbvi)
3676 dnl telx module
3677 dnl uncompatible
3678 dnl
3679 AC_ARG_ENABLE(zvbi,
3680   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3681 AC_ARG_ENABLE(telx,
3682   [  --enable-telx           Teletext decoding module (conflicting with zvbi) (default disabled)])
3683
3684 AS_IF( [test "${enable_zvbi}" != "no"],[
3685   AS_IF( [test "${enable_telx}" = "yes"],[
3686     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3687   ],[
3688     PKG_CHECK_MODULES(ZVBI,
3689         zvbi-0.2 >= 0.2.25,
3690         [
3691           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3692           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3693           VLC_ADD_PLUGIN([zvbi])
3694           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3695         ],[
3696           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3697           enable_telx="yes"
3698         ])
3699     ])  
3700   ])
3701 AS_IF( [test "${enable_telx}" = "yes"],[
3702   VLC_ADD_PLUGIN([telx])
3703   ])
3704
3705 dnl
3706 dnl asa/csri subtitle rendering module
3707 dnl
3708 AC_ARG_ENABLE(csri,
3709   [  --enable-csri          Subtitle support using CSRI / asa (default disabled)])
3710 AS_IF( [test "${enable_csri}" = "yes"], [
3711   PKG_CHECK_MODULES(CSRI,
3712       csri >= 0.1.0,
3713       [
3714         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3715         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3716         VLC_ADD_PLUGIN([csri])
3717       ],[
3718         AC_MSG_WARN([CSRI helper library not found])
3719       ])
3720   ])
3721
3722 dnl
3723 dnl asa demuxer
3724 dnl
3725 AC_ARG_ENABLE(asademux,
3726   [  --enable-asademux      asa subtitle demuxing (default disabled)])
3727 AS_IF( [test "${enable_asademux}" = "yes"], [
3728   PKG_CHECK_MODULES(PCRE,
3729       libpcre >= 6.5,
3730       [
3731         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3732         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3733         VLC_ADD_PLUGIN([asademux])
3734       ],[
3735         AC_MSG_WARN([PCRE library not found (required for asademux)])
3736       ])
3737   ])
3738
3739 dnl
3740 dnl  CMML plugin
3741 dnl
3742 AC_ARG_ENABLE(cmml,
3743   [  --enable-cmml           CMML support (default enabled)])
3744 if test "${enable_cmml}" != "no"
3745 then
3746   VLC_ADD_PLUGIN([cmml])
3747 fi
3748
3749 dnl
3750 dnl  kate decoder plugin
3751 dnl
3752 AC_ARG_ENABLE(kate,
3753 [  --enable-kate           kate codec (default enabled)])
3754 AS_IF([test "${enable_kate}" != "no"], [
3755   PKG_CHECK_MODULES(KATE,[kate >= 0.1.1], [
3756       VLC_ADD_PLUGIN([kate])
3757       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3758       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3759         AC_CHECK_HEADERS(kate/kate.h, [
3760           AC_CHECK_LIB(kate, kate_decode_init, [
3761             VLC_ADD_PLUGIN([kate])
3762             kate_libs="-lkate -logg"
3763             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3764             AS_IF([test "x${enable_kate}" != "x"], [
3765               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3766               You also need to check that you have a libogg posterior to the 1.0 release.])
3767             ])
3768           ], [-lkate -logg])
3769         ],[
3770           AS_IF([test "x${enable_kate}" != "x"], [
3771             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3772             You also need to check that you have a libogg posterior to the 1.0 release.])
3773           ])
3774         ])
3775   ])
3776 ])
3777
3778
3779 dnl
3780 dnl  Video plugins
3781 dnl
3782
3783 AC_ARG_WITH(,[Video plugins:])
3784
3785 dnl Check for DPMS
3786 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3787   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3788   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3789     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3790     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3791       AC_MSG_RESULT(yes)
3792       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3793                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3794     ],[
3795       AC_MSG_RESULT(no)
3796     ])
3797   ],,[
3798     #include <X11/Xlib.h>
3799   ])
3800   CPPFLAGS="${CPPFLAGS_save}"
3801 fi
3802
3803 dnl
3804 dnl  X11 module
3805 dnl  (enabled by default except on win32)
3806 dnl
3807 AC_ARG_ENABLE(x11,
3808   [  --enable-x11            X11 support (default enabled)])
3809 if test "${enable_x11}" != "no" &&
3810   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3811    test "${enable_x11}" = "yes"); then
3812   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3813   AC_CHECK_HEADERS(X11/Xlib.h, [
3814     VLC_ADD_PLUGIN([panoramix])
3815     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3816     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3817     AC_CHECK_LIB(Xext, XShmAttach, [
3818       VLC_ADD_PLUGIN([x11])
3819       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3820       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3821     ])
3822   ])
3823   CPPFLAGS="${CPPFLAGS_save}"
3824 fi
3825
3826 dnl
3827 dnl  XVideo module
3828 dnl  (enabled by default except on win32)
3829 dnl
3830 AC_ARG_ENABLE(xvideo,
3831   [  --enable-xvideo         XVideo support (default enabled)])
3832 if test "${enable_xvideo}" != "no" &&
3833   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3834    test "${enable_xvideo}" = "yes"); then
3835   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3836   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3837     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3838     AC_CHECK_LIB(Xv,XvPutImage,[
3839       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3840       # test for libXv_pic.
3841       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3842         VLC_ADD_PLUGIN([xvideo])
3843         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3844         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3845       else
3846         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3847           VLC_ADD_PLUGIN([xvideo])
3848           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3849           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3850         ],[
3851           VLC_ADD_BUILTINS([xvideo])
3852           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3853           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3854         ])
3855       fi
3856     ])
3857     CFLAGS="${CFLAGS_save}"
3858   ]
3859   CPPFLAGS="${CPPFLAGS_save}")
3860 fi
3861
3862 dnl
3863 dnl  GLX module
3864 dnl  (enabled by default except on win32)
3865 dnl
3866 AC_ARG_ENABLE(glx,
3867   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3868 if test "${enable_glx}" != "no" &&
3869   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3870    test "${enable_glx}" = "yes"); then
3871   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3872   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3873   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3874     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3875     choke me
3876     #endif]]),
3877     [
3878       VLC_ADD_PLUGIN([glx])
3879       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3880       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3881     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3882   CPPFLAGS="${CPPFLAGS_save}"
3883 fi
3884
3885 dnl
3886 dnl  XVMC module
3887 dnl  (disabled by default except on win32)
3888 dnl
3889 AC_ARG_ENABLE(xvmc,
3890   [  --enable-xvmc           XVMC support (default disabled)])
3891 if test "${enable_xvmc}" = "yes" &&
3892   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3893    test "${enable_xvmc}" = "yes"); then
3894   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3895   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3896     VLC_ADD_PLUGIN([xvmc])
3897     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
3898     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3899   ])
3900   CPPFLAGS="${CPPFLAGS_save}"
3901 fi
3902
3903 dnl
3904 dnl  Check for the Xinerama extension
3905 dnl
3906 AC_ARG_ENABLE(xinerama,
3907   [  --enable-xinerama       Xinerama support (default enabled)])
3908 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3909   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3910    test "${enable_xvideo}" = "yes"); then
3911   ac_cv_have_xinerama="no"
3912   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3913   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3914   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3915     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3916       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3917       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3918       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3919       ac_cv_have_xinerama="yes"
3920     ],[
3921       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3922         VLC_ADD_LIBS([xvideo],[-lXinerama])
3923         VLC_ADD_LIBS([x11],[-lXinerama])
3924         VLC_ADD_LIBS([glx],[-lXinerama])
3925         ac_cv_have_xinerama="yes"
3926       ])
3927     ])
3928   ])
3929   if test "${ac_cv_have_xinerama}" = "yes"; then
3930     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3931   fi
3932   CFLAGS="${CFLAGS_save}"
3933   CPPFLAGS="${CPPFLAGS_save}"
3934
3935 dnl
3936 dnl  Check for XF86VidMode extension
3937 dnl
3938   ac_cv_have_xf86vidmode="no"
3939   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3940   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3941   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3942     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3943       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
3944       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
3945       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
3946       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
3947       ac_cv_have_xf86vidmode="yes"
3948     ],[
3949       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3950         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
3951         VLC_ADD_LIBS([x11],[-lXxf86vm])
3952         VLC_ADD_LIBS([glx],[-lXxf86vm])
3953         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
3954         ac_cv_have_xf86vidmode="yes"
3955       ])
3956     ])
3957   ],[true],
3958 [#ifdef HAVE_X11_XLIB_H
3959 # include <X11/Xlib.h>
3960 #endif]
3961    )
3962   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3963     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3964   ])
3965   CFLAGS="${CFLAGS_save}"
3966   CPPFLAGS="${CPPFLAGS_save}"
3967
3968 fi
3969
3970 dnl
3971 dnl  OpenGL module
3972 dnl  (enabled by default except on beos)
3973 dnl
3974 AC_ARG_ENABLE(opengl,
3975   [  --enable-opengl         OpenGL support (default enabled)])
3976 if test "${enable_opengl}" != "no" &&
3977    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3978   if test "${SYS}" != "darwin"; then
3979     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3980       VLC_ADD_PLUGIN([opengl])
3981       if test "${SYS}" != "mingw32"; then
3982         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3983       else
3984         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3985       fi
3986     ])
3987   else
3988     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3989     VLC_ADD_PLUGIN([opengl])
3990     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3991   fi
3992 fi
3993
3994 dnl
3995 dnl  SDL module
3996 dnl
3997 AC_ARG_ENABLE(sdl,
3998   [  --enable-sdl            SDL support (default enabled)])
3999 AC_ARG_ENABLE(sdl-image,
4000   [  --enable-sdl-image      SDL image support (default enabled)])
4001 if test "${enable_sdl}" != "no"
4002 then
4003   SDL_PATH="${PATH}"
4004   AC_ARG_WITH(sdl-config-path,
4005     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4006     [ if test "${with_sdl_config_path}" != "no"
4007       then
4008         SDL_PATH="${with_sdl_config_path}:${PATH}"
4009       fi ])
4010   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4011   SDL_CONFIG="${SDL12_CONFIG}"
4012   SDL_HEADER="SDL12/SDL.h"
4013   SDL_IMAGE="SDL12/SDL_image.h"
4014   if test "${SDL_CONFIG}" = "no"
4015   then
4016     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4017     SDL_CONFIG=${SDL11_CONFIG}
4018     SDL_HEADER="SDL11/SDL.h"
4019     SDL_IMAGE="SDL11/SDL_image.h"
4020   fi
4021   if test "${SDL_CONFIG}" = "no"
4022   then
4023     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4024     SDL_HEADER="SDL/SDL.h"
4025     SDL_IMAGE="SDL/SDL_image.h"
4026   fi
4027   # check for cross-compiling
4028   SDL_PREFIX=
4029   AC_ARG_WITH(sdl-prefix,
4030     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4031                                e.g use as:
4032                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4033   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4034   then
4035     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4036   fi
4037   if test "${SDL_CONFIG}" != "no"
4038   then
4039     # SDL on Darwin is heavily patched and can only run SDL_image
4040     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4041       VLC_ADD_PLUGIN([vout_sdl])
4042       VLC_ADD_PLUGIN([aout_sdl])
4043     fi
4044     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4045     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4046     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4047     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4048       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4049       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4050           As a last resort we also test for SDL.h presence),
4051       [ AC_MSG_ERROR([The development package for SDL is not installed.
4052 Please install it and try again. Alternatively you can also configure with
4053 --disable-sdl.])
4054       ])])
4055     AS_IF([ test "${enable_sdl_image}" != "no"],[
4056       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4057         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4058         VLC_ADD_PLUGIN([sdl_image])
4059         AC_CHECK_LIB(png, png_set_rows,
4060           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4061         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4062           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4063         AC_CHECK_LIB(tiff, TIFFClientOpen,
4064           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4065         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4066         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4067             As a last resort we also test for SDL_image.h presence),
4068         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4069   You should install it alongside your SDL package.])
4070         ])])
4071     ])
4072     CPPFLAGS="${CPPFLAGS_save}"
4073     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4074     then
4075       AC_MSG_ERROR([The development package for SDL is not installed.
4076 Please install it and try again. Alternatively you can also configure with
4077 --disable-sdl.])
4078     fi
4079
4080   elif test "${enable_sdl}" =  "yes"
4081   then
4082     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4083 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4084     ])
4085   fi
4086 fi
4087
4088 dnl
4089 dnl  freetype module
4090 dnl
4091 AC_ARG_ENABLE(freetype,
4092   [  --enable-freetype       freetype support (default enabled)])
4093 AC_ARG_ENABLE(fribidi,
4094   [  --enable-fribidi        fribidi support (default enabled)])
4095 if test "${enable_freetype}" != "no"
4096 then
4097    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4098       VLC_ADD_PLUGIN([freetype])
4099       have_freetype=yes
4100       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4101       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4102       if test "${SYS}" = "mingw32"; then
4103         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4104      fi
4105     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4106       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4107        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4108     AC_CHECK_HEADERS(Carbon/Carbon.h,
4109       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4110   ],[
4111   have_freetype=no
4112   AS_IF([ test "${enable_freetype}" =  "yes"],[
4113     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4114 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4115       ])
4116     ])
4117   ])
4118
4119   dnl fribidi support
4120   if test "${enable_fribidi}" != "no"
4121   then
4122     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4123       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4124       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4125     ])
4126     fi
4127 fi
4128
4129 dnl
4130 dnl  libxml2 module
4131 dnl
4132 AC_ARG_ENABLE(libxml2,
4133   [  --enable-libxml2        libxml2 support (default enabled)])
4134 if test "${enable_libxml2}" != "no"
4135 then
4136   XML2_PATH="${PATH}"
4137   AC_ARG_WITH(xml2-config-path,
4138     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4139     [ if test "${with_xml2_config_path}" != "no"; then
4140         XML2_PATH="${with_xml2_config_path}:${PATH}"
4141       fi ])
4142   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4143   if test "${XML2_CONFIG}" != "no"; then
4144     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4145     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4146     dnl depends on the xmlTextReader extension
4147     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4148     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4149     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4150       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4151         VLC_ADD_PLUGIN([xml]) ],[
4152           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4153           if test "${enable_xml2}" = "yes"; then
4154             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4155           fi])
4156        ],[
4157       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4158       if test "${enable_xml2}" = "yes"; then
4159         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4160       fi])
4161     LDFLAGS="${LDFLAGS_save}"
4162     CPPFLAGS="${CPPFLAGS_save}"
4163   else
4164     if test "${enable_xml2}" = "yes"; then
4165       AC_MSG_ERROR([Could not find libxml2])
4166     fi
4167   fi
4168 fi
4169
4170 dnl
4171 dnl  SVG module
4172 dnl
4173 AC_ARG_ENABLE(svg,
4174   [  --enable-svg            SVG support (default disabled)])
4175 if test "${enable_svg}" = "yes"
4176 then
4177   PKG_CHECK_MODULES(SVG, 
4178         librsvg-2.0 >= 2.9.0,
4179         [
4180           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4181           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4182           VLC_ADD_PLUGIN([svg]) ],
4183         [AC_MSG_WARN(SVG library not found)])
4184 fi
4185
4186 dnl
4187 dnl Snapshot vout module (with cache)
4188 dnl
4189 AC_ARG_ENABLE(snapshot,
4190   [  --enable-snapshot       snapshot module (default disabled)])
4191 if test "${enable_snapshot}" = "yes"
4192 then
4193   VLC_ADD_PLUGIN([snapshot])
4194 fi
4195
4196 dnl
4197 dnl  Qt Embedded module
4198 dnl  (disabled by default)
4199 dnl
4200 AC_ARG_ENABLE(qte,
4201   [  --enable-qte            QT Embedded support (default disabled)])
4202 if test "${enable_qte}" = "yes"
4203 then
4204   AC_ARG_WITH(qte,
4205   [    --with-qte=PATH       Qt Embedded headers and libraries])
4206   if test "${with_qte}" != "no" -a -n "${with_qte}"
4207   then
4208     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4209     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])
4210   else
4211     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4212     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4213   fi
4214   VLC_ADD_PLUGIN([qte])
4215   NEED_QTE_MAIN=yes
4216   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4217   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4218     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4219   ] )
4220   CPPFLAGS="${CPPFLAGS_save}"
4221 fi
4222
4223 dnl
4224 dnl Roku HD1000 Video output module
4225 dnl
4226 AC_ARG_ENABLE(hd1000v,
4227   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4228 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4229   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4230    test "${enable_hd1000v}" = "yes"); then
4231   AC_LANG_PUSH([C++])
4232   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4233   [
4234     can_build_roku="yes"
4235   ],
4236   [
4237     can_build_roku="no"
4238     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4239   ])
4240   if test "$can_build_roku" = "yes"
4241   then
4242     VLC_ADD_PLUGIN([hd1000v])
4243     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4244   fi
4245   AC_LANG_POP([C++])
4246 fi
4247
4248 dnl
4249 dnl  Windows DirectX module
4250 dnl
4251
4252 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4253 then
4254   VLC_ADD_PLUGIN([panoramix])
4255 fi
4256
4257 AC_ARG_ENABLE(directx,
4258   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4259 if test "${enable_directx}" != "no"
4260 then
4261   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4262   then
4263     AC_ARG_WITH(directx,
4264     [    --with-directx=PATH   Win32 DirectX headers])
4265     if test -z "${with_directx}"
4266     then
4267       AC_CHECK_HEADERS(ddraw.h,
4268       [ VLC_ADD_PLUGIN([vout_directx])
4269         VLC_ADD_PLUGIN([aout_directx])
4270         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4271       ])
4272       AC_CHECK_HEADERS(GL/gl.h,
4273       [ VLC_ADD_PLUGIN([glwin32])
4274         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4275       ])
4276       AC_CHECK_HEADERS(d3d9.h,
4277       [ VLC_ADD_PLUGIN([direct3d])
4278         VLC_ADD_LIBS([direct3d],[-lgdi32])
4279       ])
4280     else
4281       AC_MSG_CHECKING(for directX headers in ${with_directx})
4282       if test -f ${with_directx}/ddraw.h
4283       then
4284         VLC_ADD_PLUGIN([vout_directx])
4285         VLC_ADD_PLUGIN([aout_directx])
4286         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4287         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4288         AC_MSG_RESULT(yes)
4289       else
4290         AC_MSG_RESULT(no)
4291         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4292       fi
4293     fi
4294   fi
4295 fi
4296
4297 dnl
4298 dnl  Linux framebuffer module
4299 dnl
4300 AC_ARG_ENABLE(fb,
4301   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4302     if test "${enable_fb}" != "no"
4303     then
4304       AC_CHECK_HEADERS(linux/fb.h, [
4305         VLC_ADD_PLUGIN([fb])
4306       ])
4307     fi
4308
4309 dnl
4310 dnl  Linux MGA module
4311 dnl
4312 AC_ARG_ENABLE(mga,
4313   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4314   [ if test "${enable_mga}" = "yes"
4315     then
4316       VLC_ADD_PLUGIN([mga])
4317     fi ])
4318
4319 dnl
4320 dnl  SVGAlib module
4321 dnl
4322 AC_ARG_ENABLE(svgalib,
4323   [  --enable-svgalib        SVGAlib support (default disabled)])
4324 if test "${enable_svgalib}" = "yes"
4325 then
4326   VLC_ADD_PLUGIN([svgalib])
4327   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4328 fi
4329
4330 dnl
4331 dnl  DirectFB module
4332 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4333 dnl  TODO: support for static linking
4334 dnl
4335 AC_ARG_ENABLE(directfb,
4336   [  --enable-directfb       DirectFB support (default disabled)])
4337 AC_ARG_WITH(directfb, 
4338   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4339
4340 if test "${enable_directfb}" = "yes"; then
4341     have_directfb="false"
4342     CPPFLAGS_mydirectfb=
4343     LIBS_mydirectfb=
4344     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4345         dnl Trying the given location
4346         CPPFLAGS_save="${CPPFLAGS}"
4347         LIBS_save="${LIBS}"
4348
4349         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4350         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4351         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4352
4353         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4354         LIBS="${LIBS} ${LIBS_new}"
4355
4356         dnl FIXME: too obscure
4357         AC_CHECK_HEADER([directfb.h], [
4358             AC_CHECK_LIB([direct],[direct_initialize], [
4359                 AC_CHECK_LIB([fusion], [fusion_enter], [
4360                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4361                 ], have_directfb="false")
4362             ], have_directfb="false")
4363         ], have_directfb="false")
4364
4365         dnl Restore flags
4366         CPPFLAGS="${CPPFLAGS_save}"
4367         LIBS="${LIBS_save}"
4368
4369         if test "${have_directfb}" = "true"; then
4370             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4371             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4372         fi
4373     else 
4374         dnl Look for directfb-config
4375         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4376         if test "${DIRECTFB_CONFIG}" != "no"; then
4377             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4378             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4379             have_directfb="true"
4380         else 
4381             dnl Trying with pkg-config
4382             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4383                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4384                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4385                 have_directfb="true"
4386                 ], [have_directfb="false"])
4387         fi
4388     fi
4389     if test "${have_directfb}" = "true"; then
4390         VLC_ADD_PLUGIN([directfb])
4391         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4392         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4393     else 
4394         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4395     fi
4396 fi
4397  
4398
4399
4400 dnl
4401 dnl  GGI module
4402 dnl
4403 AC_ARG_ENABLE(ggi,
4404   [  --enable-ggi            GGI support (default disabled)])
4405 if test "${enable_ggi}" = "yes"
4406 then
4407   VLC_ADD_PLUGIN([ggi])
4408   VLC_ADD_LIBS([ggi],[-lggi])
4409   AC_ARG_WITH(ggi,
4410     [    --with-ggi=PATH       path to libggi],
4411     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4412       then
4413         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4414         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4415       fi ])
4416 fi
4417
4418 dnl
4419 dnl  Glide module
4420 dnl
4421 AC_ARG_ENABLE(glide,
4422   [  --enable-glide          Glide (3dfx) support (default disabled)])
4423 if test "${enable_glide}" = "yes"
4424 then
4425   CFLAGS_save="${CFLAGS}"
4426   AC_ARG_WITH(glide,
4427     [    --with-glide=PATH     path to libglide],
4428     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4429       then
4430         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4431         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4432         CFLAGS="$CFLAGS -I${with_glide}/include"
4433     fi ])
4434    CFLAGS="$CFLAGS -I/usr/include/glide"
4435    AC_CHECK_HEADER(glide.h,[   
4436       VLC_ADD_PLUGIN([glide])
4437       VLC_ADD_LIBS([glide],[-lglide2x -lm])
4438       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4439     ],[
4440       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4441      ])
4442    CFLAGS="${CFLAGS_save}"
4443 fi
4444
4445 dnl
4446 dnl  AA plugin
4447 dnl
4448 AC_ARG_ENABLE(aa,
4449   [  --enable-aa             aalib output (default disabled)])
4450 if test "${enable_aa}" = "yes"
4451 then
4452   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4453   if test "${have_aa}" = "true"
4454   then
4455     VLC_ADD_PLUGIN([aa])
4456     VLC_ADD_LIBS([aa],[-laa])
4457   fi
4458 fi
4459
4460 dnl
4461 dnl  libcaca plugin
4462 dnl
4463 AC_ARG_ENABLE(caca,
4464   [  --enable-caca           libcaca output (default disabled)])
4465 if test "${enable_caca}" = "yes"
4466 then
4467   CACA_PATH="${PATH}"
4468   AC_ARG_WITH(caca-config-path,
4469     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4470     [ if test "${with_caca_config_path}" != "no"
4471       then
4472         CACA_PATH="${with_caca_config_path}:${PATH}"
4473       fi ])
4474   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4475   if test "${CACA_CONFIG}" != "no"
4476   then
4477     VLC_ADD_PLUGIN([caca])
4478     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4479     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4480     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4481                                         caca_event_t ev;]],
4482                                         [[ev.type = 0;]]
4483                        )],
4484                        [],
4485       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4486     )
4487   fi
4488 fi
4489
4490 dnl
4491 dnl  win32 GDI plugin
4492 dnl
4493 AC_ARG_ENABLE(wingdi,
4494   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4495 if test "${enable_wingdi}" != "no"; then
4496   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4497     VLC_ADD_PLUGIN([wingdi])
4498     VLC_ADD_LIBS([wingdi],[-lgdi32])
4499   fi
4500   if test "${SYS}" = "mingwce"; then
4501     VLC_ADD_PLUGIN([wingdi])
4502     VLC_ADD_PLUGIN([wingapi])
4503   fi
4504 fi
4505
4506 dnl
4507 dnl  Audio plugins
4508 dnl
4509
4510 AC_ARG_WITH(,[Audio plugins:])
4511
4512 dnl
4513 dnl  OSS /dev/dsp module (enabled by default except on win32)
4514 dnl
4515 AC_ARG_ENABLE(oss,
4516   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4517
4518 if test "${enable_oss}" != "no" &&
4519   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4520    test "${enable_oss}" = "yes")
4521 then
4522   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4523     VLC_ADD_PLUGIN([oss])
4524     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4525   ])
4526 fi
4527
4528 dnl
4529 dnl  Esound module
4530 dnl
4531 AC_ARG_ENABLE(esd,
4532   [  --enable-esd            Esound library support (default disabled)],
4533   [if test "${enable_esd}" = "yes"
4534    then
4535      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4536      if test "${ESD_CONFIG}" != "no"
4537      then
4538        VLC_ADD_PLUGIN([esd])
4539        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4540        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4541      fi
4542    fi])
4543
4544 dnl
4545 dnl  Pulseaudio module
4546 dnl
4547 AC_ARG_ENABLE(pulse,
4548   [  --enable-pulse          Pulseaudio support (default enabled)])
4549   if test "${enable_pulse}" != "no"
4550    then
4551      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4552        [ VLC_ADD_PLUGIN([pulse])
4553         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4554         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4555        [AC_MSG_WARN(pulsaudio library not found)])
4556    fi
4557
4558 dnl
4559 dnl  Portaudio module
4560 dnl
4561 AC_ARG_ENABLE(portaudio,
4562   [  --enable-portaudio      Portaudio library support (default disabled)],
4563   [if test "${enable_portaudio}" = "yes"
4564    then
4565      VLC_ADD_PLUGIN([portaudio])
4566      VLC_ADD_CXXFLAGS([portaudio],[])
4567      if test "${SYS}" = "mingw32"; then
4568         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4569      else
4570         VLC_ADD_LIBS([portaudio],[-lportaudio])
4571      fi
4572    fi])
4573
4574 dnl
4575 dnl  aRts module -- broken (freeze wxWidgets)
4576 dnl
4577 AC_ARG_ENABLE(arts,
4578  [  --enable-arts           aRts sound server (default disabled)],
4579  [if test "${enable_arts}" = "yes"
4580   then
4581     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4582     if test "${ARTS_CONFIG}" != "no"
4583     then
4584       VLC_ADD_PLUGIN([arts])
4585       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4586       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4587     fi
4588   fi])
4589
4590 dnl
4591 dnl  ALSA module
4592 dnl
4593 AC_ARG_ENABLE(alsa,
4594   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4595 if test "${enable_alsa}" != "no"
4596 then
4597   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4598   if test "${have_alsa}" = "true"
4599   then
4600     CFLAGS="${CFLAGS_save}"
4601     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4602                     #define ALSA_PCM_NEW_SW_PARAMS_API
4603                     #include <alsa/asoundlib.h>],
4604        [snd_pcm_hw_params_get_period_time(0,0,0);],
4605         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4606     VLC_ADD_PLUGIN([alsa])
4607     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4608   else
4609     if test "${enable_alsa}" = "yes"; then
4610       AC_MSG_ERROR([Could not find ALSA development headers])
4611     fi
4612   fi
4613 fi
4614
4615 dnl
4616 dnl  win32 waveOut plugin
4617 dnl
4618 AC_ARG_ENABLE(waveout,
4619   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4620 if test "${enable_waveout}" != "no"; then
4621   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4622     VLC_ADD_PLUGIN([waveout])
4623     VLC_ADD_LIBS([waveout],[-lwinmm])
4624   fi
4625   if test "${SYS}" = "mingwce"; then
4626     VLC_ADD_PLUGIN([waveout])
4627   fi
4628 fi
4629
4630 dnl
4631 dnl  CoreAudio plugin
4632 dnl
4633 AC_ARG_ENABLE(macosx-audio,
4634   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4635 if test "${enable_macosx-audio}" != "no" &&
4636   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4637 then
4638   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4639     [ VLC_ADD_PLUGIN([auhal])
4640       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4641     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4642 fi
4643
4644 dnl
4645 dnl  Roku HD1000 audio
4646 dnl
4647 AC_ARG_ENABLE(hd1000a,
4648   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4649 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4650   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4651    test "${enable_hd1000a}" = "yes")
4652 then
4653   AC_LANG_PUSH([C++])
4654   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4655     VLC_ADD_PLUGIN([hd1000a])
4656     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4657   AC_LANG_POP([C++])
4658 fi
4659
4660 dnl
4661 dnl  JACK modules
4662 dnl
4663 AC_ARG_ENABLE(jack,
4664  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4665  [enable_jack="no"])
4666
4667 AS_IF([test "${enable_jack}" != "no"], [
4668   AC_CHECK_HEADERS(jack/jack.h, [
4669     VLC_ADD_PLUGIN([access_jack])
4670     VLC_ADD_PLUGIN([jack])
4671     VLC_ADD_LIBS([access_jack jack],[-ljack])
4672   ],[AC_MSG_ERROR([cannot find JACK headers])])
4673 ])
4674
4675 dnl
4676 dnl  CyberLink for C++ UPnP stack
4677 dnl
4678 AC_ARG_ENABLE(cyberlink,
4679   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4680   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4681   AC_ARG_WITH(cyberlink-tree,
4682     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4683
4684   dnl
4685   dnl test for --with-cyberlink-tree
4686   dnl
4687   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4688     AC_LANG_PUSH(C++)
4689     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4690     AS_IF([test -z "${real_cyberlink_tree}"], [
4691       dnl  The given directory can't be found
4692       AC_MSG_RESULT(no)
4693       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4694     ])
4695     CPPFLAGS_save="${CPPFLAGS}"
4696     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4697     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4698     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4699       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4700         VLC_ADD_PLUGIN([upnp_cc]) 
4701       ],[
4702         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4703       ])
4704     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4705     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4706       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4707       dnl The mere fact that we have to make such an ugly check sucks
4708       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4709       LIBS_save="$LIBS"
4710       LIBS_cclink="no"
4711       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4712         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4713         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4714 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4715 using namespace CyberLink;
4716
4717 class testclass : public SearchResponseListener, public MediaPlayer
4718 {
4719     virtual void deviceSearchResponseReceived( SSDPPacket *)
4720     {
4721     }
4722
4723     public:
4724       testclass (void)
4725       {
4726         addSearchResponseListener (this);
4727         start ();
4728       }
4729 };
4730 ],[testclass l;])],[LIBS_cclink="$l"])
4731       done
4732       LIBS="${LIBS_save}"
4733       dnl should not happen - otherwise this needs fixing - hence FAILURE
4734       AS_IF([test "${LIBS_cclink}" = "no"],
4735         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4736       AC_MSG_RESULT([${LIBS_cclink}])
4737       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4738     ], [
4739       AC_MSG_RESULT(no)
4740       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4741     ])
4742     CPPFLAGS="${CPPFLAGS_save}"
4743     AC_LANG_POP([C++])
4744   ])
4745 ])
4746
4747 dnl
4748 dnl UPnP Plugin (Intel SDK)
4749 dnl
4750 AC_ARG_ENABLE(upnp,
4751   [  --enable-upnp           Intel UPnP SDK (default enabled)])
4752
4753 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4754 AS_IF([test "x${enable_upnp}" != "xno"], [
4755   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4756   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4757     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4758   ])
4759   AS_IF([test "${has_upnp}" = "yes"], [
4760     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4761   ])
4762 ], [
4763   has_upnp="no"
4764 ])
4765
4766 AS_IF([test "${has_upnp}" = "yes"], [
4767   VLC_ADD_PLUGIN([upnp_intel])
4768 ])
4769
4770
4771 dnl
4772 dnl  Interface plugins
4773 dnl
4774
4775 AC_ARG_WITH(,[Interface plugins:])
4776
4777 dnl special case for BeOS
4778 if test "${SYS}" = "beos"
4779 then
4780     VLC_ADD_BUILTINS([beos])
4781 fi
4782
4783 dnl
4784 dnl Skins2 module
4785 dnl
4786 AC_ARG_ENABLE(skins2,
4787   [  --enable-skins2         Skins2 interface module (default disabled)])
4788 if test "${enable_skins2}" = "yes" ||
4789   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4790    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4791
4792   dnl test for the required libraries
4793   skins2_missing_lib="no"
4794
4795   dnl freetype
4796   if test "${have_freetype}" != "yes"; then
4797     skins2_missing_lib="yes"
4798     if test "${enable_skins2}" = "yes"; then
4799       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4800     fi
4801   fi
4802
4803   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4804     VLC_ADD_PLUGIN([skins2])
4805     ALIASES="${ALIASES} svlc"
4806     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4807     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4808     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4809
4810   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4811     VLC_ADD_PLUGIN([skins2])
4812     ALIASES="${ALIASES} svlc"
4813     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4814     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4815     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4816
4817   else if test "${skins2_missing_lib}" = "no"; then
4818     VLC_ADD_PLUGIN([skins2])
4819     ALIASES="${ALIASES} svlc"
4820     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4821     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4822     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4823   fi fi fi
4824 fi
4825 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
4826
4827 dnl
4828 dnl  PDA Gtk+2 module
4829 dnl
4830 AC_ARG_ENABLE(pda,
4831   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4832 if test "${enable_pda}" = "yes"
4833 then
4834   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4835   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4836   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4837   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4838   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4839   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4840   VLC_ADD_PLUGIN([pda])
4841   if test "${SYS}" != "mingw32"; then
4842     NEED_GTK2_MAIN=yes
4843     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4844     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4845   fi
4846 fi
4847 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4848
4849 dnl
4850 dnl  wxWidgets module
4851 dnl
4852 AC_ARG_ENABLE(wxwidgets,
4853   [  --enable-wxwidgets      wxWidgets support (default disabled)])
4854
4855 if test "${enable_wxwidgets}" = "yes"
4856 then
4857   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
4858   WXWIDGETS_PATH="${PATH}"
4859   AC_ARG_WITH(wx-config-path,
4860     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4861     [ if test "${with_wx_config_path}" != "no"
4862       then
4863         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4864       fi ])
4865   WXWIDGETS_NAME="wx-config"
4866   AC_ARG_WITH(wx-config,
4867     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4868     [ if test "${with_wx_config}" != "no"
4869       then
4870         WXWIDGETS_NAME="${with_wx_config}"
4871       fi ])
4872   # look for wx-config
4873   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4874   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4875   then
4876     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
4877     then
4878       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
4879     fi
4880     AC_LANG_PUSH(C++)
4881     # Turn this error:
4882     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4883     # into a warning. However better would be to fix playlist.cpp
4884     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4885         [ac_cv_cxx_fpermissive],
4886         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4887          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4888                         ac_cv_cxx_fpermissive=no)])
4889     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
4890       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
4891     fi
4892     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
4893     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
4894     # check if we must link against gtk2 libs
4895     # if __WXGTK20__ && __WXGTK__ are defined
4896     # for modules/gui/wxwidgets/video.cpp
4897     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4898 #include <wx/wx.h>
4899 #ifdef __WXGTK20__
4900 #error ok, we need to link against gtk2
4901 #endif
4902         ])],[WXGTK=no],[WXGTK=yes])
4903     if test "$WXGTK" = "yes"; then
4904       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
4905     fi
4906     if ${WX_CONFIG} --unicode
4907     then 
4908       # wxwidgets should provide the following flags but does not
4909       # the following is required to compile for win32
4910       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
4911     else
4912       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
4913     fi
4914     if test "$have_libcdio" = "yes"
4915     then 
4916       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
4917       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
4918     else 
4919       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
4920     fi
4921
4922     if test "$have_libvcdinfo" = "yes"
4923     then 
4924       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
4925       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
4926     else 
4927       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
4928     fi
4929
4930     # now look for the wxprec.h header
4931     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
4932     ac_cv_wx_headers=yes
4933     AC_CHECK_HEADERS(wx/wxprec.h, , [
4934       ac_cv_wx_headers=no
4935       echo "Cannot find wxWidgets development headers."
4936     ])
4937     if test "${ac_cv_wx_headers}" = "yes"
4938     then
4939       VLC_ADD_PLUGIN([wxwidgets])
4940       AC_DEFINE([HAVE_WX], 1, [Define to 1 if you have WxWidgets library.])
4941       ALIASES="${ALIASES} wxvlc"
4942     fi
4943     CPPFLAGS="${CPPFLAGS_save}"
4944     AC_LANG_POP(C++)
4945   fi
4946   dnl WxWidgets plugin will yield incorrect code without this
4947   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
4948 fi
4949
4950 dnl
4951 dnl QT 4
4952 dnl
4953 enableqt4=false
4954 AC_ARG_ENABLE(qt4,
4955   [  --enable-qt4            QT 4 support (default enabled) ])
4956 AS_IF([test "${enable_qt4}" != "no" &&
4957   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
4958   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
4959     [ VLC_ADD_PLUGIN([qt4])
4960       AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4961       ALIASES="${ALIASES} qvlc"
4962       enableqt4=true
4963       if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"; then
4964           VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4965       else
4966           VLC_ADD_LIBS([qt4],[$QT4_LIBS])
4967       fi
4968       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
4969       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4970       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4971       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4972       ],
4973       AS_IF([test "${enable_qt4}" = "yes"],[
4974         AC_MSG_ERROR(QT4 library not found)
4975       ],[
4976         AC_MSG_WARN(QT4 library not found)
4977       ])
4978     )
4979 ])
4980 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
4981
4982 dnl
4983 dnl  WinCE GUI module
4984 dnl
4985 AC_ARG_ENABLE(wince,
4986   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4987 if test "${enable_wince}" != "no"; then
4988   if test "${SYS}" = "mingwce"; then
4989     VLC_ADD_BUILTINS([wince])
4990     VLC_ADD_CXXFLAGS([wince],[])
4991     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4992     dnl Gross hack
4993     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4994   elif test "${SYS}" = "mingw32"; then
4995     VLC_ADD_CXXFLAGS([wince],[])
4996     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4997     dnl Gross hack
4998     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4999   fi
5000 fi
5001
5002 dnl
5003 dnl Simple test for skins2 dependency
5004 dnl
5005 if test "${enable_skins2}" != "no"
5006 then
5007   if test "${WX_CONFIG}" = "no"
5008   then
5009     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.])
5010   fi
5011 fi
5012
5013 dnl
5014 dnl  Opie QT embedded module
5015 dnl
5016 AC_ARG_ENABLE(opie,
5017   [  --enable-opie           Qt embedded interface support (default disabled)],
5018   [if test "${enable_opie}" = "yes"; then
5019      AC_ARG_WITH(qte,
5020      [    --with-qte=PATH       Qt Embedded headers and libraries])
5021      if test "${with_qte}" != "no" -a -n "${with_qte}"
5022      then
5023        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5024        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])
5025      else
5026        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5027        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5028      fi
5029      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5030      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5031        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5032      ] )
5033      CPPFLAGS="${CPPFLAGS_save}"
5034
5035      VLC_ADD_PLUGIN([opie])
5036      NEED_QTE_MAIN=yes
5037      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5038      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5039      if test "${with_qte}" != "no" -a -n "${with_qte}"
5040      then
5041        MOC=${with_qte}/bin/moc
5042      else
5043        MOC=${QTDIR}/bin/moc
5044      fi
5045    fi])
5046
5047 dnl
5048 dnl  MacOS X video output/gui modules
5049 dnl
5050 AC_ARG_ENABLE(macosx,
5051   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5052 if test "x${enable_macosx}" = "xyes"
5053 then
5054 #  VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5055   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
5056   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5057   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5058   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5059   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5060   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5061   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5062   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5063   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5064   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5065   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5066
5067 #  VLC_ADD_PLUGIN([access_eyetv])
5068   VLC_ADD_PLUGIN([qtcapture])
5069   VLC_ADD_PLUGIN([macosx])
5070   VLC_ADD_PLUGIN([minimal_macosx])
5071  
5072   ORIGCFLAGS=$CFLAGS
5073   CFLAGS="$CFLAGS -x objective-c"
5074   AC_CHECK_HEADER(QuartzCore/CALayer.h, 
5075   [VLC_ADD_PLUGIN([opengllayer])
5076   VLC_ADD_OBJCFLAGS([opengllayer], [-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5])])
5077   CFLAGS=$ORIGCFLAGS
5078 fi
5079
5080 dnl
5081 dnl  QNX RTOS module
5082 dnl
5083 AC_ARG_ENABLE(qnx,
5084   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5085     if test "${enable_qnx}" != "no"
5086     then
5087       AC_CHECK_HEADERS(Ph.h, [
5088         VLC_ADD_PLUGIN([qnx])
5089         VLC_ADD_LIBS([qnx],[-lasound -lph])
5090       ])
5091     fi
5092
5093 dnl
5094 dnl  ncurses module
5095 dnl
5096 AC_ARG_ENABLE(ncurses,
5097   [  --disable-ncurses       ncurses interface support (default enabled)],
5098   [if test "${enable_ncurses}" != "no"; then
5099     AC_CHECK_HEADER(ncurses.h,
5100       [AC_CHECK_LIB(ncursesw, mvprintw,
5101         [VLC_ADD_PLUGIN([ncurses])
5102         VLC_ADD_LIBS([ncurses],[-lncursesw])
5103         ALIASES="${ALIASES} nvlc"
5104         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5105         AC_CHECK_LIB(ncursesw, tgetent, [],
5106           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5107             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5108               [AS_IF([test "x${enable_ncurses}" != "x"],
5109                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5110                )])])
5111             ]
5112           )
5113         )
5114         ],
5115         [AC_CHECK_LIB( ncurses, mvprintw,
5116           [VLC_ADD_PLUGIN([ncurses])
5117           ALIASES="${ALIASES} nvlc"
5118           VLC_ADD_LIBS([ncurses],[-lncurses])
5119           AC_CHECK_LIB(ncurses, tgetent, [],
5120             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5121               [AS_IF([test "x${enable_ncurses}" != "x"],
5122                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5123             )]
5124           )],
5125           [AS_IF([test "x${enable_ncurses}" != "x"], [
5126             AC_MSG_ERROR([libncurses not found])])]
5127         )]
5128       )]
5129     )
5130   fi]
5131 )
5132
5133 dnl
5134 dnl  XOSD plugin
5135 dnl
5136 AC_ARG_ENABLE(xosd,
5137   [  --enable-xosd           xosd interface support (default disabled)])
5138 if test "${enable_xosd}" = "yes"
5139 then
5140   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5141   AC_CHECK_LIB(xosd,xosd_set_offset,
5142       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5143     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5144         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5145       AC_TRY_COMPILE([#include <xosd.h>],
5146          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5147           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5148   if test "${have_xosd}" = "true"
5149   then
5150     VLC_ADD_PLUGIN([xosd])
5151     VLC_ADD_LIBS([xosd],[-lxosd])
5152   fi
5153 fi
5154
5155 dnl
5156 dnl Framebuffer (overlay) plugin
5157 dnl
5158 AC_ARG_ENABLE(fbosd,
5159   [  --enable-fbosd          fbosd interface support (default disabled)])
5160 if test "${enable_fbosd}" = "yes"
5161 then
5162   AC_CHECK_HEADERS(linux/fb.h, [
5163     VLC_ADD_PLUGIN([fbosd])
5164  ])
5165 fi
5166
5167 dnl
5168 dnl Visualisation plugin
5169 dnl
5170 AC_ARG_ENABLE(visual,
5171   [  --enable-visual         visualisation plugin (default enabled)])
5172 if test "${enable_visual}" != "no"
5173 then
5174     VLC_ADD_PLUGIN([visual])
5175 fi
5176
5177 dnl
5178 dnl OpenGL visualisation plugin
5179 dnl
5180 AC_ARG_ENABLE(galaktos,
5181   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5182 if test "${enable_galaktos}" = "yes"
5183 then
5184   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5185     VLC_ADD_PLUGIN([galaktos])
5186     if test "${SYS}" != "mingw32"; then
5187       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5188     else
5189       VLC_ADD_LIBS([galaktos],[-lopengl32])
5190     fi
5191   ])
5192 fi
5193
5194 dnl
5195 dnl  goom visualization plugin
5196 dnl
5197 AC_ARG_ENABLE(goom,
5198 [  --enable-goom           goom visualisation plugin (default disabled)])
5199 if test "${enable_goom}" = "yes"
5200 then
5201   AC_ARG_WITH(goom-tree,
5202     [    --with-goom-tree=PATH goom tree for static linking (required)])
5203
5204   dnl
5205   dnl test for --with-goom-tree
5206   dnl
5207   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5208     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5209     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5210     if test -z "${real_goom_tree}"; then
5211       dnl  The given directory can't be found
5212       AC_MSG_RESULT(no)
5213       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5214     fi
5215     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5216       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5217       VLC_ADD_PLUGIN([goom])
5218       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5219       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5220     else
5221       dnl  The given libgoom2 wasn't built, try to look for the old goom
5222       AC_MSG_RESULT(no)
5223       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5224       if test -f "${real_goom_tree}/libgoom.a"; then
5225         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5226         VLC_ADD_PLUGIN([goom])
5227         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5228         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5229       else
5230         dnl  The given libgoom wasn't built
5231         AC_MSG_RESULT(no)
5232         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5233       fi
5234     fi
5235   else
5236     AC_CHECK_HEADERS(goom/goom.h, [
5237       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5238       AC_CHECK_LIB(goom2, goom_init, [
5239         VLC_ADD_PLUGIN([goom])
5240         VLC_ADD_LIBS([goom],[-lgoom2])
5241       ],[
5242         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5243       ])
5244       LDFLAGS="${LDFLAGS_save}"
5245     ])
5246   fi
5247 fi
5248
5249 dnl
5250 dnl  AtmoLight (homebrew AmbiLight)
5251 dnl
5252 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5253    AC_ARG_ENABLE(atmo,
5254 [  --disable-atmo       AtmoLight (homebrew philips ambilight) (default enabled)])
5255    if test "${enable_atmo}" != "no"; then
5256       AC_LANG_PUSH(C++)
5257       VLC_ADD_PLUGIN([atmo])
5258       AC_LANG_POP(C++)
5259    fi
5260 fi
5261
5262 dnl
5263 dnl  Bonjour services discovery
5264 dnl
5265 AC_ARG_ENABLE(bonjour,
5266   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5267 if test "${enable_bonjour}" != "no"
5268 then
5269   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5270     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5271        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5272       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5273       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5274       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5275       VLC_ADD_PLUGIN([bonjour]) ],
5276     [AC_MSG_WARN(avahi-client library not found)])
5277 fi
5278
5279 dnl
5280 dnl  Lirc plugin
5281 dnl
5282 AC_ARG_ENABLE(lirc,
5283   [  --enable-lirc           lirc support (default disabled)])
5284 if test "${enable_lirc}" = "yes"
5285 then
5286   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5287   if test "${have_lirc}" = "true"
5288   then
5289     VLC_ADD_PLUGIN([lirc])
5290     VLC_ADD_LIBS([lirc],[-llirc_client])
5291   fi
5292 fi
5293
5294
5295 AC_ARG_WITH(,[Misc options:])
5296
5297 dnl
5298 dnl libgcrypt
5299 dnl
5300 AC_ARG_ENABLE(libgcrypt,
5301   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5302
5303 GCRYPT_PATH="${PATH}"
5304 AC_ARG_WITH(libgcrypt-config-path,
5305 [    --with-libgcrypt-config-path=PATH libgcrypt-config path (default search in \$PATH)],
5306    [ if test "${with_libgcrypt_config_path}" != "no"
5307      then
5308        GCRYPT_PATH="${with_libgcrypt_config_path}:${PATH}"
5309      fi ])
5310
5311 if test "${enable_libgcrypt}" != "no"
5312 then
5313   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5314   dnl it and looks for libgcrypt headers in the wrong place.
5315   if test "${host_cpu}" = "${build_cpu}"
5316   then
5317     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5318   else
5319     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5320   fi
5321 fi
5322 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5323 AS_IF([test "${have_libgcrypt}" = "yes"],[
5324         # look for libgcrypt-config
5325         AC_PATH_PROG(GCRYPT_CONFIG, "libgcrypt-config", no, ${GCRYPT_PATH})
5326         GCRYPT_CFLAGS=`${GCRYPT_CONFIG} --cflags`
5327         GCRYPT_LIBS=`${GCRYPT_CONFIG} --libs`
5328 ])
5329
5330 dnl
5331 dnl TLS/SSL
5332 dnl
5333 AC_ARG_ENABLE(gnutls,
5334   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5335
5336 AS_IF([test "${enable_gnutls}" != "no"], [
5337   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5338     VLC_ADD_PLUGIN([gnutls])
5339     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5340     AS_IF([test "${SYS}" = "mingw32"], [
5341       dnl pkg-config --libs gnutls omits these
5342       VLC_ADD_LIBS([gnutls], [-lz])
5343       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5344     ])
5345     AS_IF([test "${have_libgcrypt}" = "yes"],[
5346       VLC_ADD_LIBS([gnutls], ${GCRYPT_LIBS})
5347       VLC_ADD_CFLAGS([gnutls], ${GCRYPT_CFLAGS})
5348     ], [-lgpg-error])
5349     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5350   ], [
5351     AS_IF([test "${enable_gnutls}" = "yes"], [
5352       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5353     ])
5354   ])
5355 ])
5356
5357 dnl
5358 dnl update checking system
5359 dnl
5360 AC_ARG_ENABLE(update-check,
5361   [  --enable-update-check   update checking system (default disabled)])
5362 if test "${enable_update_check}" = "yes"
5363 then
5364   if test "${have_libgcrypt}" != "yes"
5365   then
5366     AC_MSG_ERROR([libgcrypt is required for update checking system])
5367   fi
5368   VLC_ADD_LIBS([libvlc], ${GCRYPT_LIBS})
5369   VLC_ADD_CFLAGS([libvlc], ${GCRYPT_CFLAGS})
5370   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5371 fi
5372
5373 dnl
5374 dnl  Endianness check
5375 dnl
5376 AC_C_BIGENDIAN
5377 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5378   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5379 ], [
5380   DEFS_BIGENDIAN=""
5381 ])
5382 AC_SUBST(DEFS_BIGENDIAN)
5383
5384 dnl
5385 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5386 dnl
5387 loader=false
5388 AC_ARG_ENABLE(loader,
5389   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5390 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5391 AS_IF([test "${enable_loader}" = "yes"],
5392   [ VLC_ADD_PLUGIN([dmo])
5393     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5394     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5395     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5396     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5397     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5398     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5399     VLC_ADD_CPPFLAGS([realvideo],[-I../../@top_srcdir@/libs/loader -DLOADER])
5400     VLC_ADD_LIBS([realvideo],[../../libs/loader/libloader.la])
5401   ])
5402
5403 AC_ARG_WITH(,[Components:])
5404
5405 dnl
5406 dnl  the VLC binary
5407 dnl
5408 AC_ARG_ENABLE(vlc,
5409   [  --enable-vlc            build the VLC media player (default enabled)])
5410 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5411
5412 dnl
5413 dnl  Microsoft ActiveX support
5414 dnl
5415 activex=false
5416 AC_ARG_ENABLE(activex,
5417   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5418 AC_ARG_WITH(wine-sdk-path,
5419   [    --with-wine-sdk-path=PATH path to wine sdk])
5420 if test "${enable_activex}" != "no"
5421 then
5422   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5423   then
5424     AC_CHECK_PROGS(MIDL, [midl], no)
5425     if test "${with_wine_sdk_path}" != ""
5426     then
5427        WINE_SDK_PATH=${with_wine_sdk_path}
5428        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5429     else
5430        WIDL=no
5431     fi
5432     AC_LANG_PUSH(C++)
5433     AC_CHECK_HEADERS(ole2.h, 
5434       [AC_CHECK_HEADERS(olectl.h,
5435         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5436           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5437           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5438           AC_CHECK_HEADERS(objsafe.h,
5439             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5440             [
5441              #if HAVE_OLE2_H
5442              #   include <ole2.h>
5443              #endif
5444              ]
5445           )
5446           activex=:
5447           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5448         ],
5449         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5450       )],
5451       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5452     )
5453     AC_LANG_POP(C++)
5454   fi
5455 fi
5456 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5457 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5458 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5459 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5460 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5461
5462 dnl
5463 dnl  Mozilla plugin
5464 dnl
5465 mozilla=false
5466 AC_ARG_ENABLE(mozilla,
5467   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5468 AC_ARG_WITH(mozilla-sdk-path,
5469   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5470 AC_LANG_PUSH(C++)
5471 if test "${enable_mozilla}" = "yes" 
5472 then
5473   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5474   need_xpcom_libs=false
5475
5476   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5477   then
5478     dnl New firefox-1.5 SDK api
5479     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5480       [
5481         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5482           [],
5483           [
5484             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5485               [],
5486               [
5487                 PKG_CHECK_MODULES([NSPR], [nspr],
5488                   [],
5489                   [
5490                     AC_MSG_ERROR([Please install the nspr development tools.])
5491                   ]
5492                 )
5493               ]
5494             )
5495           ])
5496         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5497         MOZILLA_REQUIRED_HEADERS=1
5498         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5499         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5500         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5501           [#if HAVE_NPAPI_H
5502            # include <npapi.h>
5503            #endif
5504           ])
5505         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5506             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5507         fi
5508         MOZILLA_REQUIRED_HEADERS=
5509         mozilla=:
5510         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5511         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5512             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5513         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5514             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5515         else
5516             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5517         fi
5518         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5519             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5520             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
5521         fi
5522         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5523         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5524         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5525         VLC_ADD_PLUGIN([mozilla])
5526         MOZILLA_CONFIG=
5527         CPPFLAGS="${CPPFLAGS_save}"
5528       ],
5529       [
5530         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5531         if test "${MOZILLA_CONFIG}" = "no"
5532         then
5533           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5534           if test "${SEAMONKEY_CONFIG}" = "no"
5535           then
5536             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5537             if test "${XULRUNNER_CONFIG}" = "no"
5538             then
5539               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5540             else
5541               have_xul=true
5542               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5543             fi
5544           else
5545             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5546           fi
5547         fi
5548       ]
5549     )
5550     if test ! -z "${MOZILLA_CONFIG}"
5551     then
5552       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5553         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5554         AC_CHECK_LIB(Xt,XtStrings,
5555          [
5556            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5557            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5558          ],
5559          [],
5560          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5561         ])
5562         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5563         LDFLAGS="${LDFLAGS_save}"
5564       fi
5565
5566       mozilla=:
5567       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5568       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5569       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5570       if ${need_xpcom_libs}; then
5571          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5572       else
5573          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5574       fi
5575       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5576       MOZILLA_REQUIRED_HEADERS=1
5577       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5578       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5579       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5580         [#if HAVE_NPAPI_H
5581          # include <npapi.h>
5582          #endif
5583         ])
5584       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5585       then
5586         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5587       fi
5588       MOZILLA_REQUIRED_HEADERS=
5589       CPPFLAGS="${CPPFLAGS_save}"
5590       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5591     fi
5592     dnl End of moz_sdk = ""
5593   else
5594     dnl special case for mingw32
5595     if test "${SYS}" = "mingw32"
5596     then
5597       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5598       dnl latest gecko sdk does not have an xpcom directory
5599       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5600           mozilla_sdk_xpcom="/xpcom"
5601       fi
5602     fi
5603
5604     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5605     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5606     MOZILLA_REQUIRED_HEADERS=1
5607     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5608     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5609     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5610         [#if HAVE_NPAPI_H
5611           #include <npapi.h>
5612           #endif
5613         ])
5614     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5615     then
5616         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5617     fi
5618     MOZILLA_REQUIRED_HEADERS=
5619     mozilla=:
5620     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5621     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])
5622     if ${need_xpcom_libs}; then
5623        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])
5624       if test "${SYS}" = "mingw32"; then
5625         dnl latest gecko sdk does not have embedstring
5626         if test -d "${real_mozilla_sdk}/embedstring/bin"
5627         then
5628           VLC_ADD_LIBS([mozilla],[-lembedstring])
5629         fi
5630       fi
5631     fi
5632     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5633
5634     if test -n "${CYGPATH}"; then
5635       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5636     fi
5637     CPPFLAGS="${CPPFLAGS_save}"
5638   fi
5639 fi
5640 AC_LANG_POP(C++)
5641 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5642
5643 dnl Tests for Osso and Xsp
5644 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5645   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5646     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5647     VLC_ADD_LIBS([x11 xvideo xvmc glx],[-losso])
5648  ])
5649 ])
5650 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5651   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5652   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5653 ])
5654
5655 dnl
5656 dnl  test plugins
5657 dnl
5658 AC_ARG_ENABLE(testsuite,
5659   [  --enable-testsuite      build test modules (default disabled)])
5660 if test "${enable_testsuite}" = "yes"
5661 then
5662   TESTS="test1 test2 test3 test4"
5663
5664   dnl  we define those so that bootstrap sets the right linker
5665   VLC_ADD_CXXFLAGS([test2],[])
5666   VLC_ADD_OBJCFLAGS([test3],[])
5667   dnl  this one is needed until automake knows what to do
5668   VLC_ADD_LIBS([test3],[-lobjc])
5669
5670   VLC_ADD_PLUGIN([test1])
5671   VLC_ADD_PLUGIN([test2])
5672   VLC_ADD_PLUGIN([test3])
5673   VLC_ADD_PLUGIN([test4])
5674 fi
5675
5676 dnl
5677 dnl Microsoft Layer for Unicode for WIN9x/ME
5678 dnl
5679 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5680 then
5681     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5682         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5683     ])
5684 fi
5685
5686 dnl
5687 dnl  gtk_main plugin
5688 dnl
5689 if test "${NEED_GTK_MAIN}" != "no"
5690 then
5691     VLC_ADD_PLUGIN([gtk_main])
5692     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5693     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5694 fi
5695
5696 if test "${NEED_GNOME_MAIN}" != "no"
5697 then
5698     VLC_ADD_PLUGIN([gnome_main])
5699     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5700     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5701 fi
5702
5703 if test "${NEED_GTK2_MAIN}" != "no"
5704 then
5705     VLC_ADD_PLUGIN([gtk2_main])
5706     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5707     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5708     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5709     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5710 fi
5711
5712 if test "${NEED_GNOME2_MAIN}" != "no"
5713 then
5714     VLC_ADD_PLUGIN([gnome2_main])
5715     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5716     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5717 fi
5718
5719 dnl
5720 dnl  qte_main plugin
5721 dnl
5722 if test "${NEED_QTE_MAIN}" != "no"
5723 then
5724     VLC_ADD_PLUGIN([qte_main])
5725     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5726     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5727     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5728 fi
5729
5730 dnl
5731 dnl  Plugin and builtin checks
5732 dnl
5733 plugin_support=yes
5734
5735 dnl Automagically disable plugins if there is no system support for
5736 dnl dynamically loadable files (.so, .dll, .dylib).
5737 dnl don't forget vlc-win32 still can load .dll as plugins
5738 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5739   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5740   plugin_support=no
5741 ])
5742
5743 AS_IF([test "${enable_shared}" = "no"], [
5744   plugin_support=no
5745 ])
5746
5747 AS_IF([test "${plugin_support}" != "no"], [
5748   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5749 ])
5750 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5751
5752 dnl Temporary(?) hack for plugins/builtins transition
5753 dnl VLC_ADD_PLUGIN([${BUILTINS}])
5754 dnl BUILTINS=""
5755
5756 dnl
5757 dnl Pic and shared libvlc stuff
5758 dnl
5759 AS_IF([test "${SYS}" = "mingw32"], [
5760   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5761   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5762 ])
5763
5764 dnl
5765 dnl  Stuff used by the program
5766 dnl
5767 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5768 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) ${COPYRIGHT_YEARS} the VideoLAN team", [Copyright string])
5769 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5770 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5771 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5772 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5773 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5774 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5775 AC_SUBST(VERSION_MAJOR)
5776 AC_SUBST(VERSION_MINOR)
5777 AC_SUBST(VERSION_REVISION)
5778 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5779 if test "${build_os}" = "cygwin"
5780 then
5781     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5782 else
5783     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5784 fi
5785 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5786 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5787
5788 dnl
5789 dnl  Handle substvars that use $(top_srcdir)
5790 dnl
5791 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5792 AC_SUBST(VLC_CONFIG)
5793 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
5794
5795 dnl
5796 dnl  Restore *FLAGS
5797 dnl
5798 VLC_RESTORE_FLAGS
5799
5800 dnl
5801 dnl  Create the vlc-config script
5802 dnl
5803 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5804
5805 dnl
5806 dnl  Configuration is finished
5807 dnl
5808 AC_SUBST(SYS)
5809 AC_SUBST(ARCH)
5810 AC_SUBST(ALIASES)
5811 AC_SUBST(ASM)
5812 AC_SUBST(MOC)
5813 AC_SUBST(RCC)
5814 AC_SUBST(UIC)
5815 AC_SUBST(WINDRES)
5816 AC_SUBST(MOZILLA_SDK_PATH)
5817 AC_SUBST(WINE_SDK_PATH)
5818 AC_SUBST(LIBEXT)
5819 AC_SUBST(AM_CPPFLAGS)
5820 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5821 AC_SUBST(FILE_LIBVLCCORE_DLL)
5822 AC_SUBST(FILE_LIBVLC_DLL)
5823
5824 dnl Create vlc-config.in
5825 VLC_OUTPUT_VLC_CONFIG_IN
5826
5827 AC_CONFIG_FILES([
5828   extras/package/win32/vlc.win32.nsi
5829   Makefile
5830   projects/activex/Makefile
5831   projects/activex/axvlc.inf
5832   doc/Makefile
5833   extras/package/ipkg/Makefile
5834   libs/loader/Makefile
5835   libs/srtp/Makefile
5836   modules/Makefile
5837   projects/mozilla/Makefile
5838   m4/Makefile
5839   po/Makefile.in
5840   share/Makefile
5841   src/Makefile
5842   test/Makefile
5843 ])
5844
5845 AC_CONFIG_FILES([
5846   modules/access/Makefile
5847   modules/access/bda/Makefile
5848   modules/access/dshow/Makefile
5849   modules/access/dvb/Makefile
5850   modules/access/mms/Makefile
5851   modules/access/cdda/Makefile
5852   modules/access/rtsp/Makefile
5853   modules/access/rtmp/Makefile
5854   modules/access/v4l2/Makefile
5855   modules/access/vcd/Makefile
5856   modules/access/vcdx/Makefile
5857   modules/access/screen/Makefile
5858   modules/access_filter/Makefile
5859   modules/access_output/Makefile
5860   modules/audio_filter/Makefile
5861   modules/audio_filter/channel_mixer/Makefile
5862   modules/audio_filter/converter/Makefile
5863   modules/audio_filter/resampler/Makefile
5864   modules/audio_filter/spatializer/Makefile
5865   modules/audio_mixer/Makefile
5866   modules/audio_output/Makefile
5867   modules/codec/Makefile
5868   modules/codec/cmml/Makefile
5869   modules/codec/dmo/Makefile
5870   modules/codec/ffmpeg/Makefile
5871   modules/codec/subtitles/Makefile
5872   modules/codec/spudec/Makefile
5873   modules/codec/xvmc/Makefile
5874   modules/control/Makefile
5875   modules/control/http/Makefile
5876   modules/demux/Makefile
5877   modules/demux/asf/Makefile
5878   modules/demux/avi/Makefile
5879   modules/demux/mp4/Makefile
5880   modules/demux/mpeg/Makefile
5881   modules/demux/playlist/Makefile
5882   modules/gui/Makefile
5883   modules/gui/beos/Makefile
5884   modules/gui/pda/Makefile
5885   modules/gui/macosx/Makefile
5886   modules/gui/minimal_macosx/Makefile
5887   modules/gui/qnx/Makefile
5888   modules/gui/qt4/Makefile
5889   modules/gui/skins2/Makefile
5890   modules/gui/wxwidgets/Makefile
5891   modules/gui/wince/Makefile
5892   modules/meta_engine/Makefile
5893   modules/misc/Makefile
5894   modules/misc/dummy/Makefile
5895   modules/misc/lua/Makefile
5896   modules/misc/memcpy/Makefile
5897   modules/misc/notify/Makefile
5898   modules/misc/testsuite/Makefile
5899   modules/misc/playlist/Makefile
5900   modules/misc/osd/Makefile
5901   modules/misc/xml/Makefile
5902   modules/misc/probe/Makefile
5903   modules/mux/Makefile
5904   modules/mux/mpeg/Makefile
5905   modules/mux/rtp/Makefile
5906   modules/packetizer/Makefile
5907   modules/services_discovery/Makefile
5908   modules/stream_out/Makefile
5909   modules/stream_out/transrate/Makefile
5910   modules/video_chroma/Makefile
5911   modules/video_filter/Makefile
5912   modules/video_filter/atmo/Makefile
5913   modules/video_filter/dynamicoverlay/Makefile
5914   modules/video_output/Makefile
5915   modules/video_output/msw/Makefile
5916   modules/video_output/qte/Makefile
5917   modules/video_output/x11/Makefile
5918   modules/visualization/Makefile
5919   modules/visualization/visual/Makefile
5920   modules/visualization/galaktos/Makefile
5921 ])
5922
5923 dnl Generate makefiles
5924 AC_OUTPUT
5925
5926 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5927 # not provided with the source
5928 ${SHELL} ./config.status --file=vlc-config
5929 chmod 0755 vlc-config
5930
5931 /bin/echo -n "Enabled modules :"
5932 ./vlc-config --list plugin
5933
5934 dnl Shortcut to nice compile message
5935 rm -f compile
5936 echo '#! /bin/sh' >compile
5937 echo rm -f .error\$\$ >>compile
5938 echo ERROR=0 >>compile
5939 echo export PATH=$PATH LANG=C >>compile
5940 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5941 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5942 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5943 echo rm -f .error\$\$ >>compile
5944 echo exit \$ERROR >>compile
5945 chmod a+x compile
5946
5947 printf "
5948 libvlc configuration
5949 --------------------
5950 version               : ${VERSION}
5951 system                : ${SYS}
5952 architecture          : ${ARCH}
5953 build flavour         : "
5954 test "${enable_debug}" = "yes" && printf "debug "
5955 test "${enable_cprof}" = "yes" && printf "cprof "
5956 test "${enable_gprof}" = "yes" && printf "gprof "
5957 test "${enable_optimizations}" = "yes" && printf "optim "
5958 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5959 echo ""
5960 if test "${enable_vlc}" != "no"; then
5961 echo "vlc aliases           :${ALIASES}"
5962 else
5963 echo "build vlc executable  : no"
5964 fi
5965 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5966
5967 You can tune the compiler flags in vlc-config.
5968 To build vlc and its plugins, type \`./compile' or \`make'.
5969 "
5970 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5971    echo ""
5972    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5973    echo "         turned off."
5974    echo "         FFmpeg will be REALLY slow."
5975    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5976    echo ""
5977 fi