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