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