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