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