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