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