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