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