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