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