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