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