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