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