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