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