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