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