Win32: make the fullscreen display really take the full screen
[vlc/solaris.git] / configure.ac
blob96ac1b0b9bd5f4a6dd49276cc2ddc940f92d4eba
1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2009 the VideoLAN team])
5 AC_INIT(vlc, 1.1.0-git)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="1"
8 VERSION_REVISION="0"
9 VERSION_EXTRA="-git"
10 PKGDIR="vlc"
11 AC_SUBST(PKGDIR)
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="Yellow Bastard"
15 COPYRIGHT_YEARS="1996-2009"
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
25 AM_INIT_AUTOMAKE(tar-ustar)
26 AM_CONFIG_HEADER(config.h)
28 # Disable with "./configure --disable-silent-rules" or "make V=1"
29 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
32 dnl Too many people are not aware of maintainer mode:
33 dnl If you want to use it, you definitely know what you are doing, so
34 dnl you can specify "--disable-maintainer-mode". But if you want the default
35 dnl automake behavior, you've likely never heard of maintainer mode, so we
36 dnl can't expect you to enable it manually.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39     [enable_maintainer_mode="yes"])
40 AM_MAINTAINER_MODE
42 dnl
43 dnl Directories
44 dnl
45 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
46 dnl AC_SUBST(vlcincludedir)
47 vlcdatadir="\${datadir}/\${PKGDIR}"
48 AC_SUBST(vlcdatadir)
49 vlclibdir="\${libdir}/\${PKGDIR}"
50 AC_SUBST(vlclibdir)
52 dnl
53 dnl  Deprecated options
54 dnl  to notify packagers that stuff has changed
55 dnl
56 AC_ARG_ENABLE(python-bindings,
57   [  --enable-python-bindings Always fails for historical reasons)],,
58   [enable_python_bindings="no"])
59 AS_IF([test "${enable_python_bindings}" != "no"], [
60   AC_MSG_ERROR([Python bindings are now built from a separate source package])
63 AC_ARG_ENABLE(java-bindings,
64   [  --enable-java-bindings  Always fails for historical reasons],,
65   [enable_java_bindings="no"])
66 AS_IF([test "${enable_java_bindings}" != "no"], [
67   AC_MSG_ERROR([Java bindings are now built from a separate source package])
70 dnl
71 dnl  Save *FLAGS
72 dnl
73 VLC_SAVE_FLAGS
75 dnl
76 dnl Check for tools
77 dnl
78 AC_PROG_CC_C99
79 AC_USE_SYSTEM_EXTENSIONS
80 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
82 AM_PROG_CC_C_O
83 AC_PROG_CXX
84 AC_PROG_CPP
85 AC_PROG_OBJC
86 _AM_DEPENDENCIES([OBJC])
87 AC_PROG_EGREP
88 AC_PROG_MAKE_SET
89 AC_PROG_INSTALL
90 AM_PROG_AS
92 dnl Find the right ranlib, even when cross-compiling
93 AC_CHECK_TOOL(RANLIB, ranlib, :)
94 AC_CHECK_TOOL(STRIP, strip, :)
95 AC_CHECK_TOOL(AR, ar, :)
96 AC_CHECK_TOOL(LD, ld, :)
97 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
99 dnl Check for compiler properties
100 AC_C_CONST
101 AC_C_INLINE
102 AC_C_RESTRICT
104 dnl Allow binary package maintainer to pass a custom string to avoid
105 dnl cache problem
106 AC_ARG_WITH(binary-version,
107         AS_HELP_STRING([--with-binary-version=STRING],
108              [To avoid plugins cache problem between binary version]),[],[])
109 AS_IF([test -n "${with_binary_version}"],[
110       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
111                          [Binary specific version])
112       ])
116 dnl  Check for the contrib directory
118 AC_ARG_WITH(contrib,
119     [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
120   AS_IF([test "${with_contrib}" != "no"],[
121     AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
122     if test -z "$CONTRIB_DIR"
123     then
124       topdir="`dirname $0`"
125       if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
126          topdir="`pwd`/$topdir"
127       fi
128       CONTRIB_DIR=${topdir}/extras/contrib
129     fi
130     AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
131   AS_IF([test -d ${CONTRIB_DIR}/lib],[
132    AS_IF([test "`grep HOST ${CONTRIB_DIR}/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
133       if test "${with_contrib}" = "yes"; then
134         AC_MSG_RESULT([no])
135         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
136       else
137         AC_MSG_RESULT([no])
138         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
139       fi
140      ],[
141     AC_MSG_RESULT([yes])
142     export PATH=${CONTRIB_DIR}/bin:$PATH
143     CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
144     CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
145     CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
146     CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
147     CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
148     CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
149     OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
150     OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
151     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
152         export PKG_CONFIG_PATH=${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
153     else
154         export PKG_CONFIG_LIBDIR=${CONTRIB_DIR}/lib/pkgconfig
155     fi
156     LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
157     LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
159     if test -z $with_mozilla_sdk_path; then
160        with_mozilla_sdk_path=${CONTRIB_DIR}/gecko-sdk
161     fi
162     if test -z $with_cyberlink_tree; then
163        with_cyberlink_tree=${CONTRIB_DIR}/src/clinkcc
164     fi
166     if test ".`uname -s`" = ".Darwin"; then
167       export LD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH
168       export DYLD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH
169     elif test ".`uname -s`" = ".BeOS"; then
170       export LIBRARY_PATH=${CONTRIB_DIR}/lib:$LIBRARY_PATH
171       export BELIBRARIES=${CONTRIB_DIR}/lib:$BELIBRARIES
172     fi
173     ])
174   ],[
175     AC_MSG_RESULT([no])
176   ])
179 dnl  Set default values
181 LDFLAGS_vlc="${LDFLAGS}"
184 dnl  Check the operating system
186 case "${host_os}" in
187   "")
188     SYS=unknown
189     ;;
190   linux*)
191     SYS=linux
192     ;;
193   bsdi*)
194     SYS=bsdi
195     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
196     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
197     ;;
198   *bsd*)
199     SYS="${host_os}"
200     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
201     case "${host_os}" in
202       freebsd*)
203         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
204         CPPFLAGS="${CPPFLAGS_save}"
205         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
206         LDFLAGS="${LDFLAGS_save}"
207         ;;
208     esac
209     ;;
210   darwin*)
211     SYS=darwin
212     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
213     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
214     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
215     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
216     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
217     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
218     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
219     VLC_ADD_LDFLAGS([libvlc],[-Wl,-undefined,dynamic_lookup])
220     VLC_ADD_LDFLAGS([avcodec avformat swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
221     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
222     VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
223     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
224     AC_ARG_ENABLE(macosx-defaults,
225       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
226     if test "x${enable_macosx_defaults}" != "xno"
227     then
228         echo ""
229         echo "Building with Mac OS X defaults:"
230         with_macosx_version_min="10.5"
231         echo "  Assuming --with-macosx-version-min=10.5"
232         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
233         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
234         build_dir=`pwd`
235         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
236         ac_default_prefix="${build_dir}/vlc_install_dir"
237         enable_macosx="yes"
238         echo "  Assuming --enable-macosx"
239         enable_faad="yes"
240         echo "  Assuming --enable-faad"
241         enable_flac="yes"
242         echo "  Assuming --enable-flac"
243         enable_theora="yes"
244         echo "  Assuming --enable-theora"
245         enable_shout="yes"
246         echo "  Assuming --enable-shout"
247         enable_cddax="yes"
248         echo "  Assuming --enable-cddax"
249         enable_vcdx="yes"
250         echo "  Assuming --enable-vcdx"
251         enable_caca="yes"
252         echo "  Assuming --enable-caca"
253         enable_ncurses="yes"
254         echo "  Assuming --enable-ncurses"
255         enable_twolame="yes"
256         echo "  Assuming --enable-twolame"
257         enable_realrtsp="yes"
258         echo "  Assuming --enable-realrtsp"
259         enable_libass="yes"
260         echo "  Assuming --enable-libass"
261         enable_asademux="yes"
262         echo "  Assuming --enable-asademux"
264         enable_skins2="no"
265         echo "  Assuming --disable-skins2"
266         enable_x11="no"
267         echo "  Assuming --disable-x11"
268         enable_xcb="no"
269         echo "  Assuming --disable-xcb"
270         enable_glx="no"
271         echo "  Assuming --disable-glx"
272         enable_xvideo="no"
273         echo "  Assuming --disable-xvideo"
274     fi
275     dnl
276     dnl  Check for Mac OS X SDK settings
277     dnl
278     AC_ARG_WITH(macosx-sdk,
279        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
280     if test "${with_macosx_sdk}" != "" ; then
281         CPP="${CPP} -isysroot ${with_macosx_sdk}"
282         CC="${CC} -isysroot ${with_macosx_sdk}"
283         CXX="${CXX} -isysroot ${with_macosx_sdk}"
284         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
285         LD="${LD} -syslibroot ${with_macosx_sdk}"
286     fi
287     AC_ARG_WITH(macosx-version-min,
288        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
289     if test "${with_macosx_version_min}" != "" ; then
290         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
291         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
292         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
293         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
294         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
295         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
296         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
297         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
298         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
299         export MACOSX_DEPLOYMENT_TARGET
300     fi
301     ;;
302   darwin9*)
303     if (test ".`uname -p`" = ".i386"); then
304         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
305         dnl without hacking it a lot, we disable mmx and sse.
306         dnl (that bug is about ld being unable to handle
307         dnl text relocation)
308         save_cflags="$CFLAGS"
309         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
310         AC_TRY_LINK(
311             [int a;], [asm("movq _a,%mm0\n");],
312             ac_ld_does_not_support_text_reloc=no,
313             ac_ld_does_not_support_text_reloc=yes)
314         CFLAGS="$save_cflags"
316         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
317             enable_mmx="no"
318             echo "  Assuming --disable-mmx (due to a bug in ld)"
319             enable_sse="no"
320             echo "  Assuming --disable-sse (due to a bug in ld)"
321         fi
322     fi
323     ;;
324   *mingw32* | *cygwin* | *wince* | *mingwce*)
325     AC_CHECK_TOOL(WINDRES, windres, :)
326     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
328     case "${host_os}" in
329       *wince* | *mingwce* | *mingw32ce*)
330         SYS=mingwce
331         dnl Sadly CeGCC still needs non-wince macros
332         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
333         ;;
334       *mingw32*)
335         SYS=mingw32
336         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
337         ;;
338       *cygwin*)
339         dnl Check if we are using the mno-cygwin mode in which case we are
340         dnl actually dealing with a mingw32 compiler.
341         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
342         AC_EGREP_CPP(yes,
343             [#ifdef WIN32
344              yes
345              #endif],
346             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
347         ;;
348     esac
350     if test "${SYS}" = "mingw32"; then
351         # add ws2_32 for closesocket, select, recv
352         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
353         VLC_ADD_LDFLAGS([vlc],[-mwindows])
354         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
355         VLC_ADD_LIBS([cdda vcdx cddax sdl_image aout_sdl vout_sdl],[-lwinmm])
356         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 http stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi],[-lws2_32])
357         VLC_ADD_LIBS([access_file], [-lshlwapi])
358         dnl
359         dnl DEP and ASLR options
360         dnl
361         AC_ARG_ENABLE(peflags,
362           [  --enable-peflags          peflags use (default enabled)])
363         if test "${enable_peflags}" != "no"
364         then
365           AC_CHECK_TOOL(PEFLAGS, peflags, :)
366         fi
367     fi
368     if test "${SYS}" = "mingwce"; then
369         # add ws2 for closesocket, select, recv
370         VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd ts telnet],[-lws2])
371         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
372    fi
373     ;;
374   *nto*)
375     SYS=nto
376     ;;
377   solaris*)
378     SYS=solaris
379     ;;
380   hpux*)
381     SYS=hpux
382     ;;
383   beos)
384     SYS=beos
385     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
386     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
387     VLC_ADD_CXXFLAGS([beos],[])
388     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
389     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
390     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
391     VLC_ADD_LIBS([access_file],[-lpoll])
392     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
393     dnl Check for BONE
394     if test -f /boot/beos/system/lib/libbind.so; then
395         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lbind -lsocket])
396     else
397         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lnet])
398     fi
400     dnl Ugly check for Zeta
401     if test -f /boot/beos/system/lib/libzeta.so; then
402         VLC_ADD_LIBS([beos],[-lzeta])
403     fi
404     ;;
405   *)
406     SYS="${host_os}"
407     ;;
408 esac
409 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
410 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
411 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
412 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
413 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
414 AM_CONDITIONAL(USE_PEFLAGS, [test "${enable_peflags}" = "yes"])
417 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
418 dnl for program foo on win32
420 case "${build_os}" in
421     cygwin|msys)
422         ac_executable_extensions=".exe"
423     ;;
424     *)
425     ;;
426 esac
429 dnl  Libtool
430 dnl  It's very bad, but our former custom system was worst
431 dnl  -- Courmisch
434 dnl override platform specific check for dependent libraries
435 dnl otherwise libtool linking of shared libraries will
436 dnl fail on anything other than pass_all.
437 AC_CACHE_VAL(lt_cv_deplibs_check_method,
438     [lt_cv_deplibs_check_method=pass_all])
440 AC_DISABLE_STATIC
441 dnl AC_DISABLE_FAST_INSTALL
442 AC_LIBTOOL_DLOPEN
443 AC_LIBTOOL_WIN32_DLL
444 m4_undefine([AC_PROG_F77])
445 m4_defun([AC_PROG_F77],[])
446 AC_PROG_LIBTOOL
448 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
449 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
451 lt_cv_deplibs_check_method=pass_all
455 dnl Gettext stuff
457 AM_GNU_GETTEXT_VERSION([0.17])
458 AM_GNU_GETTEXT([external])
459 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
462 dnl Iconv stuff
464 AM_ICONV
465 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
466 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
468 dnl Check for broken versions of mingw-runtime compatability library
469 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
470     AC_MSG_CHECKING(for broken mingw-runtime)
471     AC_PREPROC_IFELSE([
472 #include <_mingw.h>
473 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
474 # error Attempting to use mingw-runtime with broken vsnprintf support
475 #endif
476 ], [
477         AC_MSG_RESULT([ok])
478 ], [
479         AC_MSG_RESULT([present])
480         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
482     dnl force use of mingw provided c99 *printf over msvcrt
483     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
484     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
487 dnl Check for the need to include the mingwex lib for mingw32
488 if test "${SYS}" = "mingw32"
489 then
490     AC_CHECK_LIB(mingwex,opendir,
491         AC_CHECK_LIB(mingw32,opendir,,
492             [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
493     )
496 dnl Check for fnative-struct or mms-bitfields support for mingw32
497 if test "${SYS}" = "mingw32"
498 then
499     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
500         [ac_cv_c_mms_bitfields],
501         [CFLAGS="${CFLAGS_save} -mms-bitfields"
502          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
503     if test "${ac_cv_c_mms_bitfields}" != "no"; then
504         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
505         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
506     else
507         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
508             [ac_cv_c_fnative_struct],
509             [CFLAGS="${CFLAGS_save} -fnative-struct"
510              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
511         if test "${ac_cv_c_fnative_struct}" != "no"; then
512             CFLAGS_save="${CFLAGS_save} -fnative-struct";
513             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
514         fi
515     fi
517     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
520 dnl Check for fvtable-thunks support for mingw32
521 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
522 then
523 AC_LANG_PUSH(C++)
524     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
525         [ac_cv_cxx_fvtable_thunks],
526         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
527          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
528                         ac_cv_cxx_fvtable_thunks=no)])
529     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
530         CXXFLAGS_mingw32_special="-fvtable-thunks"
531     fi
533     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
534 AC_LANG_POP(C++)
538 dnl Buggy glibc prevention. Purposedly not cached.
539 dnl See sourceware.org bugs 5058 and 5443.
540 dnl Ubuntu alone has 20 bug numbers for this...
542 AC_MSG_CHECKING(for buggy GNU/libc versions)
543 AC_PREPROC_IFELSE([
544 #include <limits.h>
545 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
546   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
547 # error GNU/libc with dcgettext killer bug!
548 #endif
549 ], [
550   AC_MSG_RESULT([not present])
551 ], [
552   AC_MSG_RESULT([found])
553   AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
554     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
555 work-around for this. Check with your distribution vendor on how to update the
556 glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
557 be sure to not use LibVLC from other applications/wrappers.])
558   ], [
559     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
560   ])
563 dnl Plugin compilation stuff
565 VLC_LIBRARY_SUFFIX
567 dnl The -DSYS_FOO flag
568 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
570 dnl Check for system libs needed
571 need_libc=false
573 dnl Check for usual libc functions
574 AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r daemon fork lstat posix_fadvise posix_madvise uselocale])
575 AC_CHECK_FUNCS(fcntl)
576 AC_REPLACE_FUNCS([asprintf atof atoll getcwd getpid gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab])
577 AC_CHECK_FUNCS([stricmp strnicmp])
578 AC_CHECK_FUNCS(fdatasync,,
579   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
582 dnl Check for non-standard system calls
583 AC_CHECK_FUNCS([vmsplice eventfd fstatfs])
585 AH_BOTTOM([#include <vlc_fixups.h>])
587 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
589 dnl Check for setlocal and langinfo
590 AC_CHECK_FUNCS(setlocale)
591 AC_CHECK_HEADERS(langinfo.h)
592 AC_CHECK_FUNCS(nl_langinfo)
594 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
595   [AC_TRY_LINK([#include <langinfo.h>],
596     [char* cs = nl_langinfo(CODESET);],
597     ac_cv_langinfo_codeset=yes,
598     ac_cv_langinfo_codeset=no)
599   ])
600 if test ${ac_cv_langinfo_codeset} = yes; then
601   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
602     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
605 SOCKET_LIBS=""
606 AC_CHECK_FUNCS(connect,,[
607   AC_CHECK_LIB(socket,connect,[
608     VLC_ADD_LIBS([libvlccore cdda cddax],-lsocket)
609     SOCKET_LIBS="-lsocket"
610   ])
612 AC_SUBST(SOCKET_LIBS)
614 AC_CHECK_FUNCS(send,,[
615   AC_CHECK_LIB(socket,send,[
616     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],[-lsocket])
617   ])
621 dnl Check for socklen_t
622 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
623 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
624 ac_cv_type_socklen_t,
625 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
626 [#include <sys/types.h>
627 #ifdef WIN32
628 # include <winsock2.h>
629 # include <ws2tcpip.h>
630 #else
631 # include <sys/socket.h>
632 #endif]], [[socklen_t len; len = 0;]])],
633 ac_cv_type_socklen_t=yes,
634 ac_cv_type_socklen_t=no)])
635 AS_IF([test "$ac_cv_type_socklen_t" = no],
636  [AC_DEFINE(socklen_t, int)])
638 dnl Check for struct sockaddr_storage
639 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
640 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
641 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
642   [AC_TRY_COMPILE(
643     [#include <sys/types.h>
644      #if defined( UNDER_CE )
645      # include <winsock2.h>
646      #elif defined( WIN32 )
647      # include <winsock2.h>
648      #else
649      # include <sys/socket.h>
650      #endif], [struct sockaddr_storage addr;],
651      ac_cv_struct_sockaddr_storage=yes,
652      ac_cv_struct_sockaddr_storage=no)])
653 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
654   AC_DEFINE(sockaddr_storage, sockaddr)
655   AC_DEFINE(ss_family, sa_family)
658 dnl getaddrinfo, getnameinfo and gai_strerror check
659 dnl  -lnsl and -lsocket are needed on Solaris;
660 dnl  we purposedly make the test fail on Windows
661 LIBS_save="${LIBS}"
662 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
663 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${SOCKET_LIBS}])
665 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
666 dnl are
667 LIBS="${LIBS_gai}"
668 AC_CHECK_FUNCS([getnameinfo gai_strerror])
669 LIBS="${LIBS_save}"
671 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
672 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
673 [#include <sys/types.h>
674 #if defined( WIN32 ) || defined( UNDER_CE )
675 # if defined(UNDER_CE) && defined(sockaddr_storage)
676 #  undef sockaddr_storage
677 # endif
678 # include <winsock2.h>
679 # include <ws2tcpip.h>
680 #else
681 # include <netdb.h>
682 #endif])
684 dnl Check for va_copy
685 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
686   AC_TRY_LINK(
687     [#include <stdarg.h>],
688     [va_list ap1, ap2; va_copy(ap1,ap2);],
689     [ac_cv_c_va_copy="yes"],
690     [ac_cv_c_va_copy="no"]))
691 if test "${ac_cv_c_va_copy}" = "yes"; then
692   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
694 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
695   AC_TRY_LINK(
696     [#include <stdarg.h>],
697     [va_list ap1, ap2; __va_copy(ap1,ap2);],
698     [ac_cv_c___va_copy="yes"],
699     [ac_cv_c___va_copy="no"]))
700 if test "${ac_cv_c___va_copy}" = "yes"; then
701   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
704 AC_CHECK_FUNCS(inet_aton,,[
705   AC_CHECK_LIB(resolv,inet_aton,[
706     VLC_ADD_LIBS([libvlccore],[-lresolv])
707   ])
710 dnl Check for getopt (always use builtin one on win32)
711 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
712 need_getopt=:
713 else
714 need_getopt=false
715 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
716 [ # FreeBSD has a gnugetopt library for this:
717   AC_CHECK_LIB([gnugetopt],[getopt_long],
718     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
719      VLC_ADD_LIBS([libvlccore],[-lgnugetopt])],
720     [need_getopt=:])])
722 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
724 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
725 AC_TYPE_SIGNAL
726 AC_CHECK_LIB(m,cos,[
727   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger],[-lm])
729 AC_CHECK_LIB(m,pow,[
730   VLC_ADD_LIBS([avcodec avformat swscale postproc ffmpegaltivec i420_rgb faad twolame equalizer spatializer param_eq libvlccore freetype mod mpc dmo quicktime realaudio realvideo opengl],[-lm])
732 AC_CHECK_LIB(m,sqrt,[
733   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
735 AC_CHECK_LIB(m,ceil,[
736   VLC_ADD_LIBS([hotkeys mosaic],[-lm])
738 AC_CHECK_LIB(m,exp,[
739   VLC_ADD_LIBS([gaussianblur],[-lm])
741 AC_CHECK_LIB(m,round,[
742   VLC_ADD_LIBS([dbus],[-lm])
744 AC_CHECK_LIB(m,sqrtf,[
745   VLC_ADD_LIBS([x264],[-lm])
747 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
749 AC_CHECK_LIB(m,lrintf, [
750   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
751   VLC_ADD_LIBS([skins2],[-lm])
754 dnl Check for dynamic plugins
755 ac_cv_have_plugins=no
757 # HP-UX style
758 if test "${ac_cv_have_plugins}" = "no"; then
759   AC_CHECK_HEADERS(dl.h)
760   ac_cv_my_have_shl_load=no
761   AC_CHECK_FUNC(shl_load,
762    [ac_cv_my_have_shl_load=yes,
763     AC_CHECK_LIB(dld, shl_load,
764      [ac_cv_my_have_shl_load=yes
765       VLC_ADD_LIBS([libvlccore],[-ldld])])])
766   if test "${ac_cv_my_have_shl_load}" = "yes"; then
767     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
768     ac_cv_have_plugins=yes
769   fi
772 # Win32 style
773 if test "${ac_cv_have_plugins}" = "no"; then
774   if test "${SYS}" = "mingw32" ; then
775     AC_CHECK_LIB(kernel32, main,
776      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
777       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
778       ac_cv_have_plugins=yes])
779   fi
782 # WinCE style
783 if test "${ac_cv_have_plugins}" = "no"; then
784   if test "${SYS}" = "mingwce"; then
785     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
786     ac_cv_have_plugins=yes
787   fi
790 # BeOS style
791 if test "${ac_cv_have_plugins}" = "no"; then
792   AC_CHECK_HEADERS(image.h)
793   AC_CHECK_FUNCS(load_add_on,
794    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
795     ac_cv_have_plugins=yes])
798 # Only test for dlopen() if the others didn't work
799 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
800   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
801   ac_cv_my_have_dlopen=no
802   AC_CHECK_FUNC(dlopen,
803     ac_cv_my_have_dlopen=yes,
804     AC_CHECK_LIB(dl, dlopen,
805       ac_cv_my_have_dlopen=yes
806       VLC_ADD_LIBS([libvlccore realaudio realvideo lua],[-ldl]),
807       AC_CHECK_LIB(svld, dlopen,
808         ac_cv_my_have_dlopen=yes
809         VLC_ADD_LIBS([libvlccore],[-lsvld]))))
810   if test "${ac_cv_my_have_dlopen}" = "yes"; then
811     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
812     ac_cv_have_plugins=yes
813   fi
816 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
817 dnl Check for pthreads - borrowed from XMMS
818 THREAD_LIB=error
819 if test "${THREAD_LIB}" = "error"; then
820   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
822 if test "${THREAD_LIB}" = "error"; then
823   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
825 if test "${THREAD_LIB}" = "error"; then
826   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
828 if test "${THREAD_LIB}" = "error"; then
829   AC_CHECK_FUNCS(pthread_mutex_lock)
830   THREAD_LIB=""
833 VLC_ADD_LIBS([libvlccore libvlc plugin],[${THREAD_LIB}])
835 AC_CHECK_LIB(rt, clock_nanosleep, [
836   VLC_ADD_LIBS([libvlccore],[-lrt])
837   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
838 ], [
839   dnl HP/UX port
840   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
843 have_nanosleep=false
844 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
845   AC_CHECK_LIB(rt,nanosleep,
846     [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
847     [AC_CHECK_LIB(posix4,nanosleep,
848         [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
849   )
851 if ${have_nanosleep}; then
852   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
854 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
856 dnl Check for misc headers
857 AC_MSG_CHECKING(for strncasecmp in strings.h)
858 AC_EGREP_HEADER(strncasecmp,strings.h,[
859   AC_MSG_RESULT(yes)
860   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
861             Define if <strings.h> defines strncasecmp.)],[
862   AC_MSG_RESULT(no)])
864 dnl Check for headers
865 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
866 AC_CHECK_HEADERS(fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h sys/mount.h)
867 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
868 AC_CHECK_HEADERS([net/if.h], [], [],
869   [
870     #include <sys/types.h>
871     #include <sys/socket.h>
872   ])
873 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
874 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
875 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
876 AC_CHECK_HEADERS(syslog.h)
877 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
879 AC_HEADER_TIME
881 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
882 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
883 AC_CHECK_TYPE(ssize_t,, [
884   AC_DEFINE(ssize_t, int)
887 dnl Check for poll
888 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
889 if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
890 then
891     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])
895 dnl Check for dirent
896 need_dirent=false
897 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
898 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
900 dnl Mac OS X and other OSes don't have declaration for nanosleep
901 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
902 AC_MSG_CHECKING(for nanosleep in time.h)
903 AC_EGREP_HEADER(nanosleep,time.h,[
904   AC_MSG_RESULT(yes)
905   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
906             Define if <time.h> defines nanosleep.)
908   AC_MSG_RESULT(no)
910 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
912 dnl Make sure we have timespecs
913 AC_MSG_CHECKING(for timespec in sys/time.h)
914 AC_EGREP_HEADER(timespec,sys/time.h,[
915   AC_MSG_RESULT(yes)
916   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
917             Define if <sys/time.h> defines struct timespec.)
919   AC_MSG_RESULT(no)
922 dnl Check for threads library
923 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
924 AC_CHECK_HEADERS(pthread.h)
925 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
927 dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
928 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
929 AC_ARG_VAR(PKG_CONFIG_PATH,
930            [Paths where to find .pc not at the default location])
931 PKG_PROG_PKG_CONFIG()
934 dnl Check for zlib.h and -lz along with system -lminizip if available
935 dnl 
936 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
937 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
938 if test "${have_zlib}" = "yes"
939 then
940   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
941   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
942     AC_CHECK_HEADERS([unzip.h], [ 
943       have_minizip=yes
944       MINIZIP_LIBS="-lminizip -lz"
945     ], [
946       have_minizip=no
947       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
948       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
949     ])
950   ])
951   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
952   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
953   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
954   VLC_ADD_PLUGIN([unzip])
955   VLC_ADD_PLUGIN([zip])
957 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
960 dnl Check for dbus
961 AC_ARG_ENABLE(dbus,
962   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
963 case "${SYS}" in
964     linux*|*bsd*)
965 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
966 then
967   dnl api stable dbus
968   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
969     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
970       VLC_ADD_LIBS([screensaver libvlccore],[$DBUS_LIBS])
971       VLC_ADD_CFLAGS([screensaver libvlccore],[$DBUS_CFLAGS])
972       dnl Check for dbus control interface
973         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
974         if test "${enable_dbus_control}" != "no"
975         then
976           VLC_ADD_PLUGIN([dbus])
977           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
978           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
979         fi
980       dnl Check for Telepathy
981         AC_ARG_ENABLE(telepathy,
982           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
983         if test "${enable_telepathy}" != "no"; then
984           VLC_ADD_PLUGIN([telepathy])
985           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
986           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
987         fi
988         dnl Power Management Inhibiter
989         VLC_ADD_PLUGIN([inhibit])
990         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
991         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
992     ],
993     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
994   )
997 esac
999 dnl build the qte plugin ?
1000 NEED_QTE_MAIN=no
1002 dnl Check for ntohl, etc.
1003 AC_CACHE_CHECK([for ntohl in sys/param.h],
1004     [ac_cv_c_ntohl_sys_param_h],
1005     [CFLAGS="${CFLAGS_save} -Wall -Werror"
1006      AC_TRY_COMPILE([#include <sys/param.h>],
1007         [int meuh; ntohl(meuh);],
1008         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
1009 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
1010     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
1012 CFLAGS="${CFLAGS_save}"
1014 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])
1015 RDC_PROG_CC_FLAGS([-pipe])
1017 AC_ARG_ENABLE(warnings-as-error,
1018       AS_HELP_STRING([--enable-warnings-as-error],[Treat acceptable warnings as error (default in debug)]),, [enable_warnings_as_error="$enable_debug"])
1019 AS_IF([test "${enable_warnings_as_error}" = "yes"], [
1020     RDC_PROG_CC_WERRORFLAGS([unused-function unused-label unused-value unused-parameter unused-variable unused \
1021      missing-braces nonnull parentheses uninitialized address enum-compare undef comment switch \
1022      bad-function-cast implicit sequence-point strict-aliasing array-bounds missing-parameter-type \
1023      overflow int-to-pointer-cast pointer-to-int-cast div-by-zero overflow ignored])
1025 AC_SUBST(CFLAGS_WERROR)
1027 dnl Check for various optimization flags
1028 AC_CACHE_CHECK([if \$CC accepts -Os],
1029     [ac_cv_c_os],
1030     [CFLAGS="${CFLAGS_save} -Os"
1031      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1032 if test "${ac_cv_c_os}" != "no"; then
1033     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
1034 else
1035     AC_CACHE_CHECK([if \$CC accepts -O],
1036         [ac_cv_c_o],
1037         [CFLAGS="${CFLAGS_save} -O"
1038          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1039     if test "${ac_cv_c_o}" != "no"; then
1040         if test "${ac_cv_c_o3}" = "no"; then
1041             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1042         fi
1043     fi
1046 AC_CACHE_CHECK([if \$CC accepts -O4],
1047     [ac_cv_c_o4],
1048     [CFLAGS="${CFLAGS_save} -O4"
1049      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1050 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1051     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1052 else
1053     AC_CACHE_CHECK([if \$CC accepts -O3],
1054         [ac_cv_c_o3],
1055         [CFLAGS="${CFLAGS_save} -O3"
1056          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1057     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1058         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1059     else
1060         AC_CACHE_CHECK([if \$CC accepts -O2],
1061             [ac_cv_c_o2],
1062             [CFLAGS="${CFLAGS_save} -O2"
1063              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1064         if test "${ac_cv_c_o2}" != "no"; then
1065             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1066         else
1067             AC_CACHE_CHECK([if \$CC accepts -O],
1068                 [ac_cv_c_o],
1069                 [CFLAGS="${CFLAGS_save} -O"
1070                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1071             if test "${ac_cv_c_o}" != "no"; then
1072                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1073             fi
1074         fi
1075     fi
1078 AC_CACHE_CHECK([if \$CC accepts -O0],
1079     [ac_cv_c_o0],
1080     [CFLAGS="${CFLAGS_save} -O0"
1081      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1082 if test "${ac_cv_c_o0}" != "no"; then
1083     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1086 dnl Check for -ffast-math
1087 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1088     [ac_cv_c_fast_math],
1089     [CFLAGS="${CFLAGS_save} -ffast-math"
1090      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1091 if test "${ac_cv_c_fast_math}" != "no"; then
1092     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1095 dnl Check for -funroll-loops
1096 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1097 if test "${SYS}" != "beos"
1098 then
1099   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1100       [ac_cv_c_unroll_loops],
1101       [CFLAGS="${CFLAGS_save} -funroll-loops"
1102        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1103   if test "${ac_cv_c_unroll_loops}" != "no"; then
1104       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1105   fi
1108 dnl Check for -fomit-frame-pointer
1109 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1110     [ac_cv_c_omit_frame_pointer],
1111     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1112      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1113 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1114  if test "${SYS}" != "darwin"; then
1115     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1116  else
1117     dnl On darwin we explicitely disable it.
1118     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1119  fi
1122 dnl Check for Darwin plugin linking flags
1123 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1124     [ac_cv_ld_darwin],
1125     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1126      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1127 if test "${ac_cv_ld_darwin}" != "no"; then
1128     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1131 dnl Checks for __attribute__(aligned()) directive
1132 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1133     [ac_cv_c_attribute_aligned],
1134     [ac_cv_c_attribute_aligned=0
1135         CFLAGS="${CFLAGS_save} -Werror"
1136     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1137         AC_TRY_COMPILE([],
1138         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1139         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1140     done
1141         CFLAGS="${CFLAGS_save}"])
1142 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1143     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1144         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1147 dnl Check for __attribute__((packed))
1148 AC_CACHE_CHECK([for __attribute__((packed))],
1149   [ac_cv_c_attribute_packed],
1150   [ac_cv_c_attribute_packed=no
1151    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1152                     [ac_cv_c_attribute_packed=yes])])
1153 if test "${ac_cv_c_attribute_packed}" != "no"; then
1154   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1158 dnl  Check the CPU
1160 case "${host_cpu}" in
1161   "")
1162     ARCH=unknown
1163     ;;
1164   *)
1165     ARCH="${host_cpu}"
1166     ;;
1167 esac
1169 dnl Check for backtrace() support
1170 AC_CHECK_HEADERS(execinfo.h)
1171 AC_CHECK_FUNCS(backtrace)
1174 dnl  Enable profiling
1176 AC_ARG_ENABLE(gprof,
1177 [  --enable-gprof          gprof profiling (default disabled)])
1178 AC_ARG_ENABLE(cprof,
1179 [  --enable-cprof          cprof profiling (default disabled)])
1180 test "${enable_gprof}" != "yes" && enable_gprof="no"
1181 test "${enable_cprof}" != "yes" && enable_cprof="no"
1184 dnl  default modules
1186 dnl Video filters:
1187 VLC_ADD_PLUGIN([deinterlace])
1188 VLC_ADD_PLUGIN([yuvp])
1189 VLC_ADD_PLUGIN([invert])
1190 VLC_ADD_PLUGIN([mirror])
1191 VLC_ADD_PLUGIN([adjust])
1192 VLC_ADD_PLUGIN([transform])
1193 VLC_ADD_PLUGIN([wave])
1194 VLC_ADD_PLUGIN([ripple])
1195 VLC_ADD_PLUGIN([psychedelic])
1196 VLC_ADD_PLUGIN([gradient])
1197 VLC_ADD_PLUGIN([motionblur])
1198 VLC_ADD_PLUGIN([rv32])
1199 VLC_ADD_PLUGIN([rotate])
1200 VLC_ADD_PLUGIN([noise])
1201 VLC_ADD_PLUGIN([grain])
1202 VLC_ADD_PLUGIN([extract])
1203 VLC_ADD_PLUGIN([sharpen])
1204 VLC_ADD_PLUGIN([croppadd])
1205 VLC_ADD_PLUGIN([canvas])
1206 VLC_ADD_PLUGIN([blendbench])
1207 VLC_ADD_PLUGIN([blend])
1208 VLC_ADD_PLUGIN([scale])
1209 VLC_ADD_PLUGIN([vmem])
1210 VLC_ADD_PLUGIN([logo])
1211 VLC_ADD_PLUGIN([magnify])
1212 VLC_ADD_PLUGIN([puzzle])
1213 VLC_ADD_PLUGIN([colorthres])
1214 VLC_ADD_PLUGIN([scene])
1215 VLC_ADD_PLUGIN([yuv])
1217 ALIASES="${ALIASES} cvlc"
1220 dnl default modules that need g++
1222 AC_LANG_PUSH(C++)
1223 VLC_ADD_PLUGIN([spatializer])
1224 AC_LANG_POP(C++)
1226 if test "${SYS}" != "mingwce"; then
1227   VLC_ADD_PLUGIN([gestures])
1228   VLC_ADD_PLUGIN([rc])
1229   VLC_ADD_PLUGIN([hotkeys])
1230   VLC_ADD_PLUGIN([showintf])
1231   VLC_ADD_PLUGIN([marq])
1232   VLC_ADD_PLUGIN([podcast])
1233   VLC_ADD_PLUGIN([shout])
1234   VLC_ADD_PLUGIN([sap])
1235   VLC_ADD_PLUGIN([mediadirs])
1236   VLC_ADD_PLUGIN([fake])
1237   VLC_ADD_PLUGIN([folder])
1238   VLC_ADD_PLUGIN([rss])
1239   VLC_ADD_PLUGIN([mosaic])
1240   VLC_ADD_PLUGIN([wall])
1241   VLC_ADD_PLUGIN([motiondetect])
1242   VLC_ADD_PLUGIN([clone])
1243   VLC_ADD_PLUGIN([crop])
1244   VLC_ADD_PLUGIN([erase])
1245   VLC_ADD_PLUGIN([bluescreen])
1246   VLC_ADD_PLUGIN([alphamask])
1247   VLC_ADD_PLUGIN([gaussianblur])
1248   VLC_ADD_PLUGIN([i420_yuy2])
1249   VLC_ADD_PLUGIN([i422_yuy2])
1250   VLC_ADD_PLUGIN([i420_ymga])
1251   VLC_ADD_PLUGIN([i422_i420])
1252   VLC_ADD_PLUGIN([yuy2_i422])
1253   VLC_ADD_PLUGIN([yuy2_i420])
1254   VLC_ADD_PLUGIN([chain])
1255   VLC_ADD_PLUGIN([aout_file])
1256   VLC_ADD_PLUGIN([linear_resampler])
1257   VLC_ADD_PLUGIN([bandlimited_resampler])
1258   VLC_ADD_PLUGIN([float32_mixer])
1259   VLC_ADD_PLUGIN([spdif_mixer])
1260   VLC_ADD_PLUGIN([simple_channel_mixer])
1261   VLC_ADD_PLUGIN([dolby_surround_decoder])
1262   VLC_ADD_PLUGIN([headphone_channel_mixer])
1263   VLC_ADD_PLUGIN([normvol])
1264   VLC_ADD_PLUGIN([equalizer])
1265   VLC_ADD_PLUGIN([param_eq])
1266   VLC_ADD_PLUGIN([scaletempo])
1267   VLC_ADD_PLUGIN([a52tospdif])
1268   VLC_ADD_PLUGIN([dtstospdif])
1269   ALIASES="${ALIASES} rvlc"
1272 if test "${SYS}" = "mingwce"; then
1273   VLC_ADD_PLUGIN([chain])
1274   VLC_ADD_PLUGIN([aout_file])
1275   VLC_ADD_PLUGIN([linear_resampler])
1276   VLC_ADD_PLUGIN([bandlimited_resampler])
1277   VLC_ADD_PLUGIN([float32_mixer])
1278   VLC_ADD_PLUGIN([spdif_mixer])
1279   VLC_ADD_PLUGIN([simple_channel_mixer])
1280   VLC_ADD_PLUGIN([headphone_channel_mixer])
1281   VLC_ADD_PLUGIN([normvol])
1282   VLC_ADD_PLUGIN([a52tospdif])
1283   VLC_ADD_PLUGIN([dtstospdif])
1284   VLC_ADD_PLUGIN([i420_yuy2])
1285   VLC_ADD_PLUGIN([i422_yuy2])
1286   VLC_ADD_PLUGIN([i420_ymga])
1287   VLC_ADD_PLUGIN([i422_i420])
1288   VLC_ADD_PLUGIN([yuy2_i422])
1289   VLC_ADD_PLUGIN([yuy2_i420])
1293 dnl Some plugins aren't useful on some platforms
1295 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1296     VLC_ADD_PLUGIN([screensaver])
1297     VLC_ADD_PLUGIN([motion])
1298     VLC_ADD_PLUGIN([dynamicoverlay])
1299     VLC_ADD_PLUGIN([signals])
1300 elif test "${SYS}" != "mingwce"; then
1301     VLC_ADD_PLUGIN([ntservice])
1302     VLC_ADD_PLUGIN([access_smb])
1303     VLC_ADD_PLUGIN([dmo])
1304     VLC_ADD_PLUGIN([msn])
1305     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1306     VLC_ADD_PLUGIN([globalhotkeys])
1307 else
1308     VLC_ADD_PLUGIN([win32text])
1310 if test "${SYS}" = "darwin"; then
1311     VLC_ADD_PLUGIN([quartztext])
1312     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
1316 dnl  Accelerated modules
1318 AC_ARG_WITH(,[])
1319 AC_ARG_WITH(,[Optimization options:])
1321 dnl  Check for fully working MMX intrinsics
1322 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1323 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1324 AC_ARG_ENABLE(mmx,
1325 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1326   case "${host_cpu}" in
1327     i?86|x86_64)
1328       enable_mmx="yes"
1329       ;;
1330     *)
1331       enable_mmx="no"
1332       ;;
1333   esac
1335 AS_IF([test "${enable_mmx}" != "no"], [
1336   ARCH="${ARCH} mmx"
1338   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1339     [ac_cv_c_mmx_intrinsics],
1340     [CFLAGS="${CFLAGS_save} -O -mmmx"
1341      AC_TRY_COMPILE([#include <mmintrin.h>
1342                      #include <stdint.h>
1343                      uint64_t frobzor;],
1344                     [__m64 a, b, c;
1345                      a = b = c = (__m64)frobzor;
1346                      a = _mm_slli_pi16(a, 3);
1347                      a = _mm_adds_pi16(a, b);
1348                      c = _mm_srli_pi16(c, 8);
1349                      c = _mm_slli_pi16(c, 3);
1350                      b = _mm_adds_pi16(b, c);
1351                      a = _mm_unpacklo_pi8(a, b);
1352                      frobzor = (uint64_t)a;],
1353                     [ac_cv_c_mmx_intrinsics=yes],
1354                     [ac_cv_c_mmx_intrinsics=no])])
1355   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1356     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1357               [Define to 1 if MMX intrinsics are available.])
1358     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1359   ])
1361   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1362     [ac_cv_mmx_inline],
1363     [CFLAGS="${CFLAGS_save}"
1364      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1365                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1366   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1367     AC_DEFINE(CAN_COMPILE_MMX, 1,
1368               [Define to 1 inline MMX assembly is available.])
1369     VLC_ADD_PLUGIN([memcpymmx])
1370     VLC_ADD_PLUGIN([i420_rgb_mmx])
1371     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1372     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1373     VLC_ADD_PLUGIN([i420_ymga_mmx])
1374   ])
1376   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1377     [ac_cv_mmxext_inline],
1378     [CFLAGS="${CFLAGS_save}"
1379      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1380                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1381   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1382     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1383               [Define to 1 if MMX EXT inline assembly is available.])
1384     VLC_ADD_PLUGIN([memcpymmxext])
1385   ])
1388 dnl  Check for fully workin SSE2 intrinsics
1389 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1390 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1391 AC_ARG_ENABLE(sse,
1392 [  --disable-sse           disable SSE (1, 2, 3 and 4) optimizations (default auto)]
1393 ,, [
1394   case "${host_cpu}" in
1395     i686|x86_64)
1396       enable_sse=yes
1397       ;;
1398     *)
1399       enable_sse=no
1400       ;;
1401   esac
1403 AS_IF([test "${enable_sse}" != "no"], [
1404   ARCH="${ARCH} sse sse2"
1406   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1407     [ac_cv_c_sse2_intrinsics],
1408     [CFLAGS="${CFLAGS_save} -O -msse2"
1409      AC_TRY_COMPILE([#include <emmintrin.h>
1410                      #include <stdint.h>
1411                      uint64_t frobzor;],
1412                     [__m128i a, b, c;
1413                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1414                      a = _mm_slli_epi16(a, 3);
1415                      a = _mm_adds_epi16(a, b);
1416                      c = _mm_srli_epi16(c, 8);
1417                      c = _mm_slli_epi16(c, 3);
1418                      b = _mm_adds_epi16(b, c);
1419                      a = _mm_unpacklo_epi8(a, b);
1420                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1421                     [ac_cv_c_sse2_intrinsics=yes],
1422                     [ac_cv_c_sse2_intrinsics=no])])
1423   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1424     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1425               [Define to 1 if SSE2 intrinsics are available.])
1426     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1427   ])
1429   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1430     [ac_cv_sse_inline],
1431     [CFLAGS="${CFLAGS_save}"
1432      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1433                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1434   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1435     AC_DEFINE(CAN_COMPILE_SSE, 1,
1436               [Define to 1 if SSE inline assembly is available.])
1437   ])
1439   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1440     [ac_cv_sse2_inline],
1441     [CFLAGS="${CFLAGS_save}"
1442      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1443                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1444   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1445     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1446               [Define to 1 if SSE2 inline assembly is available.])
1447     VLC_ADD_PLUGIN([i420_rgb_sse2])
1448     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1449     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1450   ])
1452   # SSE3
1453   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly],
1454     [ac_cv_sse3_inline],
1455     [CFLAGS="${CFLAGS_save} -O -msse3"
1456      AC_TRY_COMPILE(,[void *p;asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p));],
1457                     ac_cv_sse3_inline=yes, ac_cv_sse3_inline=no)
1458      ARCH="${ARCH} sse3"
1459   ])
1460   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1461     AC_DEFINE(CAN_COMPILE_SSE3, 1,
1462               [Define to 1 if SSE3 inline assembly is available.]) ])
1463   # SSSE3
1464   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly],
1465     [ac_cv_ssse3_inline],
1466     [CFLAGS="${CFLAGS_save} -O -mssse3"
1467      AC_TRY_COMPILE(,[void *p;asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p));],
1468                     ac_cv_ssse3_inline=yes, ac_cv_ssse3_inline=no)
1469      ARCH="${ARCH} ssse3"
1470   ])
1472   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1473     AC_DEFINE(CAN_COMPILE_SSSE3, 1,
1474               [Define to 1 if SSSE3 inline assembly is available.]) ])
1476   # SSE4
1477   AC_CACHE_CHECK([if $CC groks SSE4 inline assembly],
1478     [ac_cv_sse4_inline],
1479     [CFLAGS="${CFLAGS_save} -O -msse4"
1480      AC_TRY_COMPILE(,[void *p;asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p));],
1481                     ac_cv_sse4_inline=yes, ac_cv_sse4_inline=no)
1482      ARCH="${ARCH} sse4"
1483   ])
1484   AS_IF([test "${ac_cv_sse4_inline}" != "no"], [
1485     AC_DEFINE(CAN_COMPILE_SSE4, 1,
1486               [Define to 1 if SSE4 inline assembly is available.]) ])
1489 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1490     [ac_cv_3dnow_inline],
1491     [CFLAGS="${CFLAGS_save}"
1492      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1493                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1494 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1495   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1496             [Define to 1 if 3D Now! inline assembly is available.])
1497   VLC_ADD_PLUGIN([memcpy3dn])
1501 AC_ARG_ENABLE(neon,
1502 [ --disable-neon           disable NEON optimizations (default auto)],, [
1503   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1505 AS_IF([test "${enable_neon}" != "no"], [
1506   AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1507     AC_COMPILE_IFELSE([
1508       AC_LANG_PROGRAM(,[[asm volatile("vqmovun.s64 d0, q1":::"d0");]])
1509     ], [
1510       ac_cv_neon_inline="yes"
1511     ], [
1512       ac_cv_neon_inline="no"
1513     ])
1514   ])
1516 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" = "yes"])
1518 AC_ARG_ENABLE(altivec,
1519 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1520   AS_IF([test "${host_cpu}" = "powerpc"],
1521         [enable_altivec=yes], [enable_altivec=no])
1523 AS_IF([test "${enable_altivec}" = "yes"], [
1524   ARCH="${ARCH} altivec";
1525   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1526     [ac_cv_altivec_inline],
1527     [CFLAGS="${CFLAGS_save}"
1528      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1529          ac_cv_altivec_inline="yes",
1530          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1531           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1532             [ac_cv_altivec_inline="-Wa,-m7400"],
1533             ac_cv_altivec_inline=no)
1534          ])])
1535   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1536     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1537               [Define to 1 if AltiVec inline assembly is available.])
1538     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1539       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1540       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1541       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1542       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1543       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1544     ])
1545     VLC_ADD_PLUGIN([memcpyaltivec])
1546     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1547   ])
1549 dnl The AltiVec C extensions
1551 dnl There are several possible cases:
1552 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1553 dnl                      need <altivec.h>
1554 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1555 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1556 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1557 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1558 dnl - Others: test should fail
1559   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1560   [ac_cv_c_altivec],
1561   [# OS X/PPC test (gcc 4.x)
1562    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1563    AC_TRY_COMPILE([vector unsigned char foo;],
1564      [vec_ld(0, (unsigned char *)0);],
1565      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1566      [# OS X/PPC test (gcc 3.x)
1567       CFLAGS="${CFLAGS_save} -faltivec"
1568       AC_TRY_COMPILE([vector unsigned char foo;],
1569         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1570         [ac_cv_c_altivec="-faltivec"],
1571         dnl Below this are the Linux tests
1572         [# Linux/PPC test (gcc 4.x)
1573          CFLAGS="${CFLAGS_save} -maltivec"
1574          AC_TRY_COMPILE([#include <altivec.h>],
1575            [vec_ld(0, (unsigned char *)0);],
1576            [ac_cv_c_altivec="-maltivec"],
1577            [# Linux/PPC test (gcc 3.3)
1578             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1579             AC_TRY_COMPILE([#include <altivec.h>],
1580               [vec_ld(0, (unsigned char *)0);],
1581               [ac_cv_c_altivec=""
1582                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1583               [# Linux/PPC test (gcc 3.3)
1584                CFLAGS="${CFLAGS_save} -fvec"
1585                AC_TRY_COMPILE([#include <altivec.h>],
1586                  [vec_ld(0, (unsigned char *)0);],
1587                  [ac_cv_c_altivec="-fvec"],
1588                  [ac_cv_c_altivec=no])
1589               ])
1590            ])
1591         ])
1592      ])
1593    CFLAGS="${CFLAGS_save}"
1594   ])
1595   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1596     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1597   ])
1599   AC_CHECK_HEADERS(altivec.h)
1600   CPPFLAGS="${CPPFLAGS_save}"
1602   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1603     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1604               [Define to 1 if C AltiVec extensions are available.])
1605     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1606     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1607     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1608     VLC_ADD_PLUGIN([memcpyaltivec])
1609     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1610   ])
1612   AC_CACHE_CHECK([if linker needs -framework vecLib],
1613     [ac_cv_ld_altivec],
1614     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1615      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1616      LDFLAGS="${LDFLAGS_save}"
1617     ])
1618   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1619     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1620   ])
1624 dnl  Special arch tuning
1626 AC_ARG_WITH(tuning,
1627 [  --with-tuning=ARCH      enable special tuning for an architecture
1628                           (default Pentium 2 on IA-32 and G4 on PPC)])
1629 if test -n "${with_tuning}"; then
1630     if test "${with_tuning}" != "no"; then
1631         CFLAGS_TUNING="-mtune=${with_tuning}"
1632     fi
1633 else
1634     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1635         CFLAGS_TUNING="-march=prescott -mtune=generic"
1636     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1637         CFLAGS_TUNING="-mtune=pentium2"
1638     elif test "${host_cpu}" = "x86_64"; then
1639         CFLAGS_TUNING="-mtune=athlon64"
1640     elif test "${host_cpu}" = "powerpc"; then
1641         CFLAGS_TUNING="-mtune=G4";
1642     fi
1645 dnl NOTE: this can't be cached cleanly
1646 AS_IF([test "${CFLAGS_TUNING}"],
1647    [CFLAGS_save="${CFLAGS}"
1648     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1650     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1651     AC_COMPILE_IFELSE([ ],
1652                       [tuning="yes"],
1653                       [CFLAGS_TUNING=""; tuning="no"
1654                        AS_IF([test "${with_tuning}"],
1655                              [AC_MSG_ERROR([requested tuning not supported])])])
1657     AC_MSG_RESULT([$tuning])
1658     CFLAGS="${CFLAGS_save}"
1662 dnl  Memory usage
1664 AC_ARG_ENABLE(optimize-memory,
1665 [  --enable-optimize-memory optimize memory usage over performance])
1666 if test "${enable_optimize_memory}" = "yes"; then
1667   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1671 dnl  Enable/disable optimizations
1673 AC_ARG_ENABLE(optimizations,
1674 [  --disable-optimizations disable compiler optimizations (default enabled)])
1675 if test "${enable_optimizations}" != "no"; then
1676    if test "${enable_optimize_memory}" = "yes"; then
1677       enable_optimizations="size"
1678    else
1679       enable_optimizations="speed"
1680    fi
1684 dnl  Debugging mode
1686 AC_ARG_ENABLE(debug,
1687 [  --enable-debug          debug mode (default disabled)])
1688 test "${enable_debug}" != "yes" && enable_debug="no"
1689 AH_TEMPLATE(NDEBUG,
1690             [Define to 1 if debug code should NOT be compiled])
1691 AS_IF([test "x${enable_debug}" = "xno"], [
1692   AC_DEFINE(NDEBUG)
1693 ], [
1694   AC_CHECK_HEADERS([valgrind/valgrind.h])
1698 dnl Allow runing as root (usefull for people runing on embedded platforms)
1700 AC_ARG_ENABLE(run-as-root,
1701 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1702 AS_IF([test "${enable_run_as_root}" = "yes"],[
1703     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1704               [Define to 1 to allow runing VLC as root (uid 0).])
1708 dnl  Test coverage
1710 AC_ARG_ENABLE(coverage,
1711         [  --enable-coverage       build for test coverage (default disabled)],,
1712         [enable_coverage="no"])
1713 AS_IF([test "${enable_coverage}" != "no"], [
1714         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1715         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1716         LDFLAGS="-lgcov ${LDFLAGS}"
1717         dnl ugly...
1718         CFLAGS_save="${CFLAGS}"
1719         CXXFLAGS_save="${CXXFLAGS}"
1720         LDFLAGS_save="${LDFLAGS}"
1724 dnl  Enable release-specific flags
1726 AC_ARG_ENABLE(release,
1727 [  --enable-release        activate extra optimizations (default disabled)])
1728 test "${enable_release}" != "yes" && enable_release="no"
1731 dnl Stream output
1733 AC_ARG_ENABLE(sout,
1734   [  --enable-sout           Stream output modules (default enabled)])
1735 AS_IF([test "${enable_sout}" != "no"], [
1736   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1738 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1740 dnl Lua modules
1741 AC_ARG_ENABLE(lua,
1742   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1743                   plugins (default enabled)]))
1744 if test "${enable_lua}" != "no"
1745 then
1746   PKG_CHECK_MODULES(LUA, lua5.1,
1747     [ have_lua=yes ],
1748     [
1749     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1750     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1751       [ have_lua=yes ],
1752       [
1753         have_lua=yes
1754         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1755           [],
1756           [ have_lua=no ] )
1757         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1758           [LUA_LIBS="-llua5.1"],
1759           AC_CHECK_LIB( lua51 , luaL_newstate,
1760             [LUA_LIBS="-llua51"],
1761             AC_CHECK_LIB( lua , luaL_newstate,
1762               [LUA_LIBS="-llua"],
1763               [ have_lua=no
1764                 AS_IF([test "x${enable_lua}" = "xyes"],
1765                   [AC_MSG_ERROR([lua >= 5.1 not found!])],
1766                   [AC_MSG_WARN([lua >= 5.1 not found!])])
1767               ], [-lm])
1768           )
1769         )
1770       ])
1771     ])
1772   if test "x${have_lua}" = "xyes" ;  then
1773      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1774      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1775   fi
1777 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1780 dnl HTTP daemon
1782 AC_ARG_ENABLE(httpd,
1783   [  --enable-httpd          HTTP daemon (default enabled)])
1784 if test "${enable_httpd}" != "no"
1785 then
1786   VLC_ADD_PLUGIN([http])
1787   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1789 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1792 dnl libproxy support
1794 AC_ARG_ENABLE(libproxy,
1795   [  --enable-libproxy       libproxy support (default auto)])
1796 AS_IF([test "${enable_libproxy}" != "no"], [
1797   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1798     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1799     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1800     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1801   ], [
1802     AS_IF([test "x${enable_libproxy}" != "x"], [
1803       AC_MSG_ERROR([libproxy could not be found on your system])
1804     ])
1805   ])
1810 dnl VideoLAN manager
1812 AC_ARG_ENABLE(vlm,
1813   [  --enable-vlm            VideoLAN manager (default enabled)],,
1814   [enable_vlm="${enable_sout}"])
1815 AS_IF([test "${enable_vlm}" != "no"], [
1816   AS_IF([test "${enable_sout}" = "no"], [
1817     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1818   ])
1819   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1820   VLC_ADD_PLUGIN([telnet])
1822 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1825 dnl Growl notification plugin
1827 AC_ARG_ENABLE(growl,
1828   [  --enable-growl          growl notification plugin (default disabled)],,
1829   [enable_growl=no])
1830 AS_IF([test "${enable_growl}" != "no"], [
1831     VLC_ADD_PLUGIN([growl_udp])
1832     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1833       VLC_ADD_PLUGIN([growl])
1834       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1835     ])
1836   ]
1840 dnl Libnotify notification plugin
1842 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1845 dnl Audioscrobbler plugin
1848 AC_ARG_ENABLE(audioscrobbler,
1849   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1850 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1851         VLC_ADD_PLUGIN([audioscrobbler])
1852   ])
1855 dnl Taglibplugin
1857 AC_ARG_ENABLE(taglib,
1858   [  --disable-taglib        Taglib support (default enabled) ])
1859   AS_IF([test "${enable_taglib}" != "no"],[
1860     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1861       [ VLC_ADD_PLUGIN([taglib])
1862         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1863        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1864       [AC_MSG_WARN(TagLib library not found)])
1865   ])
1868 dnl  Input plugins
1871 AC_ARG_WITH(,[Input plugins:])
1873 dnl  live555 input
1875 if test "${enable_livedotcom}"
1876 then
1877   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1879 if test "${enable_livedotcom}" = "no"
1880 then
1881   enable_live555="no"
1884 AC_ARG_ENABLE(live555,
1885 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1886 if test "${enable_live555}" != "no"; then
1887   AC_ARG_WITH(live555-tree,
1888     [    --with-live555-tree=PATH live.com tree for static linking])
1890   dnl
1891   dnl test for --with-live555-tree
1892   dnl
1893   if test "${with_livedotcom_tree}"
1894   then
1895     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1896   with_live555_tree="${with_livedotcom_tree}"
1897   fi
1899   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1900     AC_LANG_PUSH(C++)
1901     CPPFLAGS_save="${CPPFLAGS}"
1902     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1903     if test "${SYS}" = "solaris"; then
1904       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1905     fi
1906     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1908     AC_CHECK_HEADERS(liveMedia_version.hh, [
1909       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1910       AC_EGREP_CPP(yes,
1911         [#include <liveMedia_version.hh>
1912          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1913          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1914          yes
1915          #endif
1916          #endif],
1917         [AC_MSG_RESULT([no])
1918          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1919 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1920       ],[
1921          AC_MSG_RESULT([yes])
1922          ])
1923     ])
1924      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1925      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1926       if test "${SYS}" = "mingw32"; then
1927         # add ws2_32 for closesocket, select, recv
1928         other_libs="$other_libs -lws2_32"
1929       fi
1930     dnl We need to check for pic because live555 don't provide shared libs
1931     dnl and we want to build a plugins so we need -fPIC on some arch.
1932     AC_CHECK_HEADERS(liveMedia.hh, [
1933       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1934         AC_CHECK_LIB(liveMedia_pic, main, [
1935           VLC_ADD_PLUGIN([live555])
1936          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1937          ],[
1938         AC_CHECK_LIB(liveMedia, main, [
1939           VLC_ADD_PLUGIN([live555])
1940           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1941         ],[],[${other_libs}]) ],[${other_libs_pic}])
1942     ],[
1943        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1944     ])
1945     CPPFLAGS="${CPPFLAGS_save}"
1946     AC_LANG_POP(C++)
1947   else
1948     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1949     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1950     if test -z "${real_live555_tree}"; then
1951       dnl  The given directory can't be found
1952       AC_MSG_RESULT(no)
1953       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1954     fi
1955     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1956       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1958       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1959         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1960         AC_EGREP_CPP(yes,
1961           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1962            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1963            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1964            yes
1965            #endif
1966            #endif],
1967           [AC_MSG_RESULT([no])
1968            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1969 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1970         ],[
1971            AC_MSG_RESULT([yes])
1972            ])
1973       ])
1975       VLC_ADD_PLUGIN([live555])
1977       if test "${SYS}" = "mingw32"; then
1978         # add ws2_32 for closesocket, select, recv
1979         VLC_ADD_LIBS([live555],[-lws2_32])
1980       fi
1982       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1983       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1984       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1985       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1987       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1988       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1989       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1990       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1991       if test "${SYS}" = "solaris"; then
1992         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1993       fi
1994     else
1995       dnl  The given live555 wasn't built
1996         AC_MSG_RESULT(no)
1997       if test "${enable_live555}" = "yes"; then
1998         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1999       fi        
2000     fi
2001   fi
2005 dnl - special access module for dc1394 input
2006 dnl - dv module: digital video module check for libraw1394
2008 PKG_ENABLE_MODULES_VLC([dc1394], [], [libraw1394 >= 2.0.1 libdc1394 >= 1.0.0], [dc1394 access module], [auto])
2009 PKG_ENABLE_MODULES_VLC([dv], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
2012 dnl dvdread module: check for libdvdread
2014 AC_ARG_ENABLE(dvdread,
2015 [  --enable-dvdread        dvdread input module (default disabled)])
2016 if test "${enable_dvdread}" != "no"
2017 then
2018   AC_ARG_WITH(dvdread,
2019   [    --with-dvdread=PATH   libdvdread headers and libraries])
2020   AC_ARG_WITH(dvdread-tree,
2021   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2023   dnl Temporary hack (yeah, sure ;)
2024   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2025       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2026   fi
2028   if test -z "${with_dvdread}"
2029   then
2030     if test -z "${with_dvdread_tree}"
2031     then
2032       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2033         [ VLC_ADD_PLUGIN([dvdread])
2034           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2035         ],[
2036           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2037             [ VLC_ADD_PLUGIN([dvdread])
2038               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2039             ],[
2040               if test -n "${enable_dvdread}"
2041               then
2042               AC_MSG_ERROR([cannot find libdvdread headers])
2043              fi
2044            ])
2045         ])
2046     else
2047       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2048       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2049       if test -z "${real_dvdread_tree}"
2050       then
2051         dnl  The given directory can't be found
2052         AC_MSG_RESULT(no)
2053         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2054       fi
2055       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2056       then
2057         dnl  Use a custom libdvdread
2058         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2059         VLC_ADD_PLUGIN([dvdread])
2060         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2061         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2062       else
2063         dnl  The given libdvdread wasn't built
2064         AC_MSG_RESULT(no)
2065         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2066       fi
2067     fi
2068   else
2069     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2070     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2071     then
2072       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2073       AC_MSG_RESULT(yes)
2074       VLC_ADD_PLUGIN([dvdread])
2075       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2076       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2077     else
2078       dnl  No libdvdread could be found, sorry
2079       AC_MSG_RESULT(no)
2080       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2081     fi
2082   fi
2086 dnl  libdvdnav plugin
2088 AC_ARG_ENABLE(dvdnav,
2089   [  --enable-dvdnav         dvdnav input module (default enabled)])
2090 if test "${enable_dvdnav}" != "no"
2091 then
2092   dnl Same hack than dvdread
2093   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2094       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2095   fi
2097   DVDNAV_PATH="${PATH}"
2098   AC_ARG_WITH(dvdnav-config-path,
2099     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2100     [ if test "${with_dvdnav_config_path}" != "no"
2101       then
2102         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2103       fi ])
2104   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2105   if test "${DVDNAV_CONFIG}" != "no"
2106   then
2107     VLC_ADD_PLUGIN([dvdnav])
2108     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2109     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2110   fi
2114 dnl  Windows DirectShow access module
2116 AC_ARG_ENABLE(dshow,
2117   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2118 if test "${enable_dshow}" != "no"
2119 then
2120   if test "${SYS}" = "mingw32"
2121   then
2122     AC_LANG_PUSH(C++)
2123       AC_CHECK_HEADERS(dshow.h,
2124       [ VLC_ADD_PLUGIN([dshow])
2125         VLC_ADD_CXXFLAGS([dshow],[])
2126         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2127     AC_LANG_POP(C++)
2128   fi
2132 dnl  Windows DirectShow BDA access module
2134 AC_ARG_ENABLE(bda,
2135   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2136                   enabled on Win32)]))
2137 if test "${enable_bda}" != "no"
2138 then
2139   if test "${SYS}" = "mingw32"
2140   then
2141       AC_CHECK_HEADERS(dshow.h,
2142       [ VLC_ADD_PLUGIN([bda])
2143         VLC_ADD_CXXFLAGS([bda],[])
2144         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2145   fi
2150 dnl  OpenCV wrapper and example filters
2152 AC_ARG_ENABLE(opencv,
2153   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2154 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2155 then
2156   AC_ARG_WITH(opencv-tree,
2157   [    --with-opencv-tree=PATH opencv tree for linking])
2158     if test "${SYS}" = "mingw32"
2159     then
2160       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2161       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2162       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2163         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2164       then
2165         AC_MSG_RESULT(yes)
2166         VLC_ADD_PLUGIN([opencv_wrapper])
2167         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2168         VLC_ADD_CFLAGS([opencv_wrapper],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
2169         AC_LANG_PUSH(C++)
2170         VLC_ADD_PLUGIN([opencv_example])
2171         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2172         VLC_ADD_CXXFLAGS([opencv_example],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
2173         AC_LANG_POP(C++)
2174       else
2175         dnl  No opencv could be found, sorry
2176         AC_MSG_RESULT(no)
2177         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2178       fi
2179     else
2180       PKG_CHECK_MODULES(OPENCV, opencv,
2181         [
2182           VLC_ADD_PLUGIN([opencv_example])
2183           VLC_ADD_PLUGIN([opencv_wrapper])
2184           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2185           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2186           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2187         ],
2188         [AC_MSG_ERROR([libopencv not found!])]
2189       )
2190     fi
2195 dnl  libsmbclient plugin
2197 AC_ARG_ENABLE(smb,
2198   [  --enable-smb            smb input module (default enabled)])
2199 if test "${enable_smb}" != "no"; then
2200   AC_CHECK_HEADERS(libsmbclient.h,
2201     [ VLC_ADD_PLUGIN([access_smb])
2202       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2203     [ if test -n "${enable_smb}"; then
2204         AC_MSG_ERROR([cannot find libsmbclient headers])
2205      fi ])
2209 dnl  libdvbpsi ts demux/mux
2211 AC_ARG_ENABLE(dvbpsi,
2212   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2213 have_dvbpsi=no
2214 if test "${enable_dvbpsi}" != "no"
2215 then
2216   AC_ARG_WITH(dvbpsi,
2217   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2218   AC_ARG_WITH(dvbpsi,
2219   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2220   case "${with_dvbpsi}" in
2221   ""|yes)
2222     if test -z "${with_dvbpsi_tree}"
2223     then
2224       AC_CHECK_HEADERS(dvbpsi/dr.h,
2225         [ VLC_ADD_PLUGIN([ts])
2226           if test "${enable_sout}" != "no"; then
2227             VLC_ADD_PLUGIN([mux_ts])
2228           fi
2229           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2230           have_dvbpsi=yes],
2231         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2232         [#if defined( HAVE_STDINT_H )
2233 #   include <stdint.h>
2234 #elif defined( HAVE_INTTYPES_H )
2235 #   include <inttypes.h>
2236 #endif
2237 #include <dvbpsi/dvbpsi.h>
2238 #include <dvbpsi/descriptor.h>
2239 #include <dvbpsi/pat.h>
2240 #include <dvbpsi/pmt.h>])
2241     else
2242       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2243       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2244       if test -z "${real_dvbpsi_tree}"
2245       then
2246         dnl  The given directory can't be found
2247         AC_MSG_RESULT(no)
2248         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2249       fi
2250       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2251       then
2252         dnl  Use a custom libdvbpsi
2253         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2254         VLC_ADD_PLUGIN([ts])
2255         if test "${enable_sout}" != "no"; then
2256           VLC_ADD_PLUGIN([mux_ts])
2257         fi
2258         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2259         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2260         have_dvbpsi=yes
2261       else
2262         dnl  The given libdvbpsi wasn't built
2263         AC_MSG_RESULT(no)
2264         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2265       fi
2266     fi
2267   ;;
2268   no)
2269     dnl  Compile without dvbpsi
2270   ;;
2271   *)
2272     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2273     if test -z "${with_dvbpsi}"
2274     then
2275       LDFLAGS_test=""
2276       CPPFLAGS_test=""
2277     else
2278       LDFLAGS_test="-L${with_dvbpsi}/lib"
2279       CPPFLAGS_test="-I${with_dvbpsi}/include"
2280     fi
2281     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2282     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2283       VLC_ADD_PLUGIN([ts])
2284       if test "${enable_sout}" != "no"; then
2285         VLC_ADD_PLUGIN([mux_ts])
2286       fi
2287       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2288       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2289       have_dvbpsi=yes
2290     ],[
2291       if test -n "${enable_dvbpsi}"
2292       then
2293         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.1])
2294       fi
2295     ],
2296     [#if defined( HAVE_STDINT_H )
2297 #   include <stdint.h>
2298 #elif defined( HAVE_INTTYPES_H )
2299 #   include <inttypes.h>
2300 #endif
2301 #include <dvbpsi/dvbpsi.h>
2302 #include <dvbpsi/descriptor.h>
2303 #include <dvbpsi/pat.h>
2304 #include <dvbpsi/pmt.h>])
2305     CPPFLAGS="${CPPFLAGS_save}"
2306   ;;
2307   esac
2308   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2309     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2310   ], [], [${LIBS_ts}])
2315 dnl  Video4Linux plugin
2317 AC_ARG_ENABLE(v4l,
2318   [  --enable-v4l            Video4Linux input support (default disabled)])
2319 if test "${enable_v4l}" = "yes"
2320 then
2321   AC_ARG_WITH(v4l,
2322     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2323   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2324   then
2325     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2326   fi
2328   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2329   AC_CHECK_HEADERS(linux/videodev.h, [
2330     VLC_ADD_PLUGIN([v4l])
2331   ],[])
2332   CPPFLAGS="${CPPFLAGS_save}"
2336 dnl  Video4Linux2 plugin
2338 AC_ARG_ENABLE(v4l2,
2339   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2340 if test "${enable_v4l2}" != "no"
2341 then
2342   AC_ARG_WITH(v4l2,
2343     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2344   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2345   then
2346     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2347   fi
2349   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2350   AC_CHECK_HEADERS(linux/videodev2.h, [
2351     VLC_ADD_PLUGIN([v4l2])
2352   ],[])
2353   CPPFLAGS="${CPPFLAGS_save}"
2357 dnl libv4l2 support for video4linux.
2359 AC_ARG_ENABLE( libv4l2,
2360   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2361 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2362 then
2363     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2364       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2365       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2366       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2367       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2368     )
2372 dnl  special access module for Hauppauge PVR cards
2374 AC_ARG_ENABLE(pvr,
2375   [  --enable-pvr            PVR cards access module (default disabled)])
2376 if test "${enable_pvr}" = "yes"
2377 then
2378   VLC_ADD_PLUGIN([pvr])
2379   AC_ARG_WITH(videodev2,
2380     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2381   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2382   then
2383     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2384   fi
2386   AC_CACHE_CHECK([for new linux/videodev2.h],
2387       [ac_cv_new_linux_videodev2_h],
2388       [AC_TRY_COMPILE([
2389           #include <sys/types.h>
2390           #   ifdef VIDEODEV2_H_FILE
2391           #   include VIDEODEV2_H_FILE
2392           #   else
2393           #   include <linux/videodev2.h>
2394           #   endif
2395           ],
2396           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2397           ac_cv_new_linux_videodev2_h=yes,
2398           ac_cv_new_linux_videodev2_h=no)])
2399   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2400     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2401   fi
2405 dnl  gnomeVFS access module
2407 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2410 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2411 AC_ARG_ENABLE(libcdio,
2412   [  --enable-libcdio        CD input and control library support (default enabled)])
2414 AC_ARG_ENABLE(vcdinfo,
2415   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2417 have_libcdio=no
2418 have_libvcdinfo=no
2419 if test "${enable_libcdio}" != "no"
2420 then
2421   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2422      have_libcdio=yes
2423      AC_DEFINE(HAVE_LIBCDIO, 1,
2424      [Define if you have libcdio 0.78.2 or greater installed]),
2425      [AC_MSG_WARN(CD Reading and information library not found)])
2427   if test "${enable_vcdinfo}" != "no"
2428   then
2429     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2430        [have_libvcdinfo=yes],
2431        [AC_MSG_WARN(VCD information library not found)])
2432   fi
2436 dnl  VCDX and CDDAX modules
2438 AC_ARG_ENABLE(cddax,
2439   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2440                   via libcdio (default disabled)]))
2442 AC_ARG_ENABLE(libcddb,
2443   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2445 if test "${enable_cddax}" = "yes"
2446 then
2447   if test "$have_libcdio" = "yes"
2448   then
2449     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2450     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2451     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2452     VLC_ADD_PLUGIN([cddax])
2453     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2454     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2455     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2456   else
2457     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2458     HAVE_CDDAX=no
2459   fi
2461   if test "$enable_libcddb" != "no"; then
2462     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2463       HAVE_LIBCDDB=yes
2464       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2465       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2466       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2467       ],
2468       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2469       HAVE_LIBCDDB=no])
2470   fi
2474 AC_ARG_ENABLE(vcdx,
2475   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2477 if test "${enable_vcdx}" = "yes"
2478 then
2479   if test "${have_libvcdinfo}" = "yes"
2480   then
2481     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2482     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2483   else
2484     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2485     HAVE_VCDX=no
2486   fi
2488   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2489    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2490     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2491     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2492     HAVE_VCDX=no])
2494   if test "$have_libvcdinfo" = "yes"
2495   then
2496     AC_DEFINE(HAVE_VCDX, 1,
2497     [Define for the VCD plugin using libcdio/libvcdinfo])
2498     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2499     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2500     VLC_ADD_PLUGIN([vcdx])
2501   else
2502     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2503     HAVE_VCDX=no
2504   fi
2508 dnl  Built-in CD-DA and VCD module
2510 AC_ARG_ENABLE(cdda,
2511   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2513 AC_ARG_ENABLE(vcd,
2514   [  --enable-vcd            built-in VCD (default enabled)])
2516 if test "${enable_vcd}" != "no"
2517 then
2518   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2519   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2520     AC_MSG_RESULT(yes)
2521     VLC_ADD_PLUGIN([vcd])
2522     VLC_ADD_PLUGIN([cdda])
2523   ],[
2524     AC_MSG_RESULT(no)
2525   ])
2527   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2528   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2529     AC_MSG_RESULT(yes)
2530     VLC_ADD_PLUGIN([vcd])
2531     VLC_ADD_PLUGIN([cdda])
2532     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2533   ],[
2534     AC_MSG_RESULT(no)
2535   ])
2537   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2538   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2539     AC_MSG_RESULT(yes)
2540     VLC_ADD_PLUGIN([vcd])
2541     VLC_ADD_PLUGIN([cdda])
2542     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2543   ],[
2544     AC_MSG_RESULT(no)
2545   ])
2547   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2548   then
2549     VLC_ADD_PLUGIN([vcd])
2550     VLC_ADD_PLUGIN([cdda])
2551   fi
2553   if test "${SYS}" = "darwin"
2554   then
2555     VLC_ADD_PLUGIN([vcd])
2556     VLC_ADD_PLUGIN([cdda])
2557     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2558     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2559   fi
2561   if test "$enable_libcddb" != "no"; then
2562     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2563       HAVE_LIBCDDB=yes
2564       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2565       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2566       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2567       ],:
2568       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2569       HAVE_LIBCDDB=no])
2570   fi
2574 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2576 AC_ARG_ENABLE(dvb,
2577   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2579 if test "${enable_dvb}" != "no"
2580 then
2581     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2582     AC_ARG_WITH(dvb,
2583      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2584      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2585      then
2586        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2587      fi
2588      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2589      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2590      VLC_ADD_PLUGIN([dvb])
2591      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2592      CPPFLAGS="${CPPFLAGS_save}"
2593    ],[
2594      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2595     ])
2599 dnl  Screen capture module
2601 AC_ARG_ENABLE(screen,
2602   [  --enable-screen         Screen capture support (default enabled)])
2603 if test "${enable_screen}" != "no"; then
2604   if test "${SYS}" = "darwin"; then
2605     AC_CHECK_HEADERS(OpenGL/gl.h, [
2606       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2607         VLC_ADD_PLUGIN([screen])
2608         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2609       ])
2610     ])
2611   elif test "${SYS}" = "mingw32"; then
2612     VLC_ADD_PLUGIN([screen])
2613     VLC_ADD_LIBS([screen],[-lgdi32])
2614   elif test "${SYS}" = "mingwce"; then
2615     CPPFLAGS="${CPPFLAGS_save}"
2616   elif test "${SYS}" = "beos"; then
2617     VLC_ADD_PLUGIN([screen])
2618     VLC_ADD_CXXFLAGS([screen],[])
2619     VLC_ADD_LIBS([screen],[-lbe])
2620   fi
2624 dnl  ipv6 plugin - not for QNX yet
2626 have_ipv6=no
2627 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2628   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2631 AS_IF([test "${have_ipv6}" = "yes"], [
2632   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2635 AC_CHECK_FUNCS(inet_ntop,[
2636   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2640 dnl  ogg demux plugin
2642 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2643 if test "${enable_sout}" != "no"; then
2644     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2647 if test "${enable_sout}" != "no"; then
2648 dnl Check for libshout
2649 PKG_ENABLE_MODULES_VLC([shout], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2653 dnl  matroska demux plugin
2655 AC_ARG_ENABLE(mkv,
2656   [  --enable-mkv            Matroska demux support (default enabled)])
2657 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2658   AC_LANG_PUSH(C++)
2659   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2660     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2661     AC_EGREP_CPP(yes,
2662       [#include <ebml/EbmlVersion.h>
2663        #ifdef LIBEBML_VERSION
2664        #if LIBEBML_VERSION >= 0x000706
2665        yes
2666        #endif
2667        #endif],
2668       [AC_MSG_RESULT([yes])
2669         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2670           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2671           AC_EGREP_CPP(yes,
2672             [#include <matroska/KaxVersion.h>
2673              #ifdef LIBMATROSKA_VERSION
2674              #if LIBMATROSKA_VERSION >= 0x000705
2675              yes
2676              #endif
2677              #endif],
2678             [AC_MSG_RESULT([yes])
2679               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2680               VLC_ADD_CXXFLAGS([mkv],[])
2681               if test "${SYS}" = "darwin"; then
2682                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2683               fi
2684               AC_CHECK_LIB(ebml_pic, main, [
2685                 VLC_ADD_PLUGIN([mkv])
2686                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2687               ],
2688                 AC_CHECK_LIB(ebml, main, [
2689                   VLC_ADD_PLUGIN([mkv])
2690                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2691                 ])
2692               )
2693             ],
2694             [AC_MSG_RESULT([no])
2695               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.])
2696           ])
2697         ])
2698       ],
2699       [AC_MSG_RESULT([no])
2700         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.])
2701     ])
2702   ])
2703   AC_LANG_POP(C++)
2707 dnl  modplug demux plugin
2709 AC_ARG_ENABLE(mod,
2710   [  --enable-mod            Mod demux support (default enabled)])
2711 if test "${enable_mod}" != "no"
2712 then
2713   AC_ARG_WITH(mod-tree,
2714   [    --with-mod-tree=PATH mod tree for static linking])
2715   if test -n "${with_mod_tree}"
2716   then
2717     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2718     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2719     if test -z "${real_mod_tree}"
2720     then
2721       dnl  The given directory can't be found
2722       AC_MSG_RESULT(no)
2723       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2724     fi
2725     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2726     then
2727       dnl  Use a custom mod
2728       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2729       VLC_ADD_PLUGIN([mod])
2730       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2731       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2732     else
2733       dnl  The given mod wasn't built
2734       AC_MSG_RESULT(no)
2735       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2736     fi
2737   else
2738     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2739       VLC_ADD_PLUGIN([mod])
2740       VLC_ADD_CXXFLAGS([mod],[])
2741       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2742   fi
2746 dnl  mpc demux plugin
2748 AC_ARG_ENABLE(mpc,
2749   [  --enable-mpc            Mpc demux support (default enabled)])
2750 if test "${enable_mpc}" != "no"
2751 then
2752   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2753     VLC_ADD_PLUGIN([mpc])
2754     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2755     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2756     VLC_ADD_PLUGIN([mpc])
2757     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2761 dnl  game music emu demux plugin
2763 AC_ARG_ENABLE(gme,
2764   [  --enable-gme            Game Music Emu demux support (default enabled)])
2765 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2766 then
2767   AC_LANG_PUSH(C++)
2768   AC_ARG_WITH(gme-tree,
2769   [    --with-gme-tree=PATH gme tree for static linking])
2770   if test -n "${with_gme_tree}"
2771   then
2772     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2773     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2774     if test -z "${real_gme_tree}"
2775     then
2776       dnl  The given directory can't be found
2777       AC_MSG_RESULT(no)
2778       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2779     fi
2780     if test -f "${real_gme_tree}/gme/libgme.a"
2781     then
2782       dnl  Use a custom gme
2783       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2784       VLC_ADD_PLUGIN([gme])
2785       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2786       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2787     else
2788       dnl  The given gme wasn't built
2789       AC_MSG_RESULT(no)
2790       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2791     fi
2792   else
2793       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2794   fi
2795   AC_LANG_POP(C++)
2799 dnl  Codec plugins
2802 AC_ARG_WITH(,[Codec plugins:])
2805 dnl wmafixed plugin
2807 AC_ARG_ENABLE(wma-fixed,
2808   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2809 if test "${enable_wma_fixed}" = "yes"
2810 then
2811   VLC_ADD_PLUGIN([wma_fixed])
2815 dnl shine fixed point mp3 encoder
2817 AC_ARG_ENABLE(shine,
2818   [  --enable-shine          shine mp3 encoding module (default disabled)])
2819 if test "${enable_shine}" = "yes"
2820 then
2821   VLC_ADD_PLUGIN([shine])
2825 dnl  mad plugin
2827 AC_ARG_ENABLE(mad,
2828   [  --enable-mad            libmad module (default enabled)])
2829 if test "${enable_mad}" != "no"
2830 then
2831   AC_ARG_WITH(mad,
2832     [    --with-mad=PATH       path to libmad],[],[])
2833   if test "${with_mad}" != "no" -a -n "${with_mad}"
2834   then
2835     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2836     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2837   fi
2839   AC_ARG_WITH(mad-tree,
2840     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2841   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2842   then
2843     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2844     if test -z "${real_mad_tree}"
2845     then
2846       dnl  The given directory can't be found
2847       AC_MSG_RESULT(no)
2848       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2849     fi
2850     dnl  Use a custom libmad
2851     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2852     if test -f ${real_mad_tree}/mad.h
2853     then
2854       AC_MSG_RESULT(yes)
2855       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2856       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2857       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2858       AC_CHECK_LIB(mad, mad_bit_init, [
2859         VLC_ADD_PLUGIN([mpgatofixed32])
2860         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2861         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2862       ],[])
2863       LDFLAGS="${LDFLAGS_save}"
2864     else
2865       AC_MSG_RESULT(no)
2866       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2867     fi
2868   else
2869     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2870     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2871     AC_CHECK_HEADERS(mad.h, ,
2872       [ 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.]) ])
2873     AC_CHECK_LIB(mad, mad_bit_init, [
2874       VLC_ADD_PLUGIN([mpgatofixed32])
2875       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2876       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2877     CPPFLAGS="${CPPFLAGS_save}"
2878     LDFLAGS="${LDFLAGS_save}"
2879   fi
2883 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2885 AC_ARG_ENABLE( id3tag,
2886 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2887 AS_IF([test "${enable_id3tag}" = "yes"], [
2888   AC_CHECK_HEADERS(id3tag.h, [
2889       AS_IF([test "${have_zlib}" = "yes"],[
2890           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2891           VLC_ADD_PLUGIN([id3tag])
2892        ])
2893     ])
2896 AC_ARG_ENABLE(merge-ffmpeg,
2897 [  --enable-merged-ffmpeg  merge FFmpeg-based plugins (default disabled)],, [
2898   enable_merge_ffmpeg="no"
2900 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2903 dnl  avcodec decoder/encoder plugin
2906 if test "${with_ffmpeg_tree}"
2907 then
2908   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2911 AC_ARG_ENABLE(avcodec,
2912 [  --enable-avcodec        libavcodec codec (default enabled)])
2913 if test "${enable_avcodec}" != "no"
2914 then
2915   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2916     [
2917       VLC_SAVE_FLAGS
2918       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2919       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2920       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2921       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2922       VLC_ADD_PLUGIN([avcodec])
2923       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2924       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2925       VLC_RESTORE_FLAGS
2926       have_avcodec="yes"
2927     ],[
2928       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2929   ])
2933 dnl stream_out switcher needs libavcodec
2935 AC_ARG_ENABLE(switcher,
2936   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2937 AS_IF([test "${enable_switcher}" = "yes"], [
2938   AS_IF([test "x${have_avcodec}" = "xyes"], [
2939     VLC_ADD_PLUGIN([stream_out_switcher])
2940     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2941     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2942   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2943   ])
2948 dnl  avformat demuxer/muxer plugin
2951 AC_ARG_ENABLE(avformat,
2952 [  --enable-avformat       libavformat containers (default enabled)])
2953 if test "${enable_avformat}" != "no"
2954 then
2955   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2956     [
2957       VLC_SAVE_FLAGS
2958       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2959       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2960       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2961       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2962       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2963         VLC_ADD_PLUGIN([avformat])
2964         VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2965         VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2966       ], [
2967         VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2968         VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2969       ])
2970       VLC_RESTORE_FLAGS
2971     ],[
2972       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2973   ])
2977 dnl  swscale image scaling and conversion plugin
2980 AC_ARG_ENABLE(swscale,
2981   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2982                   (default enabled)]))
2983 if test "${enable_swscale}" != "no"
2984 then
2985   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2986     [
2987       VLC_SAVE_FLAGS
2988       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2989       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2990       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2991       VLC_ADD_PLUGIN([swscale])
2992       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2993       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2994       VLC_RESTORE_FLAGS
2995     ],[
2996       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.])
2997   ])
3001 dnl  postproc plugin
3004 AC_ARG_ENABLE(postproc,
3005 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3006 if test "${enable_postproc}" != "no"
3007 then
3008   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3009     [
3010       VLC_SAVE_FLAGS
3011       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3012       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3013       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3014       VLC_ADD_PLUGIN([postproc])
3015       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
3016       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
3017       VLC_RESTORE_FLAGS
3018     ],[
3019       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
3020   ])
3024 dnl  faad decoder plugin
3026 AC_ARG_ENABLE(faad,
3027 [  --enable-faad           faad codec (default disabled)])
3028 if test "${enable_faad}" = "yes"
3029 then
3030   AC_ARG_WITH(faad-tree,
3031   [    --with-faad-tree=PATH faad tree for static linking])
3032   if test -n "${with_faad_tree}"
3033   then
3034     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3035     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3036     if test -z "${real_faad_tree}"
3037     then
3038       dnl  The given directory can't be found
3039       AC_MSG_RESULT(no)
3040       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3041     fi
3042     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3043     then
3044       dnl  Use a custom faad
3045       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3046       VLC_ADD_PLUGIN([faad])
3047       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3048       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3049     else
3050       dnl  The given libfaad wasn't built
3051       AC_MSG_RESULT(no)
3052       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3053     fi
3054   else
3055     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3056     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3057     AC_CHECK_HEADERS(faad.h, ,
3058       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3059     AC_CHECK_LIB(faad, faacDecOpen, [
3060       VLC_ADD_PLUGIN([faad])
3061       VLC_ADD_LIBS([faad],[-lfaad]) ],
3062       AC_CHECK_LIB(faad, NeAACDecOpen, [
3063         VLC_ADD_PLUGIN([faad])
3064         VLC_ADD_LIBS([faad],[-lfaad]) ],
3065         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3066     LDFLAGS="${LDFLAGS_save}"
3067     CPPFLAGS="${CPPFLAGS_save}"
3068   fi
3072 dnl twolame encoder plugin
3074 PKG_ENABLE_MODULES_VLC([twolame], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
3077 dnl  QuickTime plugin
3079 AC_ARG_ENABLE(quicktime,
3080   [  --enable-quicktime      QuickTime module (deprecated)])
3081 if test "${enable_quicktime}" = "yes"; then
3082   if test "${SYS}" = "mingw32"; then
3083     VLC_ADD_PLUGIN([quicktime])
3084   else
3085   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3086     [ VLC_ADD_PLUGIN([quicktime])
3087       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3088     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3089   fi
3093 dnl  Real plugin
3095 AC_ARG_ENABLE(real,
3096   [  --enable-real           Real media module (default disabled)])
3097 if test "${enable_real}" = "yes"; then
3098   VLC_ADD_PLUGIN([realaudio])
3099   VLC_ADD_PLUGIN([realvideo])
3103 dnl  Real RTSP plugin
3105 AC_ARG_ENABLE(realrtsp,
3106   [  --enable-realrtsp       Real RTSP module (default disabled)])
3107 if test "${enable_realrtsp}" = "yes"; then
3108   VLC_ADD_PLUGIN([access_realrtsp])
3111 AC_ARG_ENABLE(libsysfs,
3112   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3114 AS_IF([test "${enable_libsysfs}" != "no"],[
3115   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3116     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3117   ] )
3121 dnl skins2 module
3123 AC_ARG_ENABLE(libtar,
3124   [  --enable-libtar         libtar support for skins2 (default enabled)])
3126 AS_IF([test "${enable_libtar}" != "no"],[
3127   AC_CHECK_HEADERS(libtar.h, [
3128     VLC_ADD_LIBS([skins2],[-ltar])
3129   ] )
3133 dnl A52/AC3 decoder plugin
3135 AC_ARG_ENABLE(a52,
3136   [  --enable-a52            A/52 support with liba52 (default enabled)])
3137 if test "${enable_a52}" != "no"
3138 then
3139   AC_ARG_WITH(a52,
3140     [    --with-a52=PATH       a52 headers and libraries])
3141   AC_ARG_WITH(a52-tree,
3142     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3143   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3144   then
3145     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3146     if test -z "${real_a52_tree}"
3147     then
3148       dnl  The given directory can't be found
3149       AC_MSG_RESULT(no)
3150       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3151     fi
3152     dnl  Use a custom a52dec
3153     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3154     if test -f ${real_a52_tree}/include/a52.h
3155     then
3156       AC_MSG_RESULT(yes)
3157       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3158       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3159       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3160       AC_CHECK_LIB(a52, a52_free, [
3161         VLC_ADD_PLUGIN([a52tofloat32])
3162         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3163         VLC_ADD_LIBS([a52tofloat32],[-la52])
3164         ],[
3165         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3166         then
3167           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3168         else
3169           AC_MSG_ERROR([the specified tree hasn't been compiled])
3170         fi
3171       ])
3172       LDFLAGS="${LDFLAGS_save}"
3173     else
3174       AC_MSG_RESULT(no)
3175       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3176     fi
3177   else
3178     if test -z "${with_a52}"
3179     then
3180       LDFLAGS_test=""
3181       CPPFLAGS_test=""
3182     else
3183       LDFLAGS_test="-L${with_a52}/lib"
3184       CPPFLAGS_test="-I${with_a52}/include"
3185     fi
3186     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3187     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3188     AC_CHECK_HEADERS(a52dec/a52.h, [
3189       AC_CHECK_LIB(a52, a52_free, [
3190         VLC_ADD_PLUGIN([a52tofloat32])
3191         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3192         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3193       ],[
3194         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.])
3195         ])
3196     ],[
3197       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.])
3198     ])
3199     CPPFLAGS="${CPPFLAGS_save}"
3200     LDFLAGS="${LDFLAGS_save}"
3201   fi
3204 AC_ARG_WITH(a52-fixed,
3205       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3206       [
3207         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3210 dnl DTS Coherent Acoustics decoder plugin
3212 AS_IF([test "x${enable_dts}" != "x"], [
3213   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3215 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3218 dnl  Flac plugin
3220 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3223 dnl  Libmpeg2 plugin
3225 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3228 dnl  Vorbis plugin
3230 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3233 dnl  Tremor plugin
3235 AC_ARG_ENABLE(tremor,
3236   [  --enable-tremor         Tremor decoder support (default disabled)])
3237 if test "${enable_tremor}" = "yes"
3238 then
3239   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3240     VLC_ADD_PLUGIN([tremor])
3241     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3242    ],[])
3246 dnl  Speex plugin
3248 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3251 dnl  tarkin decoder plugin
3253 AC_ARG_ENABLE(tarkin,
3254 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3255 if test "${enable_tarkin}" = "yes"
3256 then
3257   AC_ARG_WITH(tarkin-tree,
3258   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3259   if test -n "${with_tarkin_tree}"
3260   then
3261     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3262     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3263     if test -f "${real_tarkin_tree}/tarkin.o"
3264     then
3265       VLC_ADD_PLUGIN([tarkin])
3266       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3267       VLC_ADD_LIBS([tarkin],[${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg])
3268       AC_MSG_RESULT(yes)
3269     else
3270       dnl  The given tarkin tree wasn't built
3271       AC_MSG_RESULT(no)
3272       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3273                     make sure you compiled tarkin in ${with_tarkin_tree}])
3274     fi
3275   fi
3279 dnl  theora decoder plugin
3281 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3284 dnl  dirac encoder plugin
3286 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3289 dnl  schroedinger decoder plugin (for dirac format video)
3291 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3294 dnl  PNG decoder module
3296 AC_ARG_ENABLE(png,
3297   [  --enable-png            PNG support (default enabled)])
3298 if test "${enable_png}" != "no"; then
3299 AC_CHECK_HEADERS(png.h, [
3300   LDFLAGS="${LDFLAGS_save} -lz"
3301   AC_CHECK_LIB(png, png_set_rows, [
3302     VLC_ADD_LIBS([png],[-lpng -lz])
3303     VLC_ADD_PLUGIN([png])
3304     VLC_ADD_PLUGIN([osdmenu])
3305     VLC_ADD_PLUGIN([osd_parser])],
3306     [],[-lz])
3307     LDFLAGS="${LDFLAGS_save}"
3308   ])
3310 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3313 dnl H264 encoder plugin (using libx264)
3315 AC_ARG_ENABLE(x264,
3316   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3317 if test "${enable_x264}" != "no"; then
3318   AC_ARG_WITH(x264-tree,
3319     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3320   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3321   then
3322     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3323     if test -z "${real_x264_tree}"
3324     then
3325       dnl  The given directory can't be found
3326       AC_MSG_RESULT(no)
3327       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3328     fi
3329     dnl  Use a custom libx264
3330     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3331     if test -f ${real_x264_tree}/x264.h
3332     then
3333       AC_MSG_RESULT(yes)
3334       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3335       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3336       PKG_CHECK_MODULES(X264,x264, [
3337         VLC_ADD_PLUGIN([x264])
3338         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3339         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3340         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3341           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3342         fi
3343       ],[
3344         AC_MSG_ERROR([the specified tree hasn't been compiled])
3345       ])
3346       LDFLAGS="${LDFLAGS_save}"
3347     else
3348       AC_MSG_RESULT(no)
3349       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3350     fi
3351   else
3352       PKG_CHECK_MODULES(X264,x264 >= 0.76, [
3353         VLC_ADD_PLUGIN([x264])
3354         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3356         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3357           [ac_cv_ld_bsymbolic],
3358           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3359             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3360             LDFLAGS="${LDFLAGS_save}"
3361           ])
3362         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3363           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3364         ])
3366         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3367         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3368           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3369         fi
3370       ],[
3371         if test "${enable_x264}" = "yes"; then
3372             AC_MSG_ERROR([Could not find libx264 >= 0.76 on your system: you may get it from http://www.videolan.org/x264.html])
3373           fi
3374       ])
3375     LDFLAGS="${LDFLAGS_save}"
3376   fi
3380 dnl libfluidsynth (MIDI synthetizer) plugin
3382 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3385 dnl Teletext Modules
3386 dnl vbi decoder plugin (using libzbvi)
3387 dnl telx module
3388 dnl uncompatible
3390 AC_ARG_ENABLE(zvbi,
3391   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3392                   libzvbi (default enabled)]))
3393 AC_ARG_ENABLE(telx,
3394   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3395                   zvbi) (default enabled if zvbi is absent)]))
3397 AS_IF( [test "${enable_zvbi}" != "no"],[
3398     PKG_CHECK_MODULES(ZVBI,
3399         zvbi-0.2 >= 0.2.25,
3400         [
3401           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3402           if test "${SYS}" = "mingw32"; then
3403               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3404           fi
3405           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3406           VLC_ADD_PLUGIN([zvbi])
3407           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3408           AS_IF( [test "${enable_telx}" = "yes"],[
3409                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3410                                Using zvbi.])
3411                   ])
3412         ],[
3413           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3414         ])
3415     ])
3416 AS_IF( [test "${enable_telx}" != "no" ],[
3417   VLC_ADD_PLUGIN([telx])
3418   ])
3421 dnl libass subtitle rendering module
3423 AC_ARG_ENABLE(libass,
3424   [  --enable-libass         Subtitle support using libass (default disabled)])
3425 AS_IF( [test "${enable_libass}" = "yes"], [
3426   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3427       [
3428         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3429         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3430         VLC_ADD_PLUGIN([libass])
3432         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3433           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3434         if test "${SYS}" = "mingw32"; then
3435            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz])
3436         else
3437            VLC_ADD_LIBS([libass],[-lfontconfig])
3438         fi
3439        ])
3440       ],[
3441         AC_MSG_WARN([LIBASS library not found])
3442       ])
3443   ])
3446 dnl asa demuxer
3448 AC_ARG_ENABLE(asademux,
3449   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3450 AS_IF( [test "${enable_asademux}" = "yes"], [
3451   PKG_CHECK_MODULES(PCRE,
3452       libpcre >= 6.5,
3453       [
3454         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3455         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3456         if test "${SYS}" = "mingw32"; then
3457             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3458         fi
3459         VLC_ADD_PLUGIN([asademux])
3460       ],[
3461         AC_MSG_WARN([PCRE library not found (required for asademux)])
3462       ])
3463   ])
3466 dnl  CMML plugin
3468 AC_ARG_ENABLE(cmml,
3469   [  --enable-cmml           CMML support (default enabled)])
3470 if test "${enable_cmml}" != "no"
3471 then
3472   VLC_ADD_PLUGIN([cmml])
3476 dnl  kate decoder plugin
3478 AC_ARG_ENABLE(kate,
3479 [  --enable-kate           kate codec (default enabled)])
3480 AS_IF([test "${enable_kate}" != "no"], [
3481   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3482       VLC_ADD_PLUGIN([kate])
3483       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3484       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3485         AC_CHECK_HEADERS(kate/kate.h, [
3486           AC_CHECK_LIB(kate, kate_decode_init, [
3487             VLC_ADD_PLUGIN([kate])
3488             kate_libs="-lkate -logg"
3489             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3490             AS_IF([test "x${enable_kate}" != "x"], [
3491               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3492               You also need to check that you have a libogg posterior to the 1.0 release.])
3493             ])
3494           ], [-lkate -logg])
3495         ],[
3496           AS_IF([test "x${enable_kate}" != "x"], [
3497             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3498             You also need to check that you have a libogg posterior to the 1.0 release.])
3499           ])
3500         ])
3501   ])
3506 dnl  tiger decoder plugin
3508 PKG_ENABLE_MODULES_VLC([TIGER], [], [tiger >= 0.3.1], [Tiger rendering library for Kate streams],[auto])
3512 dnl  Video plugins
3515 AC_ARG_WITH(,[Video plugins:])
3518 dnl  Xlib
3521 AC_PATH_XTRA()
3522 AC_ARG_ENABLE(x11,
3523   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3524   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3525     enable_x11="yes"
3526   ], [
3527     enable_x11="no"
3528   ])
3531 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3533 AS_IF([test "${enable_x11}" != "no"], [
3534   AC_CHECK_HEADERS(X11/Xlib.h)
3536 dnl Check for DPMS
3537   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3538     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3539     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3540       AC_MSG_RESULT(yes)
3541       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3542                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3543     ],[
3544       AC_MSG_RESULT(no)
3545     ])
3546   ],,[
3547     #include <X11/Xlib.h>
3548   ])
3552 dnl  GLX module
3553 dnl  (enabled by default except on win32)
3555 AC_ARG_ENABLE(glx,
3556   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3557   enable_glx="$enable_x11"
3559 AS_IF([test "${enable_glx}" != "no"], [
3560   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3561   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3562     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3563     choke me
3564     #endif]]),
3565     [
3566       VLC_ADD_PLUGIN([glx])
3567       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3568       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3569     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3573 dnl  XVMC module
3574 dnl  (disabled by default except on win32)
3576 AC_ARG_ENABLE(xvmc,
3577   [  --enable-xvmc           XvMC support (default disabled)],, [
3578   enable_xvmc="no"
3580 AS_IF([test "${enable_xvmc}" != "no"], [
3581   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3582     AS_IF([test "${enable_libmpeg2}" = "yes"], [
3583       VLC_ADD_PLUGIN([xvmc])
3584       VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3585       VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3586     ], [
3587       AC_MSG_ERROR([XVideo-MotionCompensation needs libmpeg2 which isn't available])
3588     ])
3589   ], [
3590     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3591   ])
3594 dnl End of Xlib tests
3595 CPPFLAGS="${CPPFLAGS_save}"
3599 dnl  X C Bindings modules
3601 AC_ARG_ENABLE(xcb,
3602   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3603   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3604     enable_xcb="yes"
3605   ], [
3606     enable_xcb="no"
3607   ])
3609 AC_ARG_ENABLE(xvideo,
3610   [  --enable-xvideo         XVideo support (default enabled)],, [
3611     enable_xvideo="$enable_xcb"
3614 AS_IF([test "${enable_xcb}" != "no"], [
3615   PKG_CHECK_MODULES(XPROTO, [xproto])
3617   dnl libxcb
3618   PKG_CHECK_MODULES(XCB, [xcb])
3619   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3620   VLC_ADD_PLUGIN([xcb_x11])
3621   VLC_ADD_PLUGIN([xcb_screen])
3622   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3624   AS_IF([test "${enable_xvideo}" != "no"], [
3625     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3626       VLC_ADD_PLUGIN([xcb_xv])
3627     ], [
3628       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3629         VLC_ADD_PLUGIN([xcb_xv])
3630         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3631       ])
3632     ])
3633   ])
3635   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3636     VLC_ADD_PLUGIN([panoramix])
3637     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3638     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3639   ], [true])
3641   dnl xcb-utils
3642   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4],
3643     [true],
3644     [PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
3645     VLC_ADD_CFLAGS([globalhotkeys], [-DXCB_KEYSYM_OLD_API])]
3646   )
3648   VLC_ADD_PLUGIN([xcb_window])
3649   VLC_ADD_PLUGIN([globalhotkeys])
3650   VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
3651   VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
3656 dnl  OpenGL module
3657 dnl  (enabled by default except on beos)
3659 AC_ARG_ENABLE(opengl,
3660   [  --enable-opengl         OpenGL support (default enabled)])
3661 if test "${enable_opengl}" != "no" &&
3662    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3663   if test "${SYS}" != "darwin"; then
3664     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3665       VLC_ADD_PLUGIN([opengl])
3666       if test "${SYS}" != "mingw32"; then
3667         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3668       else
3669         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3670       fi
3671     ])
3672   else
3673     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3674     VLC_ADD_PLUGIN([opengl])
3675     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3676   fi
3680 dnl  SDL module
3682 AC_ARG_ENABLE(sdl,
3683   [  --enable-sdl            SDL support (default enabled)])
3684 AC_ARG_ENABLE(sdl-image,
3685   [  --enable-sdl-image      SDL image support (default enabled)])
3686 if test "${enable_sdl}" != "no"
3687 then
3688   SDL_PATH="${PATH}"
3689   AC_ARG_WITH(sdl-config-path,
3690     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3691     [ if test "${with_sdl_config_path}" != "no"
3692       then
3693         SDL_PATH="${with_sdl_config_path}:${PATH}"
3694       fi ])
3695   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3696   SDL_HEADER="SDL/SDL.h"
3697   SDL_IMAGE="SDL/SDL_image.h"
3699   if test "${SDL_CONFIG}" != "no";  then
3700      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3701         # SDL on Darwin is heavily patched and can only run SDL_image
3702         if test "${SYS}" != "darwin"; then
3703           VLC_ADD_PLUGIN([vout_sdl])
3704           VLC_ADD_PLUGIN([aout_sdl])
3705         fi
3706         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3707         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3709         # SDL_image
3710         AS_IF([ test "${enable_sdl_image}" != "no"],[
3711           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3712             VLC_ADD_PLUGIN([sdl_image])
3713             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3714             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3715             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3716             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3717             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3718       You should install it alongside your SDL package.])
3719             ])
3720         ])
3721      ],[
3722        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3723                     Alternatively you can also configure with --disable-sdl.])
3724      ])
3725   else if test "${enable_sdl}" =  "yes"; then
3726     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3727 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3728     ])
3729       fi
3730   fi
3734 dnl  freetype module
3736 AC_ARG_ENABLE(freetype,
3737   [  --enable-freetype       freetype support (default enabled)])
3738 AC_ARG_ENABLE(fribidi,
3739   [  --enable-fribidi        fribidi support (default enabled)])
3740 AC_ARG_ENABLE(fontconfig,
3741   [  --enable-fontconfig,    fontconfig support (default enabled)])
3742 if test "${enable_freetype}" != "no"
3743 then
3744    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3745       VLC_ADD_PLUGIN([freetype])
3746       have_freetype=yes
3747       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3748       if test "${SYS}" = "mingw32"; then
3749         VLC_ADD_LIBS([freetype],[-liconv -lz])
3750       fi
3751       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3752       if test "${enable_fontconfig}" != "no"
3753       then
3754         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3755           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3756            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3757         AC_CHECK_HEADERS(Carbon/Carbon.h,
3758           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3759       fi
3761      dnl fribidi support
3762       if test "${enable_fribidi}" != "no"
3763       then
3764         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3765           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3766           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3767         ])
3768       fi
3770   ],[
3771   have_freetype=no
3772   AS_IF([ test "${enable_freetype}" =  "yes"],[
3773     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3774 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3775       ])
3776     ])
3777   ])
3782 dnl  libxml2 module
3784 PKG_ENABLE_MODULES_VLC([libxml2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3787 dnl  SVG module
3789 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3792 dnl Snapshot vout module (with cache)
3794 AC_ARG_ENABLE(snapshot,
3795   [  --enable-snapshot       snapshot module (default disabled)])
3796 if test "${enable_snapshot}" = "yes"
3797 then
3798   VLC_ADD_PLUGIN([snapshot])
3802 dnl  Qt Embedded module
3803 dnl  (disabled by default)
3805 AC_ARG_ENABLE(qte,
3806   [  --enable-qte            QT Embedded support (default disabled)])
3807 if test "${enable_qte}" = "yes"
3808 then
3809   AC_ARG_WITH(qte,
3810   [    --with-qte=PATH       Qt Embedded headers and libraries])
3811   if test "${with_qte}" != "no" -a -n "${with_qte}"
3812   then
3813     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3814     VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3815   else
3816     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3817     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3818   fi
3819   VLC_ADD_PLUGIN([qte])
3820   NEED_QTE_MAIN=yes
3821   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3822   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3823     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3824   ] )
3825   CPPFLAGS="${CPPFLAGS_save}"
3829 dnl Roku HD1000 Video output module
3831 AC_ARG_ENABLE(hd1000v,
3832   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3833 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3834   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3835    test "${enable_hd1000v}" = "yes"); then
3836   AC_LANG_PUSH([C++])
3837   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3838   [
3839     can_build_roku="yes"
3840   ],
3841   [
3842     can_build_roku="no"
3843     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3844   ])
3845   if test "$can_build_roku" = "yes"
3846   then
3847     VLC_ADD_PLUGIN([hd1000v])
3848     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3849   fi
3850   AC_LANG_POP([C++])
3854 dnl  Windows DirectX module
3857 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3858 then
3859   VLC_ADD_PLUGIN([panoramix])
3862 AC_ARG_ENABLE(directx,
3863   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3864 if test "${enable_directx}" != "no"
3865 then
3866   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3867   then
3868       AC_CHECK_HEADERS(ddraw.h,
3869       [ VLC_ADD_PLUGIN([directx])
3870         VLC_ADD_PLUGIN([aout_directx])
3871         VLC_ADD_LIBS([directx],[-lgdi32])
3872       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3873       )
3874       AC_CHECK_HEADERS(GL/gl.h,
3875       [ VLC_ADD_PLUGIN([glwin32])
3876         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3877       ])
3878       AC_CHECK_HEADERS(d3d9.h,
3879       [ VLC_ADD_PLUGIN([direct3d])
3880         VLC_ADD_LIBS([direct3d],[-lgdi32])
3881       ])
3882       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3883   fi
3887 dnl  win32 GDI plugin
3889 AC_ARG_ENABLE(wingdi,
3890   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3891 if test "${enable_wingdi}" != "no"; then
3892   if test "${SYS}" = "mingw32"; then
3893     VLC_ADD_PLUGIN([wingdi])
3894     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3895   fi
3896   if test "${SYS}" = "mingwce"; then
3897     VLC_ADD_PLUGIN([wingdi])
3898     VLC_ADD_PLUGIN([wingapi])
3899     VLC_ADD_LIBS([wingdi],[-laygshell])
3900     VLC_ADD_LIBS([wingapi],[-laygshell])
3901   fi
3906 dnl  Linux framebuffer module
3908 AC_ARG_ENABLE(fb,
3909   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3910     if test "${enable_fb}" != "no"
3911     then
3912       AC_CHECK_HEADERS(linux/fb.h, [
3913         VLC_ADD_PLUGIN([fb])
3914       ])
3915     fi
3918 dnl  Linux MGA module
3920 AC_ARG_ENABLE(mga,
3921   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3922   [ if test "${enable_mga}" = "yes"
3923     then
3924       VLC_ADD_PLUGIN([mga])
3925     fi ])
3928 dnl  OMAP Framebuffer module
3930 AC_ARG_ENABLE(omapfb,
3931   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3932     if test "${enable_omapfb}" = "yes"
3933     then
3934       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3935         VLC_ADD_PLUGIN([omapfb])
3936         AC_CHECK_HEADERS(X11/Xlib.h, [
3937           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
3938       ])
3939     fi
3942 dnl  SVGAlib module
3944 AC_ARG_ENABLE(svgalib,
3945   [  --enable-svgalib        SVGAlib support (default disabled)])
3946 if test "${enable_svgalib}" = "yes"
3947 then
3948   VLC_ADD_PLUGIN([svgalib])
3949   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3953 dnl  DirectFB module
3954 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3955 dnl  TODO: support for static linking
3957 AC_ARG_ENABLE(directfb,
3958   [  --enable-directfb       DirectFB support (default disabled)])
3959 AC_ARG_WITH(directfb,
3960   [    --with-directfb=PATH  path to DirectFB headers and libraries])
3962 if test "${enable_directfb}" = "yes"; then
3963     have_directfb="false"
3964     CPPFLAGS_mydirectfb=
3965     LIBS_mydirectfb=
3966     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3967         dnl Trying the given location
3968         CPPFLAGS_save="${CPPFLAGS}"
3969         LIBS_save="${LIBS}"
3971         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3972         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3973         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3975         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3976         LIBS="${LIBS} ${LIBS_new}"
3978         dnl FIXME: too obscure
3979         AC_CHECK_HEADER([directfb.h], [
3980             AC_CHECK_LIB([direct],[direct_initialize], [
3981                 AC_CHECK_LIB([fusion], [fusion_enter], [
3982                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3983                 ], have_directfb="false")
3984             ], have_directfb="false")
3985         ], have_directfb="false")
3987         dnl Restore flags
3988         CPPFLAGS="${CPPFLAGS_save}"
3989         LIBS="${LIBS_save}"
3991         if test "${have_directfb}" = "true"; then
3992             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
3993             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3994         fi
3995     else
3996         dnl Look for directfb-config
3997         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3998         if test "${DIRECTFB_CONFIG}" != "no"; then
3999             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4000             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4001             have_directfb="true"
4002         else
4003             dnl Trying with pkg-config
4004             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4005                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4006                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4007                 have_directfb="true"
4008                 ], [have_directfb="false"])
4009         fi
4010     fi
4011     if test "${have_directfb}" = "true"; then
4012         VLC_ADD_PLUGIN([directfb])
4013         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4014         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4015     else
4016         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4017     fi
4023 dnl  GGI module
4025 AC_ARG_ENABLE(ggi,
4026   [  --enable-ggi            GGI support (default disabled)])
4027 if test "${enable_ggi}" = "yes"
4028 then
4029   AC_CHECK_HEADER([ggi/ggi.h],[
4030     VLC_ADD_PLUGIN([ggi])
4031     VLC_ADD_LIBS([ggi],[-lggi])
4032     AC_ARG_WITH(ggi,
4033       [    --with-ggi=PATH       path to libggi],
4034       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4035         then
4036           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4037           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4038         fi ])
4039     ],[
4040        AC_MSG_ERROR([LibGGI development files can't be found])
4041     ])
4045 dnl  AA plugin
4047 AC_ARG_ENABLE(aa,
4048   [  --enable-aa             aalib output (default disabled)])
4049 if test "${enable_aa}" = "yes"
4050 then
4051   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4052   if test "${have_aa}" = "true"
4053   then
4054     VLC_ADD_PLUGIN([aa])
4055     VLC_ADD_LIBS([aa],[-laa])
4056   fi
4060 dnl  libcaca plugin
4062 PKG_ENABLE_MODULES_VLC([caca], [], [caca >= 0.99.beta1], [libcaca output],[auto])
4065 dnl  Audio plugins
4068 AC_ARG_WITH(,[Audio plugins:])
4071 dnl  OSS /dev/dsp module (enabled by default except on win32)
4073 AC_ARG_ENABLE(oss,
4074   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4076 if test "${enable_oss}" != "no" &&
4077   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4078    test "${enable_oss}" = "yes")
4079 then
4080   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4081     VLC_ADD_PLUGIN([oss])
4082     VLC_ADD_PLUGIN([access_oss])
4083     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4084   ])
4088 dnl  Pulseaudio module
4090 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4093 dnl  Portaudio module
4095 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
4098 dnl  ALSA module
4100 PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
4101 PKG_ENABLE_MODULES_VLC([ACCESS_ALSA], [access_alsa], [alsa >= 1.0.0], [Alsa access for linux], [auto])
4104 dnl  win32 waveOut plugin
4106 AC_ARG_ENABLE(waveout,
4107   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4108 if test "${enable_waveout}" != "no"; then
4109   if test "${SYS}" = "mingw32"; then
4110     VLC_ADD_PLUGIN([waveout])
4111     VLC_ADD_LIBS([waveout],[-lwinmm])
4112   fi
4113   if test "${SYS}" = "mingwce"; then
4114     VLC_ADD_PLUGIN([waveout])
4115   fi
4119 dnl  CoreAudio plugin
4121 AC_ARG_ENABLE(macosx-audio,
4122   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4123 if test "${enable_macosx-audio}" != "no" &&
4124   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4125 then
4126   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4127     [ VLC_ADD_PLUGIN([auhal])
4128       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4129     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4133 dnl  Roku HD1000 audio
4135 AC_ARG_ENABLE(hd1000a,
4136   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4137 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4138   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4139    test "${enable_hd1000a}" = "yes")
4140 then
4141   AC_LANG_PUSH([C++])
4142   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4143     VLC_ADD_PLUGIN([hd1000a])
4144     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4145   AC_LANG_POP([C++])
4149 dnl  JACK modules
4151 PKG_ENABLE_MODULES_VLC([JACK], [jack], [jack], [JACK audio I/O modules],[auto])
4152 PKG_ENABLE_MODULES_VLC([JACK], [access_jack], [jack], [JACK audio I/O modules],[auto])
4156 dnl  CyberLink for C++ UPnP stack
4158 AC_ARG_ENABLE(cyberlink,
4159   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4160   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4161   AC_ARG_WITH(cyberlink-tree,
4162     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4164   dnl
4165   dnl test for --with-cyberlink-tree
4166   dnl
4167   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4168     AC_LANG_PUSH(C++)
4169     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4170     AS_IF([test -z "${real_cyberlink_tree}"], [
4171       dnl  The given directory can't be found
4172       AC_MSG_RESULT(no)
4173       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4174     ])
4175     CPPFLAGS_save="${CPPFLAGS}"
4176     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4177     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4178     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4179       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4180         VLC_ADD_PLUGIN([upnp_cc])
4181       ],[
4182         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4183       ])
4184     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4185     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4186       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4187       dnl The mere fact that we have to make such an ugly check sucks
4188       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4189       LIBS_save="$LIBS"
4190       LIBS_cclink="no"
4191       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4192         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4193         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4194 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4195 using namespace CyberLink;
4197 class testclass : public SearchResponseListener, public MediaPlayer
4199     virtual void deviceSearchResponseReceived( SSDPPacket *)
4200     {
4201     }
4203     public:
4204       testclass (void)
4205       {
4206         addSearchResponseListener (this);
4207         start ();
4208       }
4210 ],[testclass l;])],[LIBS_cclink="$l"])
4211       done
4212       LIBS="${LIBS_save}"
4213       dnl should not happen - otherwise this needs fixing - hence FAILURE
4214       AS_IF([test "${LIBS_cclink}" = "no"],
4215         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4216       AC_MSG_RESULT([${LIBS_cclink}])
4217       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4218     ], [
4219       AC_MSG_RESULT(no)
4220       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4221     ])
4222     CPPFLAGS="${CPPFLAGS_save}"
4223     AC_LANG_POP([C++])
4224   ])
4228 dnl UPnP Plugin (Intel SDK)
4230 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
4234 dnl  Interface plugins
4237 AC_ARG_WITH(,[Interface plugins:])
4239 dnl special case for BeOS
4240 if test "${SYS}" = "beos"
4241 then
4242     VLC_ADD_PLUGIN([beos])
4246 dnl Skins2 module
4248 AC_ARG_ENABLE(skins2,
4249   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4250    enabled except on MacOSX, BeOS and WinCE)])])
4251 if test "${enable_skins2}" = "yes" ||
4252   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4253    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4255   dnl test for the required libraries
4256   skins2_missing_lib="no"
4258   dnl freetype
4259   if test "${have_freetype}" != "yes"; then
4260     skins2_missing_lib="yes"
4261     if test "${enable_skins2}" = "yes"; then
4262       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4263     fi
4264   fi
4266   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
4267     VLC_ADD_PLUGIN([skins2])
4268     ALIASES="${ALIASES} svlc"
4269     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4270     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4271     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4273   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4274     VLC_ADD_PLUGIN([skins2])
4275     ALIASES="${ALIASES} svlc"
4276     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4277     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4278     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4280   else if test "${skins2_missing_lib}" = "no"; then
4281     VLC_ADD_PLUGIN([skins2])
4282     ALIASES="${ALIASES} svlc"
4283     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4284     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4285     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4286   fi fi fi
4288 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4289          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4290           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4293 dnl Maemo
4295 AC_ARG_ENABLE(maemo,
4296   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4297 if test "${enable_maemo}" = "yes"
4298 then
4299   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4300     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4301     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4302     VLC_ADD_PLUGIN([maemo])
4303     VLC_ADD_PLUGIN([swscale_maemo])
4304     ALIASES="${ALIASES} mvlc"
4305   ], [
4306     AS_IF([test "${enable_maemo}" = "yes"],[
4307       AC_MSG_ERROR([Hildon libraries not found])
4308     ])
4309     enable_maemo="no"
4310   ])
4312 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4315 dnl QT 4
4317 AC_ARG_ENABLE(qt4,
4318   [  --enable-qt4            QT 4 support (default enabled) ],, [
4319   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4321 AS_IF([test "${enable_qt4}" != "no"], [
4322   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4323     VLC_ADD_PLUGIN([qt4])
4324     ALIASES="${ALIASES} qvlc"
4325     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4326         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4327     ], [
4328         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4329     ])
4330     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4331     AC_SUBST(QT4LOCALEDIR)
4332     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4333     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4334     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4335     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4336   ], [
4337     AS_IF([test "${enable_qt4}" = "yes"],[
4338       AC_MSG_ERROR([Qt 4 library not found])
4339     ],[
4340       AC_MSG_WARN([Qt 4 library not found])
4341     ])
4342     enable_qt4="no"
4343   ])
4345 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4348 dnl  WinCE GUI module
4350 AC_ARG_ENABLE(wince,
4351   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4352 if test "${enable_wince}" != "no"; then
4353   if test "${SYS}" = "mingwce"; then
4354     VLC_ADD_PLUGIN([wince])
4355     VLC_ADD_CXXFLAGS([wince],[])
4356     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4357     dnl Gross hack
4358     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4359   elif test "${SYS}" = "mingw32"; then
4360     VLC_ADD_CXXFLAGS([wince],[])
4361     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4362     dnl Gross hack
4363     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4364   fi
4368 dnl Simple test for skins2 dependency
4370 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4371   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.])
4375 dnl  Opie QT embedded module
4377 AC_ARG_ENABLE(opie,
4378   [  --enable-opie           Qt embedded interface support (default disabled)],
4379   [if test "${enable_opie}" = "yes"; then
4380      AC_ARG_WITH(qte,
4381      [    --with-qte=PATH       Qt Embedded headers and libraries])
4382      if test "${with_qte}" != "no" -a -n "${with_qte}"
4383      then
4384        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4385        VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4386      else
4387        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4388        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4389      fi
4390      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4391      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4392        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4393      ] )
4394      CPPFLAGS="${CPPFLAGS_save}"
4396      VLC_ADD_PLUGIN([opie])
4397      NEED_QTE_MAIN=yes
4398      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4399      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4400      if test "${with_qte}" != "no" -a -n "${with_qte}"
4401      then
4402        MOC=${with_qte}/bin/moc
4403      else
4404        MOC=${QTDIR}/bin/moc
4405      fi
4406    fi])
4409 dnl  MacOS X video output/gui modules
4411 AC_ARG_ENABLE(macosx,
4412   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4413 if test "x${enable_macosx}" = "xyes"
4414 then
4415   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4416   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4417   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4418   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4419   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4420   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4421   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4422   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4423   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4424   dnl For bug report
4425   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4426   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,QTKit])
4427   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4428   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4429   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4430   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4431   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4433   VLC_ADD_PLUGIN([access_eyetv])
4434   VLC_ADD_PLUGIN([qtcapture])
4435   VLC_ADD_PLUGIN([macosx])
4436   VLC_ADD_PLUGIN([minimal_macosx])
4437   VLC_ADD_PLUGIN([opengllayer])
4441 dnl  QNX RTOS module
4443 AC_ARG_ENABLE(qnx,
4444   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4445     if test "${enable_qnx}" != "no"
4446     then
4447       AC_CHECK_HEADERS(Ph.h, [
4448         VLC_ADD_PLUGIN([qnx])
4449         VLC_ADD_LIBS([qnx],[-lasound -lph])
4450       ])
4451     fi
4454 dnl  ncurses module
4456 AC_ARG_ENABLE(ncurses,
4457   [  --disable-ncurses       ncurses interface support (default enabled)],
4458   [if test "${enable_ncurses}" != "no"; then
4459     AC_CHECK_HEADER(ncurses.h,
4460       [AC_CHECK_LIB(ncursesw, mvprintw,
4461         [VLC_ADD_PLUGIN([ncurses])
4462         VLC_ADD_LIBS([ncurses],[-lncursesw])
4463         ALIASES="${ALIASES} nvlc"
4464         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4465         AC_CHECK_LIB(ncursesw, tgetent, [],
4466           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4467             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4468               [AS_IF([test "x${enable_ncurses}" != "x"],
4469                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4470                )])])
4471             ]
4472           )
4473         )
4474         ],
4475         [AC_CHECK_LIB( ncurses, mvprintw,
4476           [VLC_ADD_PLUGIN([ncurses])
4477           ALIASES="${ALIASES} nvlc"
4478           VLC_ADD_LIBS([ncurses],[-lncurses])
4479           AC_CHECK_LIB(ncurses, tgetent, [],
4480             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4481               [AS_IF([test "x${enable_ncurses}" != "x"],
4482                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4483             )]
4484           )],
4485           [AS_IF([test "x${enable_ncurses}" != "x"], [
4486             AC_MSG_ERROR([libncurses not found])])]
4487         )]
4488       )]
4489     )
4490   fi]
4494 dnl  XOSD plugin
4496 AC_ARG_ENABLE(xosd,
4497   [  --enable-xosd           xosd interface support (default disabled)])
4498 if test "${enable_xosd}" = "yes"
4499 then
4500   AC_CHECK_HEADERS(xosd.h,
4501     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4502       VLC_ADD_PLUGIN([xosd])
4503       VLC_ADD_LIBS([xosd],[-lxosd])
4504     ])
4505   )
4509 dnl Framebuffer (overlay) plugin
4511 AC_ARG_ENABLE(fbosd,
4512   [  --enable-fbosd          fbosd interface support (default disabled)])
4513 if test "${enable_fbosd}" = "yes"
4514 then
4515   AC_CHECK_HEADERS(linux/fb.h, [
4516     VLC_ADD_PLUGIN([fbosd])
4517  ])
4521 dnl Visualisation plugin
4523 AC_ARG_ENABLE(visual,
4524   [  --enable-visual         visualisation plugin (default enabled)])
4525 if test "${enable_visual}" != "no"
4526 then
4527     VLC_ADD_PLUGIN([visual])
4531 dnl  goom visualization plugin
4533 PKG_ENABLE_MODULES_VLC([goom], [], [libgoom2], [goom visualization plugin], [auto])
4536 dnl libprojectM visualization plugin
4538 PKG_ENABLE_MODULES_VLC([projectm], [], [libprojectM], [projectM visualization plugin], [auto])
4541 dnl  AtmoLight (homebrew AmbiLight)
4543 AC_ARG_ENABLE(atmo,
4544 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew Philips ambilight)
4545                 (broken, default disabled)]),, [enable_atmo="no"])
4546 AS_IF([test "${enable_atmo}" != no], [
4547   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4548     AC_LANG_PUSH(C++)
4549     VLC_ADD_PLUGIN([atmo])
4550     AC_LANG_POP(C++)
4551   ])
4555 dnl  Bonjour services discovery
4556 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4559 dnl  HAL services discovery
4560 PKG_ENABLE_MODULES_VLC([HAL], [], [hal >= 0.5.0], [Linux HAL services discovery], [auto])
4563 dnl MTP devices services discovery
4564 PKG_ENABLE_MODULES_VLC([MTP], [], [libmtp >= 0.3.0],[MTP devices support],[auto])
4567 dnl  Lirc plugin
4569 AC_ARG_ENABLE(lirc,
4570   [  --enable-lirc           lirc support (default disabled)])
4571 if test "${enable_lirc}" = "yes"
4572 then
4573   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4574   if test "${have_lirc}" = "true"
4575   then
4576     VLC_ADD_PLUGIN([lirc])
4577     VLC_ADD_LIBS([lirc],[-llirc_client])
4578   fi
4582 AC_ARG_WITH(,[Misc options:])
4585 dnl libgcrypt
4587 AC_ARG_ENABLE(libgcrypt,
4588   [  --disable-libgcrypt      gcrypt support (default enabled)])
4589 AS_IF([test "${enable_libgcrypt}" != "no"], [
4590   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4591     have_libgcrypt="yes"
4592     GCRYPT_CFLAGS=""
4593     GCRYPT_LIBS="-lgcrypt"
4594   ], [
4595     AS_IF([test "${enable_libgcrypt}"], [
4596       AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found.])
4597     ])
4598     have_libgcrypt="no"
4599   ], [#include <gcrypt.h>])
4601 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4602   AS_IF([test "${have_libgcrypt}" = "yes"],[
4603     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4604   ])
4606 AC_SUBST(GCRYPT_CFLAGS)
4607 AC_SUBST(GCRYPT_LIBS)
4608 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4611 dnl TLS/SSL
4613 AC_ARG_ENABLE(gnutls,
4614   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4616 AS_IF([test "${enable_gnutls}" != "no"], [
4617   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4618     VLC_ADD_PLUGIN([gnutls])
4619     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4620     AS_IF([test "${SYS}" = "mingw32"], [
4621       dnl pkg-config --libs gnutls omits these
4622       VLC_ADD_LIBS([gnutls], [-lz])
4623       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
4624     ])
4625     dnl The GnuTLS plugin invokes gcry_control directly.
4626     AS_IF([test "${have_libgcrypt}" = "yes"],[
4627       VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4628       VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4629     ])
4630     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4631   ], [
4632     AS_IF([test "${enable_gnutls}" = "yes"], [
4633       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4634     ])
4635   ])
4640 dnl RemoteOSD plugin (VNC client as video filter)
4642 AC_ARG_ENABLE(remoteosd,
4643   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4645 AS_IF([test "${enable_remoteosd}" != "no"], [
4646   AS_IF([test "${have_libgcrypt}" = "yes"],[
4647     VLC_ADD_PLUGIN([remoteosd])
4648     VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4649     VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4650   ], [
4651     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4652   ])
4657 dnl RAOP plugin
4659 AC_MSG_CHECKING([whether to enable RAOP plugin])
4660 AS_IF([test "${have_libgcrypt}" = "yes"], [
4661   AC_MSG_RESULT(yes)
4662   VLC_ADD_PLUGIN([stream_out_raop])
4663   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4664   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4665 ], [
4666   AC_MSG_RESULT(no)
4667   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4672 dnl update checking system
4674 AC_ARG_ENABLE(update-check,
4675   [  --enable-update-check   update checking system (default disabled)])
4676 if test "${enable_update_check}" = "yes"
4677 then
4678   if test "${have_libgcrypt}" != "yes"
4679   then
4680     AC_MSG_ERROR([libgcrypt is required for update checking system])
4681   fi
4682   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4683   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4684   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4689 dnl  Endianness check
4691 AC_C_BIGENDIAN
4692 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4693   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4694 ], [
4695   DEFS_BIGENDIAN=""
4697 AC_SUBST(DEFS_BIGENDIAN)
4700 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4702 loader=false
4703 AC_ARG_ENABLE(loader,
4704   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4705                   (default disabled)]))
4706 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4707 AS_IF([test "${enable_loader}" = "yes"],
4708   [ VLC_ADD_PLUGIN([dmo])
4709     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
4710     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4711     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
4712     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4713     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4714     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
4715     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4716     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4717   ])
4719 AC_ARG_WITH(,[Components:])
4722 dnl  the VLC binary
4724 AC_ARG_ENABLE(vlc,
4725   [  --enable-vlc            build the VLC media player (default enabled)])
4726 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4729 dnl  Microsoft ActiveX support
4731 activex=false
4732 AC_ARG_ENABLE(activex,
4733   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4734                   (default enabled on Win32)]))
4735 AC_ARG_WITH(wine-sdk-path,
4736   [    --with-wine-sdk-path=PATH path to wine sdk])
4737 if test "${enable_activex}" != "no"
4738 then
4739   if test "${SYS}" = "mingw32"
4740   then
4741     AC_CHECK_PROGS(MIDL, [midl], no)
4742     if test "${with_wine_sdk_path}" != ""
4743     then
4744        WINE_SDK_PATH=${with_wine_sdk_path}
4745        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4746     else
4747        WIDL=no
4748     fi
4749     AC_LANG_PUSH(C++)
4750     AC_CHECK_HEADERS(ole2.h,
4751       [AC_CHECK_HEADERS(olectl.h,
4752         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4753           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4754           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4755           AC_CHECK_HEADERS(objsafe.h,
4756             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4757             [
4758              #if HAVE_OLE2_H
4759              #   include <ole2.h>
4760              #endif
4761             ]
4762           )
4763           activex=:
4764           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4765         ],
4766         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4767       )],
4768       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4769     )
4770     AC_LANG_POP(C++)
4771   fi
4773 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4774 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4775 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4776 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4777 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4780 dnl  Mozilla plugin
4782 mozilla=false
4783 AC_ARG_ENABLE(mozilla,
4784   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4785                   (default disabled)]))
4786 AC_ARG_WITH(mozilla-sdk-path,
4787   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
4788 AC_ARG_WITH(mozilla-pkg,
4789   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4790 AC_LANG_PUSH(C++)
4791 if test "${enable_mozilla}" = "yes"
4792 then
4793   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4794     [
4795     dnl pkg-config
4796     dnl As we want to do a loop due to the number of name possible for the .pc
4797     dnl we can't use the pkg-config macros.
4799     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4800     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4801     AC_MSG_NOTICE([Checking for Mozilla])
4802     found=0
4803     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4804     then
4805       found=1
4806     else
4807       if test -n "$PKG_CONFIG"; then
4808         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4809           echo "Trying to find $i.pc files" >&5
4810           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4811           then
4812             echo "Using $i.pc files." >&5
4813             echo "Using $i.pc files." >&6
4814             found=1
4815             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
4816             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
4817             break
4818           fi
4819         done
4820       fi
4821     fi
4822     AS_IF( [test $found = 1],[
4823         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4824         MOZILLA_REQUIRED_HEADERS=1
4825         AC_CHECK_HEADERS([npfunctions.h])
4826         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4827         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4828           [#if HAVE_NPAPI_H
4829            # include <npapi.h>
4830            #endif
4831           ])
4832         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4833             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
4834         fi
4835         MOZILLA_REQUIRED_HEADERS=
4836         mozilla=:
4837         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4838            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
4839            AS_IF([ test "${SYS}" != "darwin"],[
4840              PKG_CHECK_MODULES(XPM, [xpm xt],[
4841                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4842              ],[
4843                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4844              ])
4845           ])
4846         ])
4847         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4848         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4849         VLC_ADD_PLUGIN([mozilla])
4850         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4851         MOZILLA_CONFIG=
4852         CPPFLAGS="${CPPFLAGS_save}"
4853           ],
4854           [
4855             AC_PATH_PROGS(MOZILLA_CONFIG,
4856             [mozilla-config seamonkey-config xulrunner-config],
4857         [no])
4858             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
4859           ]
4860         )
4861     dnl pkg-config failed but we might have found a mozilla-config
4862     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
4863       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
4864         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4865         AC_CHECK_LIB(Xt,XtStrings,
4866          [
4867            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
4868            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
4869          ],
4870          [],
4871          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
4872         ])
4873         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
4874         LDFLAGS="${LDFLAGS_save}"
4875       fi
4877       mozilla=:
4878       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4879       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
4880       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
4881       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4882       MOZILLA_REQUIRED_HEADERS=1
4883       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4884       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4885       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4886         [#if HAVE_NPAPI_H
4887          # include <npapi.h>
4888          #endif
4889         ])
4890       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4891       then
4892         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4893       fi
4894       MOZILLA_REQUIRED_HEADERS=
4895       CPPFLAGS="${CPPFLAGS_save}"
4896       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
4897     ])
4898     dnl End of moz_sdk = ""
4899   ],[
4900     dnl special case for mingw32
4901     if test "${SYS}" = "mingw32"
4902     then
4903       AC_CHECK_TOOL(CYGPATH, cygpath, "")
4904       dnl latest gecko sdk does not have an xpcom directory
4905       if test -d "${with_mozilla_sdk_path}/xpcom"; then
4906           mozilla_sdk_xpcom="/xpcom"
4907       fi
4908     fi
4910     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4911     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
4912     MOZILLA_REQUIRED_HEADERS=1
4913     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4914     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4915     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4916         [#if HAVE_NPAPI_H
4917           #include <npapi.h>
4918           #endif
4919         ])
4920     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4921     then
4922         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4923     fi
4924     MOZILLA_REQUIRED_HEADERS=
4925     mozilla=:
4926     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4927     VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
4928     if ${need_xpcom_libs}; then
4929        VLC_ADD_LIBS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
4930       if test "${SYS}" = "mingw32"; then
4931         dnl latest gecko sdk does not have embedstring
4932         if test -d "${real_mozilla_sdk}/embedstring/bin"
4933         then
4934           VLC_ADD_LIBS([mozilla],[-lembedstring])
4935         fi
4936       fi
4937     fi
4938     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
4940     if test -n "${CYGPATH}"; then
4941       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4942     fi
4943     CPPFLAGS="${CPPFLAGS_save}"
4944  ])
4946 AC_LANG_POP(C++)
4947 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4949 dnl Tests for Osso and Xsp
4950 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
4951   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
4952     VLC_ADD_CPPFLAGS([xvmc glx],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
4953     VLC_ADD_LIBS([xvmc glx],[-losso])
4954  ])
4956 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
4957   VLC_ADD_CPPFLAGS([xvmc glx],[-DHAVE_XSP])
4958   VLC_ADD_LIBS([xvmc glx],[-lXsp])
4962 dnl  test plugins
4964 AC_ARG_ENABLE(testsuite,
4965   [  --enable-testsuite      build test modules (default disabled)])
4966 if test "${enable_testsuite}" = "yes"
4967 then
4968   TESTS="test1 test2 test3 test4"
4970   dnl  we define those so that bootstrap sets the right linker
4971   VLC_ADD_CXXFLAGS([test2],[])
4972   VLC_ADD_OBJCFLAGS([test3],[])
4973   dnl  this one is needed until automake knows what to do
4974   VLC_ADD_LIBS([test3],[-lobjc])
4976   VLC_ADD_PLUGIN([test1])
4977   VLC_ADD_PLUGIN([test2])
4978   VLC_ADD_PLUGIN([test3])
4979   VLC_ADD_PLUGIN([test4])
4983 dnl  qte_main plugin
4985 if test "${NEED_QTE_MAIN}" != "no"
4986 then
4987     VLC_ADD_PLUGIN([qte_main])
4988     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
4989     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
4990     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
4994 dnl  Plugin and builtin checks
4996 plugin_support=yes
4998 dnl Automagically disable plugins if there is no system support for
4999 dnl dynamically loadable files (.so, .dll, .dylib).
5000 dnl don't forget vlc-win32 still can load .dll as plugins
5001 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5002   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5003   plugin_support=no
5006 AS_IF([test "${plugin_support}" != "no"], [
5007   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5011 dnl Pic and shared libvlc stuff
5013 AS_IF([test "${SYS}" = "mingw32"], [
5014   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5015   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5019 dnl  Stuff used by the program
5021 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5022 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5023 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5024 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5025 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5026 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5027 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5028 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5029 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5030 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5031 AC_SUBST(COPYRIGHT_MESSAGE)
5032 AC_SUBST(VERSION_MESSAGE)
5033 AC_SUBST(VERSION_MAJOR)
5034 AC_SUBST(VERSION_MINOR)
5035 AC_SUBST(VERSION_REVISION)
5036 AC_SUBST(VERSION_EXTRA)
5037 AC_SUBST(COPYRIGHT_YEARS)
5038 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5039 if test "${build_os}" = "cygwin"
5040 then
5041     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5042 else
5043     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5045 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5046 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5047 dnl Win32 need s a numerical version_extra.
5048 case $( echo ${VERSION_EXTRA}|wc -m ) in
5049        "1") VERSION_EXTRA_RC="0";;
5050        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5051        *) VERSION_EXTRA_RC="99"
5052 esac
5053 AC_SUBST(VERSION_EXTRA_RC)
5055 dnl  Handle substvars that use $(top_srcdir)
5057 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5058 AC_SUBST(VLC_CONFIG)
5059 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5062 dnl  Restore *FLAGS
5064 VLC_RESTORE_FLAGS
5067 dnl Sort the modules list
5069 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5072 dnl  Create the vlc-config script
5074 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5077 dnl  Configuration is finished
5079 AC_SUBST(SYS)
5080 AC_SUBST(ARCH)
5081 AC_SUBST(ALIASES)
5082 AC_SUBST(ASM)
5083 AC_SUBST(MOC)
5084 AC_SUBST(RCC)
5085 AC_SUBST(UIC)
5086 AC_SUBST(WINDRES)
5087 AC_SUBST(MOZILLA_SDK_PATH)
5088 AC_SUBST(WINE_SDK_PATH)
5089 AC_SUBST(LIBEXT)
5090 AC_SUBST(AM_CPPFLAGS)
5091 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5092 AC_SUBST(FILE_LIBVLCCORE_DLL)
5093 AC_SUBST(FILE_LIBVLC_DLL)
5095 dnl Create vlc-config.in
5096 VLC_OUTPUT_VLC_CONFIG_IN
5098 AC_CONFIG_FILES([
5099   extras/package/win32/vlc.win32.nsi
5100   extras/package/macosx/Info.plist
5101   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5102   extras/package/macosx/plugin/Info.plist
5103   extras/package/macosx/plugin/InstallerInfo.plist
5104   Makefile
5105   projects/activex/Makefile
5106   projects/activex/axvlc.inf
5107   doc/Makefile
5108   extras/package/ipkg/Makefile
5109   libs/loader/Makefile
5110   libs/srtp/Makefile
5111   libs/unzip/Makefile
5112   modules/Makefile
5113   projects/mozilla/Makefile
5114   m4/Makefile
5115   po/Makefile.in
5116   projects/activex/axvlc_rc.rc
5117   projects/mozilla/npvlc_rc.rc
5118   projects/mozilla/vlc.r
5119   projects/mozilla/install.js
5120   share/Makefile
5121   share/vlc_win32_rc.rc
5122   share/libvlc_win32_rc.rc
5123   compat/Makefile
5124   src/Makefile
5125   src/test/Makefile
5126   bin/Makefile
5127   test/Makefile
5128   modules/access/Makefile
5129   modules/access/bd/Makefile
5130   modules/access/bda/Makefile
5131   modules/access/dshow/Makefile
5132   modules/access/dvb/Makefile
5133   modules/access/mms/Makefile
5134   modules/access/cdda/Makefile
5135   modules/access/rtp/Makefile
5136   modules/access/rtsp/Makefile
5137   modules/access/vcd/Makefile
5138   modules/access/vcdx/Makefile
5139   modules/access/screen/Makefile
5140   modules/access/zip/Makefile
5141   modules/access_output/Makefile
5142   modules/audio_filter/Makefile
5143   modules/audio_filter/channel_mixer/Makefile
5144   modules/audio_filter/converter/Makefile
5145   modules/audio_filter/resampler/Makefile
5146   modules/audio_filter/spatializer/Makefile
5147   modules/audio_mixer/Makefile
5148   modules/audio_output/Makefile
5149   modules/codec/Makefile
5150   modules/codec/avcodec/Makefile
5151   modules/codec/cmml/Makefile
5152   modules/codec/dmo/Makefile
5153   modules/codec/shine/Makefile
5154   modules/codec/subtitles/Makefile
5155   modules/codec/spudec/Makefile
5156   modules/codec/wmafixed/Makefile
5157   modules/codec/xvmc/Makefile
5158   modules/control/Makefile
5159   modules/control/http/Makefile
5160   modules/control/globalhotkeys/Makefile
5161   modules/demux/Makefile
5162   modules/demux/asf/Makefile
5163   modules/demux/avformat/Makefile
5164   modules/demux/avi/Makefile
5165   modules/demux/mkv/Makefile
5166   modules/demux/mp4/Makefile
5167   modules/demux/mpeg/Makefile
5168   modules/demux/playlist/Makefile
5169   modules/gui/Makefile
5170   modules/gui/beos/Makefile
5171   modules/gui/macosx/Makefile
5172   modules/gui/maemo/Makefile
5173   modules/gui/minimal_macosx/Makefile
5174   modules/gui/qnx/Makefile
5175   modules/gui/qt4/Makefile
5176   modules/gui/skins2/Makefile
5177   modules/gui/wince/Makefile
5178   modules/meta_engine/Makefile
5179   modules/misc/Makefile
5180   modules/misc/dummy/Makefile
5181   modules/misc/lua/Makefile
5182   modules/misc/memcpy/Makefile
5183   modules/misc/notify/Makefile
5184   modules/misc/testsuite/Makefile
5185   modules/misc/playlist/Makefile
5186   modules/misc/osd/Makefile
5187   modules/misc/stats/Makefile
5188   modules/misc/xml/Makefile
5189   modules/misc/probe/Makefile
5190   modules/mux/Makefile
5191   modules/mux/mpeg/Makefile
5192   modules/packetizer/Makefile
5193   modules/services_discovery/Makefile
5194   modules/stream_filter/Makefile
5195   modules/stream_out/Makefile
5196   modules/video_chroma/Makefile
5197   modules/video_filter/Makefile
5198   modules/video_filter/dynamicoverlay/Makefile
5199   modules/video_output/Makefile
5200   modules/video_output/msw/Makefile
5201   modules/video_output/qte/Makefile
5202   modules/video_output/x11/Makefile
5203   modules/visualization/Makefile
5204   modules/visualization/visual/Makefile
5207 dnl Generate makefiles
5208 AC_OUTPUT
5210 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5211 # not provided with the source
5212 ${SHELL} ./config.status --file=vlc-config
5213 chmod 0755 vlc-config
5215 /bin/echo -n "Enabled modules: "
5216 ./vlc-config --list plugin
5218 dnl Shortcut to nice compile message
5219 rm -f compile
5220 echo '#! /bin/sh' >compile
5221 echo rm -f .error\$\$ >>compile
5222 echo ERROR=0 >>compile
5223 echo export PATH=$PATH LANG=C >>compile
5224 echo "(make V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5225 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5226 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5227 echo rm -f .error\$\$ >>compile
5228 echo exit \$ERROR >>compile
5229 chmod a+x compile
5231 printf "
5232 libvlc configuration
5233 --------------------
5234 version               : ${VERSION}
5235 system                : ${SYS}
5236 architecture          : ${ARCH}
5237 build flavour         : "
5238 test "${enable_debug}" = "yes" && printf "debug "
5239 test "${enable_cprof}" = "yes" && printf "cprof "
5240 test "${enable_gprof}" = "yes" && printf "gprof "
5241 test "${enable_optimizations}" = "yes" && printf "optim "
5242 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5243 echo ""
5244 if test "${enable_vlc}" != "no"; then
5245 echo "vlc aliases           :${ALIASES}"
5246 else
5247 echo "build vlc executable  : no"
5249 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5251 You can tune the compiler flags in vlc-config.
5252 To build vlc and its plugins, type \`./compile' or \`make'.
5254 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5255    echo ""
5256    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5257    echo "         turned off."
5258    echo "         FFmpeg will be REALLY slow."
5259    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5260    echo ""