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