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