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