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