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