Ambiguity between std::log(double) and std::log(float)
[vlc/solaris.git] / configure.ac
bloba51cdcb30ff7d58c39e9ea50e1e06ffa41060f89
1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2010 the VideoLAN team])
5 AC_INIT(vlc, 1.1.0-rc4)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="1"
8 VERSION_REVISION="0"
9 VERSION_EXTRA="-rc4"
10 PKGDIR="vlc"
11 AC_SUBST(PKGDIR)
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="The Luggage"
15 COPYRIGHT_YEARS="1996-2010"
17 AC_PREREQ(2.59c)
18 AC_CONFIG_SRCDIR(src/libvlc.c)
19 AC_CONFIG_AUX_DIR(autotools)
20 AC_CONFIG_MACRO_DIR(m4)
21 AC_CONFIG_LIBOBJ_DIR(compat)
22 AC_CANONICAL_BUILD
23 AC_CANONICAL_HOST
24 AC_PRESERVE_HELP_ORDER
26 AM_INIT_AUTOMAKE(tar-ustar)
27 AM_CONFIG_HEADER(config.h)
29 # Disable with "./configure --disable-silent-rules" or "make V=1"
30 m4_ifdef([AM_SILENT_RULES], [
31   AM_SILENT_RULES([yes])
32 ], [
33   AM_DEFAULT_VERBOSITY=1
34   AC_SUBST(AM_DEFAULT_VERBOSITY)
38 dnl Too many people are not aware of maintainer mode:
39 dnl If you want to use it, you definitely know what you are doing, so
40 dnl you can specify "--disable-maintainer-mode". But if you want the default
41 dnl automake behavior, you've likely never heard of maintainer mode, so we
42 dnl can't expect you to enable it manually.
44 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
45     [enable_maintainer_mode="yes"])
46 AM_MAINTAINER_MODE
48 dnl
49 dnl Directories
50 dnl
51 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
52 dnl AC_SUBST(vlcincludedir)
53 vlcdatadir="\${datadir}/\${PKGDIR}"
54 AC_SUBST(vlcdatadir)
55 vlclibdir="\${libdir}/\${PKGDIR}"
56 AC_SUBST(vlclibdir)
58 dnl
59 dnl  Save *FLAGS
60 dnl
61 VLC_SAVE_FLAGS
63 dnl
64 dnl Check for tools
65 dnl
66 AC_PROG_CC_C99
67 AC_USE_SYSTEM_EXTENSIONS
68 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
70 AM_PROG_CC_C_O
71 AC_PROG_CXX
72 AC_PROG_CPP
73 AC_PROG_OBJC
74 _AM_DEPENDENCIES([OBJC])
75 AC_PROG_EGREP
76 AC_PROG_MAKE_SET
77 AC_PROG_INSTALL
78 AM_PROG_AS
80 dnl Find the right ranlib, even when cross-compiling
81 AC_CHECK_TOOL(RANLIB, ranlib, :)
82 AC_CHECK_TOOL(STRIP, strip, :)
83 AC_CHECK_TOOL(AR, ar, :)
84 AC_CHECK_TOOL(LD, ld, :)
85 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
87 dnl Check for compiler properties
88 AC_C_CONST
89 AC_C_INLINE
90 AC_C_RESTRICT
92 dnl Extend the --help string at the current spot.
93 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
95 dnl Allow binary package maintainer to pass a custom string to avoid
96 dnl cache problem
97 AC_ARG_WITH(binary-version,
98         AS_HELP_STRING([--with-binary-version=STRING],
99              [To avoid plugins cache problem between binary version]),[],[])
100 AS_IF([test -n "${with_binary_version}"],[
101       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
102                          [Binary specific version])
103       ])
107 dnl  Check for the contrib directory
109 AC_ARG_WITH(contrib,
110     [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
111 AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
112 AS_IF([test "${with_contrib}" != "no"],[
113   AS_IF([test -z "$CONTRIB_DIR"], [
114       topdir="`dirname $0`"
115       if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
116          topdir="`pwd`/$topdir"
117       fi
118       CONTRIB_DIR="${topdir}/extras/contrib/hosts/${host}"
119       if ! test -d "$CONTRIB_DIR"
120       then
121         gccmachine=`$CC -dumpmachine`
122         CONTRIB_DIR="${topdir}/extras/contrib/hosts/${gccmachine}"
123       fi
124   ])
125   AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
126   AS_IF([test -d "${CONTRIB_DIR}/lib"],[
127     AC_MSG_RESULT([yes])
128     AC_SUBST(CONTRIB_DIR)
129     export PATH=${CONTRIB_DIR}/bin:$PATH
130     CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
131     CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
132     CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
133     CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
134     CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
135     CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
136     OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
137     OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
138     if test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"; then
139         export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
140     else
141         export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
142     fi
143     LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
144     LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
146     if test -z "$with_mozilla_sdk_path"; then
147        with_mozilla_sdk_path="${CONTRIB_DIR}/gecko-sdk"
148     fi
149     if test -z "$with_cyberlink_tree"; then
150        with_cyberlink_tree="${CONTRIB_DIR}/src/clinkcc"
151     fi
153     if test "${SYS}" = "darwin"; then
154       export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
155       export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
156     elif test "${SYS}" = "beos"; then
157       export LIBRARY_PATH="${CONTRIB_DIR}/lib:$LIBRARY_PATH"
158       export BELIBRARIES="${CONTRIB_DIR}/lib:$BELIBRARIES"
159     fi
160   ],[
161     AC_MSG_RESULT([no])
162     CONTRIB_DIR=""
163   ])
166 dnl  Set default values
168 LDFLAGS_vlc="${LDFLAGS}"
171 dnl  Check the operating system
173 case "${host_os}" in
174   "")
175     SYS=unknown
176     ;;
177   linux*)
178     SYS=linux
179     ;;
180   bsdi*)
181     SYS=bsdi
182     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
183     VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
184     ;;
185   *bsd*)
186     SYS="${host_os}"
187     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
188     case "${host_os}" in
189       freebsd*)
190         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
191         CPPFLAGS="${CPPFLAGS_save}"
192         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
193         LDFLAGS="${LDFLAGS_save}"
194         ;;
195       openbsd*)
196         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include -I/usr/X11R6/include"
197         CPPFLAGS="${CPPFLAGS_save}"
198         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib -L/usr/X11R6/lib/"
199         LDFLAGS="${LDFLAGS_save}"
200         ;;
201     esac
202     ;;
203   darwin*)
205     dnl Force gcc "-arch" flag
206     ARCH_flag=""
207     case "${host}" in
208       i386*)
209         ARCH_flag="-arch i386"
210       ;;
211       ppc64*)
212         ARCH_flag="-arch ppc64"
213       ;;
214       ppc*)
215         ARCH_flag="-arch ppc"
216       ;;
217       x86_64*)
218         ARCH_flag="-arch x86_64"
219       ;;
220     esac
222     SYS=darwin
223     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CFLAGS="${CFLAGS_save}"
224     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CXXFLAGS="${CXXFLAGS_save}"
225     CPPFLAGS_save="${CPPFLAGS_save} ${ARCH_flag}"; CPPFLAGS="${CPPFLAGS_save}"
226     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"; OBJCFLAGS="${OBJCFLAGS_save}"
227     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names ${ARCH_flag}"; LDFLAGS="${LDFLAGS_save}"
228     VLC_ADD_LDFLAGS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
229     VLC_ADD_LDFLAGS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
230     VLC_ADD_LDFLAGS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
231     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
232     VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
233     AC_ARG_ENABLE(macosx-defaults,
234       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
235     if test "x${enable_macosx_defaults}" != "xno"
236     then
237         echo ""
238         echo "Building with Mac OS X defaults:"
239         with_macosx_version_min="10.5"
240         echo "  Assuming --with-macosx-version-min=10.5"
241         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
242         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
243         build_dir=`pwd`
244         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
245         ac_default_prefix="${build_dir}/vlc_install_dir"
246         enable_macosx="yes"
247         echo "  Assuming --enable-macosx"
248         enable_faad="yes"
249         echo "  Assuming --enable-faad"
250         enable_flac="yes"
251         echo "  Assuming --enable-flac"
252         enable_theora="yes"
253         echo "  Assuming --enable-theora"
254         enable_shout="yes"
255         echo "  Assuming --enable-shout"
256         enable_vcdx="yes"
257         echo "  Assuming --enable-vcdx"
258         enable_caca="yes"
259         echo "  Assuming --enable-caca"
260         enable_ncurses="yes"
261         echo "  Assuming --enable-ncurses"
262         enable_twolame="yes"
263         echo "  Assuming --enable-twolame"
264         enable_realrtsp="yes"
265         echo "  Assuming --enable-realrtsp"
266         enable_libass="yes"
267         echo "  Assuming --enable-libass"
268         enable_asademux="yes"
269         echo "  Assuming --enable-asademux"
271         enable_skins2="no"
272         echo "  Assuming --disable-skins2"
273         enable_xcb="no"
274         echo "  Assuming --disable-xcb"
275     fi
276     dnl
277     dnl  Check for Mac OS X SDK settings
278     dnl
279     AC_ARG_WITH(macosx-sdk,
280        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
281     if test "${with_macosx_sdk}" != "" ; then
282         CPP="${CPP} -isysroot ${with_macosx_sdk}"
283         CC="${CC} -isysroot ${with_macosx_sdk}"
284         CXX="${CXX} -isysroot ${with_macosx_sdk}"
285         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
286         LD="${LD} -syslibroot ${with_macosx_sdk}"
287     fi
288     AC_ARG_WITH(macosx-version-min,
289        [  --with-macosx-version-min=VERSION compile for MacOSX VERSION and above])
290     if test "${with_macosx_version_min}" != "" ; then
291         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
292         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
293         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
294         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
295         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
296         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
297         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
298         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
299         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
300         export MACOSX_DEPLOYMENT_TARGET
301     fi
302     ;;
303   *mingw32* | *cygwin* | *wince* | *mingwce*)
304     AC_CHECK_TOOL(WINDRES, windres, :)
305     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
307     case "${host_os}" in
308       *wince* | *mingwce* | *mingw32ce*)
309         SYS=mingwce
310         dnl Sadly CeGCC still needs non-wince macros
311         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
312         ;;
313       *mingw32*)
314         SYS=mingw32
315         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
316         ;;
317       *cygwin*)
318         dnl Check if we are using the mno-cygwin mode in which case we are
319         dnl actually dealing with a mingw32 compiler.
320         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
321         AC_EGREP_CPP(yes,
322             [#ifdef WIN32
323              yes
324              #endif],
325             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
326         ;;
327     esac
329     if test "${SYS}" = "mingw32"; then
330         # add ws2_32 for closesocket, select, recv
331         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
332         VLC_ADD_LDFLAGS([vlc],[-mwindows])
333         VLC_ADD_LIBS([activex mozilla win32text],[-lgdi32])
334         VLC_ADD_LIBS([cdda vcdx sdl_image aout_sdl vout_sdl],[-lwinmm])
335         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 slp oldhttp stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp oldtelnet oldrc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi audiobargraph_a netsync],[-lws2_32])
336         VLC_ADD_LIBS([filesystem], [-lshlwapi])
337         dnl
338         dnl DEP and ASLR options
339         dnl
340         AC_ARG_ENABLE(peflags,
341           [  --enable-peflags        peflags use (default enabled on Windows)])
342         if test "${enable_peflags}" != "no"
343         then
344           AC_CHECK_TOOL(PEFLAGS, peflags, :)
345         fi
346         AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
347     fi
348     if test "${SYS}" = "mingwce"; then
349         # add ws2 for closesocket, select, recv
350         VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap oldhttp netsync audioscrobbler growl rtp stream_out_rtp remoteosd ts oldtelnet audiobargraph_a netsync],[-lws2])
351         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
352         AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
353    fi
354     ;;
355   *nto*)
356     SYS=nto
357     ;;
358   solaris*)
359     SYS=solaris
360     ;;
361   hpux*)
362     SYS=hpux
363     ;;
364   beos)
365     SYS=beos
366     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
367     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
368     VLC_ADD_CXXFLAGS([beos],[])
369     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
370     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
371     VLC_ADD_LIBS([filesystem],[-lpoll])
372     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
373     dnl Check for BONE
374     if test -f /boot/beos/system/lib/libbind.so; then
375         VLC_ADD_LIBS([filesystem access_ftp access_mms access_output_udp oldtelnet netsync sap libvlccore growl_udp],[-lbind -lsocket])
376     else
377         VLC_ADD_LIBS([filesystem access_ftp access_mms access_output_udp oldtelnet netsync sap libvlccore growl_udp],[-lnet])
378     fi
379     ;;
380   *)
381     SYS="${host_os}"
382     ;;
383 esac
384 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
385 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
386 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
387 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
388 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
389 AM_CONDITIONAL(USE_PEFLAGS, [test "${enable_peflags}" = "yes"])
392 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
393 dnl for program foo on win32
395 case "${build_os}" in
396     cygwin|msys)
397         ac_executable_extensions=".exe"
398     ;;
399     *)
400     ;;
401 esac
404 dnl  Libtool
405 dnl  It's very bad, but our former custom system was worst
406 dnl  -- Courmisch
409 dnl override platform specific check for dependent libraries
410 dnl otherwise libtool linking of shared libraries will
411 dnl fail on anything other than pass_all.
412 AC_CACHE_VAL(lt_cv_deplibs_check_method,
413     [lt_cv_deplibs_check_method=pass_all])
415 AC_DISABLE_STATIC
416 dnl AC_DISABLE_FAST_INSTALL
417 AC_LIBTOOL_DLOPEN
418 AC_LIBTOOL_WIN32_DLL
419 m4_undefine([AC_PROG_F77])
420 m4_defun([AC_PROG_F77],[])
421 AC_PROG_LIBTOOL
423 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
424 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
426 lt_cv_deplibs_check_method=pass_all
428 AS_IF([test "${enable_shared}" = "no"], [
429   AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
433 dnl Gettext stuff
435 AM_GNU_GETTEXT_VERSION([0.17])
436 AM_GNU_GETTEXT([external])
437 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
440 dnl Iconv stuff
442 AM_ICONV
443 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
444 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
446 dnl Check for broken versions of mingw-runtime compatability library
447 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
448     AC_MSG_CHECKING(for broken mingw-runtime)
449     AC_PREPROC_IFELSE([
450 #include <_mingw.h>
451 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
452 # error Attempting to use mingw-runtime with broken vsnprintf support
453 #endif
454 ], [
455         AC_MSG_RESULT([ok])
456 ], [
457         AC_MSG_RESULT([present])
458         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
460     dnl force use of mingw provided c99 *printf over msvcrt
461     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
462     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
465 dnl Check for the need to include the mingwex lib for mingw32
466 if test "${SYS}" = "mingw32"
467 then
468     AC_CHECK_LIB(mingwex,opendir,
469         AC_CHECK_LIB(mingw32,opendir,,
470             [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
471     )
474 dnl Check for fnative-struct or mms-bitfields support for mingw32
475 if test "${SYS}" = "mingw32"
476 then
477     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
478         [ac_cv_c_mms_bitfields],
479         [CFLAGS="${CFLAGS_save} -mms-bitfields"
480          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
481     if test "${ac_cv_c_mms_bitfields}" != "no"; then
482         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
483         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
484     else
485         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
486             [ac_cv_c_fnative_struct],
487             [CFLAGS="${CFLAGS_save} -fnative-struct"
488              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
489         if test "${ac_cv_c_fnative_struct}" != "no"; then
490             CFLAGS_save="${CFLAGS_save} -fnative-struct";
491             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
492         fi
493     fi
495     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
498 dnl Check for fvtable-thunks support for mingw32
499 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
500 then
501 AC_LANG_PUSH(C++)
502     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
503         [ac_cv_cxx_fvtable_thunks],
504         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
505          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
506                         ac_cv_cxx_fvtable_thunks=no)])
507     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
508         CXXFLAGS_mingw32_special="-fvtable-thunks"
509     fi
511     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
512 AC_LANG_POP(C++)
516 dnl Buggy glibc prevention. Purposedly not cached.
517 dnl See sourceware.org bugs 5058 and 5443.
518 dnl Ubuntu alone has 20 bug numbers for this...
520 AC_MSG_CHECKING(for buggy GNU/libc versions)
521 AC_PREPROC_IFELSE([
522 #include <limits.h>
523 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
524   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
525 # error GNU/libc with dcgettext killer bug!
526 #endif
527 ], [
528   AC_MSG_RESULT([not present])
529 ], [
530   AC_MSG_RESULT([found])
531   AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
532     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
533 work-around for this. Check with your distribution vendor on how to update the
534 glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
535 be sure to not use LibVLC from other applications/wrappers.])
536   ], [
537     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
538   ])
541 dnl Plugin compilation stuff
543 VLC_LIBRARY_SUFFIX
545 dnl The -DSYS_FOO flag
546 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
548 dnl Check for system libs needed
549 need_libc=false
551 dnl Check for usual libc functions
552 AC_CHECK_FUNCS([ctime_r daemon fcntl fdopendir fork getenv getpwuid_r gettimeofday isatty lstat memalign openat posix_fadvise posix_madvise posix_memalign setenv setlocale stricmp strnicmp tdestroy uselocale])
553 AC_REPLACE_FUNCS([asprintf atof atoll getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab vasprintf])
554 AC_CHECK_FUNCS(fdatasync,,
555   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
558 dnl Check for non-standard system calls
559 AC_CHECK_FUNCS([accept4 dup3 eventfd fstatfs vmsplice])
561 AH_BOTTOM([#include <vlc_fixups.h>])
563 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
565 SOCKET_LIBS=""
566 AC_CHECK_FUNCS(connect,,[
567   AC_CHECK_LIB(socket,connect,[
568     VLC_ADD_LIBS([libvlccore cdda],-lsocket)
569     SOCKET_LIBS="-lsocket"
570   ])
572 AC_SUBST(SOCKET_LIBS)
574 AC_CHECK_FUNCS(send,,[
575   AC_CHECK_LIB(socket,send,[
576     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])
577   ])
581 dnl Check for socklen_t
582 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
583 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
584 ac_cv_type_socklen_t,
585 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
586 [#include <sys/types.h>
587 #ifdef WIN32
588 # include <winsock2.h>
589 # include <ws2tcpip.h>
590 #else
591 # include <sys/socket.h>
592 #endif]], [[socklen_t len; len = 0;]])],
593 ac_cv_type_socklen_t=yes,
594 ac_cv_type_socklen_t=no)])
595 AS_IF([test "$ac_cv_type_socklen_t" = no],
596  [AC_DEFINE(socklen_t, int)])
598 dnl Check for struct sockaddr_storage
599 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
600 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
601 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
602   [AC_TRY_COMPILE(
603     [#include <sys/types.h>
604      #if defined( UNDER_CE )
605      # include <winsock2.h>
606      #elif defined( WIN32 )
607      # include <winsock2.h>
608      #else
609      # include <sys/socket.h>
610      #endif], [struct sockaddr_storage addr;],
611      ac_cv_struct_sockaddr_storage=yes,
612      ac_cv_struct_sockaddr_storage=no)])
613 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
614   AC_DEFINE(sockaddr_storage, sockaddr)
615   AC_DEFINE(ss_family, sa_family)
618 dnl getaddrinfo, getnameinfo and gai_strerror check
619 dnl  -lnsl and -lsocket are needed on Solaris;
620 dnl  we purposedly make the test fail on Windows
621 LIBS_save="${LIBS}"
622 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
623 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${SOCKET_LIBS}])
625 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
626 dnl are
627 LIBS="${LIBS_gai}"
628 AC_CHECK_FUNCS([getnameinfo gai_strerror])
629 LIBS="${LIBS_save}"
631 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
632 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
633 [#include <sys/types.h>
634 #if defined( WIN32 ) || defined( UNDER_CE )
635 # if defined(UNDER_CE) && defined(sockaddr_storage)
636 #  undef sockaddr_storage
637 # endif
638 # include <winsock2.h>
639 # include <ws2tcpip.h>
640 #else
641 # include <netdb.h>
642 #endif])
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.])
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.])
664 AC_CHECK_FUNCS(inet_aton,,[
665   AC_CHECK_LIB(resolv,inet_aton,[
666     VLC_ADD_LIBS([libvlccore],[-lresolv])
667   ])
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   ])
677 AC_SUBST(GNUGETOPT_LIBS)
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],[-lm])
683 AC_CHECK_LIB(m,pow,[
684   VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc ffmpegaltivec i420_rgb faad twolame equalizer spatializer param_eq libvlccore freetype mod mpc dmo quicktime realvideo opengl],[-lm])
686 AC_CHECK_LIB(m,sqrt,[
687   VLC_ADD_LIBS([headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm])
689 AC_CHECK_LIB(m,ceil,[
690   VLC_ADD_LIBS([access_imem hotkeys mosaic swscale_omap],[-lm])
692 AC_CHECK_LIB(m,exp,[
693   VLC_ADD_LIBS([gaussianblur],[-lm])
695 AC_CHECK_LIB(m,round,[
696   VLC_ADD_LIBS([dbus],[-lm])
698 AC_CHECK_LIB(m,sqrtf,[
699   VLC_ADD_LIBS([x264],[-lm])
701 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
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])
708 dnl Check for dynamic plugins
709 ac_cv_have_plugins=no
711 # HP-UX style
712 if test "${ac_cv_have_plugins}" = "no"; then
713   AC_CHECK_HEADERS(dl.h)
714   ac_cv_my_have_shl_load=no
715   AC_CHECK_FUNC(shl_load,
716    [ac_cv_my_have_shl_load=yes,
717     AC_CHECK_LIB(dld, shl_load,
718      [ac_cv_my_have_shl_load=yes
719       VLC_ADD_LIBS([libvlccore],[-ldld])])])
720   if test "${ac_cv_my_have_shl_load}" = "yes"; then
721     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
722     ac_cv_have_plugins=yes
723   fi
726 # Win32 style
727 if test "${ac_cv_have_plugins}" = "no"; then
728   if test "${SYS}" = "mingw32" ; then
729     AC_CHECK_LIB(kernel32, main,
730      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
731       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
732       ac_cv_have_plugins=yes])
733   fi
736 # WinCE style
737 if test "${ac_cv_have_plugins}" = "no"; then
738   if test "${SYS}" = "mingwce"; then
739     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
740     ac_cv_have_plugins=yes
741   fi
744 # BeOS style
745 if test "${ac_cv_have_plugins}" = "no"; then
746   AC_CHECK_HEADERS(image.h)
747   AC_CHECK_FUNCS(load_add_on,
748    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
749     ac_cv_have_plugins=yes])
752 # Only test for dlopen() if the others didn't work
753 LIBDL=""
754 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
755   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
756   ac_cv_my_have_dlopen=no
757   AC_CHECK_FUNC(dlopen, [
758     ac_cv_my_have_dlopen=yes
759   ], [
760     AC_CHECK_LIB(dl, dlopen, [
761       ac_cv_my_have_dlopen=yes
762       LIBDL="-ldl"
763     ], [
764       AC_CHECK_LIB(svld, dlopen, [
765         ac_cv_my_have_dlopen=yes
766         LIBDL="-lsvld"
767       ])
768     ])
769   ])
770   if test "${ac_cv_my_have_dlopen}" = "yes"; then
771     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
772     ac_cv_have_plugins=yes
773     VLC_ADD_LIBS([libvlccore realvideo lua],[$LIBDL])
774   fi
776 AC_SUBST(LIBDL)
778 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
779 dnl Check for pthreads - borrowed from XMMS
780 THREAD_LIB=error
781 if test "${THREAD_LIB}" = "error"; then
782   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
784 if test "${THREAD_LIB}" = "error"; then
785   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
787 if test "${THREAD_LIB}" = "error"; then
788   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
790 if test "${THREAD_LIB}" = "error"; then
791   AC_CHECK_FUNCS(pthread_mutex_lock)
792   THREAD_LIB=""
795 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
797 AC_CHECK_LIB(rt, clock_nanosleep, [
798   VLC_ADD_LIBS([libvlccore],[-lrt])
799   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
800 ], [
801   dnl HP/UX port
802   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
805 have_nanosleep=false
806 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
807   AC_CHECK_LIB(rt,nanosleep,
808     [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
809     [AC_CHECK_LIB(posix4,nanosleep,
810         [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
811   )
813 if ${have_nanosleep}; then
814   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
816 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
818 dnl Check for misc headers
819 AC_MSG_CHECKING(for strncasecmp in strings.h)
820 AC_EGREP_HEADER(strncasecmp,strings.h,[
821   AC_MSG_RESULT(yes)
822   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
823             Define if <strings.h> defines strncasecmp.)],[
824   AC_MSG_RESULT(no)])
826 dnl Check for headers
827 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
828 AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h sys/mount.h)
829 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
830 AC_CHECK_HEADERS([net/if.h], [], [],
831   [
832     #include <sys/types.h>
833     #include <sys/socket.h>
834   ])
835 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
836 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
837 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
838 AC_CHECK_HEADERS(syslog.h)
839 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
841 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
842 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
843 AC_CHECK_TYPE(ssize_t,, [
844   AC_DEFINE(ssize_t, int)
847 dnl Check for poll
848 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
849 if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
850 then
851     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])
855 dnl Check for dirent
856 need_dirent=false
857 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
858 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
860 dnl Mac OS X and other OSes don't have declaration for nanosleep
861 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
862 AC_MSG_CHECKING(for nanosleep in time.h)
863 AC_EGREP_HEADER(nanosleep,time.h,[
864   AC_MSG_RESULT(yes)
865   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
866             Define if <time.h> defines nanosleep.)
868   AC_MSG_RESULT(no)
870 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
872 dnl Make sure we have timespecs
873 AC_MSG_CHECKING(for timespec in sys/time.h)
874 AC_EGREP_HEADER(timespec,sys/time.h,[
875   AC_MSG_RESULT(yes)
876   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
877             Define if <sys/time.h> defines struct timespec.)
879   AC_MSG_RESULT(no)
882 dnl Check for threads library
883 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
884 AC_CHECK_HEADERS(pthread.h)
885 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
887 dnl It seems that autoconf detects pkg-config only during the first
888 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
889 dnl it is nested within a conditional block, so it was not working right.
890 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
891 AC_ARG_VAR(PKG_CONFIG_PATH,
892            [Paths where to find .pc not at the default location])
893 PKG_PROG_PKG_CONFIG()
895 dnl On some OS we need static linking 
896        AS_IF([test -n "${PKG_CONFIG}" ],[
897               AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" ],[
898                   PKG_CONFIG="${PKG_CONFIG} --static"
899               ])
900        ])
904 dnl Check for zlib.h and -lz along with system -lminizip if available
905 dnl 
906 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
907 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
908 if test "${have_zlib}" = "yes"
909 then
910   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
911   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
912     AC_CHECK_HEADERS([unzip.h], [ 
913       have_minizip=yes
914       MINIZIP_LIBS="-lminizip -lz"
915     ], [
916       have_minizip=no
917       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
918       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
919     ])
920   ])
921   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
922   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
923   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
924   VLC_ADD_PLUGIN([unzip zip])
926 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
929 dnl Check for dbus
930 AC_ARG_ENABLE(dbus,
931   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
932 case "${SYS}" in
933     linux*|*bsd*)
934 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
935 then
936   dnl api stable dbus
937   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
938     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
939       VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
940       VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
941       dnl Check for dbus control interface
942         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
943         if test "${enable_dbus_control}" != "no"
944         then
945           VLC_ADD_PLUGIN([dbus])
946           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
947           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
948         fi
949       dnl Check for Telepathy
950         AC_ARG_ENABLE(telepathy,
951           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
952         if test "${enable_telepathy}" != "no"; then
953           VLC_ADD_PLUGIN([telepathy])
954           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
955           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
956         fi
957         dnl Power Management Inhibiter
958         VLC_ADD_PLUGIN([inhibit])
959         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
960         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
961     ],
962     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
963   )
966 esac
968 dnl Check for ntohl, etc.
969 AC_CACHE_CHECK([for ntohl in sys/param.h],
970     [ac_cv_c_ntohl_sys_param_h],
971     [CFLAGS="${CFLAGS_save} -Wall -Werror"
972      AC_TRY_COMPILE([#include <sys/param.h>],
973         [int meuh; ntohl(meuh);],
974         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
975 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
976     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
978 CFLAGS="${CFLAGS_save}"
980 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])
981 RDC_PROG_CC_FLAGS([-pipe])
983 dnl Check for various optimization flags
984 AC_CACHE_CHECK([if \$CC accepts -Os],
985     [ac_cv_c_os],
986     [CFLAGS="${CFLAGS_save} -Os"
987      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
988 if test "${ac_cv_c_os}" != "no"; then
989     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
990 else
991     AC_CACHE_CHECK([if \$CC accepts -O],
992         [ac_cv_c_o],
993         [CFLAGS="${CFLAGS_save} -O"
994          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
995     if test "${ac_cv_c_o}" != "no"; then
996         if test "${ac_cv_c_o3}" = "no"; then
997             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
998         fi
999     fi
1002 AC_CACHE_CHECK([if \$CC accepts -O4],
1003     [ac_cv_c_o4],
1004     [CFLAGS="${CFLAGS_save} -O4"
1005      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1006 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1007     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1008 else
1009     AC_CACHE_CHECK([if \$CC accepts -O3],
1010         [ac_cv_c_o3],
1011         [CFLAGS="${CFLAGS_save} -O3"
1012          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1013     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1014         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1015     else
1016         AC_CACHE_CHECK([if \$CC accepts -O2],
1017             [ac_cv_c_o2],
1018             [CFLAGS="${CFLAGS_save} -O2"
1019              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1020         if test "${ac_cv_c_o2}" != "no"; then
1021             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1022         else
1023             AC_CACHE_CHECK([if \$CC accepts -O],
1024                 [ac_cv_c_o],
1025                 [CFLAGS="${CFLAGS_save} -O"
1026                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1027             if test "${ac_cv_c_o}" != "no"; then
1028                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1029             fi
1030         fi
1031     fi
1034 AC_CACHE_CHECK([if \$CC accepts -O0],
1035     [ac_cv_c_o0],
1036     [CFLAGS="${CFLAGS_save} -O0"
1037      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1038 if test "${ac_cv_c_o0}" != "no"; then
1039     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1042 dnl Check for -ffast-math
1043 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1044     [ac_cv_c_fast_math],
1045     [CFLAGS="${CFLAGS_save} -ffast-math"
1046      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1047 if test "${ac_cv_c_fast_math}" != "no"; then
1048     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1051 dnl Check for -funroll-loops
1052 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1053 if test "${SYS}" != "beos"
1054 then
1055   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1056       [ac_cv_c_unroll_loops],
1057       [CFLAGS="${CFLAGS_save} -funroll-loops"
1058        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1059   if test "${ac_cv_c_unroll_loops}" != "no"; then
1060       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1061   fi
1064 dnl Check for -fomit-frame-pointer
1065 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1066     [ac_cv_c_omit_frame_pointer],
1067     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1068      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1069 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1070  if test "${SYS}" != "darwin"; then
1071     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1072  else
1073     dnl On darwin we explicitely disable it.
1074     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1075  fi
1078 dnl Check for Darwin plugin linking flags
1079 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1080     [ac_cv_ld_darwin],
1081     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1082      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1083 if test "${ac_cv_ld_darwin}" != "no"; then
1084     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1087 dnl Checks for __attribute__(aligned()) directive
1088 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1089     [ac_cv_c_attribute_aligned],
1090     [ac_cv_c_attribute_aligned=0
1091         CFLAGS="${CFLAGS_save} -Werror"
1092     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1093         AC_TRY_COMPILE([],
1094         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1095         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1096     done
1097         CFLAGS="${CFLAGS_save}"])
1098 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1099     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1100         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1103 dnl Check for __attribute__((packed))
1104 AC_CACHE_CHECK([for __attribute__((packed))],
1105   [ac_cv_c_attribute_packed],
1106   [ac_cv_c_attribute_packed=no
1107    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1108                     [ac_cv_c_attribute_packed=yes])])
1109 if test "${ac_cv_c_attribute_packed}" != "no"; then
1110   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1114 dnl  Check the CPU
1116 case "${host_cpu}" in
1117   "")
1118     ARCH=unknown
1119     ;;
1120   *)
1121     ARCH="${host_cpu}"
1122     ;;
1123 esac
1125 dnl Check for backtrace() support
1126 AC_CHECK_HEADERS(execinfo.h)
1127 AC_CHECK_FUNCS(backtrace)
1130 dnl  Enable profiling
1132 AC_ARG_ENABLE(gprof,
1133 [  --enable-gprof          gprof profiling (default disabled)])
1134 AC_ARG_ENABLE(cprof,
1135 [  --enable-cprof          cprof profiling (default disabled)])
1136 test "${enable_gprof}" != "yes" && enable_gprof="no"
1137 test "${enable_cprof}" != "yes" && enable_cprof="no"
1140 dnl  default modules
1142 ALIASES="${ALIASES} cvlc rvlc"
1145 dnl Some plugins aren't useful on some platforms
1147 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1148     VLC_ADD_PLUGIN([dynamicoverlay])
1149 elif test "${SYS}" != "mingwce"; then
1150     VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1151     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1153 if test "${SYS}" = "darwin"; then
1154     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
1158 dnl  Accelerated modules
1160 EXTEND_HELP_STRING([Optimization options:])
1162 dnl  Check for fully working MMX intrinsics
1163 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1164 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1165 AC_ARG_ENABLE(mmx,
1166 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1167   case "${host_cpu}" in
1168     i?86|x86_64)
1169       enable_mmx="yes"
1170       ;;
1171     *)
1172       enable_mmx="no"
1173       ;;
1174   esac
1176 have_mmx="no"
1177 have_mmxext="no"
1178 AS_IF([test "${enable_mmx}" != "no"], [
1179   ARCH="${ARCH} mmx"
1181   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1182     [ac_cv_c_mmx_intrinsics],
1183     [CFLAGS="${CFLAGS_save} -O -mmmx"
1184      AC_TRY_COMPILE([#include <mmintrin.h>
1185                      #include <stdint.h>
1186                      uint64_t frobzor;],
1187                     [__m64 a, b, c;
1188                      a = b = c = (__m64)frobzor;
1189                      a = _mm_slli_pi16(a, 3);
1190                      a = _mm_adds_pi16(a, b);
1191                      c = _mm_srli_pi16(c, 8);
1192                      c = _mm_slli_pi16(c, 3);
1193                      b = _mm_adds_pi16(b, c);
1194                      a = _mm_unpacklo_pi8(a, b);
1195                      frobzor = (uint64_t)a;],
1196                     [ac_cv_c_mmx_intrinsics=yes],
1197                     [ac_cv_c_mmx_intrinsics=no])])
1198   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1199     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1200               [Define to 1 if MMX intrinsics are available.])
1201     MMX_CFLAGS="-mmmx"
1202   ])
1204   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1205     [ac_cv_mmx_inline],
1206     [CFLAGS="${CFLAGS_save}"
1207      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1208                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1209   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1210     AC_DEFINE(CAN_COMPILE_MMX, 1,
1211               [Define to 1 inline MMX assembly is available.])
1212     have_mmx="yes"
1213   ])
1215   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1216     [ac_cv_mmxext_inline],
1217     [CFLAGS="${CFLAGS_save}"
1218      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1219                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1220   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1221     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1222               [Define to 1 if MMX EXT inline assembly is available.])
1223     have_mmxext="yes"
1224   ])
1226 AC_SUBST(MMX_CFLAGS)
1227 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1228 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1230 dnl  Check for fully workin SSE2 intrinsics
1231 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1232 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1233 AC_ARG_ENABLE(sse,
1234 [  --disable-sse           disable SSE (1, 2, 3 and 4) optimizations (default auto)],
1235 , [
1236   case "${host_cpu}" in
1237     i686|x86_64)
1238       enable_sse=yes
1239       ;;
1240     *)
1241       enable_sse=no
1242       ;;
1243   esac
1245 have_sse2="no"
1246 AS_IF([test "${enable_sse}" != "no"], [
1247   ARCH="${ARCH} sse sse2"
1249   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1250     [ac_cv_c_sse2_intrinsics],
1251     [CFLAGS="${CFLAGS_save} -O -msse2"
1252      AC_TRY_COMPILE([#include <emmintrin.h>
1253                      #include <stdint.h>
1254                      uint64_t frobzor;],
1255                     [__m128i a, b, c;
1256                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1257                      a = _mm_slli_epi16(a, 3);
1258                      a = _mm_adds_epi16(a, b);
1259                      c = _mm_srli_epi16(c, 8);
1260                      c = _mm_slli_epi16(c, 3);
1261                      b = _mm_adds_epi16(b, c);
1262                      a = _mm_unpacklo_epi8(a, b);
1263                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1264                     [ac_cv_c_sse2_intrinsics=yes],
1265                     [ac_cv_c_sse2_intrinsics=no])])
1266   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1267     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1268               [Define to 1 if SSE2 intrinsics are available.])
1269     SSE2_CFLAGS="-msse2"
1270   ])
1272   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1273     [ac_cv_sse_inline],
1274     [CFLAGS="${CFLAGS_save}"
1275      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1276                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1277   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1278     AC_DEFINE(CAN_COMPILE_SSE, 1,
1279               [Define to 1 if SSE inline assembly is available.])
1280   ])
1282   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1283     [ac_cv_sse2_inline],
1284     [CFLAGS="${CFLAGS_save}"
1285      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1286                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1287   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1288     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1289               [Define to 1 if SSE2 inline assembly is available.])
1290     have_sse2="yes"
1291   ])
1293   # SSE3
1294   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly],
1295     [ac_cv_sse3_inline],
1296     [CFLAGS="${CFLAGS_save}"
1297      AC_TRY_COMPILE(,[void *p;asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p));],
1298                     ac_cv_sse3_inline=yes, ac_cv_sse3_inline=no)])
1299   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1300     AC_DEFINE(CAN_COMPILE_SSE3, 1,
1301               [Define to 1 if SSE3 inline assembly is available.]) ])
1302   # SSSE3
1303   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly],
1304     [ac_cv_ssse3_inline],
1305     [CFLAGS="${CFLAGS_save}"
1306      AC_TRY_COMPILE(,[void *p;asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p));],
1307                     ac_cv_ssse3_inline=yes, ac_cv_ssse3_inline=no)])
1308   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1309     AC_DEFINE(CAN_COMPILE_SSSE3, 1,
1310               [Define to 1 if SSSE3 inline assembly is available.]) ])
1312   # SSE4.1
1313   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1314     [ac_cv_sse4_1_inline],
1315     [CFLAGS="${CFLAGS_save}"
1316      AC_TRY_COMPILE(,[void *p;asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p));],
1317                     ac_cv_sse4_1_inline=yes, ac_cv_sse4_1_inline=no)])
1318   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1319     AC_DEFINE(CAN_COMPILE_SSE4_1, 1,
1320               [Define to 1 if SSE4_1 inline assembly is available.]) ])
1322   # SSE4.2
1323   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1324     [ac_cv_sse4_2_inline],
1325     [CFLAGS="${CFLAGS_save}"
1326      AC_TRY_COMPILE(,[void *p;asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p));],
1327                     ac_cv_sse4_2_inline=yes, ac_cv_sse4_2_inline=no)])
1328   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1329     AC_DEFINE(CAN_COMPILE_SSE4_2, 1,
1330               [Define to 1 if SSE4_2 inline assembly is available.]) ])
1332   # SSE4A
1333   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly],
1334     [ac_cv_sse4a_inline],
1335     [CFLAGS="${CFLAGS_save}"
1336      AC_TRY_COMPILE(,[void *p;asm volatile("insertq %%xmm1,%%xmm0"::"r"(p));],
1337                     ac_cv_sse4a_inline=yes, ac_cv_sse4a_inline=no)])
1338   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1339     AC_DEFINE(CAN_COMPILE_SSE4A, 1,
1340               [Define to 1 if SSE4A inline assembly is available.]) ])
1342 AC_SUBST(SSE2_CFLAGS)
1343 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1345 have_3dnow="no"
1346 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1347     [ac_cv_3dnow_inline],
1348     [CFLAGS="${CFLAGS_save}"
1349      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1350                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1351 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1352   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1353             [Define to 1 if 3D Now! inline assembly is available.])
1354   have_3dnow="yes"
1356 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1359 AC_ARG_ENABLE(neon,
1360 [  --disable-neon          disable NEON optimizations (default auto)],, [
1361   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1363 AS_IF([test "${enable_neon}" != "no"], [
1364   AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1365     CFLAGS="${CFLAGS_save} -mfpu=neon"
1366     AC_COMPILE_IFELSE([
1367       AC_LANG_PROGRAM(,[[asm volatile("vqmovun.s64 d0, q1":::"d0");]])
1368     ], [
1369       ac_cv_neon_inline="-mfpu=neon"
1370     ], [
1371       ac_cv_neon_inline="no"
1372     ])
1373     CFLAGS="${CFLAGS_save}"
1374   ])
1375   ARM_NEON_CFLAGS="$ac_cv_neon_inline"
1376 ], [
1377   ac_cv_neon_inline="no"
1379 AC_SUBST(ARM_NEON_CFLAGS)
1380 AM_CONDITIONAL(HAVE_ARM_NEON, [test "${ac_cv_neon_inline}" != "no"])
1383 AC_ARG_ENABLE(altivec,
1384 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1385   AS_IF([test "${host_cpu}" = "powerpc"],
1386         [enable_altivec=yes], [enable_altivec=no])
1388 have_altivec="no"
1389 AS_IF([test "${enable_altivec}" = "yes"], [
1390   ARCH="${ARCH} altivec";
1391   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1392     [ac_cv_altivec_inline],
1393     [CFLAGS="${CFLAGS_save}"
1394      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1395          ac_cv_altivec_inline="yes",
1396          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1397           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1398             [ac_cv_altivec_inline="-Wa,-m7400"],
1399             ac_cv_altivec_inline=no)
1400          ])])
1401   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1402     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1403               [Define to 1 if AltiVec inline assembly is available.])
1404     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1405       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1406       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1407       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1408       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1409       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1410     ])
1411     have_altivec="yes"
1412   ])
1414 dnl The AltiVec C extensions
1416 dnl There are several possible cases:
1417 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1418 dnl                      need <altivec.h>
1419 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1420 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1421 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1422 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1423 dnl - Others: test should fail
1424   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1425   [ac_cv_c_altivec],
1426   [# OS X/PPC test (gcc 4.x)
1427    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1428    AC_TRY_COMPILE([vector unsigned char foo;],
1429      [vec_ld(0, (unsigned char *)0);],
1430      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1431      [# OS X/PPC test (gcc 3.x)
1432       CFLAGS="${CFLAGS_save} -faltivec"
1433       AC_TRY_COMPILE([vector unsigned char foo;],
1434         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1435         [ac_cv_c_altivec="-faltivec"],
1436         dnl Below this are the Linux tests
1437         [# Linux/PPC test (gcc 4.x)
1438          CFLAGS="${CFLAGS_save} -maltivec"
1439          AC_TRY_COMPILE([#include <altivec.h>],
1440            [vec_ld(0, (unsigned char *)0);],
1441            [ac_cv_c_altivec="-maltivec"],
1442            [# Linux/PPC test (gcc 3.3)
1443             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1444             AC_TRY_COMPILE([#include <altivec.h>],
1445               [vec_ld(0, (unsigned char *)0);],
1446               [ac_cv_c_altivec=""
1447                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1448               [# Linux/PPC test (gcc 3.3)
1449                CFLAGS="${CFLAGS_save} -fvec"
1450                AC_TRY_COMPILE([#include <altivec.h>],
1451                  [vec_ld(0, (unsigned char *)0);],
1452                  [ac_cv_c_altivec="-fvec"],
1453                  [ac_cv_c_altivec=no])
1454               ])
1455            ])
1456         ])
1457      ])
1458    CFLAGS="${CFLAGS_save}"
1459   ])
1460   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1461     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1462   ])
1464   AC_CHECK_HEADERS(altivec.h)
1465   CPPFLAGS="${CPPFLAGS_save}"
1467   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1468     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1469               [Define to 1 if C AltiVec extensions are available.])
1470     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1471     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1472     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1473     have_altivec="yes"
1474   ])
1476   AC_CACHE_CHECK([if linker needs -framework vecLib],
1477     [ac_cv_ld_altivec],
1478     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1479      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1480      LDFLAGS="${LDFLAGS_save}"
1481     ])
1482   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1483     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1484   ])
1486 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1489 dnl  Special arch tuning
1491 AC_ARG_WITH(tuning,
1492 [  --with-tuning=ARCH      enable special tuning for an architecture
1493                           (default Pentium 2 on IA-32 and G4 on PPC)])
1494 if test -n "${with_tuning}"; then
1495     if test "${with_tuning}" != "no"; then
1496         CFLAGS_TUNING="-mtune=${with_tuning}"
1497     fi
1498 else
1499     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1500         CFLAGS_TUNING="-march=prescott -mtune=generic"
1501     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1502         CFLAGS_TUNING="-mtune=pentium2"
1503     elif test "${host_cpu}" = "x86_64"; then
1504         CFLAGS_TUNING="-mtune=athlon64"
1505     elif test "${host_cpu}" = "powerpc"; then
1506         CFLAGS_TUNING="-mtune=G4";
1507     fi
1510 dnl NOTE: this can't be cached cleanly
1511 AS_IF([test "${CFLAGS_TUNING}"],
1512    [CFLAGS_save="${CFLAGS}"
1513     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1515     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1516     AC_COMPILE_IFELSE([ ],
1517                       [tuning="yes"],
1518                       [CFLAGS_TUNING=""; tuning="no"
1519                        AS_IF([test "${with_tuning}"],
1520                              [AC_MSG_ERROR([requested tuning not supported])])])
1522     AC_MSG_RESULT([$tuning])
1523     CFLAGS="${CFLAGS_save}"
1527 dnl  Memory usage
1529 AC_ARG_ENABLE(optimize-memory,
1530 [  --enable-optimize-memory optimize memory usage over performance])
1531 if test "${enable_optimize_memory}" = "yes"; then
1532   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1536 dnl  Enable/disable optimizations
1538 AC_ARG_ENABLE(optimizations,
1539 [  --disable-optimizations disable compiler optimizations (default enabled)])
1540 if test "${enable_optimizations}" != "no"; then
1541    if test "${enable_optimize_memory}" = "yes"; then
1542       enable_optimizations="size"
1543    else
1544       enable_optimizations="speed"
1545    fi
1549 dnl  Debugging mode
1551 AC_ARG_ENABLE(debug,
1552 [  --enable-debug          debug mode (default disabled)])
1553 test "${enable_debug}" != "yes" && enable_debug="no"
1554 AH_TEMPLATE(NDEBUG,
1555             [Define to 1 if debug code should NOT be compiled])
1556 AS_IF([test "x${enable_debug}" = "xno"], [
1557   AC_DEFINE(NDEBUG)
1558 ], [
1559   AC_CHECK_HEADERS([valgrind/valgrind.h])
1563 dnl Allow runing as root (useful for people runing on embedded platforms)
1565 AC_ARG_ENABLE(run-as-root,
1566 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1567 AS_IF([test "${enable_run_as_root}" = "yes"],[
1568     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1569               [Define to 1 to allow runing VLC as root (uid 0).])
1573 dnl  Test coverage
1575 AC_ARG_ENABLE(coverage,
1576         [  --enable-coverage       build for test coverage (default disabled)],,
1577         [enable_coverage="no"])
1578 AS_IF([test "${enable_coverage}" != "no"], [
1579         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1580         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1581         LDFLAGS="-lgcov ${LDFLAGS}"
1582         dnl ugly...
1583         CFLAGS_save="${CFLAGS}"
1584         CXXFLAGS_save="${CXXFLAGS}"
1585         LDFLAGS_save="${LDFLAGS}"
1589 dnl Stream output
1591 AC_ARG_ENABLE(sout,
1592   [  --enable-sout           Stream output modules (default enabled)])
1593 AS_IF([test "${enable_sout}" != "no"], [
1594   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1596 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1598 dnl Lua modules
1599 AC_ARG_ENABLE(lua,
1600   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1601                   plugins (default enabled)]))
1602 if test "${enable_lua}" != "no"
1603 then
1604   PKG_CHECK_MODULES(LUA, lua5.1,
1605     [ have_lua=yes ],
1606     [
1607     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1608     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1609       [ have_lua=yes ],
1610       [
1611         have_lua=yes
1612         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1613           [],
1614           [ have_lua=no ] )
1615         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1616           [LUA_LIBS="-llua5.1"],
1617           AC_CHECK_LIB( lua51 , luaL_newstate,
1618             [LUA_LIBS="-llua51"],
1619             AC_CHECK_LIB( lua , luaL_newstate,
1620               [LUA_LIBS="-llua"],
1621               [ have_lua=no
1622               ], [-lm])
1623           )
1624         )
1625       ])
1626     ])
1627   if test "x${have_lua}" = "xyes" ;  then
1628      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1629      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1630   else
1631       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.])
1632   fi
1633   AC_ARG_VAR([LUAC], [LUA byte compiler])
1634   AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1635   AS_IF([test "${ac_cv_path_LUAC}" = "false"], [
1636     AC_MSG_ERROR([Could not find the LUA byte compiler.])
1637   ])
1639 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1642 dnl HTTP daemon
1644 AC_ARG_ENABLE(httpd,
1645   [  --enable-httpd          HTTP daemon (default enabled)])
1646 if test "${enable_httpd}" != "no"
1647 then
1648   VLC_ADD_PLUGIN([oldhttp])
1649   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1651 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1654 dnl libproxy support
1656 AC_ARG_ENABLE(libproxy,
1657   [  --enable-libproxy       libproxy support (default auto)])
1658 AS_IF([test "${enable_libproxy}" != "no"], [
1659   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1660     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1661     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1662     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1663   ], [
1664     AS_IF([test "x${enable_libproxy}" != "x"], [
1665       AC_MSG_ERROR([libproxy could not be found on your system])
1666     ])
1667   ])
1672 dnl VideoLAN manager
1674 AC_ARG_ENABLE(vlm,
1675   [  --enable-vlm            VideoLAN manager (default enabled)],,
1676   [enable_vlm="${enable_sout}"])
1677 AS_IF([test "${enable_vlm}" != "no"], [
1678   AS_IF([test "${enable_sout}" = "no"], [
1679     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1680   ])
1681   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1682   VLC_ADD_PLUGIN([oldtelnet])
1684 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1687 dnl Growl notification plugin
1689 AC_ARG_ENABLE(growl,
1690   [  --enable-growl          growl notification plugin (default disabled)],,
1691   [enable_growl=no])
1692 AS_IF([test "${enable_growl}" != "no"], [
1693     VLC_ADD_PLUGIN([growl_udp])
1694     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1695       VLC_ADD_PLUGIN([growl])
1696       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1697       VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
1698     ])
1699   ]
1703 dnl Libnotify notification plugin
1705 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1708 dnl Taglibplugin
1710 AC_ARG_ENABLE(taglib,
1711   [  --disable-taglib        Taglib support (default enabled) ])
1712   AS_IF([test "${enable_taglib}" != "no"],[
1713     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1714       [ VLC_ADD_PLUGIN([taglib])
1715         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1716        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1717       [AC_MSG_WARN(TagLib library not found)])
1718   ])
1721 dnl  Input plugins
1724 EXTEND_HELP_STRING([Input plugins:])
1726 dnl  live555 input
1728 AC_ARG_ENABLE(live555,
1729 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1730 if test "${enable_live555}" != "no"; then
1731   AC_ARG_WITH(live555-tree,
1732     [  --with-live555-tree=PATH live.com tree for static linking])
1734   dnl
1735   dnl test for --with-live555-tree
1736   dnl
1737   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1738     AC_LANG_PUSH(C++)
1739     CPPFLAGS_save="${CPPFLAGS}"
1740     if test -z "${CONTRIB_DIR}"; then
1741         CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1742     else
1743         CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1744     fi
1745     if test "${SYS}" = "solaris"; then
1746       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1747     fi
1748     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1750     AC_CHECK_HEADERS(liveMedia_version.hh, [
1751       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1752       AC_EGREP_CPP(yes,
1753         [#include <liveMedia_version.hh>
1754          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1755          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1756          yes
1757          #endif
1758          #endif],
1759         [AC_MSG_RESULT([no])
1760          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1761 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1762       ],[
1763          AC_MSG_RESULT([yes])
1764          ])
1765     ])
1766      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1767      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1768       if test "${SYS}" = "mingw32"; then
1769         # add ws2_32 for closesocket, select, recv
1770         other_libs="$other_libs -lws2_32"
1771       elif test "${SYS}" = "mingwce"; then
1772         # add ws2 for closesocket, select, recv
1773         other_libs="$other_libs -lws2"
1774       fi
1775     dnl We need to check for pic because live555 don't provide shared libs
1776     dnl and we want to build a plugins so we need -fPIC on some arch.
1777     AC_CHECK_HEADERS(liveMedia.hh, [
1778       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1779         AC_CHECK_LIB(liveMedia_pic, main, [
1780           VLC_ADD_PLUGIN([live555])
1781          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1782          ],[
1783         AC_CHECK_LIB(liveMedia, main, [
1784           VLC_ADD_PLUGIN([live555])
1785           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1786         ],[],[${other_libs}]) ],[${other_libs_pic}])
1787     ],[
1788        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1789     ])
1790     CPPFLAGS="${CPPFLAGS_save}"
1791     AC_LANG_POP(C++)
1792   else
1793     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1794     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1795     if test -z "${real_live555_tree}"; then
1796       dnl  The given directory can't be found
1797       AC_MSG_RESULT(no)
1798       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1799     fi
1800     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1801       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1803       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1804         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1805         AC_EGREP_CPP(yes,
1806           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1807            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1808            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1809            yes
1810            #endif
1811            #endif],
1812           [AC_MSG_RESULT([no])
1813            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1814 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1815         ],[
1816            AC_MSG_RESULT([yes])
1817            ])
1818       ])
1820       VLC_ADD_PLUGIN([live555])
1822       if test "${SYS}" = "mingw32"; then
1823         # add ws2_32 for closesocket, select, recv
1824         VLC_ADD_LIBS([live555],[-lws2_32])
1825       fi
1827       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1828       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1829       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1830       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1832       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1833       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1834       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1835       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1836       if test "${SYS}" = "solaris"; then
1837         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1838       fi
1839     else
1840       dnl  The given live555 wasn't built
1841         AC_MSG_RESULT(no)
1842       if test "${enable_live555}" = "yes"; then
1843         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1844       fi        
1845     fi
1846   fi
1850 dnl - special access module for dc1394 input
1851 dnl - dv module: digital video module check for libraw1394
1853 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
1854 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1857 dnl dvdread module: check for libdvdread
1859 AC_ARG_ENABLE(dvdread,
1860 [  --enable-dvdread        dvdread input module (default enabled)])
1861 if test "${enable_dvdread}" != "no"
1862 then
1863   AC_ARG_WITH(dvdread,
1864   [  --with-dvdread=PATH     libdvdread headers and libraries])
1865   AC_ARG_WITH(dvdread-tree,
1866   [  --with-dvdread-tree=PATH libdvdread tree for static linking])
1868   dnl prepend -ldvdcss on OS that need it
1869   AS_CASE(["${SYS}"], [mingw32|darwin|beos], [VLC_ADD_LIBS([dvdread], [-ldvdcss])])
1871   if test -z "${with_dvdread}"
1872   then
1873     if test -z "${with_dvdread_tree}"
1874     then
1875       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1876         [ VLC_ADD_PLUGIN([dvdread])
1877           VLC_ADD_LIBS([dvdread],[-ldvdread])
1878         ],[
1879           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
1880             [ VLC_ADD_PLUGIN([dvdread])
1881               VLC_ADD_LIBS([dvdread],[-ldvdread])
1882             ],[
1883               if test -n "${enable_dvdread}"
1884               then
1885               AC_MSG_ERROR([cannot find libdvdread headers])
1886              fi
1887            ])
1888         ])
1889     else
1890       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1891       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1892       if test -z "${real_dvdread_tree}"
1893       then
1894         dnl  The given directory can't be found
1895         AC_MSG_RESULT(no)
1896         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1897       fi
1898       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1899       then
1900         dnl  Use a custom libdvdread
1901         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1902         VLC_ADD_PLUGIN([dvdread])
1903         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread])
1904         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1905       else
1906         dnl  The given libdvdread wasn't built
1907         AC_MSG_RESULT(no)
1908         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1909       fi
1910     fi
1911   else
1912     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1913     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1914     then
1915       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1916       AC_MSG_RESULT(yes)
1917       VLC_ADD_PLUGIN([dvdread])
1918       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread])
1919       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1920     else
1921       dnl  No libdvdread could be found, sorry
1922       AC_MSG_RESULT(no)
1923       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1924     fi
1925   fi
1927   dnl append -ldvd on OS that need it
1928   AS_CASE(["${SYS}"], [bsdi], [VLC_ADD_LIBS([dvdread], [-ldvd])])
1932 dnl  libdvdnav plugin
1934 AC_ARG_ENABLE(dvdnav,
1935   [  --enable-dvdnav         dvdnav input module (default enabled)])
1936 if test "${enable_dvdnav}" != "no"
1937 then
1938   dnl prepend -ldvdcss on OS that need it
1939   AS_CASE(["${SYS}"], [mingw32|darwin|beos], [VLC_ADD_LIBS([dvdnav], [-ldvdcss])])
1941   DVDNAV_PATH="${PATH}"
1942   AC_ARG_WITH(dvdnav-config-path,
1943     [  --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1944     [ if test "${with_dvdnav_config_path}" != "no"
1945       then
1946         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1947       fi ])
1948   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1949   if test "${DVDNAV_CONFIG}" != "no"
1950   then
1951     VLC_ADD_PLUGIN([dvdnav])
1952     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1953     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1954     AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1955                 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1956                 [], [${LIBS_dvdnav}])
1957   fi
1961 dnl  Windows DirectShow access module
1963 AC_ARG_ENABLE(dshow,
1964   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1965 if test "${enable_dshow}" != "no"
1966 then
1967   if test "${SYS}" = "mingw32"
1968   then
1969     AC_LANG_PUSH(C++)
1970       AC_CHECK_HEADERS(dshow.h,
1971       [ VLC_ADD_PLUGIN([dshow])
1972         VLC_ADD_CXXFLAGS([dshow],[])
1973         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
1974     AC_LANG_POP(C++)
1975   fi
1979 dnl  Windows DirectShow BDA access module
1981 AC_ARG_ENABLE(bda,
1982   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
1983                   enabled on Win32)]))
1984 if test "${enable_bda}" != "no"
1985 then
1986   if test "${SYS}" = "mingw32"
1987   then
1988       AC_CHECK_HEADERS(dshow.h,
1989       [ VLC_ADD_PLUGIN([bda])
1990         VLC_ADD_CXXFLAGS([bda],[])
1991         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
1992   fi
1997 dnl  OpenCV wrapper and example filters
1999 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv], (OpenCV (computer vision) filter), [off])
2003 dnl  libsmbclient plugin
2005 AC_ARG_ENABLE(smb,
2006   [  --enable-smb            smb input module (default enabled)])
2007 if test "${enable_smb}" != "no"; then
2008   AC_CHECK_HEADERS(libsmbclient.h,
2009     [ VLC_ADD_PLUGIN([access_smb])
2010       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2011     [ if test -n "${enable_smb}"; then
2012         AC_MSG_ERROR([cannot find libsmbclient headers])
2013      fi ])
2018 dnl sftp access support
2020 AC_ARG_ENABLE(sftp,
2021   [  --enable-sftp           sftp input access module (default disable)])
2022 if test "${enable_sftp}" = "yes"; then
2023   AC_CHECK_HEADERS(libssh2.h, [
2024     VLC_ADD_PLUGIN([access_sftp])
2025     VLC_ADD_LIBS([access_sftp], [-lssh2])
2026   ])
2030 dnl  libdvbpsi ts demux/mux
2032 AC_ARG_ENABLE(dvbpsi,
2033   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2034 have_dvbpsi=no
2035 if test "${enable_dvbpsi}" != "no"
2036 then
2037   AC_ARG_WITH(dvbpsi,
2038   [  --with-dvbpsi=PATH      libdvbpsi headers and libraries])
2039   AC_ARG_WITH(dvbpsi,
2040   [  --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2041   case "${with_dvbpsi}" in
2042   ""|yes)
2043     if test -z "${with_dvbpsi_tree}"
2044     then
2045       AC_CHECK_HEADERS(dvbpsi/dr.h,
2046         [ VLC_ADD_PLUGIN([ts])
2047           if test "${enable_sout}" != "no"; then
2048             VLC_ADD_PLUGIN([mux_ts])
2049           fi
2050           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2051           have_dvbpsi=yes],
2052         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2053         [#if defined( HAVE_STDINT_H )
2054 #   include <stdint.h>
2055 #elif defined( HAVE_INTTYPES_H )
2056 #   include <inttypes.h>
2057 #endif
2058 #include <dvbpsi/dvbpsi.h>
2059 #include <dvbpsi/descriptor.h>
2060 #include <dvbpsi/pat.h>
2061 #include <dvbpsi/pmt.h>])
2062     else
2063       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2064       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2065       if test -z "${real_dvbpsi_tree}"
2066       then
2067         dnl  The given directory can't be found
2068         AC_MSG_RESULT(no)
2069         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2070       fi
2071       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2072       then
2073         dnl  Use a custom libdvbpsi
2074         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2075         VLC_ADD_PLUGIN([ts])
2076         if test "${enable_sout}" != "no"; then
2077           VLC_ADD_PLUGIN([mux_ts])
2078         fi
2079         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2080         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2081         have_dvbpsi=yes
2082       else
2083         dnl  The given libdvbpsi wasn't built
2084         AC_MSG_RESULT(no)
2085         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2086       fi
2087     fi
2088   ;;
2089   no)
2090     dnl  Compile without dvbpsi
2091   ;;
2092   *)
2093     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2094     if test -z "${with_dvbpsi}"
2095     then
2096       LDFLAGS_test=""
2097       CPPFLAGS_test=""
2098     else
2099       LDFLAGS_test="-L${with_dvbpsi}/lib"
2100       CPPFLAGS_test="-I${with_dvbpsi}/include"
2101     fi
2102     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2103     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2104       VLC_ADD_PLUGIN([ts])
2105       if test "${enable_sout}" != "no"; then
2106         AC_CHECK_LIB(dvbpsi, dvbpsi_SDTServiceAddDescriptor,
2107            [VLC_ADD_PLUGIN([mux_ts])], [], [${LDFLAGS_test} -ldvbpsi])
2108       fi
2109       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2110       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2111       have_dvbpsi=yes
2112     ],[
2113       if test -n "${enable_dvbpsi}"
2114       then
2115         AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.6])
2116       fi
2117     ],
2118     [#if defined( HAVE_STDINT_H )
2119 #   include <stdint.h>
2120 #elif defined( HAVE_INTTYPES_H )
2121 #   include <inttypes.h>
2122 #endif
2123 #include <dvbpsi/dvbpsi.h>
2124 #include <dvbpsi/descriptor.h>
2125 #include <dvbpsi/pat.h>
2126 #include <dvbpsi/pmt.h>])
2127     CPPFLAGS="${CPPFLAGS_save}"
2128   ;;
2129   esac
2130   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2131     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2132   ], [], [${LIBS_ts}])
2137 dnl  Video4Linux plugin
2139 AC_ARG_ENABLE(v4l,
2140   [  --enable-v4l            Video4Linux input support (default disabled)])
2141 if test "${enable_v4l}" = "yes"
2142 then
2143   AC_ARG_WITH(v4l,
2144     [  --with-v4l=PATH         path to a v4l-enabled kernel tree],[],[])
2145   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2146   then
2147     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2148   fi
2150   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2151   AC_CHECK_HEADERS(linux/videodev.h, [
2152     VLC_ADD_PLUGIN([v4l])
2153   ],[])
2154   CPPFLAGS="${CPPFLAGS_save}"
2158 dnl libv4l1 support for video4linux.
2160 AC_ARG_ENABLE( libv4l,
2161   [  --enable-libv4l         Libv4l Video4Linux support (default enabled)])
2162 if test "${enable_libv4l}" != "no" -a "${enable_v4l}" != "no"
2163 then
2164     PKG_CHECK_MODULES( LIBV4L, libv4l1, [
2165       VLC_ADD_LDFLAGS([v4l],[${LIBV4L_LIBS}])
2166       VLC_ADD_CFLAGS([v4l],[${LIBV4L_CFLAGS}])
2167       AC_DEFINE(HAVE_LIBV4L1, 1, Define if libv4l is available)],
2168       AC_MSG_WARN([LibV4L support disabled because libv4l development headers were not found])
2169     )
2173 dnl  Video4Linux2 plugin
2175 AC_ARG_ENABLE(v4l2,
2176   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2177 if test "${enable_v4l2}" != "no"
2178 then
2179   AC_ARG_WITH(v4l2,
2180     [  --with-v4l2=PATH        path to a v4l2-enabled kernel tree],[],[])
2181   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2182   then
2183     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2184   fi
2186   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2187   AC_CHECK_HEADERS(linux/videodev2.h, [
2188     VLC_ADD_PLUGIN([v4l2])
2189   ],[])
2190   CPPFLAGS="${CPPFLAGS_save}"
2194 dnl libv4l2 support for video4linux.
2196 AC_ARG_ENABLE( libv4l2,
2197   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2198 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2199 then
2200     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2201       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2202       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2203       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l2 is available)],
2204       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2205     )
2209 dnl  special access module for Hauppauge PVR cards
2211 AC_ARG_ENABLE(pvr,
2212   [  --enable-pvr            PVR cards access module (default disabled)])
2213 if test "${enable_pvr}" = "yes"
2214 then
2215   VLC_ADD_PLUGIN([pvr])
2216   AC_ARG_WITH(videodev2,
2217     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2218   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2219   then
2220     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2221   fi
2223   AC_CACHE_CHECK([for new linux/videodev2.h],
2224       [ac_cv_new_linux_videodev2_h],
2225       [AC_TRY_COMPILE([
2226           #include <sys/types.h>
2227           #   ifdef VIDEODEV2_H_FILE
2228           #   include VIDEODEV2_H_FILE
2229           #   else
2230           #   include <linux/videodev2.h>
2231           #   endif
2232           ],
2233           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2234           ac_cv_new_linux_videodev2_h=yes,
2235           ac_cv_new_linux_videodev2_h=no)])
2236   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2237     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2238   fi
2242 dnl  gnomeVFS access module
2244 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2247 dnl  VCDX modules
2249 AC_ARG_ENABLE(vcdx,
2250   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2252 if test "${enable_vcdx}" = "yes"
2253 then
2254         PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
2255           [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
2256                  VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
2257                 [AC_MSG_ERROR([vcdx plugin requires libcdio >= 0.78.2 and libiso9660 >= 0.72])])
2258         PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
2259                 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
2260                  VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
2261           [AC_MSG_ERROR([vcdx plugin requires libvcdinfo library >= 0.7.22])])
2262         VLC_ADD_PLUGIN([vcdx])
2266 dnl  Built-in CD-DA and VCD module
2268 AC_ARG_ENABLE(vcd,
2269   [  --enable-vcd            built-in VCD and CD-DA (default enabled)])
2271 AC_ARG_ENABLE(libcddb,
2272   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2274 if test "${enable_vcd}" != "no"
2275 then
2276   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2277   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2278     AC_MSG_RESULT(yes)
2279     VLC_ADD_PLUGIN([vcd cdda])
2280   ],[
2281     AC_MSG_RESULT(no)
2282   ])
2284   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2285   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2286     AC_MSG_RESULT(yes)
2287     VLC_ADD_PLUGIN([vcd cdda])
2288     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2289   ],[
2290     AC_MSG_RESULT(no)
2291   ])
2293   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2294   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2295     AC_MSG_RESULT(yes)
2296     VLC_ADD_PLUGIN([vcd cdda])
2297     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2298   ],[
2299     AC_MSG_RESULT(no)
2300   ])
2302   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2303   then
2304     VLC_ADD_PLUGIN([vcd cdda])
2305   fi
2307   if test "${SYS}" = "darwin"
2308   then
2309     VLC_ADD_PLUGIN([vcd cdda])
2310     VLC_ADD_LDFLAGS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2311     VLC_ADD_LIBS([vcdx cdda],[-liconv])
2312   fi
2314   if test "$enable_libcddb" != "no"; then
2315     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2316       HAVE_LIBCDDB=yes
2317       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2318       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2319       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2320       ],:
2321       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2322       HAVE_LIBCDDB=no])
2323   fi
2327 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2329 AC_ARG_ENABLE(dvb,
2330   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2332 if test "${enable_dvb}" != "no"
2333 then
2334     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2335     AC_ARG_WITH(dvb,
2336      [  --with-dvb=PATH         path to a dvb- and v4l2-enabled kernel tree],[],[])
2337      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2338      then
2339        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2340      fi
2341      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2342      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2343      VLC_ADD_PLUGIN([dvb])
2344      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2345      CPPFLAGS="${CPPFLAGS_save}"
2346    ],[
2347      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2348     ])
2352 dnl  Screen capture module
2354 AC_ARG_ENABLE(screen,
2355   [  --enable-screen         Screen capture support (default enabled)])
2356 if test "${enable_screen}" != "no"; then
2357   if test "${SYS}" = "darwin"; then
2358     AC_CHECK_HEADERS(OpenGL/gl.h, [
2359       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2360         VLC_ADD_PLUGIN([screen])
2361         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2362       ])
2363     ])
2364   elif test "${SYS}" = "mingw32"; then
2365     VLC_ADD_PLUGIN([screen])
2366     VLC_ADD_LIBS([screen],[-lgdi32])
2367   elif test "${SYS}" = "mingwce"; then
2368     CPPFLAGS="${CPPFLAGS_save}"
2369   elif test "${SYS}" = "beos"; then
2370     VLC_ADD_PLUGIN([screen])
2371     VLC_ADD_CXXFLAGS([screen],[])
2372     VLC_ADD_LIBS([screen],[-lbe])
2373   fi
2377 dnl  ipv6 plugin
2379 have_ipv6=no
2380 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2381   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2384 AS_IF([test "${have_ipv6}" = "yes"], [
2385   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2388 AC_CHECK_FUNCS(inet_ntop,[
2389   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2393 dnl  ogg demux plugin
2395 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2396 if test "${enable_sout}" != "no"; then
2397     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2400 if test "${enable_sout}" != "no"; then
2401 dnl Check for libshout
2402 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2406 dnl  matroska demux plugin
2408 AC_ARG_ENABLE(mkv,
2409   [  --enable-mkv            Matroska demux support (default enabled)])
2410 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2411   AC_LANG_PUSH(C++)
2412   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2413     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2414     AC_EGREP_CPP(yes,
2415       [#include <ebml/EbmlVersion.h>
2416        #ifdef LIBEBML_VERSION
2417        #if LIBEBML_VERSION >= 0x000706
2418        yes
2419        #endif
2420        #endif],
2421       [AC_MSG_RESULT([yes])
2422         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2423           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2424           AC_EGREP_CPP(yes,
2425             [#include <matroska/KaxVersion.h>
2426              #ifdef LIBMATROSKA_VERSION
2427              #if LIBMATROSKA_VERSION >= 0x000705
2428              yes
2429              #endif
2430              #endif],
2431             [AC_MSG_RESULT([yes])
2432               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2433               VLC_ADD_CXXFLAGS([mkv],[])
2434               if test "${SYS}" = "darwin"; then
2435                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2436               fi
2437               AC_CHECK_LIB(ebml_pic, main, [
2438                 VLC_ADD_PLUGIN([mkv])
2439                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2440               ],
2441                 AC_CHECK_LIB(ebml, main, [
2442                   VLC_ADD_PLUGIN([mkv])
2443                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2444                 ])
2445               )
2446             ],
2447             [AC_MSG_RESULT([no])
2448               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.])
2449           ])
2450         ])
2451       ],
2452       [AC_MSG_RESULT([no])
2453         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.])
2454     ])
2455   ])
2456   AC_LANG_POP(C++)
2460 dnl  modplug demux plugin
2462 AC_ARG_ENABLE(mod,
2463   [  --enable-mod            Mod demux support (default enabled)])
2464 if test "${enable_mod}" != "no"
2465 then
2466   AC_ARG_WITH(mod-tree,
2467   [  --with-mod-tree=PATH    mod tree for static linking])
2468   if test -n "${with_mod_tree}"
2469   then
2470     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2471     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2472     if test -z "${real_mod_tree}"
2473     then
2474       dnl  The given directory can't be found
2475       AC_MSG_RESULT(no)
2476       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2477     fi
2478     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2479     then
2480       dnl  Use a custom mod
2481       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2482       VLC_ADD_PLUGIN([mod])
2483       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2484       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2485     else
2486       dnl  The given mod wasn't built
2487       AC_MSG_RESULT(no)
2488       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2489     fi
2490   else
2491     PKG_CHECK_MODULES(LIBMODPLUG, libmodplug >= 0.8,
2492         [ VLC_ADD_PLUGIN([mod])
2493           VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2494           VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2495         ],[AC_MSG_WARN([libmodplug not found!])])
2496   fi
2500 dnl  mpc demux plugin
2502 AC_ARG_ENABLE(mpc,
2503   [  --enable-mpc            Mpc demux support (default enabled)])
2504 if test "${enable_mpc}" != "no"
2505 then
2506   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2507     VLC_ADD_PLUGIN([mpc])
2508     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2509     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2510     VLC_ADD_PLUGIN([mpc])
2511     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2515 dnl  game music emu demux plugin
2517 AC_ARG_ENABLE(gme,
2518   [  --enable-gme            Game Music Emu demux support (default enabled)])
2519 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2520 then
2521   AC_LANG_PUSH(C++)
2522   AC_ARG_WITH(gme-tree,
2523   [  --with-gme-tree=PATH    gme tree for static linking])
2524   if test -n "${with_gme_tree}"
2525   then
2526     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2527     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2528     if test -z "${real_gme_tree}"
2529     then
2530       dnl  The given directory can't be found
2531       AC_MSG_RESULT(no)
2532       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2533     fi
2534     if test -f "${real_gme_tree}/gme/libgme.a"
2535     then
2536       dnl  Use a custom gme
2537       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2538       VLC_ADD_PLUGIN([gme])
2539       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2540       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2541     else
2542       dnl  The given gme wasn't built
2543       AC_MSG_RESULT(no)
2544       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2545     fi
2546   else
2547       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2548   fi
2549   AC_LANG_POP(C++)
2553 dnl  Codec plugins
2556 EXTEND_HELP_STRING([Codec plugins:])
2559 dnl wmafixed plugin
2561 AC_ARG_ENABLE(wma-fixed,
2562   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2563 if test "${enable_wma_fixed}" = "yes"
2564 then
2565   VLC_ADD_PLUGIN([wma_fixed])
2569 dnl shine fixed point mp3 encoder
2571 AC_ARG_ENABLE(shine,
2572   [  --enable-shine          shine mp3 encoding module (default disabled)])
2573 if test "${enable_shine}" = "yes"
2574 then
2575   VLC_ADD_PLUGIN([shine])
2579 dnl openmax il codec plugin
2581 AC_ARG_ENABLE(omxil,
2582   [  --enable-omxil          openmax il codec module (default disabled)])
2583 if test "${enable_omxil}" = "yes"
2584 then
2585   VLC_ADD_PLUGIN([omxil])
2586   VLC_ADD_LIBS([omxil], [$LIBDL])
2590 dnl  mad plugin
2592 AC_ARG_ENABLE(mad,
2593   [  --enable-mad            libmad module (default enabled)])
2594 if test "${enable_mad}" != "no"
2595 then
2596   AC_ARG_WITH(mad,
2597     [  --with-mad=PATH         path to libmad],[],[])
2598   if test "${with_mad}" != "no" -a -n "${with_mad}"
2599   then
2600     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2601     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2602   fi
2604   AC_ARG_WITH(mad-tree,
2605     [  --with-mad-tree=PATH    mad tree for static linking],[],[])
2606   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2607   then
2608     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2609     if test -z "${real_mad_tree}"
2610     then
2611       dnl  The given directory can't be found
2612       AC_MSG_RESULT(no)
2613       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2614     fi
2615     dnl  Use a custom libmad
2616     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2617     if test -f ${real_mad_tree}/mad.h
2618     then
2619       AC_MSG_RESULT(yes)
2620       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2621       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2622       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2623       AC_CHECK_LIB(mad, mad_bit_init, [
2624         VLC_ADD_PLUGIN([mpgatofixed32])
2625         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2626         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2627       ],[])
2628       LDFLAGS="${LDFLAGS_save}"
2629     else
2630       AC_MSG_RESULT(no)
2631       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2632     fi
2633   else
2634     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2635     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2636     AC_CHECK_HEADERS(mad.h, ,
2637       [ 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.]) ])
2638     AC_CHECK_LIB(mad, mad_bit_init, [
2639       VLC_ADD_PLUGIN([mpgatofixed32])
2640       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2641       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2642     CPPFLAGS="${CPPFLAGS_save}"
2643     LDFLAGS="${LDFLAGS_save}"
2644   fi
2648 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2650 AC_ARG_ENABLE( id3tag,
2651 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2652 AS_IF([test "${enable_id3tag}" = "yes"], [
2653   AC_CHECK_HEADERS(id3tag.h, [
2654       AS_IF([test "${have_zlib}" = "yes"],[
2655           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2656           VLC_ADD_PLUGIN([id3tag])
2657        ])
2658     ])
2661 AC_ARG_ENABLE(merge-ffmpeg,
2662 [  --enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)],, [
2663   enable_merge_ffmpeg="no"
2665 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2668 dnl  avcodec decoder/encoder plugin
2670 AC_ARG_ENABLE(avcodec,
2671 [  --enable-avcodec        libavcodec codec (default enabled)])
2672 if test "${enable_avcodec}" != "no"
2673 then
2674   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2675     [
2676       VLC_SAVE_FLAGS
2677       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2678       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2679       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2680       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2681       VLC_ADD_PLUGIN([avcodec])
2682       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2683       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2684       VLC_RESTORE_FLAGS
2685       have_avcodec="yes"
2686     ],[
2687       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2688   ])
2692 dnl libva needs avcodec
2694 AC_ARG_ENABLE(libva,
2695   [  --enable-libva          libva VAAPI support (default auto)])
2697 AS_IF([test "${enable_libva}" != "no"], [
2698   AS_IF([test "x${have_avcodec}" = "xyes"], [
2699     PKG_CHECK_MODULES(LIBVA, [libva libva-x11],
2700       [
2701         VLC_SAVE_FLAGS
2702         CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2703         CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2704         AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2705            VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS])
2706            VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS])
2707            AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2708            echo "VAAPI acceleration activated"
2709         ],[
2710         AS_IF([test "${enable_libva}" == "yes"],
2711               [AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])],
2712               [AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])])
2713         ])
2714         VLC_RESTORE_FLAGS
2715       ],[
2716         AS_IF([test "${enable_libva}" == "yes"],
2717               [AC_MSG_ERROR([Could not find required libva.])],
2718               [AC_MSG_WARN([libva not found  ])])
2719       ])
2720   ],[
2721     AS_IF([test "x${enable_libva}" != "x"], [
2722       AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive.])
2723     ])
2724   ])
2728 dnl dxva2 needs avcodec
2730 AC_ARG_ENABLE(dxva2,
2731   [  --enable-dxva2          DxVA2  support (default auto)])
2733 AS_IF([test "${enable_dxva2}" != "no"], [
2734   if test "${SYS}" = "mingw32"; then
2735   AS_IF([test "x${have_avcodec}" = "xyes"], [
2736     AC_CHECK_HEADERS(dxva2api.h, 
2737       [
2738         AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2739            VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2740            AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2741            echo "DxVA2 acceleration activated"
2742         ],[
2743         AS_IF([test "${enable_dxva2}" == "yes"],
2744               [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2745               [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2746         ])
2747       ],[
2748         AS_IF([test "${enable_dxva2}" == "yes"],
2749               [AC_MSG_ERROR([Could not find required dxva2api.h])],
2750               [AC_MSG_WARN([dxva2api.h not found])])
2751       ])
2752   ],[
2753     AS_IF([test "x${enable_dxva2}" != "x"], [
2754       AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2755     ])
2756   ])
2757   fi
2762 dnl stream_out switcher needs libavcodec
2764 AC_ARG_ENABLE(switcher,
2765   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2766 AS_IF([test "${enable_switcher}" = "yes"], [
2767   AS_IF([test "x${have_avcodec}" = "xyes"], [
2768     VLC_ADD_PLUGIN([stream_out_switcher])
2769     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2770     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2771   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2772   ])
2777 dnl  avformat demuxer/muxer plugin
2780 AC_ARG_ENABLE(avformat,
2781 [  --enable-avformat       libavformat containers (default enabled)])
2782 if test "${enable_avformat}" != "no"
2783 then
2784   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2785     [
2786       VLC_SAVE_FLAGS
2787       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2788       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2789       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2790       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2791       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2792         VLC_ADD_PLUGIN([avformat access_avio])
2793         VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2794         VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2795       ], [
2796         VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2797         VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2798       ])
2799       VLC_RESTORE_FLAGS
2800     ],[
2801       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2802   ])
2806 dnl  swscale image scaling and conversion plugin
2809 AC_ARG_ENABLE(swscale,
2810   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2811                   (default enabled)]))
2812 if test "${enable_swscale}" != "no"
2813 then
2814   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2815     [
2816       VLC_SAVE_FLAGS
2817       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2818       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2819       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2820       VLC_ADD_PLUGIN([swscale])
2821       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2822       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2823       VLC_RESTORE_FLAGS
2824     ],[
2825       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.])
2826   ])
2830 dnl  postproc plugin
2833 AC_ARG_ENABLE(postproc,
2834 [  --enable-postproc       libpostproc image post-processing (default enabled)])
2835 if test "${enable_postproc}" != "no"
2836 then
2837   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2838     [
2839       VLC_SAVE_FLAGS
2840       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2841       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2842       AC_CHECK_HEADERS(postproc/postprocess.h)
2843       VLC_ADD_PLUGIN([postproc])
2844       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2845       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2846       VLC_RESTORE_FLAGS
2847     ],[
2848       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
2849   ])
2853 dnl  faad decoder plugin
2855 AC_ARG_ENABLE(faad,
2856 [  --enable-faad           faad codec (default disabled)])
2857 if test "${enable_faad}" = "yes"
2858 then
2859   AC_ARG_WITH(faad-tree,
2860   [  --with-faad-tree=PATH   faad tree for static linking])
2861   if test -n "${with_faad_tree}"
2862   then
2863     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2864     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2865     if test -z "${real_faad_tree}"
2866     then
2867       dnl  The given directory can't be found
2868       AC_MSG_RESULT(no)
2869       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2870     fi
2871     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2872     then
2873       dnl  Use a custom faad
2874       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2875       VLC_ADD_PLUGIN([faad])
2876       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2877       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2878     else
2879       dnl  The given libfaad wasn't built
2880       AC_MSG_RESULT(no)
2881       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2882     fi
2883   else
2884     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2885     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
2886     AC_CHECK_HEADERS(faad.h, ,
2887       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2888     AC_CHECK_LIB(faad, faacDecOpen, [
2889       VLC_ADD_PLUGIN([faad])
2890       VLC_ADD_LIBS([faad],[-lfaad]) ],
2891       AC_CHECK_LIB(faad, NeAACDecOpen, [
2892         VLC_ADD_PLUGIN([faad])
2893         VLC_ADD_LIBS([faad],[-lfaad]) ],
2894         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2895     LDFLAGS="${LDFLAGS_save}"
2896     CPPFLAGS="${CPPFLAGS_save}"
2897   fi
2901 dnl twolame encoder plugin
2903 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2906 dnl  QuickTime plugin
2908 AC_ARG_ENABLE(quicktime,
2909   [  --enable-quicktime      QuickTime module (deprecated)])
2910 if test "${enable_quicktime}" = "yes"; then
2911   if test "${SYS}" = "mingw32"; then
2912     VLC_ADD_PLUGIN([quicktime])
2913   else
2914   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2915     [ VLC_ADD_PLUGIN([quicktime])
2916       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2917     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2918   fi
2922 dnl  Real plugin
2924 AC_ARG_ENABLE(real,
2925   [  --enable-real           Real media module (default disabled)])
2926 if test "${enable_real}" = "yes"; then
2927   VLC_ADD_PLUGIN([realvideo])
2931 dnl  Real RTSP plugin
2933 AC_ARG_ENABLE(realrtsp,
2934   [  --enable-realrtsp       Real RTSP module (default disabled)])
2935 if test "${enable_realrtsp}" = "yes"; then
2936   VLC_ADD_PLUGIN([access_realrtsp])
2940 dnl skins2 module
2942 AC_ARG_ENABLE(libtar,
2943   [  --enable-libtar         libtar support for skins2 (default enabled)])
2945 AS_IF([test "${enable_libtar}" != "no"],[
2946   AC_CHECK_HEADERS(libtar.h, [
2947     VLC_ADD_LIBS([skins2],[-ltar])
2948   ] )
2952 dnl A52/AC3 decoder plugin
2954 AC_ARG_ENABLE(a52,
2955   [  --enable-a52            A/52 support with liba52 (default enabled)])
2956 if test "${enable_a52}" != "no"
2957 then
2958   AC_ARG_WITH(a52,
2959     [  --with-a52=PATH         a52 headers and libraries])
2960   AC_ARG_WITH(a52-tree,
2961     [  --with-a52-tree=PATH    a52dec tree for static linking ],[],[])
2962   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2963   then
2964     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2965     if test -z "${real_a52_tree}"
2966     then
2967       dnl  The given directory can't be found
2968       AC_MSG_RESULT(no)
2969       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2970     fi
2971     dnl  Use a custom a52dec
2972     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2973     if test -f ${real_a52_tree}/include/a52.h
2974     then
2975       AC_MSG_RESULT(yes)
2976       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2977       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2978       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
2979       AC_CHECK_LIB(a52, a52_free, [
2980         VLC_ADD_PLUGIN([a52tofloat32])
2981         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2982         VLC_ADD_LIBS([a52tofloat32],[-la52])
2983         ],[
2984         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2985         then
2986           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2987         else
2988           AC_MSG_ERROR([the specified tree hasn't been compiled])
2989         fi
2990       ])
2991       LDFLAGS="${LDFLAGS_save}"
2992     else
2993       AC_MSG_RESULT(no)
2994       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2995     fi
2996   else
2997     if test -z "${with_a52}"
2998     then
2999       LDFLAGS_test=""
3000       CPPFLAGS_test=""
3001     else
3002       LDFLAGS_test="-L${with_a52}/lib"
3003       CPPFLAGS_test="-I${with_a52}/include"
3004     fi
3005     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3006     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3007     AC_CHECK_HEADERS(a52dec/a52.h, [
3008       AC_CHECK_LIB(a52, a52_free, [
3009         VLC_ADD_PLUGIN([a52tofloat32])
3010         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3011         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3012       ],[
3013         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.])
3014         ])
3015     ],[
3016       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.])
3017     ])
3018     CPPFLAGS="${CPPFLAGS_save}"
3019     LDFLAGS="${LDFLAGS_save}"
3020   fi
3023 AC_ARG_WITH(a52-fixed,
3024       [  --with-a52-fixed        specify if liba52 has been compiled with fixed point support],
3025       [
3026         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3029 dnl DTS Coherent Acoustics decoder plugin
3031 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3034 dnl  Flac plugin
3036 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3039 dnl  Libmpeg2 plugin
3041 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3044 dnl  Vorbis plugin
3046 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3049 dnl  Tremor plugin
3051 AC_ARG_ENABLE(tremor,
3052   [  --enable-tremor         Tremor decoder support (default disabled)])
3053 if test "${enable_tremor}" = "yes"
3054 then
3055   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3056     VLC_ADD_PLUGIN([tremor])
3057     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3058    ],[])
3062 dnl  Speex plugin
3064 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3067 dnl  theora decoder plugin
3069 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3072 dnl  dirac encoder plugin
3074 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3077 dnl  schroedinger decoder plugin (for dirac format video)
3079 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3082 dnl  PNG decoder module
3084 AC_ARG_ENABLE(png,
3085   [  --enable-png            PNG support (default enabled)])
3086 if test "${enable_png}" != "no"; then
3087 AC_CHECK_HEADERS(png.h, [
3088   LDFLAGS="${LDFLAGS_save} -lz"
3089   AC_CHECK_LIB(png, png_set_rows, [
3090     VLC_ADD_LIBS([png],[-lpng -lz])
3091     VLC_ADD_PLUGIN([png osdmenu osd_parser])],
3092     [],[-lz])
3093     LDFLAGS="${LDFLAGS_save}"
3094   ])
3096 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3099 dnl H264 encoder plugin (using libx264)
3101 AC_ARG_ENABLE(x264,
3102   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3103 if test "${enable_x264}" != "no"; then
3104   AC_ARG_WITH(x264-tree,
3105     [  --with-x264-tree=PATH   x264 tree for static linking ],[],[])
3106   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3107   then
3108     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3109     if test -z "${real_x264_tree}"
3110     then
3111       dnl  The given directory can't be found
3112       AC_MSG_RESULT(no)
3113       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3114     fi
3115     dnl  Use a custom libx264
3116     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3117     if test -f ${real_x264_tree}/x264.h
3118     then
3119       AC_MSG_RESULT(yes)
3120       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3121       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3122       PKG_CHECK_MODULES(X264,x264, [
3123         VLC_ADD_PLUGIN([x264])
3124         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3125         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3126         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3127           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3128         fi
3129       ],[
3130         AC_MSG_ERROR([the specified tree hasn't been compiled])
3131       ])
3132       LDFLAGS="${LDFLAGS_save}"
3133     else
3134       AC_MSG_RESULT(no)
3135       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3136     fi
3137   else
3138       PKG_CHECK_MODULES(X264,x264 >= 0.76, [
3139         VLC_ADD_PLUGIN([x264])
3140         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3142         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3143           [ac_cv_ld_bsymbolic],
3144           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3145             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3146             LDFLAGS="${LDFLAGS_save}"
3147           ])
3148         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3149           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3150         ])
3152         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3153         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3154           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3155         fi
3156       ],[
3157         if test "${enable_x264}" = "yes"; then
3158             AC_MSG_ERROR([Could not find libx264 >= 0.76 on your system: you may get it from http://www.videolan.org/x264.html])
3159           fi
3160       ])
3161     LDFLAGS="${LDFLAGS_save}"
3162   fi
3166 dnl libfluidsynth (MIDI synthetizer) plugin
3168 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3171 dnl Teletext Modules
3172 dnl vbi decoder plugin (using libzbvi)
3173 dnl telx module
3174 dnl uncompatible
3176 AC_ARG_ENABLE(zvbi,
3177   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3178                   libzvbi (default enabled)]))
3179 AC_ARG_ENABLE(telx,
3180   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3181                   zvbi) (default enabled if zvbi is absent)]))
3183 AS_IF( [test "${enable_zvbi}" != "no"],[
3184     PKG_CHECK_MODULES(ZVBI,
3185         zvbi-0.2 >= 0.2.28,
3186         [
3187           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3188           if test "${SYS}" = "mingw32"; then
3189               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3190           fi
3191           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3192           VLC_ADD_PLUGIN([zvbi])
3193           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3194           AS_IF( [test "${enable_telx}" = "yes"],[
3195                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3196                                Using zvbi.])
3197                   ])
3198         ],[
3199           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3200         ])
3201     ])
3202 AS_IF( [test "${enable_telx}" != "no" ],[
3203   VLC_ADD_PLUGIN([telx])
3204   ])
3207 dnl libass subtitle rendering module
3209 AC_ARG_ENABLE(libass,
3210   [  --enable-libass         Subtitle support using libass (default enabled)])
3211 AS_IF( [test "${enable_libass}" != "no"], [
3212   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3213       [
3214         VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
3215         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3216         VLC_ADD_PLUGIN([libass])
3218         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3219           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3220            VLC_ADD_LIBS([libass],[-lfontconfig])
3221        ])
3222       ],[
3223         AC_MSG_WARN([LIBASS library not found])
3224       ])
3225   ])
3228 dnl asa demuxer
3230 AC_ARG_ENABLE(asademux,
3231   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3232 AS_IF( [test "${enable_asademux}" = "yes"], [
3233   PKG_CHECK_MODULES(PCRE,
3234       libpcre >= 6.5,
3235       [
3236         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3237         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3238         if test "${SYS}" = "mingw32"; then
3239             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3240         fi
3241         VLC_ADD_PLUGIN([asademux])
3242       ],[
3243         AC_MSG_WARN([PCRE library not found (required for asademux)])
3244       ])
3245   ])
3248 dnl  kate decoder plugin
3250 AC_ARG_ENABLE(kate,
3251 [  --enable-kate           kate codec (default enabled)])
3252 AS_IF([test "${enable_kate}" != "no"], [
3253   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3254       VLC_ADD_PLUGIN([kate])
3255       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3256       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3257         AC_CHECK_HEADERS(kate/kate.h, [
3258           AC_CHECK_LIB(kate, kate_decode_init, [
3259             VLC_ADD_PLUGIN([kate])
3260             kate_libs="-lkate -logg"
3261             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3262             AS_IF([test "x${enable_kate}" != "x"], [
3263               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3264               You also need to check that you have a libogg posterior to the 1.0 release.])
3265             ])
3266           ], [-lkate -logg])
3267         ],[
3268           AS_IF([test "x${enable_kate}" != "x"], [
3269             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3270             You also need to check that you have a libogg posterior to the 1.0 release.])
3271           ])
3272         ])
3273   ])
3278 dnl  tiger rendering for kate decoder plugin
3280 AC_ARG_ENABLE(tiger,
3281 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3282 AS_IF([test "${enable_tiger}" != "no"], [
3283   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3284       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3285       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3286       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3287         AS_IF([test "x${enable_tiger}" != "x"], [
3288           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3289         ])
3290   ])
3296 dnl  Video plugins
3299 EXTEND_HELP_STRING([Video plugins:])
3302 dnl  Xlib
3305 AC_PATH_XTRA()
3306 AC_CHECK_HEADERS(X11/Xlib.h, [
3307   VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3311 dnl  X C Bindings modules
3313 AC_ARG_ENABLE(xcb,
3314   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3315   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
3316     enable_xcb="yes"
3317   ], [
3318     enable_xcb="no"
3319   ])
3321 AC_ARG_ENABLE(xvideo,
3322   [  --enable-xvideo         XVideo support (default enabled)],, [
3323     enable_xvideo="$enable_xcb"
3326 need_xid_provider="no"
3327 AS_IF([test "${enable_xcb}" != "no"], [
3328   dnl libxcb
3329   PKG_CHECK_MODULES(XCB, [xcb])
3330   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3331   VLC_ADD_PLUGIN([screensaver xcb_x11 xcb_screen xcb_apps])
3333   AS_IF([test "${enable_xvideo}" != "no"], [
3334     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3335       VLC_ADD_PLUGIN([xcb_xv])
3336     ], [
3337       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3338         VLC_ADD_PLUGIN([xcb_xv])
3339         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3340       ])
3341     ])
3342   ])
3344   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3345     VLC_ADD_PLUGIN([panoramix])
3346     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3347     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3348   ], [true])
3350   dnl xcb-utils
3351   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3352     have_xcb_keysyms="yes"
3353   ], [
3354     PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
3355       have_xcb_keysyms="yes"
3356       VLC_ADD_CFLAGS([globalhotkeys], [-DXCB_KEYSYM_OLD_API])
3357     ], [
3358       have_xcb_keysyms="no"
3359       need_xid_provider="yes"
3360     ])
3361   ])
3363   AS_IF([test "${have_xcb_keysyms}" = "yes"], [
3364     PKG_CHECK_MODULES(XPROTO, [xproto])
3365     VLC_ADD_PLUGIN([xcb_window globalhotkeys])
3366     VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3367     VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3368   ])
3369   VLC_ADD_PLUGIN([xdg_screensaver])
3372 AC_ARG_ENABLE(glx,
3373   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3374   enable_glx="$enable_xcb"
3376 AS_IF([test "${enable_glx}" != "no"], [
3377   PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb])
3378   PKG_CHECK_MODULES(GL, [gl],, [
3379     AC_CHECK_HEADER([GL/gl.h], [
3380       GL_CFLAGS=""
3381       GL_LIBS="-lGL"
3382     ], [
3383       AC_MSG_ERROR([GLX (libGL) cannot be found. If you do not need OpenGL with X11, use --disable-glx.])
3384     ])
3385   ])
3386   VLC_ADD_PLUGIN([xcb_glx])
3388 AC_SUBST([GL_CFLAGS])
3389 AC_SUBST([GL_LIBS])
3393 dnl  OpenGL module
3394 dnl  (enabled by default except on beos)
3396 AC_ARG_ENABLE(opengl,
3397   [  --enable-opengl         OpenGL support (default enabled)])
3398 if test "${enable_opengl}" != "no" &&
3399    test "${SYS}" = "darwin"; then
3400     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3401     VLC_ADD_PLUGIN([opengl])
3402     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3406 dnl  SDL module
3408 AC_ARG_ENABLE(sdl,
3409   [  --enable-sdl            SDL support (default enabled)])
3410 AC_ARG_ENABLE(sdl-image,
3411   [  --enable-sdl-image      SDL image support (default enabled)])
3412 if test "${enable_sdl}" != "no"
3413 then
3414    PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3415       # SDL on Darwin is heavily patched and can only run SDL_image
3416       if test "${SYS}" != "darwin"; then
3417         VLC_ADD_PLUGIN([vout_sdl aout_sdl])
3418       fi
3419       VLC_ADD_CFLAGS([vout_sdl aout_sdl],[${SDL_CFLAGS}])
3420       VLC_ADD_LIBS([vout_sdl aout_sdl],[${SDL_LIBS}])
3422       # SDL_image
3423       AS_IF([ test "${enable_sdl_image}" != "no"],[
3424         PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3425           VLC_ADD_PLUGIN([sdl_image])
3426           VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3427           VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3428           [ AC_MSG_WARN([The development package for SDL_image is not installed.
3429     You should install it alongside your SDL package.])
3430           ])
3431       ])
3432    ],[
3433      AC_MSG_WARN([The development package for SDL is not present or too old.
3434                   You need 1.2.10. Alternatively you can also configure with
3435                   --disable-sdl.])
3436    ])
3440 dnl  freetype module
3442 AC_ARG_ENABLE(freetype,
3443   [  --enable-freetype       freetype support (default enabled)])
3444 AC_ARG_ENABLE(fribidi,
3445   [  --enable-fribidi        fribidi support (default enabled)])
3446 AC_ARG_ENABLE(fontconfig,
3447   [  --enable-fontconfig     fontconfig support (default enabled)])
3448 if test "${enable_freetype}" != "no"
3449 then
3450    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3451       VLC_ADD_PLUGIN([freetype])
3452       have_freetype=yes
3453       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3454       if test "${SYS}" = "mingw32"; then
3455         VLC_ADD_LIBS([freetype],[-liconv -lz])
3456       fi
3457       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3458       if test "${enable_fontconfig}" != "no"
3459       then
3460         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3461           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3462            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3463         AC_CHECK_HEADERS(Carbon/Carbon.h,
3464           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3465       fi
3467      dnl fribidi support
3468       if test "${enable_fribidi}" != "no"
3469       then
3470         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3471           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3472           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3473         ])
3474       fi
3476   ],[
3477   have_freetype=no
3478   AS_IF([ test "${enable_freetype}" =  "yes"],[
3479     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3480 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3481       ])
3482     ])
3483   ])
3488 dnl  libxml2 module
3490 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3493 dnl  SVG module
3495 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3498 dnl Snapshot vout module (with cache)
3500 AC_ARG_ENABLE(snapshot,
3501   [  --enable-snapshot       snapshot module (default disabled)])
3502 if test "${enable_snapshot}" = "yes"
3503 then
3504   VLC_ADD_PLUGIN([snapshot])
3508 dnl Roku HD1000 Video output module
3510 AC_ARG_ENABLE(hd1000v,
3511   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3512 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3513   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3514    test "${enable_hd1000v}" = "yes"); then
3515   AC_LANG_PUSH([C++])
3516   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3517   [
3518     can_build_roku="yes"
3519   ],
3520   [
3521     can_build_roku="no"
3522     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3523   ])
3524   if test "$can_build_roku" = "yes"
3525   then
3526     VLC_ADD_PLUGIN([hd1000v])
3527     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3528   fi
3529   AC_LANG_POP([C++])
3533 dnl  Windows DirectX module
3536 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3537 then
3538   VLC_ADD_PLUGIN([panoramix])
3541 AC_ARG_ENABLE(directx,
3542   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3543 if test "${enable_directx}" != "no"
3544 then
3545   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3546   then
3547       AC_CHECK_HEADERS(ddraw.h,
3548       [ VLC_ADD_PLUGIN([directx aout_directx])
3549         VLC_ADD_LIBS([directx],[-lgdi32])
3550       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3551       )
3552       AC_CHECK_HEADERS(GL/gl.h,
3553       [ VLC_ADD_PLUGIN([glwin32])
3554         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3555       ])
3556       AC_CHECK_HEADERS(d3d9.h,
3557       [ VLC_ADD_PLUGIN([direct3d])
3558         VLC_ADD_LIBS([direct3d],[-lgdi32])
3559       ])
3560       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3561   fi
3565 dnl  win32 GDI plugin
3567 AC_ARG_ENABLE(wingdi,
3568   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3569 if test "${enable_wingdi}" != "no"; then
3570   if test "${SYS}" = "mingw32"; then
3571     VLC_ADD_PLUGIN([wingdi])
3572     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3573   fi
3574   if test "${SYS}" = "mingwce"; then
3575     VLC_ADD_PLUGIN([wingdi wingapi])
3576     VLC_ADD_LIBS([wingdi],[-laygshell])
3577     VLC_ADD_LIBS([wingapi],[-laygshell])
3578   fi
3583 dnl  Linux framebuffer module
3585 AC_ARG_ENABLE(fb,
3586   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3587     if test "${enable_fb}" != "no"
3588     then
3589       AC_CHECK_HEADERS(linux/fb.h, [
3590         VLC_ADD_PLUGIN([fb])
3591       ])
3592     fi
3595 dnl  OMAP Framebuffer module
3597 AC_ARG_ENABLE(omapfb,
3598   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3599     if test "${enable_omapfb}" = "yes"
3600     then
3601       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3602         VLC_ADD_PLUGIN([omapfb])
3603       ])
3604       VLC_ADD_PLUGIN([swscale_omap])
3605     fi
3608 dnl  SVGAlib module
3610 AC_ARG_ENABLE(svgalib,
3611   [  --enable-svgalib        SVGAlib support (default disabled)])
3612 if test "${enable_svgalib}" = "yes"
3613 then
3614   VLC_ADD_PLUGIN([svgalib])
3615   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3619 dnl  DirectFB module
3620 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3621 dnl  TODO: support for static linking
3623 AC_ARG_ENABLE(directfb,
3624   [  --enable-directfb       DirectFB support (default disabled)])
3625 AC_ARG_WITH(directfb,
3626   [  --with-directfb=PATH    path to DirectFB headers and libraries])
3628 if test "${enable_directfb}" = "yes"; then
3629     have_directfb="false"
3630     CPPFLAGS_mydirectfb=
3631     LIBS_mydirectfb=
3632     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3633         dnl Trying the given location
3634         CPPFLAGS_save="${CPPFLAGS}"
3635         LIBS_save="${LIBS}"
3637         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3638         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3639         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3641         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3642         LIBS="${LIBS} ${LIBS_new}"
3644         dnl FIXME: too obscure
3645         AC_CHECK_HEADER([directfb.h], [
3646             AC_CHECK_LIB([direct],[direct_initialize], [
3647                 AC_CHECK_LIB([fusion], [fusion_enter], [
3648                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3649                 ], have_directfb="false")
3650             ], have_directfb="false")
3651         ], have_directfb="false")
3653         dnl Restore flags
3654         CPPFLAGS="${CPPFLAGS_save}"
3655         LIBS="${LIBS_save}"
3657         if test "${have_directfb}" = "true"; then
3658             LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3659             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3660         fi
3661     else
3662         dnl Look for directfb-config
3663         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3664         if test "${DIRECTFB_CONFIG}" != "no"; then
3665             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3666             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3667             have_directfb="true"
3668         else
3669             dnl Trying with pkg-config
3670             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3671                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3672                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3673                 have_directfb="true"
3674                 ], [have_directfb="false"])
3675         fi
3676     fi
3677     if test "${have_directfb}" = "true"; then
3678         VLC_ADD_PLUGIN([directfb])
3679         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3680         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3681     else
3682         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3683     fi
3689 dnl  GGI module
3691 AC_ARG_ENABLE(ggi,
3692   [  --enable-ggi            GGI support (default disabled)])
3693 if test "${enable_ggi}" = "yes"
3694 then
3695   AC_CHECK_HEADER([ggi/ggi.h],[
3696     VLC_ADD_PLUGIN([ggi])
3697     VLC_ADD_LIBS([ggi],[-lggi])
3698     AC_ARG_WITH(ggi,
3699       [  --with-ggi=PATH         path to libggi],
3700       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3701         then
3702           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3703           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
3704         fi ])
3705     ],[
3706        AC_MSG_ERROR([LibGGI development files can't be found])
3707     ])
3711 dnl  AA plugin
3713 AC_ARG_ENABLE(aa,
3714   [  --enable-aa             aalib output (default disabled)])
3715 if test "${enable_aa}" = "yes"
3716 then
3717   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3718   if test "${have_aa}" = "true"
3719   then
3720     VLC_ADD_PLUGIN([aa])
3721     VLC_ADD_LIBS([aa],[-laa])
3722   fi
3726 dnl  libcaca plugin
3728 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3731 dnl  Audio plugins
3734 EXTEND_HELP_STRING([Audio plugins:])
3737 dnl  OSS /dev/dsp module (enabled by default except on win32)
3739 AC_ARG_ENABLE(oss,
3740   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3742 if test "${enable_oss}" != "no" &&
3743   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3744    test "${enable_oss}" = "yes")
3745 then
3746   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3747     VLC_ADD_PLUGIN([oss access_oss])
3748     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss access_oss],[-lossaudio])])
3749   ])
3753 dnl  Pulseaudio module
3755 AS_IF([test "${no_x}" = "yes"], [
3756   AS_IF([test "${enable_pulse}" = "yes"], [
3757     AC_MSG_ERROR([Xlib is required for VLC PulseAudio support
3758 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3759   ])
3760 ], [
3761   PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
3762   VLC_ADD_LIBS([pulse], [${X_LIBS} ${X_PRE_LIBS} -lX11])
3766 dnl  Portaudio module
3768 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3771 dnl  ALSA module
3773 PKG_ENABLE_MODULES_VLC([ALSA], [alsa access_alsa], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
3776 dnl  win32 waveOut plugin
3778 AC_ARG_ENABLE(waveout,
3779   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3780 if test "${enable_waveout}" != "no"; then
3781   if test "${SYS}" = "mingw32"; then
3782     VLC_ADD_PLUGIN([waveout])
3783     VLC_ADD_LIBS([waveout],[-lwinmm])
3784   fi
3785   if test "${SYS}" = "mingwce"; then
3786     VLC_ADD_PLUGIN([waveout])
3787   fi
3791 dnl  CoreAudio plugin
3793 AC_ARG_ENABLE(macosx-audio,
3794   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
3795 if test "x${enable_macosx_audio}" != "xno" &&
3796   (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3797 then
3798   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3799     [ VLC_ADD_PLUGIN([auhal])
3800       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3801     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3805 dnl  Roku HD1000 audio
3807 AC_ARG_ENABLE(hd1000a,
3808   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3809 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3810   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3811    test "${enable_hd1000a}" = "yes")
3812 then
3813   AC_LANG_PUSH([C++])
3814   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3815     VLC_ADD_PLUGIN([hd1000a])
3816     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
3817   AC_LANG_POP([C++])
3821 dnl  JACK modules
3823 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3827 dnl  CyberLink for C++ UPnP stack
3829 AC_ARG_ENABLE(cyberlink,
3830   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
3831   AS_IF([test "${enable_cyberlink}" = "yes" ], [
3832   AC_ARG_WITH(cyberlink-tree,
3833     [  --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
3835   dnl
3836   dnl test for --with-cyberlink-tree
3837   dnl
3838   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
3839     AC_LANG_PUSH(C++)
3840     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
3841     AS_IF([test -z "${real_cyberlink_tree}"], [
3842       dnl  The given directory can't be found
3843       AC_MSG_RESULT(no)
3844       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
3845     ])
3846     CPPFLAGS_save="${CPPFLAGS}"
3847     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
3848     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
3849     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
3850       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
3851         VLC_ADD_PLUGIN([upnp_cc])
3852       ],[
3853         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
3854       ])
3855     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
3856     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
3857       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
3858       dnl The mere fact that we have to make such an ugly check sucks
3859       AC_MSG_CHECKING(for XML parser to link CyberLink with)
3860       LIBS_save="$LIBS"
3861       LIBS_cclink="no"
3862       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
3863         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
3864         AC_LINK_IFELSE([AC_LANG_PROGRAM([
3865 #include <cybergarage/upnp/media/player/MediaPlayer.h>
3866 using namespace CyberLink;
3868 class testclass : public SearchResponseListener, public MediaPlayer
3870     virtual void deviceSearchResponseReceived( SSDPPacket *)
3871     {
3872     }
3874     public:
3875       testclass (void)
3876       {
3877         addSearchResponseListener (this);
3878         start ();
3879       }
3881 ],[testclass l;])],[LIBS_cclink="$l"])
3882       done
3883       LIBS="${LIBS_save}"
3884       dnl should not happen - otherwise this needs fixing - hence FAILURE
3885       AS_IF([test "${LIBS_cclink}" = "no"],
3886         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
3887       AC_MSG_RESULT([${LIBS_cclink}])
3888       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
3889     ], [
3890       AC_MSG_RESULT(no)
3891       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
3892     ])
3893     CPPFLAGS="${CPPFLAGS_save}"
3894     AC_LANG_POP([C++])
3895   ])
3899 dnl UPnP Plugin (Intel SDK)
3901 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
3905 dnl  Interface plugins
3908 EXTEND_HELP_STRING([Interface plugins:])
3911 dnl Skins2 module
3913 AC_ARG_ENABLE(skins2,
3914   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
3915    enabled except on MacOSX, BeOS and WinCE)])])
3916 if test "${enable_skins2}" = "yes" ||
3917   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3918    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3920   dnl test for the required libraries
3921   skins2_missing_lib="no"
3923   dnl freetype
3924   if test "${have_freetype}" != "yes"; then
3925     skins2_missing_lib="yes"
3926     if test "${enable_skins2}" = "yes"; then
3927       AC_MSG_ERROR([Could not find freetype (required for skins2)])
3928     fi
3929   fi
3931   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
3932     VLC_ADD_PLUGIN([skins2])
3933     ALIASES="${ALIASES} svlc"
3934     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3935     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3936     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
3938   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
3939     VLC_ADD_PLUGIN([skins2])
3940     ALIASES="${ALIASES} svlc"
3941     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3942     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3943     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
3945   else if test "${skins2_missing_lib}" = "no"; then
3946     VLC_ADD_PLUGIN([skins2])
3947     ALIASES="${ALIASES} svlc"
3948     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
3949     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3950     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
3951     need_xid_provider="no"
3952   fi fi fi
3954 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
3955          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3956           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
3959 dnl Hildon UI
3961 AC_ARG_ENABLE(hildon,
3962   [  --enable-hildon         Hildon touchscreen UI (default disabled)])
3963 AS_IF([test "${enable_hildon}" = "yes"], [
3964   PKG_CHECK_MODULES(HILDON, [hildon-1], [
3965     PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3966       VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3967       VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3968     ], [
3969       AC_MSG_WARN(hildon-fm-2 not found)
3970     ])
3971     VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3972     VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3973     VLC_ADD_PLUGIN([hildon])
3974     ALIASES="${ALIASES} mvlc"
3975     need_xid_provider="no"
3976   ], [
3977     AS_IF([test "${enable_hildon}" = "yes"],[
3978       AC_MSG_ERROR([Hildon libraries not found])
3979     ])
3980     enable_hildon="no"
3981   ])
3983 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3986 dnl QT 4
3988 AC_ARG_ENABLE(qt4,
3989   [  --enable-qt4            Qt 4 support (default enabled) ],, [
3990   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3992 AS_IF([test "${enable_qt4}" != "no"], [
3993   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
3994     VLC_ADD_PLUGIN([qt4])
3995     ALIASES="${ALIASES} qvlc"
3996     QT4LOCALEDIR="$(eval $PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
3997     AC_SUBST(QT4LOCALEDIR)
3998     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
3999         VLC_ADD_LIBS([qt4],[$QT4_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
4000         need_xid_provider="no"
4001         VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS ${X_CFLAGS} -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4002     ], [
4003         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4004         VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4005     ])
4006     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4007     AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4008     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4009   ], [
4010     AS_IF([test "${enable_qt4}" = "yes"],[
4011       AC_MSG_ERROR([Qt 4 library not found])
4012     ],[
4013       AC_MSG_WARN([Qt 4 library not found])
4014     ])
4015     enable_qt4="no"
4016   ])
4018 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4021 dnl Simple test for skins2 dependency
4023 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4024   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.])
4028 dnl  MacOS X video output/gui modules
4030 AC_ARG_ENABLE(macosx,
4031   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
4032 if test "x${enable_macosx}" = "xyes"
4033 then
4034   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,Cocoa])
4035   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,OpenGL])
4036   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4037   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4038   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4039   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4040   VLC_ADD_LDFLAGS([macosx],                           [-F${CONTRIB_DIR}/Sparkle -Wl,-framework,Sparkle])
4041   VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/Sparkle])
4042   dnl For bug report
4043   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4044   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4045   VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
4047   VLC_ADD_PLUGIN([macosx minimal_macosx])
4051 dnl  MacOS X related modules
4054 AC_ARG_ENABLE(macosx-vout,
4055   [  --enable-macosx-vout    Mac OS X video output module (default enabled on Mac OS X)])
4056 if test "x${enable_macosx_vout}" != "xno" &&
4057   (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
4058 then
4059   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,Cocoa])
4060   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,OpenGL])
4061   VLC_ADD_PLUGIN([vout_macosx])
4064 AC_ARG_ENABLE(macosx-dialog-provider,
4065   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
4066 if test "x${enable_macosx_dialog_provider}" != "xno" &&
4067   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
4068 then
4069   VLC_ADD_LDFLAGS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
4070   VLC_ADD_PLUGIN([macosx_dialog_provider])
4073 AC_ARG_ENABLE(macosx-qtcapture,
4074   [  --enable-macosx-qtcapture Mac OS X qtcapture (iSight) module (default enabled on Mac OS X)])
4075 if test "x${enable_macosx_qtcapture}" != "xno" &&
4076   (test "${SYS}" = "darwin" || test "${enable_macosx_qtcapture}" = "yes")
4077 then
4078   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,Cocoa])
4079   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QTKit])
4080   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreAudio])
4081   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QuartzCore])
4082   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreVideo])
4083   VLC_ADD_PLUGIN([qtcapture])
4086 AC_ARG_ENABLE(macosx-eyetv,
4087   [  --enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
4088 if test "x${enable_macosx_eyetv}" != "xno" &&
4089   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
4090 then
4091   VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,Foundation])
4092   VLC_ADD_PLUGIN([access_eyetv])
4095 AC_ARG_ENABLE(macosx-vlc-app,
4096   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4097 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4098     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4102 dnl  ncurses module
4104 AC_ARG_ENABLE(ncurses,
4105   [  --disable-ncurses       ncurses interface support (default disabled)],
4106   [if test "${enable_ncurses}" != "no"; then
4107     AC_CHECK_HEADER(ncurses.h,
4108       [AC_CHECK_LIB(ncursesw, mvprintw,
4109         [VLC_ADD_PLUGIN([ncurses])
4110         VLC_ADD_LIBS([ncurses],[-lncursesw])
4111         ALIASES="${ALIASES} nvlc"
4112         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4113         AC_CHECK_LIB(ncursesw, tgetent, [],
4114           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4115             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4116               [AS_IF([test "x${enable_ncurses}" != "x"],
4117                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4118                )])])
4119             ]
4120           )
4121         )
4122         ],
4123         [AC_CHECK_LIB( ncurses, mvprintw,
4124           [VLC_ADD_PLUGIN([ncurses])
4125           ALIASES="${ALIASES} nvlc"
4126           VLC_ADD_LIBS([ncurses],[-lncurses])
4127           AC_CHECK_LIB(ncurses, tgetent, [],
4128             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4129               [AS_IF([test "x${enable_ncurses}" != "x"],
4130                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4131             )]
4132           )],
4133           [AS_IF([test "x${enable_ncurses}" != "x"], [
4134             AC_MSG_ERROR([libncurses not found])])]
4135         )]
4136       )]
4137     )
4138   fi]
4142 dnl  XOSD plugin
4144 AC_ARG_ENABLE(xosd,
4145   [  --enable-xosd           xosd interface support (default disabled)])
4146 if test "${enable_xosd}" = "yes"
4147 then
4148   AC_CHECK_HEADERS(xosd.h,
4149     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4150       VLC_ADD_PLUGIN([xosd])
4151       VLC_ADD_LIBS([xosd],[-lxosd])
4152     ])
4153   )
4157 dnl Framebuffer (overlay) plugin
4159 AC_ARG_ENABLE(fbosd,
4160   [  --enable-fbosd          fbosd interface support (default disabled)])
4161 if test "${enable_fbosd}" = "yes"
4162 then
4163   AC_CHECK_HEADERS(linux/fb.h, [
4164     VLC_ADD_PLUGIN([fbosd])
4165  ])
4169 dnl Post-interface configuration checks
4171 AS_IF([test "$need_xid_provider" = "yes"], [
4172   AC_MSG_ERROR([X11 video outputs need a window provider (Qt4, Skins2, Hildon or xcb-utils), but none were found. Please install xcb-keysyms.])
4176 dnl Visualisation plugin
4178 AC_ARG_ENABLE(visual,
4179   [  --enable-visual         visualisation plugin (default enabled)])
4180 if test "${enable_visual}" != "no"
4181 then
4182     VLC_ADD_PLUGIN([visual])
4186 dnl  goom visualization plugin
4188 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4191 dnl libprojectM visualization plugin
4193 AC_ARG_ENABLE(projectm,
4194   [  --enable-projectm          projectM visualization plugin (default enabled)])
4195 AS_IF([test "${enable_projectm}" != "no"],
4196   [
4197     PKG_CHECK_MODULES(PROJECTM, libprojectM,
4198     [
4199       VLC_ADD_PLUGIN([projectm])
4200       VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
4201       VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
4202       PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
4203         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4204         [ AC_MSG_WARN( [Using libprojectM version 1] )
4205       ])
4206     ],[
4207       AC_MSG_WARN([libprojectM library not found])
4208     ])
4209   ])
4212 dnl  AtmoLight (homemade Philips Ambilight clone)
4214 AC_ARG_ENABLE(atmo,
4215 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
4216                 (default enabled)]),, [enable_atmo="yes"])
4217 AS_IF([test "${enable_atmo}" != no], [
4218   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4219     AC_LANG_PUSH(C++)
4220     VLC_ADD_PLUGIN([atmo])
4221     AC_LANG_POP(C++)
4222   ])
4226 dnl  Bonjour services discovery
4227 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4230 dnl  libudev services discovery
4231 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4234 dnl MTP devices services discovery
4235 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4238 dnl  Lirc plugin
4240 AC_ARG_ENABLE(lirc,
4241   [  --enable-lirc           lirc support (default disabled)])
4242 if test "${enable_lirc}" = "yes"
4243 then
4244   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4245   if test "${have_lirc}" = "true"
4246   then
4247     VLC_ADD_PLUGIN([lirc])
4248     VLC_ADD_LIBS([lirc],[-llirc_client])
4249   fi
4252 EXTEND_HELP_STRING([Misc options:])
4255 dnl libgcrypt
4257 AC_ARG_ENABLE(libgcrypt,
4258   [  --disable-libgcrypt     gcrypt support (default enabled)])
4259 AS_IF([test "${enable_libgcrypt}" != "no"], [
4260   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4261     libgcrypt-config --version >/dev/null || \
4262         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4263     AC_CHECK_LIB(gcrypt, gcry_control, [
4264       have_libgcrypt="yes"
4265       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4266       GCRYPT_LIBS="`libgcrypt-config --libs`"
4267     ], [
4268       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4269     ], [`libgcrypt-config --libs`])
4270   ], [
4271     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4272   ], [#include <gcrypt.h>]
4273   )
4276 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4277   AS_IF([test "${have_libgcrypt}" = "yes"],[
4278     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4279   ])
4281 AC_SUBST(GCRYPT_CFLAGS)
4282 AC_SUBST(GCRYPT_LIBS)
4283 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4286 dnl TLS/SSL
4288 AC_ARG_ENABLE(gnutls,
4289   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4291 AS_IF([test "${have_libgcrypt}" != "yes"], [
4292   AS_IF([test "${enable_gnutls}" = "yes"], [
4293     AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
4294   ])
4295   enable_gnutls="no"
4297 AS_IF([test "${enable_gnutls}" != "no"], [
4298   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4299     VLC_ADD_PLUGIN([gnutls])
4300     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4301     AS_IF([test "${SYS}" = "mingw32"], [
4302       dnl pkg-config --libs gnutls omits these
4303       VLC_ADD_LIBS([gnutls], [-lz ${LTLIBINTL}])
4304     ])
4305     dnl The GnuTLS plugin invokes gcry_control directly.
4306     AS_IF([test "${have_libgcrypt}" = "yes"],[
4307       VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4308       VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4309     ])
4310     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4311   ], [
4312     AS_IF([test "${enable_gnutls}" = "yes"], [
4313       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4314     ])
4315   ])
4320 dnl RemoteOSD plugin (VNC client as video filter)
4322 AC_ARG_ENABLE(remoteosd,
4323   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4325 AS_IF([test "${enable_remoteosd}" != "no"], [
4326   AS_IF([test "${have_libgcrypt}" = "yes"],[
4327     VLC_ADD_PLUGIN([remoteosd])
4328     VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4329     VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4330   ], [
4331     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4332   ])
4337 dnl RAOP plugin
4339 AC_MSG_CHECKING([whether to enable RAOP plugin])
4340 AS_IF([test "${have_libgcrypt}" = "yes"], [
4341   AC_MSG_RESULT(yes)
4342   VLC_ADD_PLUGIN([stream_out_raop])
4343   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4344   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4345 ], [
4346   AC_MSG_RESULT(no)
4347   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4352 dnl OSSO (Maemo screen blanking) plugin
4354 PKG_ENABLE_MODULES_VLC([OSSO_SCREENSAVER], [], [libosso], [Maemo support], [auto])
4356 AS_IF([test -f "/etc/maemo_version"], [
4357   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4362 dnl update checking system
4364 AC_ARG_ENABLE(update-check,
4365   [  --enable-update-check   update checking system (default disabled)])
4366 if test "${enable_update_check}" = "yes"
4367 then
4368   if test "${have_libgcrypt}" != "yes"
4369   then
4370     AC_MSG_ERROR([libgcrypt is required for update checking system])
4371   fi
4372   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4373   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4374   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4378 dnl SQLite
4380 AC_ARG_WITH(sqlite,
4381   [  --with-sqlite=PATH      sqlite path linking])
4382 if test "${SYS}" != "darwin"; then
4383   PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4384 else
4385   if test "${enable_sqlite}" != "no"
4386   then
4387     AC_CHECK_HEADERS(sqlite3.h, [
4388         VLC_ADD_PLUGIN([sqlite])
4389         if test "${with_sqlite}" != "no" -a -n "${with_sqlite}"; then
4390           AC_MSG_CHECKING(existence of sqlite directory in ${with_sqlite})
4391           real_sqlite="`cd ${with_sqlite} 2>/dev/null && pwd`"
4392           if test -z "${real_sqlite}"
4393           then
4394             dnl  The given directory can't be found
4395             AC_MSG_RESULT(no)
4396             AC_MSG_ERROR([cannot cd to ${with_sqlite}])
4397           fi
4398           VLC_ADD_CFLAGS([sqlite],[-I${with_sqlite}/include])
4399           VLC_ADD_LIBS([sqlite], [-L${with_sqlite}/lib -lsqlite3])
4400           AC_MSG_RESULT(yes)
4401         else
4402           VLC_ADD_LIBS([sqlite], [-lsqlite3])
4403         fi
4404         AC_DEFINE([SQLITE_MODULE], 1, [Define if you want to use SQLite module]) ],
4405         AC_MSG_ERROR([sqlite3 is required for sqlite module]) )
4406   fi
4408 AM_CONDITIONAL([HAVE_SQLITE], [test "${enable_sqlite}" != "no"])
4412 dnl  Endianness check
4414 AC_C_BIGENDIAN
4415 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4416   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4417 ], [
4418   DEFS_BIGENDIAN=""
4420 AC_SUBST(DEFS_BIGENDIAN)
4423 dnl Where to install KDE solid .desktop
4425 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4426 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4427   KDE4_CONFIG="kde4-config"
4430 AC_ARG_WITH(kde-solid,
4431   AS_HELP_STRING([--with-kde-solid=PATH],
4432                  [KDE Solid actions directory (auto)]),, [
4433   with_kde_solid="yes"
4435 soliddatadir=""
4436 AS_IF([test "${with_kde_solid}" != "no"], [
4437   AS_IF([test "${with_kde_solid}" = "yes"], [
4438     kde4datadir="`${KDE4_CONFIG} --install data`"
4439     AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4440     soliddatadir="${kde4datadir}/solid/actions"
4441   ], [
4442     soliddatadir="${with_kde_solid}"
4443   ])
4445 AC_SUBST(soliddatadir)
4446 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4449 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4451 loader=false
4452 AC_ARG_ENABLE(loader,
4453   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4454                   (default disabled)]))
4455 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4456 AS_IF([test "${enable_loader}" = "yes"],
4457   [ VLC_ADD_PLUGIN([dmo])
4458     VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/libs/loader])
4459     VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4460     VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4461     VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4462   ])
4464 EXTEND_HELP_STRING([Components:])
4467 dnl  the VLC binary
4469 AC_ARG_ENABLE(vlc,
4470   [  --enable-vlc            build the VLC media player (default enabled)])
4471 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4474 dnl  Microsoft ActiveX support
4476 activex=false
4477 AC_ARG_ENABLE(activex,
4478   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4479                   (default enabled on Win32)]))
4480 AC_ARG_WITH(wine-sdk-path,
4481   [  --with-wine-sdk-path=PATH path to wine sdk])
4482 if test "${enable_activex}" != "no"
4483 then
4484   if test "${SYS}" = "mingw32"
4485   then
4486     AC_CHECK_PROGS(MIDL, [midl], no)
4487     if test "${with_wine_sdk_path}" != ""
4488     then
4489        WINE_SDK_PATH=${with_wine_sdk_path}
4490        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4491     else
4492        WIDL=no
4493     fi
4494     AC_LANG_PUSH(C++)
4495     AC_CHECK_HEADERS(ole2.h,
4496       [AC_CHECK_HEADERS(olectl.h,
4497         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4498           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4499           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4500           AC_CHECK_HEADERS(objsafe.h,
4501             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4502             [
4503              #if HAVE_OLE2_H
4504              #   include <ole2.h>
4505              #endif
4506             ]
4507           )
4508           activex=:
4509           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4510         ],
4511         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4512       )],
4513       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4514     )
4515     AC_LANG_POP(C++)
4516   fi
4518 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4519 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4520 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4521 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4522 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4525 dnl  Mozilla plugin
4527 mozilla=false
4528 AC_ARG_ENABLE(mozilla,
4529   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4530                   (default disabled)]))
4531 AC_ARG_WITH(mozilla-sdk-path,
4532   [  --with-mozilla-sdk-path=PATH path to mozilla sdk])
4533 AC_ARG_WITH(mozilla-pkg,
4534   [  --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4535 AC_LANG_PUSH(C++)
4536 if test "${enable_mozilla}" = "yes"
4537 then
4538   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4539     [
4540     dnl pkg-config
4541     dnl As we want to do a loop due to the number of name possible for the .pc
4542     dnl we can't use the pkg-config macros.
4544     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4545     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4546     AC_MSG_NOTICE([Checking for Mozilla])
4547     found=0
4548     if test -n "$MOZILLA_CFLAGS" -o -n "$MOZILLA_LIBS"
4549     then
4550       found=1
4551     else
4552       if test -n "$PKG_CONFIG"; then
4553         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4554           if test -n "$i"
4555           then
4556             echo "Trying to find $i package" >&AS_MESSAGE_LOG_FD
4557             AC_MSG_CHECKING([for $i >= 1.9.2])
4558             if $PKG_CONFIG --exists --print-errors "$i >= 1.9.2" 2>&AS_MESSAGE_LOG_FD
4559             then
4560               echo "Using $i pkg-config package." >&AS_MESSAGE_LOG_FD
4561               echo "Using $i package." >&AS_MESSAGE_FD
4562               found=1
4563               MOZILLA_CFLAGS=$(eval $PKG_CONFIG --cflags "$i" )
4564               MOZILLA_LIBS=$(eval $PKG_CONFIG --libs "$i" )
4565               AC_MSG_RESULT([yes])
4566               break
4567             fi
4568             AC_MSG_RESULT([no])
4569           fi
4570         done
4571       fi
4572     fi
4573     AS_IF( [test $found = 1],[
4574         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4575         MOZILLA_REQUIRED_HEADERS=1
4576         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4577         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4578           [#if HAVE_NPAPI_H
4579            # include <npapi.h>
4580            #endif
4581           ])
4582         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4583             AC_MSG_ERROR([Please install the Firefox development tools; plugin/npapi.h and/or plugin/npruntime.h were not found.])
4584         fi
4585         MOZILLA_REQUIRED_HEADERS=
4586         mozilla=:
4587         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4588            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX])
4589            AS_IF([ test "${SYS}" != "darwin"],[
4590              PKG_CHECK_MODULES(XPM, [xpm xt],[
4591                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4592              ],[
4593                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4594              ])
4595              AS_IF([test "${have_xcb_keysyms}" != "yes"], [
4596                AC_MSG_ERROR([Please install xcb-keysyms from xcb-utils.])
4597              ])
4598           ])
4599         ])
4600         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4601         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4602         VLC_ADD_PLUGIN([mozilla])
4603         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4604         MOZILLA_CONFIG=
4605         CPPFLAGS="${CPPFLAGS_save}"
4606           ],
4607           [
4608             AC_PATH_PROGS(MOZILLA_CONFIG,
4609             [mozilla-config seamonkey-config xulrunner-config],
4610         [no])
4611             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools (version 1.9.2 or higher) or use --disable-mozilla.])
4612           ]
4613         )
4614     dnl pkg-config failed but we might have found a mozilla-config
4615     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
4616       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
4617         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4618         AC_CHECK_LIB(Xt,XtStrings,
4619          [
4620            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
4621            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
4622          ],
4623          [],
4624          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
4625         ])
4626         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
4627         AS_IF([test "${have_xcb_keysyms}" != "yes"], [
4628           AC_MSG_ERROR([Please install xcb-keysyms from xcb-utils.])
4629         ])
4630         LDFLAGS="${LDFLAGS_save}"
4631       fi
4633       mozilla=:
4634       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4635       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
4636       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
4637       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4638       MOZILLA_REQUIRED_HEADERS=1
4639       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4640       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4641       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4642         [#if HAVE_NPAPI_H
4643          # include <npapi.h>
4644          #endif
4645         ])
4646       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4647       then
4648         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4649       fi
4650       MOZILLA_REQUIRED_HEADERS=
4651       CPPFLAGS="${CPPFLAGS_save}"
4652       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
4653     ])
4654     dnl End of moz_sdk = ""
4655   ],[
4656     dnl special case for mingw32
4657     if test "${SYS}" = "mingw32"
4658     then
4659       AC_CHECK_TOOL(CYGPATH, cygpath, "")
4660       dnl latest gecko sdk does not have an xpcom directory
4661       if test -d "${with_mozilla_sdk_path}/xpcom"; then
4662           mozilla_sdk_xpcom="/xpcom"
4663       fi
4664     fi
4666     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4667     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk}/include"
4668     MOZILLA_REQUIRED_HEADERS=1
4669     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4670     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4671         [#if HAVE_NPAPI_H
4672           #include <npapi.h>
4673           #endif
4674         ])
4675     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4676     then
4677         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4678     fi
4679     MOZILLA_REQUIRED_HEADERS=
4680     mozilla=:
4681     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4682     VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk}/include])
4683     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
4685     if test -n "${CYGPATH}"; then
4686       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4687     fi
4688     CPPFLAGS="${CPPFLAGS_save}"
4689  ])
4691 AC_LANG_POP(C++)
4692 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4695 dnl  Plugin and builtin checks
4697 plugin_support=yes
4699 dnl Automagically disable plugins if there is no system support for
4700 dnl dynamically loadable files (.so, .dll, .dylib).
4701 dnl don't forget vlc-win32 still can load .dll as plugins
4702 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
4703   AC_MSG_WARN([*** No plugin support! Building statically! ***])
4704   plugin_support=no
4707 AS_IF([test "${plugin_support}" != "no"], [
4708   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
4712 dnl Pic and shared libvlc stuff
4714 AS_IF([test "${SYS}" = "mingw32"], [
4715   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
4716   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
4720 dnl  Stuff used by the program
4722 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4723 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4724 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4725 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4726 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4727 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4728 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
4729 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
4730 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
4731 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
4732 AC_SUBST(COPYRIGHT_MESSAGE)
4733 AC_SUBST(VERSION_MESSAGE)
4734 AC_SUBST(VERSION_MAJOR)
4735 AC_SUBST(VERSION_MINOR)
4736 AC_SUBST(VERSION_REVISION)
4737 AC_SUBST(VERSION_EXTRA)
4738 AC_SUBST(COPYRIGHT_YEARS)
4739 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4740 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4741 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4742 dnl Win32 need s a numerical version_extra.
4743 case $( echo ${VERSION_EXTRA}|wc -m ) in
4744        "1") VERSION_EXTRA_RC="0";;
4745        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
4746        *) VERSION_EXTRA_RC="99"
4747 esac
4748 AC_SUBST(VERSION_EXTRA_RC)
4750 dnl  Handle substvars that use $(top_srcdir)
4752 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4753 AC_SUBST(VLC_CONFIG)
4754 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
4757 dnl  Restore *FLAGS
4759 VLC_RESTORE_FLAGS
4762 dnl Sort the modules list
4764 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4767 dnl  Create the vlc-config script
4769 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
4772 dnl  Configuration is finished
4774 AC_SUBST(SYS)
4775 AC_SUBST(ARCH)
4776 AC_SUBST(ALIASES)
4777 AC_SUBST(ASM)
4778 AC_SUBST(MOC)
4779 AC_SUBST(RCC)
4780 AC_SUBST(UIC)
4781 AC_SUBST(WINDRES)
4782 AC_SUBST(MOZILLA_SDK_PATH)
4783 AC_SUBST(WINE_SDK_PATH)
4784 AC_SUBST(LIBEXT)
4785 AC_SUBST(AM_CPPFLAGS)
4786 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4787 AC_SUBST(FILE_LIBVLCCORE_DLL)
4788 AC_SUBST(FILE_LIBVLC_DLL)
4790 dnl Create vlc-config.in
4791 VLC_OUTPUT_VLC_CONFIG_IN
4793 AC_CONFIG_FILES([
4794   extras/package/win32/spad.nsi
4795   extras/package/win32/vlc.win32.nsi
4796   extras/package/macosx/Info.plist
4797   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4798   extras/package/macosx/plugin/Info.plist
4799   extras/package/macosx/plugin/InstallerInfo.plist
4800   Makefile
4801   projects/activex/Makefile
4802   projects/activex/axvlc.inf
4803   doc/Makefile
4804   extras/package/ipkg/Makefile
4805   libs/loader/Makefile
4806   libs/srtp/Makefile
4807   libs/unzip/Makefile
4808   modules/Makefile
4809   projects/mozilla/Makefile
4810   m4/Makefile
4811   po/Makefile.in
4812   projects/activex/axvlc_rc.rc
4813   projects/mozilla/npvlc_rc.rc
4814   projects/mozilla/vlc.r
4815   projects/mozilla/install.js
4816   projects/mozilla/install.rdf
4817   share/Makefile
4818   compat/Makefile
4819   src/Makefile
4820   src/test/Makefile
4821   bin/Makefile
4822   test/Makefile
4823   modules/access/Makefile
4824   modules/access/bd/Makefile
4825   modules/access/bda/Makefile
4826   modules/access/dshow/Makefile
4827   modules/access/dvb/Makefile
4828   modules/access/mms/Makefile
4829   modules/access/rtp/Makefile
4830   modules/access/rtsp/Makefile
4831   modules/access/vcd/Makefile
4832   modules/access/vcdx/Makefile
4833   modules/access/screen/Makefile
4834   modules/access/zip/Makefile
4835   modules/access_output/Makefile
4836   modules/audio_filter/Makefile
4837   modules/audio_filter/channel_mixer/Makefile
4838   modules/audio_filter/converter/Makefile
4839   modules/audio_filter/resampler/Makefile
4840   modules/audio_filter/spatializer/Makefile
4841   modules/audio_mixer/Makefile
4842   modules/audio_output/Makefile
4843   modules/codec/Makefile
4844   modules/codec/avcodec/Makefile
4845   modules/codec/dmo/Makefile
4846   modules/codec/omxil/Makefile
4847   modules/codec/shine/Makefile
4848   modules/codec/subtitles/Makefile
4849   modules/codec/spudec/Makefile
4850   modules/codec/wmafixed/Makefile
4851   modules/control/Makefile
4852   modules/control/http/Makefile
4853   modules/control/globalhotkeys/Makefile
4854   modules/demux/Makefile
4855   modules/demux/asf/Makefile
4856   modules/demux/avformat/Makefile
4857   modules/demux/avi/Makefile
4858   modules/demux/mkv/Makefile
4859   modules/demux/mp4/Makefile
4860   modules/demux/mpeg/Makefile
4861   modules/demux/playlist/Makefile
4862   modules/gui/Makefile
4863   modules/gui/macosx/Makefile
4864   modules/gui/hildon/Makefile
4865   modules/gui/minimal_macosx/Makefile
4866   modules/gui/macosx_dialog_provider/Makefile
4867   modules/gui/qt4/Makefile
4868   modules/gui/skins2/Makefile
4869   modules/meta_engine/Makefile
4870   modules/misc/Makefile
4871   modules/misc/dummy/Makefile
4872   modules/misc/lua/Makefile
4873   modules/misc/notify/Makefile
4874   modules/misc/playlist/Makefile
4875   modules/misc/osd/Makefile
4876   modules/misc/stats/Makefile
4877   modules/misc/xml/Makefile
4878   modules/mux/Makefile
4879   modules/mux/mpeg/Makefile
4880   modules/packetizer/Makefile
4881   modules/services_discovery/Makefile
4882   modules/stream_filter/Makefile
4883   modules/stream_out/Makefile
4884   modules/stream_out/transcode/Makefile
4885   modules/video_chroma/Makefile
4886   modules/video_filter/Makefile
4887   modules/video_filter/dynamicoverlay/Makefile
4888   modules/video_output/Makefile
4889   modules/video_output/msw/Makefile
4890   modules/visualization/Makefile
4891   modules/visualization/visual/Makefile
4892   modules/mmx/Makefile
4893   modules/mmxext/Makefile
4894   modules/3dnow/Makefile
4895   modules/sse2/Makefile
4896   modules/altivec/Makefile
4897   modules/arm_neon/Makefile
4900 dnl Generate makefiles
4901 AC_OUTPUT
4903 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4904 # not provided with the source
4905 ${SHELL} ./config.status --file=vlc-config
4906 chmod 0755 vlc-config
4908 /bin/echo -n "Enabled modules: "
4909 ./vlc-config --list plugin
4911 dnl Do we have to use make or gmake ?
4912 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4913 dnl Shortcut to nice compile message
4914 rm -f compile
4915 if test -n $SHELL; then
4916   SHELL=${CONFIG_SHELL-/bin/sh}
4918 echo '#! '$SHELL >compile
4919 echo rm -f .error\$\$ >>compile
4920 echo ERROR=0 >>compile
4921 echo export PATH=$PATH LANG=C >>compile
4922 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4923 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4924 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4925 echo rm -f .error\$\$ >>compile
4926 echo exit \$ERROR >>compile
4927 chmod a+x compile
4929 printf "
4930 libvlc configuration
4931 --------------------
4932 version               : ${VERSION}
4933 system                : ${SYS}
4934 architecture          : ${ARCH}
4935 build flavour         : "
4936 test "${enable_debug}" = "yes" && printf "debug "
4937 test "${enable_cprof}" = "yes" && printf "cprof "
4938 test "${enable_gprof}" = "yes" && printf "gprof "
4939 test "${enable_optimizations}" = "yes" && printf "optim "
4940 echo ""
4941 if test "${enable_vlc}" != "no"; then
4942 echo "vlc aliases           :${ALIASES}"
4943 else
4944 echo "build vlc executable  : no"
4946 echo "plugins/bindings      :${PLUGINS_BINDINGS}
4948 You can tune the compiler flags in vlc-config.
4949 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'.
4951 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
4952    echo ""
4953    echo "Warning: Due to a bug in ld, mmx/sse support has been"
4954    echo "         turned off."
4955    echo "         FFmpeg will be REALLY slow."
4956    echo "         VLC WILL NOT PERFORM AS EXPECTED."
4957    echo ""