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