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