Add UpdateTeletext to case
[vlc.git] / configure.ac
blob8b675a611dbe5f950ab01703d4587f2217a58f2e
1 dnl Autoconf settings for vlc
3 AC_INIT(vlc, 1.0.0-git)
4 VERSION_MAJOR="1"
5 VERSION_MINOR="0"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="-git"
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Goldeneye"
11 COPYRIGHT_YEARS="1996-2008"
13 AC_PREREQ(2.59c)
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
19 AM_INIT_AUTOMAKE(tar-ustar)
20 AM_CONFIG_HEADER(config.h)
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
32 dnl
33 dnl  Deprecated options
34 dnl  to notify packagers that stuff has changed
35 dnl
36 AC_ARG_ENABLE(python-bindings,
37   [  --enable-python-bindings Always fails for historical reasons)],,
38   [enable_python_bindings="no"])
39 AS_IF([test "${enable_python_bindings}" != "no"], [
40   AC_MSG_ERROR([Python bindings are now built from a separate source package])
43 AC_ARG_ENABLE(java-bindings,
44   [  --enable-java-bindings  Always fails for historical reasons],,
45   [enable_java_bindings="no"])
46 AS_IF([test "${enable_java_bindings}" != "no"], [
47   AC_MSG_ERROR([Java bindings are now built from a separate source package])
50 dnl
51 dnl  Save *FLAGS
52 dnl
53 VLC_SAVE_FLAGS
55 dnl
56 dnl Check for tools
57 dnl
58 AC_PROG_CC_C99
59 AC_USE_SYSTEM_EXTENSIONS
60 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
62 AM_PROG_CC_C_O
63 AC_PROG_CXX
64 AC_PROG_CPP
65 AC_PROG_OBJC
66 _AM_DEPENDENCIES([OBJC])
67 AC_PROG_EGREP
68 AC_PROG_MAKE_SET
69 AC_PROG_INSTALL
70 AM_PROG_AS
72 dnl Find the right ranlib, even when cross-compiling
73 AC_CHECK_TOOL(RANLIB, ranlib, :)
74 AC_CHECK_TOOL(STRIP, strip, :)
75 AC_CHECK_TOOL(AR, ar, :)
76 AC_CHECK_TOOL(LD, ld, :)
77 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
79 dnl Check for compiler properties
80 AC_C_CONST
81 AC_C_INLINE
82 AC_C_RESTRICT
84 dnl Allow binary package maintainer to pass a custom string to avoid 
85 dnl cache problem
86 AC_ARG_WITH(binary-version, 
87         AS_HELP_STRING([--with-binary-version=STRING],
88              [To avoid plugins cache problem between binary version]),[],[])
89 AS_IF([test -n "${with_binary_version}"],[
90       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
91                          [Binary specific version])
92       ])
95 dnl
96 dnl  Check for the contrib directory
97 dnl
98 AC_ARG_WITH(contrib,
99     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
100   AS_IF([test "${with_contrib}" != "no"],[
101     AC_MSG_CHECKING([for libs in extras/contrib])
102     topdir="`dirname $0`"
103     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
104        topdir="`pwd`/$topdir"
105     fi
106   AS_IF([test -d ${topdir}/extras/contrib/lib],[
107    AS_IF([test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
108       if test "${with_contrib}" = "yes"; then
109         AC_MSG_RESULT([no])
110         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
111       else
112         AC_MSG_RESULT([no])
113         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
114       fi
115      ],[
116     AC_MSG_RESULT([yes])
117     export PATH=${topdir}/extras/contrib/bin:$PATH
118     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
119     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
120     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
121     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
122     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
123     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
124     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
125     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
126     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
127         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
128     else
129         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
130     fi
131     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
132     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
134     if test -z $with_mozilla_sdk_path; then
135        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
136     fi
137     if test -z $with_cyberlink_tree; then
138        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
139     fi
141     if test ".`uname -s`" = ".Darwin"; then
142       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
143       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
144     elif test ".`uname -s`" = ".BeOS"; then
145       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
146       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
147     fi
148     ])
149   ],[
150     AC_MSG_RESULT([no])
151   ])
154 dnl  Set default values
156 LDFLAGS_vlc="${LDFLAGS}"
159 dnl  Check the operating system
161 case "${host_os}" in
162   "")
163     SYS=unknown
164     ;;
165   linux*)
166     SYS=linux
167     ;;
168   bsdi*)
169     SYS=bsdi
170     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
171     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
172     ;;
173   *bsd*)
174     SYS="${host_os}"
175     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
176     case "${host_os}" in
177       freebsd*)
178         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
179         CPPFLAGS="${CPPFLAGS_save}"
180         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
181         LDFLAGS="${LDFLAGS_save}"
182         ;;
183     esac
184     ;;
185   darwin*)
186     SYS=darwin
187     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
188     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
189     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
190     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
191     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
192     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
193     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
194     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
195     VLC_ADD_LDFLAGS([avcodec avformat swscale imgresample postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
196     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
197     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,CoreFoundation])
198     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
199     AC_ARG_ENABLE(macosx-defaults,
200       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration
201                      on Mac OS X (default enabled)]))
202     if test "x${enable_macosx_defaults}" != "xno"
203     then
204         echo ""
205         echo "Building with Mac OS X defaults:"
206         with_macosx_version_min="10.4"
207         echo "  Assuming --with-macosx-version-min=10.4"
208         build_dir=`pwd`
209         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
210         ac_default_prefix="${build_dir}/vlc_install_dir"
211         enable_macosx="yes"
212         echo "  Assuming --enable-macosx"
213         enable_faad="yes"
214         echo "  Assuming --enable-faad"
215         enable_flac="yes"
216         echo "  Assuming --enable-flac"
217         enable_theora="yes"
218         echo "  Assuming --enable-theora"
219         enable_shout="yes"
220         echo "  Assuming --enable-shout"
221         enable_cddax="yes"
222         echo "  Assuming --enable-cddax"
223         enable_vcdx="yes"
224         echo "  Assuming --enable-vcdx"
225         enable_caca="yes"
226         echo "  Assuming --enable-caca"
227         enable_goom="yes"
228         echo "  Assuming --enable-goom"
229         enable_ncurses="yes"
230         echo "  Assuming --enable-ncurses"
231         enable_twolame="yes"
232         echo "  Assuming --enable-twolame"
233         enable_realrtsp="yes"
234         echo "  Assuming --enable-realrtsp"
235         enable_update_check="yes"
236         echo "  Assuming --enable-update-check"
237         enable_libass="yes"
238         echo "  Assuming --enable-libass"
239         enable_asademux="yes"
240         echo "  Assuming --enable-asademux"
242         enable_skins2="no"
243         echo "  Assuming --disable-skins2"
244         enable_x11="no"
245         echo "  Assuming --disable-x11"
246         enable_glx="no"
247         echo "  Assuming --disable-glx"
248         enable_xvideo="no"
249         echo "  Assuming --disable-xvideo"
250     fi
251     if test ".`uname -p`" = ".i386"; then
252         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
253         dnl without hacking it a lot, we disable mmx and sse.
254         dnl (that bug is about ld being unable to handle
255         dnl text relocation)
256         save_cflags="$CFLAGS"
257         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
258         AC_TRY_LINK(
259             [int a;], [asm("movq _a,%mm0\n");],
260             ac_ld_does_not_support_text_reloc=no,
261             ac_ld_does_not_support_text_reloc=yes)
262         CFLAGS="$save_cflags"
264         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
265             enable_mmx="no"
266             echo "  Assuming --disable-mmx (due to a bug in ld)"
267             enable_sse="no"
268             echo "  Assuming --disable-sse (due to a bug in ld)"
269         fi
270     fi
271     dnl
272     dnl  Check for Mac OS X SDK settings
273     dnl
274     AC_ARG_WITH(macosx-sdk,
275        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
276     if test "${with_macosx_sdk}" != "" ; then
277         CPP="${CPP} -isysroot ${with_macosx_sdk}" 
278         CC="${CC} -isysroot ${with_macosx_sdk}" 
279         CXX="${CXX} -isysroot ${with_macosx_sdk}"
280         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
281         LD="${LD} -syslibroot ${with_macosx_sdk}"
282     fi
283     AC_ARG_WITH(macosx-version-min,
284        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
285     if test "${with_macosx_version_min}" != "" ; then
286         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}" 
287         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
288         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
289         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
290         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
291         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
292         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
293         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
294         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
295         export MACOSX_DEPLOYMENT_TARGET
296     fi
297     ;;
298   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
299     AC_CHECK_TOOL(WINDRES, windres, :)
301     case "${host_os}" in
302       *wince* | *mingwce* | *mingw32ce* | *pe*)
303         SYS=mingwce
304         dnl Sadly CeGCC still needs non-wince macros
305         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
306         ;;
307       *mingw32*)
308         SYS=mingw32
309         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
310         ;;
311       *cygwin*)
312         dnl Check if we are using the mno-cygwin mode in which case we are
313         dnl actually dealing with a mingw32 compiler.
314         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
315         AC_EGREP_CPP(yes,
316             [#ifdef WIN32
317              yes
318              #endif],
319             SYS=mingw32, SYS=cygwin)
320         ;;
321     esac
323     if test "${SYS}" = "mingw32"; then
324         # add ws2_32 for closesocket, select, recv
325         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
326         VLC_ADD_LDFLAGS([vlc],[-mwindows])
327         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
328         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
329         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 vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd],[-lws2_32])
330     fi
331     if test "${SYS}" = "mingwce"; then
332         # add ws2 for closesocket, select, recv
333         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd],[-lws2])
334         VLC_ADD_LIBS([libvlc],[-lmmtimer])
335    fi
336     ;;
337   *nto*)
338     SYS=nto
339     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
340     ;;
341   solaris*)
342     SYS=solaris
343     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
344     # Perhaps it is useful other places as well? 
345     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
346     ;;
347   hpux*)
348     SYS=hpux
349     ;;
350   beos)
351     SYS=beos
352     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
353     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
354     VLC_ADD_CXXFLAGS([beos],[])
355     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
356     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
357     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
358     VLC_ADD_LIBS([access_file],[-lpoll])
359     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
360     dnl Check for BONE
361     if test -f /boot/beos/system/lib/libbind.so; then
362         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
363     else
364         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
365     fi
367     dnl Ugly check for Zeta
368     if test -f /boot/beos/system/lib/libzeta.so; then
369         VLC_ADD_LIBS([beos],[-lzeta])
370     fi
371     ;;
372   *)
373     SYS="${host_os}"
374     ;;
375 esac
376 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
377 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
378 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
379 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
380 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
383 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
384 dnl for program foo on win32
386 case "${build_os}" in
387     cygwin|msys)
388         ac_executable_extensions=".exe"
389     ;;
390     *)
391     ;;
392 esac
394 dnl 
395 dnl  Libtool
396 dnl  It's very bad, but our former custom system was worst
397 dnl  -- Courmisch
400 dnl override platform specific check for dependent libraries
401 dnl otherwise libtool linking of shared libraries will
402 dnl fail on anything other than pass_all.
403 AC_CACHE_VAL(lt_cv_deplibs_check_method,
404     [lt_cv_deplibs_check_method=pass_all])
406 AC_DISABLE_STATIC
407 dnl AC_DISABLE_FAST_INSTALL
408 AC_LIBTOOL_DLOPEN
409 AC_LIBTOOL_WIN32_DLL
410 m4_undefine([AC_PROG_F77])
411 m4_defun([AC_PROG_F77],[])
412 AC_PROG_LIBTOOL
414 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
415 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
417 lt_cv_deplibs_check_method=pass_all
421 dnl Gettext stuff
423 AM_GNU_GETTEXT_VERSION([0.17])
424 AM_GNU_GETTEXT([external])
425 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
428 dnl Iconv stuff
430 AM_ICONV
431 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
432 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
434 dnl Check for the need to include the mingwex lib for mingw32
435 if test "${SYS}" = "mingw32"
436 then
437     AC_CHECK_LIB(mingwex,opendir,
438         AC_CHECK_LIB(mingw32,opendir,,
439             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
440     )
443 dnl Check for fnative-struct or mms-bitfields support for mingw32
444 if test "${SYS}" = "mingw32"
445 then
446     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
447         [ac_cv_c_mms_bitfields],
448         [CFLAGS="${CFLAGS_save} -mms-bitfields"
449          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
450     if test "${ac_cv_c_mms_bitfields}" != "no"; then
451         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
452         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
453     else
454         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
455             [ac_cv_c_fnative_struct],
456             [CFLAGS="${CFLAGS_save} -fnative-struct"
457              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
458         if test "${ac_cv_c_fnative_struct}" != "no"; then
459             CFLAGS_save="${CFLAGS_save} -fnative-struct";
460             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
461         fi
462     fi
464     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
467 dnl Check for fvtable-thunks support for mingw32
468 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
469 then
470 AC_LANG_PUSH(C++)
471     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
472         [ac_cv_cxx_fvtable_thunks],
473         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
474          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
475                         ac_cv_cxx_fvtable_thunks=no)])
476     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
477         CXXFLAGS_mingw32_special="-fvtable-thunks"
478     fi
480     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
481 AC_LANG_POP(C++)
484 dnl Plugin compilation stuff
486 VLC_LIBRARY_SUFFIX
488 dnl The -DSYS_FOO flag
489 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
491 dnl Check for system libs needed
492 need_libc=false
494 dnl Check for usual libc functions
495 AC_CHECK_FUNCS([gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid_r memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy strdup strndup strnlen atof lldiv posix_fadvise posix_madvise uselocale])
496 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
497 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
498 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
499 AC_FUNC_ALLOCA
500 AC_CHECK_FUNCS(fcntl)
502 AH_BOTTOM([#include <vlc_fixups.h>])
504 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
506 dnl Check for setlocal and langinfo
507 AC_CHECK_FUNCS(setlocale)
508 AC_CHECK_HEADERS(langinfo.h)
509 AC_CHECK_FUNCS(nl_langinfo)
511 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
512   [AC_TRY_LINK([#include <langinfo.h>],
513     [char* cs = nl_langinfo(CODESET);],
514     ac_cv_langinfo_codeset=yes,
515     ac_cv_langinfo_codeset=no)
516   ])
517 if test ${ac_cv_langinfo_codeset} = yes; then
518   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
519     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
522 AC_CHECK_FUNCS(connect,,[
523   AC_CHECK_LIB(socket,connect,[
524     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
525     LIBS_socket="-lsocket"
526   ])
529 AC_CHECK_FUNCS(send,,[
530   AC_CHECK_LIB(socket,send,[
531     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])
532   ])
535 AC_CHECK_HEADERS(zlib.h, [
536   VLC_ADD_LIBS([access_http],[-lz])
539 dnl Check for socklen_t
540 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
541 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
542 ac_cv_type_socklen_t,
543 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
544 [#include <sys/types.h>
545 #ifdef WIN32
546 # include <winsock2.h>
547 # include <ws2tcpip.h>
548 #else
549 # include <sys/socket.h>
550 #endif]], [[socklen_t len; len = 0;]])],
551 ac_cv_type_socklen_t=yes,
552 ac_cv_type_socklen_t=no)])
553 AS_IF([test "$ac_cv_type_socklen_t" = no],
554  [AC_DEFINE(socklen_t, int)])
556 dnl Check for struct sockaddr_storage
557 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
558 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
559 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
560   [AC_TRY_COMPILE(
561     [#include <sys/types.h>
562      #if defined( UNDER_CE )
563      # include <winsock2.h>
564      #elif defined( WIN32 )
565      # include <winsock2.h>
566      #else
567      # include <sys/socket.h>
568      #endif], [struct sockaddr_storage addr;],
569      ac_cv_struct_sockaddr_storage=yes,
570      ac_cv_struct_sockaddr_storage=no)])
571 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
572   AC_DEFINE(sockaddr_storage, sockaddr)
573   AC_DEFINE(ss_family, sa_family)
576 dnl getaddrinfo, getnameinfo and gai_strerror check
577 dnl  -lnsl and -lsocket are needed on Solaris;
578 dnl  we purposedly make the test fail on Windows
579 LIBS_save="${LIBS}"
580 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
581 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
583 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
584 dnl are
585 LIBS="${LIBS_gai}"
586 AC_CHECK_FUNCS([getnameinfo gai_strerror])
587 LIBS="${LIBS_save}"
589 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
590 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
591 [#include <sys/types.h>
592 #if defined( WIN32 ) || defined( UNDER_CE )
593 # if defined(UNDER_CE) && defined(sockaddr_storage)
594 #  undef sockaddr_storage
595 # endif
596 # include <winsock2.h>
597 # include <ws2tcpip.h>
598 #else
599 # include <netdb.h>
600 #endif])
602 dnl Check for va_copy
603 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
604   AC_TRY_LINK(
605     [#include <stdarg.h>],
606     [va_list ap1, ap2; va_copy(ap1,ap2);],
607     [ac_cv_c_va_copy="yes"],
608     [ac_cv_c_va_copy="no"]))
609 if test "${ac_cv_c_va_copy}" = "yes"; then
610   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
612 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
613   AC_TRY_LINK(
614     [#include <stdarg.h>],
615     [va_list ap1, ap2; __va_copy(ap1,ap2);],
616     [ac_cv_c___va_copy="yes"],
617     [ac_cv_c___va_copy="no"]))
618 if test "${ac_cv_c___va_copy}" = "yes"; then
619   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
622 AC_CHECK_FUNCS(inet_aton,,[
623   AC_CHECK_LIB(resolv,inet_aton,[
624     VLC_ADD_LIBS([libvlc],[-lresolv])
625   ])
628 dnl Check for getopt (always use builtin one on win32)
629 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
630 need_getopt=:
631 else
632 need_getopt=false
633 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
634 [ # FreeBSD has a gnugetopt library for this:
635   AC_CHECK_LIB([gnugetopt],[getopt_long],
636     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
637      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
638     [need_getopt=:])])
640 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
642 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
643 AC_TYPE_SIGNAL
644 AC_CHECK_LIB(m,cos,[
645   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene],[-lm])
647 AC_CHECK_LIB(m,pow,[
648   VLC_ADD_LIBS([avcodec avformat swscale imgresample postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
650 AC_CHECK_LIB(m,sqrt,[
651   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
653 AC_CHECK_LIB(m,ceil,[
654   VLC_ADD_LIBS([mosaic],[-lm])
656 AC_CHECK_LIB(m,exp,[
657   VLC_ADD_LIBS([gaussianblur],[-lm])
659 AC_CHECK_LIB(m,round,[
660   VLC_ADD_LIBS([dbus],[-lm])
662 AC_CHECK_LIB(mx,sqrtf,[
663   VLC_ADD_LIBS([x264],[-lmx])
665 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
667 dnl Check for dynamic plugins
668 ac_cv_have_plugins=no
670 # OS X style
671 AC_CHECK_HEADERS(mach-o/dyld.h,
672   [AC_CHECK_FUNCS(NSLinkModule,
673     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
674      ac_cv_have_plugins=yes])])
676 # HP-UX style
677 if test "${ac_cv_have_plugins}" = "no"; then
678   AC_CHECK_HEADERS(dl.h)
679   ac_cv_my_have_shl_load=no
680   AC_CHECK_FUNC(shl_load,
681    [ac_cv_my_have_shl_load=yes,
682     AC_CHECK_LIB(dld, shl_load,
683      [ac_cv_my_have_shl_load=yes
684       VLC_ADD_LIBS([libvlc],[-ldld])])])
685   if test "${ac_cv_my_have_shl_load}" = "yes"; then
686     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
687     ac_cv_have_plugins=yes
688   fi
691 # Whatever style
692 if test "${ac_cv_have_plugins}" = "no"; then
693   AC_CHECK_LIB(dld, dld_link,
694    [VLC_ADD_LIBS([libvlc],[-ldld])
695     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
696     ac_cv_have_plugins=yes])
699 # Win32 style
700 if test "${ac_cv_have_plugins}" = "no"; then
701   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
702     AC_CHECK_LIB(kernel32, main,
703      [VLC_ADD_LIBS([libvlc],[-lkernel32])
704       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
705       ac_cv_have_plugins=yes])
706   fi
709 # WinCE style
710 if test "${ac_cv_have_plugins}" = "no"; then
711   if test "${SYS}" = "mingwce"; then
712     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
713     ac_cv_have_plugins=yes
714   fi
717 # BeOS style
718 if test "${ac_cv_have_plugins}" = "no"; then
719   AC_CHECK_HEADERS(image.h)
720   AC_CHECK_FUNCS(load_add_on,
721    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
722     ac_cv_have_plugins=yes])
725 # Only test for dlopen() if the others didn't work
726 if test "${ac_cv_have_plugins}" = "no"; then
727   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
728   ac_cv_my_have_dlopen=no
729   AC_CHECK_FUNC(dlopen,
730     ac_cv_my_have_dlopen=yes,
731     AC_CHECK_LIB(dl, dlopen,
732       ac_cv_my_have_dlopen=yes
733       VLC_ADD_LIBS([libvlc realaudio realvideo],[-ldl]),
734       AC_CHECK_LIB(svld, dlopen,
735         ac_cv_my_have_dlopen=yes
736         VLC_ADD_LIBS([libvlc],[-lsvld]))))
737   if test "${ac_cv_my_have_dlopen}" = "yes"; then
738     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
739     ac_cv_have_plugins=yes
740   fi
743 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
744 dnl Check for pthreads - borrowed from XMMS
745 THREAD_LIB=error
746 if test "${THREAD_LIB}" = "error"; then
747   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
749 if test "${THREAD_LIB}" = "error"; then
750   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
752 if test "${THREAD_LIB}" = "error"; then
753   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
755 if test "${THREAD_LIB}" = "error"; then
756   AC_CHECK_FUNCS(pthread_mutex_lock)
757   THREAD_LIB=""
760 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
762 AC_CHECK_LIB(rt, clock_nanosleep, [
763   VLC_ADD_LIBS([libvlc],[-lrt])
764   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
765 ], [
766   dnl HP/UX port
767   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
770 have_nanosleep=false
771 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
772   AC_CHECK_LIB(rt,nanosleep,
773     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
774     [AC_CHECK_LIB(posix4,nanosleep,
775         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
776   )
778 if ${have_nanosleep}; then
779   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
781 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
783 dnl Check for misc headers
784 AC_MSG_CHECKING(for strncasecmp in strings.h)
785 AC_EGREP_HEADER(strncasecmp,strings.h,[
786   AC_MSG_RESULT(yes)
787   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
788             Define if <strings.h> defines strncasecmp.)],[
789   AC_MSG_RESULT(no)])
791 dnl Check for headers
792 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h locale.h)
793 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h xlocale.h)
794 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h])
795 AC_CHECK_HEADERS([net/if.h], [], [],
796   [
797     #include <sys/socket.h>
798   ])
799 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
800 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
801 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
802 AC_CHECK_HEADERS(syslog.h)
803 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
805 AC_HEADER_TIME
807 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
808 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
809 AC_CHECK_TYPE(ssize_t,, [
810   AC_DEFINE(ssize_t, int)
813 dnl Check for poll
814 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
815 if test ${SYS} != "mingw32"
816 then
817     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])
821 dnl Check for dirent
822 need_dirent=false
823 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
824 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
826 dnl Mac OS X and other OSes don't have declaration for nanosleep
827 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
828 AC_MSG_CHECKING(for nanosleep in time.h)
829 AC_EGREP_HEADER(nanosleep,time.h,[
830   AC_MSG_RESULT(yes)
831   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
832             Define if <time.h> defines nanosleep.)
834   AC_MSG_RESULT(no)
836 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
838 dnl Make sure we have timespecs
839 AC_MSG_CHECKING(for timespec in sys/time.h)
840 AC_EGREP_HEADER(timespec,sys/time.h,[
841   AC_MSG_RESULT(yes)
842   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
843             Define if <sys/time.h> defines struct timespec.)
845   AC_MSG_RESULT(no)
848 dnl Check for threads library
849 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
850 AC_CHECK_HEADERS(pthread.h)
851 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
853 dnl Find where are the X headers and libraries
854 AC_PATH_XTRA()
856 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.
857 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
858 AC_ARG_VAR(PKG_CONFIG_PATH, 
859            [Paths where to find .pc not at the default location])
860 PKG_PROG_PKG_CONFIG()
862 dnl Check for hal
863 AC_ARG_ENABLE(hal,
864   [  --enable-hal            Linux HAL services discovery (default enabled)])
866 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
867 then
868   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
869     [
870       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
871       VLC_ADD_PLUGIN([hal])
872       VLC_ADD_PLUGIN([probe_hal])
873       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
874       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],
875     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
876   )
879 dnl Check for dbus
880 AC_ARG_ENABLE(dbus,
881   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
882 case "${SYS}" in
883     linux*|*bsd*)
884 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
885 then
886   dnl api stable dbus
887   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
888     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
889       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
890       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
891       dnl Check for dbus control interface
892         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
893         if test "${enable_dbus_control}" != "no"
894         then
895           VLC_ADD_PLUGIN([dbus])
896           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
897           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
898         fi
899       dnl Check for Telepathy
900         AC_ARG_ENABLE(telepathy,
901           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
902         if test "${enable_telepathy}" != "no"; then
903           VLC_ADD_PLUGIN([telepathy])
904           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
905           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
906         fi
907         dnl Power Management Inhibiter
908         VLC_ADD_PLUGIN([inhibit])
909         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
910         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
911     ],
912     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
913   )
916 esac
918 dnl Build the gtk_main plugins?
919 NEED_GTK_MAIN=no
920 NEED_GNOME_MAIN=no
921 NEED_GTK2_MAIN=no
922 NEED_GNOME2_MAIN=no
924 dnl build the qte plugin ?
925 NEED_QTE_MAIN=no
927 dnl Check for ntohl, etc.
928 AC_CACHE_CHECK([for ntohl in sys/param.h],
929     [ac_cv_c_ntohl_sys_param_h],
930     [CFLAGS="${CFLAGS_save} -Wall -Werror"
931      AC_TRY_COMPILE([#include <sys/param.h>],
932         [int meuh; ntohl(meuh);],
933         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
934 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
935     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
937 CFLAGS="${CFLAGS_save}"
939 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
940 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
942 dnl Check for various optimization flags
943 AC_CACHE_CHECK([if \$CC accepts -Os],
944     [ac_cv_c_os],
945     [CFLAGS="${CFLAGS_save} -Os"
946      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
947 if test "${ac_cv_c_os}" != "no"; then
948     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
949 else 
950     AC_CACHE_CHECK([if \$CC accepts -O],
951         [ac_cv_c_o],
952         [CFLAGS="${CFLAGS_save} -O"
953          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
954     if test "${ac_cv_c_o}" != "no"; then
955         if test "${ac_cv_c_o3}" = "no"; then
956             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
957         fi
958     fi
961 AC_CACHE_CHECK([if \$CC accepts -O3],
962     [ac_cv_c_o3],
963     [CFLAGS="${CFLAGS_save} -O3"
964      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
965 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
966     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
967 else
968     AC_CACHE_CHECK([if \$CC accepts -O2],
969         [ac_cv_c_o2],
970         [CFLAGS="${CFLAGS_save} -O2"
971          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
972     if test "${ac_cv_c_o2}" != "no"; then
973         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
974     else
975         AC_CACHE_CHECK([if \$CC accepts -O],
976             [ac_cv_c_o],
977             [CFLAGS="${CFLAGS_save} -O"
978              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
979         if test "${ac_cv_c_o}" != "no"; then
980             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
981         fi
982     fi
985 AC_CACHE_CHECK([if \$CC accepts -O0],
986     [ac_cv_c_o0],
987     [CFLAGS="${CFLAGS_save} -O0"
988      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
989 if test "${ac_cv_c_o0}" != "no"; then
990     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
993 dnl Check for -ffast-math
994 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
995     [ac_cv_c_fast_math],
996     [CFLAGS="${CFLAGS_save} -ffast-math"
997      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
998 if test "${ac_cv_c_fast_math}" != "no"; then
999     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1002 dnl Check for -funroll-loops
1003 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1004 if test "${SYS}" != "beos"
1005 then
1006   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1007       [ac_cv_c_unroll_loops],
1008       [CFLAGS="${CFLAGS_save} -funroll-loops"
1009        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1010   if test "${ac_cv_c_unroll_loops}" != "no"; then
1011       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1012   fi
1015 dnl Check for -fomit-frame-pointer
1016 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1017     [ac_cv_c_omit_frame_pointer],
1018     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1019      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1020 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1021  if test "${SYS}" != "darwin"; then
1022     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1023  else
1024     dnl On darwin we explicitely disable it.
1025     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1026  fi
1029 dnl Check for Darwin plugin linking flags
1030 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1031     [ac_cv_ld_darwin],
1032     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1033      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1034 if test "${ac_cv_ld_darwin}" != "no"; then
1035     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1038 dnl Checks for __attribute__(aligned()) directive
1039 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1040     [ac_cv_c_attribute_aligned],
1041     [ac_cv_c_attribute_aligned=0
1042         CFLAGS="${CFLAGS_save} -Werror"
1043     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1044         AC_TRY_COMPILE([],
1045         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1046         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1047     done
1048         CFLAGS="${CFLAGS_save}"])
1049 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1050     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1051         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1054 dnl Check for __attribute__((packed))
1055 AC_CACHE_CHECK([for __attribute__((packed))],
1056   [ac_cv_c_attribute_packed],
1057   [ac_cv_c_attribute_packed=no
1058    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1059                     [ac_cv_c_attribute_packed=yes])])
1060 if test "${ac_cv_c_attribute_packed}" != "no"; then
1061   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1065 dnl  Check the CPU
1067 case "${host_cpu}" in
1068   "")
1069     ARCH=unknown
1070     ;;
1071   *)
1072     ARCH="${host_cpu}"
1073     ;;
1074 esac
1076 dnl Check for backtrace() support
1077 AC_CHECK_HEADERS(execinfo.h)
1078 AC_CHECK_FUNCS(backtrace)
1081 dnl  Enable profiling
1083 AC_ARG_ENABLE(gprof,
1084 [  --enable-gprof          gprof profiling (default disabled)])
1085 AC_ARG_ENABLE(cprof,
1086 [  --enable-cprof          cprof profiling (default disabled)])
1087 test "${enable_gprof}" != "yes" && enable_gprof="no"
1088 test "${enable_cprof}" != "yes" && enable_cprof="no"
1091 dnl  default modules
1093 dnl Video filters:
1094 VLC_ADD_PLUGIN([deinterlace])
1095 VLC_ADD_PLUGIN([yuvp])
1096 VLC_ADD_PLUGIN([invert])
1097 VLC_ADD_PLUGIN([adjust])
1098 VLC_ADD_PLUGIN([transform])
1099 VLC_ADD_PLUGIN([wave])
1100 VLC_ADD_PLUGIN([ripple])
1101 VLC_ADD_PLUGIN([psychedelic])
1102 VLC_ADD_PLUGIN([gradient])
1103 VLC_ADD_PLUGIN([motionblur])
1104 VLC_ADD_PLUGIN([rv32])
1105 VLC_ADD_PLUGIN([rotate])
1106 VLC_ADD_PLUGIN([noise])
1107 VLC_ADD_PLUGIN([grain])
1108 VLC_ADD_PLUGIN([extract])
1109 VLC_ADD_PLUGIN([sharpen])
1110 VLC_ADD_PLUGIN([croppadd])
1111 VLC_ADD_PLUGIN([canvas])
1112 VLC_ADD_PLUGIN([blendbench])
1113 VLC_ADD_PLUGIN([blend])
1114 VLC_ADD_PLUGIN([scale])
1115 VLC_ADD_PLUGIN([vmem])
1116 VLC_ADD_PLUGIN([logo])
1117 VLC_ADD_PLUGIN([magnify])
1118 VLC_ADD_PLUGIN([puzzle])
1119 VLC_ADD_PLUGIN([colorthres])
1120 VLC_ADD_PLUGIN([scene])
1121 VLC_ADD_PLUGIN([yuv])
1123 ALIASES="${ALIASES} cvlc"
1126 dnl default modules that need g++
1128 AC_LANG_PUSH(C++)
1129 VLC_ADD_PLUGIN([spatializer])
1130 AC_LANG_POP(C++)
1132 if test "${SYS}" != "mingwce"; then
1133   VLC_ADD_PLUGIN([gestures])
1134   VLC_ADD_PLUGIN([rc])
1135   VLC_ADD_PLUGIN([hotkeys])
1136   VLC_ADD_PLUGIN([showintf])
1137   VLC_ADD_PLUGIN([marq])
1138   VLC_ADD_PLUGIN([podcast])
1139   VLC_ADD_PLUGIN([shout])
1140   VLC_ADD_PLUGIN([sap])
1141   VLC_ADD_PLUGIN([fake])
1142   VLC_ADD_PLUGIN([folder])
1143   VLC_ADD_PLUGIN([rss])
1144   VLC_ADD_PLUGIN([mosaic])
1145   VLC_ADD_PLUGIN([wall])
1146   VLC_ADD_PLUGIN([motiondetect])
1147   VLC_ADD_PLUGIN([clone])
1148   VLC_ADD_PLUGIN([crop])
1149   VLC_ADD_PLUGIN([erase])
1150   VLC_ADD_PLUGIN([bluescreen])
1151   VLC_ADD_PLUGIN([alphamask])
1152   VLC_ADD_PLUGIN([gaussianblur])
1153   VLC_ADD_PLUGIN([i420_yuy2])
1154   VLC_ADD_PLUGIN([i422_yuy2])
1155   VLC_ADD_PLUGIN([i420_ymga])
1156   VLC_ADD_PLUGIN([i422_i420])
1157   VLC_ADD_PLUGIN([yuy2_i422])
1158   VLC_ADD_PLUGIN([yuy2_i420])
1159   VLC_ADD_PLUGIN([chain])
1160   VLC_ADD_PLUGIN([aout_file])
1161   VLC_ADD_PLUGIN([linear_resampler])
1162   VLC_ADD_PLUGIN([bandlimited_resampler])
1163   VLC_ADD_PLUGIN([float32_mixer])
1164   VLC_ADD_PLUGIN([spdif_mixer])
1165   VLC_ADD_PLUGIN([simple_channel_mixer])
1166   VLC_ADD_PLUGIN([dolby_surround_decoder])
1167   VLC_ADD_PLUGIN([headphone_channel_mixer])
1168   VLC_ADD_PLUGIN([normvol])
1169   VLC_ADD_PLUGIN([equalizer])
1170   VLC_ADD_PLUGIN([param_eq])
1171   VLC_ADD_PLUGIN([scaletempo])
1172   VLC_ADD_PLUGIN([converter_float])
1173   VLC_ADD_PLUGIN([a52tospdif])
1174   VLC_ADD_PLUGIN([dtstospdif])
1175   VLC_ADD_PLUGIN([audio_format])
1176   ALIASES="${ALIASES} rvlc"
1180 dnl Some plugins aren't useful on some platforms
1182 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1183     VLC_ADD_PLUGIN([screensaver])
1184     VLC_ADD_PLUGIN([motion])
1185     VLC_ADD_PLUGIN([dynamicoverlay])
1186     VLC_ADD_PLUGIN([signals])
1187 elif test "${SYS}" != "mingwce"; then
1188     VLC_ADD_PLUGIN([ntservice])
1189     VLC_ADD_PLUGIN([access_smb])
1190     VLC_ADD_PLUGIN([dmo])
1191     VLC_ADD_PLUGIN([msn])
1192     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1193 else
1194     VLC_ADD_PLUGIN([win32text])
1196 if test "${SYS}" = "darwin"; then
1197     VLC_ADD_PLUGIN([quartztext])
1198     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1202 dnl  Accelerated modules
1204 AC_ARG_WITH(,[])
1205 AC_ARG_WITH(,[Optimization options:])
1207 dnl  Check for fully working MMX intrinsics
1208 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1209 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1210 AC_ARG_ENABLE(mmx,
1211 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1212   case "${host_cpu}" in
1213     i?86|x86_64)
1214       enable_mmx="yes"
1215       ;;
1216     *)
1217       enable_mmx="no"
1218       ;;
1219   esac
1221 AS_IF([test "${enable_mmx}" != "no"], [
1222   ARCH="${ARCH} mmx"
1224   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1225     [ac_cv_c_mmx_intrinsics],
1226     [CFLAGS="${CFLAGS_save} -O -mmmx"
1227      AC_TRY_COMPILE([#include <mmintrin.h>
1228                      #include <stdint.h>
1229                      uint64_t frobzor;],
1230                     [__m64 a, b, c;
1231                      a = b = c = (__m64)frobzor;
1232                      a = _mm_slli_pi16(a, 3);
1233                      a = _mm_adds_pi16(a, b);
1234                      c = _mm_srli_pi16(c, 8);
1235                      c = _mm_slli_pi16(c, 3);
1236                      b = _mm_adds_pi16(b, c);
1237                      a = _mm_unpacklo_pi8(a, b);
1238                      frobzor = (uint64_t)a;],
1239                     [ac_cv_c_mmx_intrinsics=yes],
1240                     [ac_cv_c_mmx_intrinsics=no])])
1241   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1242     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1243               [Define to 1 if MMX intrinsics are available.])
1244     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1245   ])
1247   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1248     [ac_cv_mmx_inline],
1249     [CFLAGS="${CFLAGS_save}"
1250      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1251                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1252   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1253     AC_DEFINE(CAN_COMPILE_MMX, 1,
1254               [Define to 1 inline MMX assembly is available.])
1255     VLC_ADD_PLUGIN([memcpymmx])
1256     VLC_ADD_PLUGIN([i420_rgb_mmx])
1257     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1258     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1259     VLC_ADD_PLUGIN([i420_ymga_mmx])
1260   ])
1262   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1263     [ac_cv_mmxext_inline],
1264     [CFLAGS="${CFLAGS_save}"
1265      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1266                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1267   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1268     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1269               [Define to 1 if MMX EXT inline assembly is available.])
1270     VLC_ADD_PLUGIN([memcpymmxext])
1271   ])
1274 dnl  Check for fully workin SSE2 intrinsics
1275 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1276 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1277 AC_ARG_ENABLE(sse,
1278 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1279 ,, [
1280   case "${host_cpu}" in
1281     i686|x86_64)
1282       enable_sse=yes
1283       ;;
1284     *)
1285       enable_sse=no
1286       ;;
1287   esac
1289 AS_IF([test "${enable_sse}" != "no"], [
1290   ARCH="${ARCH} sse sse2"
1292   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1293     [ac_cv_c_sse2_intrinsics],
1294     [CFLAGS="${CFLAGS_save} -O -msse2"
1295      AC_TRY_COMPILE([#include <emmintrin.h>
1296                      #include <stdint.h>
1297                      uint64_t frobzor;],
1298                     [__m128i a, b, c;
1299                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1300                      a = _mm_slli_epi16(a, 3);
1301                      a = _mm_adds_epi16(a, b);
1302                      c = _mm_srli_epi16(c, 8);
1303                      c = _mm_slli_epi16(c, 3);
1304                      b = _mm_adds_epi16(b, c);
1305                      a = _mm_unpacklo_epi8(a, b);
1306                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1307                     [ac_cv_c_sse2_intrinsics=yes],
1308                     [ac_cv_c_sse2_intrinsics=no])])
1309   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1310     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1311               [Define to 1 if SSE2 intrinsics are available.])
1312     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1313   ])
1315   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1316     [ac_cv_sse_inline],
1317     [CFLAGS="${CFLAGS_save}"
1318      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1319                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1320   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1321     AC_DEFINE(CAN_COMPILE_SSE, 1,
1322               [Define to 1 if SSE inline assembly is available.])
1323   ])
1325   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1326     [ac_cv_sse2_inline],
1327     [CFLAGS="${CFLAGS_save}"
1328      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1329                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1330   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1331     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1332               [Define to 1 if SSE2 inline assembly is available.])
1333     VLC_ADD_PLUGIN([i420_rgb_sse2])
1334     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1335     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1336   ])
1339 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1340     [ac_cv_3dnow_inline],
1341     [CFLAGS="${CFLAGS_save}"
1342      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1343                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1344 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1345   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1346             [Define to 1 if 3D Now! inline assembly is available.])
1347   VLC_ADD_PLUGIN([memcpy3dn])
1350 AC_ARG_ENABLE(altivec,
1351 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1352   AS_IF([test "${host_cpu}" = "powerpc"],
1353         [enable_altivec=yes], [enable_altivec=no])
1355 AS_IF([test "${enable_altivec}" = "yes"], [
1356   ARCH="${ARCH} altivec";
1357   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1358     [ac_cv_altivec_inline],
1359     [CFLAGS="${CFLAGS_save}"
1360      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1361          ac_cv_altivec_inline="yes",
1362          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1363           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1364             [ac_cv_altivec_inline="-Wa,-m7400"],
1365             ac_cv_altivec_inline=no)
1366          ])])
1367   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1368     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1369               [Define to 1 if AltiVec inline assembly is available.])
1370     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1371       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1372       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1373       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1374       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1375       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1376     ])
1377     VLC_ADD_PLUGIN([memcpyaltivec])
1378     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1379   ])
1381 dnl The AltiVec C extensions
1383 dnl There are several possible cases:
1384 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1385 dnl                      need <altivec.h>
1386 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1387 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1388 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1389 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1390 dnl - Others: test should fail
1391   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1392   [ac_cv_c_altivec],
1393   [# OS X/PPC test (gcc 4.x)
1394    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1395    AC_TRY_COMPILE([vector unsigned char foo;],
1396      [vec_ld(0, (unsigned char *)0);],
1397      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1398      [# OS X/PPC test (gcc 3.x)
1399       CFLAGS="${CFLAGS_save} -faltivec"
1400       AC_TRY_COMPILE([vector unsigned char foo;],
1401         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1402         [ac_cv_c_altivec="-faltivec"],
1403         dnl Below this are the Linux tests
1404         [# Linux/PPC test (gcc 4.x)
1405          CFLAGS="${CFLAGS_save} -maltivec"
1406          AC_TRY_COMPILE([#include <altivec.h>],
1407            [vec_ld(0, (unsigned char *)0);],
1408            [ac_cv_c_altivec="-maltivec"],
1409            [# Linux/PPC test (gcc 3.3)
1410             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1411             AC_TRY_COMPILE([#include <altivec.h>],
1412               [vec_ld(0, (unsigned char *)0);],
1413               [ac_cv_c_altivec=""
1414                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1415               [# Linux/PPC test (gcc 3.3)
1416                CFLAGS="${CFLAGS_save} -fvec"
1417                AC_TRY_COMPILE([#include <altivec.h>],
1418                  [vec_ld(0, (unsigned char *)0);],
1419                  [ac_cv_c_altivec="-fvec"],
1420                  [ac_cv_c_altivec=no])
1421               ])
1422            ])
1423         ])
1424      ])
1425    CFLAGS="${CFLAGS_save}"
1426   ])
1427   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1428     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1429   ])
1431   AC_CHECK_HEADERS(altivec.h)
1432   CPPFLAGS="${CPPFLAGS_save}"
1433   
1434   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1435     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1436               [Define to 1 if C AltiVec extensions are available.])
1437     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1438     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1439     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1440     VLC_ADD_PLUGIN([memcpyaltivec])
1441     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1442   ])
1444   AC_CACHE_CHECK([if linker needs -framework vecLib],
1445     [ac_cv_ld_altivec],
1446     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1447      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1448      LDFLAGS="${LDFLAGS_save}"
1449     ])
1450   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1451     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1452   ])
1456 dnl  Special arch tuning
1458 AC_ARG_WITH(tuning,
1459 [  --with-tuning=ARCH      enable special tuning for an architecture
1460                           (default Pentium 2 on IA-32 and G4 on PPC)])
1461 if test -n "${with_tuning}"; then
1462     if test "${with_tuning}" != "no"; then
1463         CFLAGS_TUNING="-mtune=${with_tuning}"
1464     fi
1465 else
1466     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1467         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1468     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1469         CFLAGS_TUNING="-mtune=pentium2"
1470     elif test "${host_cpu}" = "x86_64"; then
1471         CFLAGS_TUNING="-mtune=athlon64"
1472     elif test "${host_cpu}" = "powerpc"; then
1473         CFLAGS_TUNING="-mtune=G4";
1474     fi
1477 dnl NOTE: this can't be cached cleanly
1478 AS_IF([test "${CFLAGS_TUNING}"],
1479    [CFLAGS_save="${CFLAGS}"
1480     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1482     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1483     AC_COMPILE_IFELSE([ ],
1484                       [tuning="yes"],
1485                       [CFLAGS_TUNING=""; tuning="no"
1486                        AS_IF([test "${with_tuning}"],
1487                              [AC_MSG_ERROR([requested tuning not supported])])])
1489     AC_MSG_RESULT([$tuning])
1490     CFLAGS="${CFLAGS_save}"
1494 dnl  Memory usage
1496 AC_ARG_ENABLE(optimize-memory,
1497 [  --enable-optimize-memory optimize memory usage over performance])
1498 if test "${enable_optimize_memory}" = "yes"; then
1499   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1503 dnl  Enable/disable optimizations
1505 AC_ARG_ENABLE(optimizations,
1506 [  --disable-optimizations disable compiler optimizations (default enabled)])
1507 if test "${enable_optimizations}" != "no"; then
1508    if test "${enable_optimize_memory}" = "yes"; then
1509       enable_optimizations="size"
1510    else
1511       enable_optimizations="speed"
1512    fi
1516 dnl  Debugging mode
1518 AC_ARG_ENABLE(debug,
1519 [  --enable-debug          debug mode (default disabled)])
1520 test "${enable_debug}" != "yes" && enable_debug="no"
1521 AH_TEMPLATE(NDEBUG,
1522             [Define to 1 if debug code should NOT be compiled])
1523 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1526 dnl Allow runing as root (usefull for people runing on embedded platforms)
1528 AC_ARG_ENABLE(run-as-root,
1529 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1530 AS_IF([test "${enable_run_as_root}" == "yes"],[
1531     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1532               [Define to 1 to allow runing VLC as root (uid 0).])
1536 dnl  Test coverage
1538 AC_ARG_ENABLE(coverage,
1539         [  --enable-coverage       build for test coverage (default disabled)],,
1540         [enable_coverage="no"])
1541 AS_IF([test "${enable_coverage}" != "no"], [
1542         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1543         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1544         LDFLAGS="-lgcov ${LDFLAGS}"
1545         dnl ugly...
1546         CFLAGS_save="${CFLAGS}"
1547         CXXFLAGS_save="${CXXFLAGS}"
1548         LDFLAGS_save="${LDFLAGS}"
1552 dnl  Enable release-specific flags
1554 AC_ARG_ENABLE(release,
1555 [  --enable-release        activate extra optimizations (default disabled)])
1556 test "${enable_release}" != "yes" && enable_release="no"
1559 dnl Stream output
1561 AC_ARG_ENABLE(sout,
1562   [  --enable-sout           Stream output modules (default enabled)])
1563 AS_IF([test "${enable_sout}" != "no"], [
1564   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1566 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1568 AC_ARG_ENABLE(switcher,
1569   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1571 dnl Check for libshout
1572 AC_ARG_ENABLE(shout,
1573   [  --enable-shout          libshout output plugin (default disabled)])
1574 if test "${enable_shout}" = "yes"; then
1575   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1576     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1577      VLC_ADD_PLUGIN([access_output_shout])
1578      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1579      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1580     [AC_MSG_WARN(libshout library not found)])
1583 dnl Lua modules
1584 AC_ARG_ENABLE(lua,
1585   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface 
1586                   plugins (default enabled)]))
1587 if test "${enable_lua}" != "no"
1588 then
1589   PKG_CHECK_MODULES(LUA, lua5.1,
1590     [ have_lua=yes ],
1591     [
1592     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1593     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1594       [ have_lua=yes ],
1595       [
1596         have_lua=yes
1597         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1598           [],
1599           [ have_lua=no ] )
1600         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1601           [LUA_LIBS="-llua5.1"],
1602           AC_CHECK_LIB( lua51 , luaL_newstate,
1603             [LUA_LIBS="-llua51"],
1604             AC_CHECK_LIB( lua , luaL_newstate,
1605               [LUA_LIBS="-llua"],
1606               [ have_lua=no
1607                 AC_MSG_WARN([lua >= 5.1 not found!])
1608               ])
1609           )
1610         )
1611       ])
1612     ])
1613   if test "x${have_lua}" = "xyes" ;  then
1614      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1615      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1616      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1617   fi
1619 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1622 dnl HTTP daemon
1624 AC_ARG_ENABLE(httpd,
1625   [  --enable-httpd          HTTP daemon (default enabled)])
1626 if test "${enable_httpd}" != "no"
1627 then
1628   VLC_ADD_PLUGIN([http])
1629   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1631 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1634 dnl libproxy support
1636 AC_ARG_ENABLE(libproxy,
1637   [  --enable-libproxy       libproxy support (default auto)])
1638 AS_IF([test "${enable_libproxy}" != "no"], [
1639   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1640     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1641     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1642     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1643   ], [
1644     AS_IF([test "x${enable_libproxy}" != "x"], [
1645       AC_MSG_ERROR([libproxy could not be found on your system])
1646     ])
1647   ])
1651 dnl VideoLAN manager
1653 AC_ARG_ENABLE(vlm,
1654   [  --enable-vlm            VideoLAN manager (default enabled)],,
1655   [enable_vlm="${enable_sout}"])
1656 AS_IF([test "${enable_vlm}" != "no"], [
1657   AS_IF([test "${enable_sout}" = "no"], [
1658     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1659   ])
1660   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1661   VLC_ADD_PLUGIN([telnet])
1663 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1666 dnl Growl notification plugin
1668 AC_ARG_ENABLE(growl,
1669   [  --enable-growl          growl notification plugin (default disabled)],,
1670   [enable_growl=no])
1671 AS_IF([test "${enable_growl}" != "no"], [
1672     VLC_ADD_PLUGIN([growl_udp])
1673     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1674       VLC_ADD_PLUGIN([growl])
1675       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1676     ])
1677   ]
1681 dnl Libnotify notification plugin
1684 AC_ARG_ENABLE(notify,
1685   [  --enable-notify         libnotify notification plugin (default enabled)])
1686 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1687     PKG_CHECK_MODULES(NOTIFY, libnotify,
1688       [
1689         VLC_ADD_PLUGIN([notify])
1690         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1691         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1692       ],[
1693     AS_IF([test "${enable_notify}" = "yes"],[
1694         AC_MSG_WARN( libnotify not found) ])
1695       ])
1696   ])
1699 dnl Audioscrobbler plugin
1702 AC_ARG_ENABLE(audioscrobbler,
1703   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1704 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1705         VLC_ADD_PLUGIN([audioscrobbler])
1706   ])
1709 dnl Taglibplugin
1711 AC_ARG_ENABLE(taglib,
1712   [  --disable-taglib Taglib support (default enabled) ])
1713   AS_IF([test "${enable_taglib}" != "no"],[
1714     PKG_CHECK_MODULES(TAGLIB, taglib,
1715       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1716         VLC_ADD_PLUGIN([taglib])
1717         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1718        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1719       [AC_MSG_WARN(TagLib library not found)])
1720   ])
1724 dnl  Input plugins
1727 AC_ARG_WITH(,[Input plugins:])
1729 dnl  live555 input
1731 if test "${enable_livedotcom}" 
1732 then
1733   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1735 if test "${enable_livedotcom}" = "no"
1736 then
1737   enable_live555="no"
1740 AC_ARG_ENABLE(live555,
1741 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1742 if test "${enable_live555}" != "no"; then
1743   AC_ARG_WITH(live555-tree,
1744     [    --with-live555-tree=PATH live.com tree for static linking])
1746   dnl
1747   dnl test for --with-live555-tree
1748   dnl
1749   if test "${with_livedotcom_tree}" 
1750   then
1751     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1752   with_live555_tree="${with_livedotcom_tree}"
1753   fi
1755   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1756     AC_LANG_PUSH(C++)
1757     CPPFLAGS_save="${CPPFLAGS}"
1758     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1759     if test "${SYS}" = "solaris"; then
1760       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1761     fi
1762     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1764     AC_CHECK_HEADERS(liveMedia_version.hh, [
1765       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1766       AC_EGREP_CPP(yes,
1767         [#include <liveMedia_version.hh>
1768          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1769          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1770          yes
1771          #endif
1772          #endif],
1773         [AC_MSG_RESULT([no])
1774          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1775 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1776       ],[
1777          AC_MSG_RESULT([yes])
1778          ])
1779     ])
1780      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1781      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1782       if test "${SYS}" = "mingw32"; then
1783         # add ws2_32 for closesocket, select, recv
1784         other_libs="$other_libs -lws2_32"
1785       fi
1786     dnl We need to check for pic because live555 don't provide shared libs
1787     dnl and we want to build a plugins so we need -fPIC on some arch.
1788     AC_CHECK_HEADERS(liveMedia.hh, [
1789       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1790         AC_CHECK_LIB(liveMedia_pic, main, [
1791           VLC_ADD_PLUGIN([live555])
1792          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1793          ],[
1794         AC_CHECK_LIB(liveMedia, main, [
1795           VLC_ADD_PLUGIN([live555])
1796           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1797         ],[],[${other_libs}]) ],[${other_libs_pic}])
1798     ],[
1799        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1800     ])
1801     CPPFLAGS="${CPPFLAGS_save}"
1802     AC_LANG_POP(C++)
1803   else
1804     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1805     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1806     if test -z "${real_live555_tree}"; then
1807       dnl  The given directory can't be found
1808       AC_MSG_RESULT(no)
1809       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1810     fi
1811     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1812       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1814       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1815         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1816         AC_EGREP_CPP(yes,
1817           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1818            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1819            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1820            yes
1821            #endif
1822            #endif],
1823           [AC_MSG_RESULT([no])
1824            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1825 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1826         ],[
1827            AC_MSG_RESULT([yes])
1828            ])
1829       ])
1831       VLC_ADD_PLUGIN([live555])
1833       if test "${SYS}" = "mingw32"; then
1834         # add ws2_32 for closesocket, select, recv
1835         VLC_ADD_LIBS([live555],[-lws2_32])
1836       fi
1838       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1839       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1840       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1841       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1843       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1844       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1845       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1846       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1847       if test "${SYS}" = "solaris"; then
1848         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1849       fi
1850     else
1851       dnl  The given live555 wasn't built
1852         AC_MSG_RESULT(no)
1853       if test "${enable_live555}" = "yes"; then
1854         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1855       fi        
1856     fi
1857   fi
1861 dnl  special access module for dc1394 input
1863 AC_ARG_ENABLE(dc1394,
1864   [  --enable-dc1394         dc1394 access module (default disabled)])
1865 if test "${enable_dc1394}" = "yes"
1866 then
1867   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1868     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1869         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1870 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1871               VLC_ADD_PLUGIN([dc1394])
1872               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1873 dnl         ],
1874 dnl         [
1875 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1876 dnl         ])
1877       ],
1878       [
1879         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1880       ])
1881     ],
1882     [
1883       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1884     ])
1885   ],
1886   [
1887     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1888   ])
1892 dnl dv module: digital video module check for libraw1394
1894 AC_ARG_ENABLE(dv,
1895 [  --enable-dv             dv input module (default disabled)])
1896 if test "${enable_dv}" = "yes"
1897 then
1898   AC_ARG_WITH(dv-raw1394,
1899   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1900   AC_ARG_WITH(dv-raw1394-tree,
1901   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1903   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1904   then
1905     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1906     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1907     then
1908       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1909       AC_MSG_RESULT(yes)
1910       VLC_ADD_PLUGIN([access_dv])
1911       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1912       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1913     else
1914       dnl  No libraw1394 could be found, sorry
1915       AC_MSG_RESULT(no)
1916       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1917     fi
1918   else
1919     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1920     [ VLC_ADD_PLUGIN([access_dv])
1921         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1922     ],[
1923         if test -n "${enable_dv}"
1924         then
1925           AC_MSG_ERROR([cannot find libraw1394 headers])
1926         fi
1927     ])
1928   fi
1930   dnl Check for static linking of libraw1394
1931   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1932   then
1933     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1934     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1935     if test -z "${real_dv_raw1394_tree}"
1936     then
1937       dnl  The given directory can't be found
1938       AC_MSG_RESULT(no)
1939       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1940     fi
1941     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1942     then
1943       dnl  Use a custom libraw1394
1944       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1945       VLC_ADD_PLUGIN([access_dv])
1946       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1947       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1948     else
1949       dnl  The given libraw1394 wasn't built
1950       AC_MSG_RESULT(no)
1951       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1952     fi
1953   fi
1955   dnl
1956   dnl Check for libavc1394
1957   dnl
1959   AC_ARG_WITH(dv-avc1394,
1960   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1961   AC_ARG_WITH(dv-avc1394-tree,
1962   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1964   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1965   then
1966     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1967     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1968     then
1969       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1970       AC_MSG_RESULT(yes)
1971       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1972       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1973     else
1974       dnl  No libavc1394 could be found, sorry
1975       AC_MSG_RESULT(no)
1976       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1977     fi
1978   else
1979     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1980     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1981     ],[
1982         if test -n "${enable_dv}"
1983         then
1984           AC_MSG_ERROR([cannot find libavc1394 headers])
1985         fi
1986     ])
1987   fi
1989   dnl Check for static linking of libavc1394
1990   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1991   then
1992     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1993     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1994     if test -z "${real_dv_avc1394_tree}"
1995     then
1996       dnl  The given directory can't be found
1997       AC_MSG_RESULT(no)
1998       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1999     fi
2000     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2001     then
2002       dnl  Use a custom libavc1394
2003       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2004       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2005       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2006     else
2007       dnl  The given libavc1394 wasn't built
2008       AC_MSG_RESULT(no)
2009       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2010     fi
2011   fi
2015 dnl dvdread module: check for libdvdread
2017 AC_ARG_ENABLE(dvdread,
2018 [  --enable-dvdread        dvdread input module (default disabled)])
2019 if test "${enable_dvdread}" != "no"
2020 then
2021   AC_ARG_WITH(dvdread,
2022   [    --with-dvdread=PATH   libdvdread headers and libraries])
2023   AC_ARG_WITH(dvdread-tree,
2024   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2026   dnl Temporary hack (yeah, sure ;)
2027   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2028       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2029   fi
2031   if test -z "${with_dvdread}"
2032   then
2033     if test -z "${with_dvdread_tree}"
2034     then
2035       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2036         [ VLC_ADD_PLUGIN([dvdread])
2037           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2038         ],[
2039           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2040             [ VLC_ADD_PLUGIN([dvdread])
2041               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2042             ],[
2043               if test -n "${enable_dvdread}"
2044               then
2045               AC_MSG_ERROR([cannot find libdvdread headers])
2046              fi
2047            ])
2048         ])
2049     else
2050       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2051       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2052       if test -z "${real_dvdread_tree}"
2053       then
2054         dnl  The given directory can't be found
2055         AC_MSG_RESULT(no)
2056         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2057       fi
2058       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2059       then
2060         dnl  Use a custom libdvdread
2061         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2062         VLC_ADD_PLUGIN([dvdread])
2063         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2064         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2065       else
2066         dnl  The given libdvdread wasn't built
2067         AC_MSG_RESULT(no)
2068         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2069       fi
2070     fi
2071   else
2072     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2073     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2074     then
2075       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2076       AC_MSG_RESULT(yes)
2077       VLC_ADD_PLUGIN([dvdread])
2078       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2079       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2080     else
2081       dnl  No libdvdread could be found, sorry
2082       AC_MSG_RESULT(no)
2083       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2084     fi
2085   fi
2089 dnl  libdvdnav plugin
2091 AC_ARG_ENABLE(dvdnav,
2092   [  --enable-dvdnav         dvdnav input module (default enabled)])
2093 if test "${enable_dvdnav}" != "no"
2094 then
2095   dnl Same hack than dvdread
2096   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2097       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2098   fi
2100   DVDNAV_PATH="${PATH}"
2101   AC_ARG_WITH(dvdnav-config-path,
2102     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2103     [ if test "${with_dvdnav_config_path}" != "no"
2104       then
2105         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2106       fi ])
2107   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2108   if test "${DVDNAV_CONFIG}" != "no"
2109   then
2110     VLC_ADD_PLUGIN([dvdnav])
2111     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2112     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2113   fi
2117 dnl  Windows DirectShow access module
2119 AC_ARG_ENABLE(dshow,
2120   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2121 if test "${enable_dshow}" != "no"
2122 then
2123   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2124   then
2125     AC_LANG_PUSH(C++)
2126       AC_CHECK_HEADERS(dshow.h,
2127       [ VLC_ADD_PLUGIN([dshow])
2128         VLC_ADD_CXXFLAGS([dshow],[])
2129         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2130     AC_LANG_POP(C++)
2131   fi
2135 dnl  Windows DirectShow BDA access module
2137 AC_ARG_ENABLE(bda,
2138   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default 
2139                   enabled on Win32)]))
2140 if test "${enable_bda}" != "no"
2141 then
2142   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2143   then
2144       AC_CHECK_HEADERS(dshow.h,
2145       [ VLC_ADD_PLUGIN([bda])
2146         VLC_ADD_CXXFLAGS([bda],[])
2147         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2148   fi
2153 dnl  OpenCV wrapper and example filters
2155 AC_ARG_ENABLE(opencv,
2156   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2157 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2158 then
2159   AC_ARG_WITH(opencv-tree,
2160   [    --with-opencv-tree=PATH opencv tree for linking])
2161     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2162     then
2163       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2164           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2165           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2166             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2167       then
2168         AC_MSG_RESULT(yes)
2169         VLC_ADD_PLUGIN([opencv_wrapper])
2170         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2171         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])
2172         AC_LANG_PUSH(C++)
2173         VLC_ADD_PLUGIN([opencv_example])
2174         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2175         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])
2176         AC_LANG_POP(C++)        
2177           else
2178         dnl  No opencv could be found, sorry
2179         AC_MSG_RESULT(no)
2180         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2181           fi
2182     else
2183       PKG_CHECK_MODULES(OPENCV, opencv,
2184         [
2185           VLC_ADD_PLUGIN([opencv_example])
2186           VLC_ADD_PLUGIN([opencv_wrapper])
2187           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2188           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2189           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2190         ],
2191         [AC_MSG_ERROR([libopencv not found!])]
2192       )
2193     fi
2198 dnl  libsmbclient plugin
2200 AC_ARG_ENABLE(smb,
2201   [  --enable-smb            smb input module (default enabled)])
2202 if test "${enable_smb}" != "no"; then
2203   AC_CHECK_HEADERS(libsmbclient.h,
2204     [ VLC_ADD_PLUGIN([access_smb])
2205       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2206     [ if test -n "${enable_smb}"; then
2207         AC_MSG_ERROR([cannot find libsmbclient headers])
2208      fi ])
2209   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2210     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2211     [#include <libsmbclient.h>])
2215 dnl  libdvbpsi ts demux/mux
2217 AC_ARG_ENABLE(dvbpsi,
2218   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2219 have_dvbpsi=no
2220 if test "${enable_dvbpsi}" != "no"
2221 then
2222   AC_ARG_WITH(dvbpsi,
2223   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2224   AC_ARG_WITH(dvbpsi,
2225   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2226   case "${with_dvbpsi}" in
2227   ""|yes)
2228     if test -z "${with_dvbpsi_tree}"
2229     then
2230       AC_CHECK_HEADERS(dvbpsi/dr.h,
2231         [ VLC_ADD_PLUGIN([ts])
2232           if test "${enable_sout}" != "no"; then
2233             VLC_ADD_PLUGIN([mux_ts])
2234           fi
2235           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2236           have_dvbpsi=yes],
2237         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2238         [#if defined( HAVE_STDINT_H )
2239 #   include <stdint.h>
2240 #elif defined( HAVE_INTTYPES_H )
2241 #   include <inttypes.h>
2242 #endif
2243 #include <dvbpsi/dvbpsi.h>
2244 #include <dvbpsi/descriptor.h>
2245 #include <dvbpsi/pat.h>
2246 #include <dvbpsi/pmt.h>])
2247     else
2248       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2249       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2250       if test -z "${real_dvbpsi_tree}"
2251       then
2252         dnl  The given directory can't be found
2253         AC_MSG_RESULT(no)
2254         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2255       fi
2256       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2257       then
2258         dnl  Use a custom libdvbpsi
2259         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2260         VLC_ADD_PLUGIN([ts])
2261         if test "${enable_sout}" != "no"; then
2262           VLC_ADD_PLUGIN([mux_ts])
2263         fi
2264         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2265         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2266         have_dvbpsi=yes
2267       else
2268         dnl  The given libdvbpsi wasn't built
2269         AC_MSG_RESULT(no)
2270         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2271       fi
2272     fi
2273   ;;
2274   no)
2275     dnl  Compile without dvbpsi
2276   ;;
2277   *)
2278     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2279     if test -z "${with_dvbpsi}"
2280     then
2281       LDFLAGS_test=""
2282       CPPFLAGS_test=""
2283     else
2284       LDFLAGS_test="-L${with_dvbpsi}/lib"
2285       CPPFLAGS_test="-I${with_dvbpsi}/include"
2286     fi
2287     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2288     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2289       VLC_ADD_PLUGIN([ts])
2290       if test "${enable_sout}" != "no"; then
2291         VLC_ADD_PLUGIN([mux_ts])
2292       fi
2293       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2294       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2295       have_dvbpsi=yes
2296     ],[
2297       if test -n "${enable_dvbpsi}"
2298       then
2299         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])
2300       fi
2301     ])
2302     CPPFLAGS="${CPPFLAGS_save}"
2303   ;;
2304   esac
2305   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2306     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2307   ], [], [${LIBS_ts}])
2312 dnl  Video4Linux plugin
2314 AC_ARG_ENABLE(v4l,
2315   [  --enable-v4l            Video4Linux input support (default disabled)])
2316 if test "${enable_v4l}" = "yes"
2317 then
2318   AC_ARG_WITH(v4l,
2319     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2320   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2321   then
2322     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2323   fi
2325   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2326   AC_CHECK_HEADERS(linux/videodev.h, [
2327     VLC_ADD_PLUGIN([v4l])
2328   ],[])
2329   CPPFLAGS="${CPPFLAGS_save}"
2333 dnl  Video4Linux2 plugin
2335 AC_ARG_ENABLE(v4l2,
2336   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2337 if test "${enable_v4l2}" != "no"
2338 then
2339   AC_ARG_WITH(v4l2,
2340     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2341   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2342   then
2343     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2344   fi
2346   if test "${enable_alsa}" != "no"
2347   then
2348     AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2349   fi
2351   if test "${have_v4l2_alsa}" = "true"
2352   then
2353     CFLAGS="${CFLAGS_save}"
2354     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2355                     #define ALSA_PCM_NEW_SW_PARAMS_API
2356                     #include <alsa/asoundlib.h>],
2357        [snd_pcm_hw_params_get_period_time(0,0,0);],
2358         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2359     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2360     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2361   fi
2363   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2364   AC_CHECK_HEADERS(linux/videodev2.h, [
2365     VLC_ADD_PLUGIN([v4l2])
2366   ],[])
2367   CPPFLAGS="${CPPFLAGS_save}"
2371 dnl libv4l2 support for video4linux.
2373 AC_ARG_ENABLE( libv4l2,
2374   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2375 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2376 then
2377     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2378       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2379       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2380       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2381       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2382     )
2386 dnl  special access module for Hauppauge PVR cards
2388 AC_ARG_ENABLE(pvr,
2389   [  --enable-pvr            PVR cards access module (default disabled)])
2390 if test "${enable_pvr}" = "yes"
2391 then
2392   VLC_ADD_PLUGIN([pvr])
2393   AC_ARG_WITH(videodev2,
2394     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2395   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2396   then
2397     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2398   fi
2399     
2401   AC_CACHE_CHECK([for new linux/videodev2.h],
2402       [ac_cv_new_linux_videodev2_h],
2403       [AC_TRY_COMPILE([
2404           #include <sys/types.h>
2405           #   ifdef VIDEODEV2_H_FILE
2406           #   include VIDEODEV2_H_FILE
2407           #   else
2408           #   include <linux/videodev2.h>
2409           #   endif
2410           ],
2411           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2412           ac_cv_new_linux_videodev2_h=yes,
2413           ac_cv_new_linux_videodev2_h=no)])
2414   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2415     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2416   fi
2420 dnl  gnomeVFS access module
2422 AC_ARG_ENABLE(gnomevfs,
2423   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2424 if test "${enable_gnomevfs}" = "yes" 
2425 then
2426   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2427     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2428     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2429     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2430     VLC_ADD_PLUGIN([access_gnomevfs]),
2431     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2434 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2435 AC_ARG_ENABLE(libcdio,
2436   [  --enable-libcdio        CD input and control library support (default enabled)])
2438 AC_ARG_ENABLE(vcdinfo,
2439   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2441 have_libcdio=no
2442 have_libvcdinfo=no
2443 if test "${enable_libcdio}" != "no"
2444 then
2445   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2446      have_libcdio=yes
2447      AC_DEFINE(HAVE_LIBCDIO, 1, 
2448      [Define if you have libcdio 0.78.2 or greater installed]),
2449      [AC_MSG_WARN(CD Reading and information library not found)])
2451   if test "${enable_vcdinfo}" != "no"
2452   then
2453     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2454        [have_libvcdinfo=yes
2455        AC_DEFINE(HAVE_VCDINFO, 1, 
2456        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2457        [AC_MSG_WARN(VCD information library not found)])
2458   fi
2462 dnl  VCDX and CDDAX modules
2464 AC_ARG_ENABLE(cddax,
2465   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2466                   via libcdio (default disabled)]))
2468 AC_ARG_ENABLE(libcddb,
2469   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2471 if test "${enable_cddax}" = "yes"
2472 then
2473   if test "$have_libcdio" = "yes"
2474   then
2475     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2476     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2477     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2478     VLC_ADD_PLUGIN([cddax])
2479     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2480     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2481     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2482   else 
2483     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2484     HAVE_CDDAX=no
2485   fi
2487   if test "$enable_libcddb" != "no"; then
2488     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2489       HAVE_LIBCDDB=yes 
2490       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2491       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2492       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2493       ],
2494       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2495       HAVE_LIBCDDB=no])
2496   fi
2500 AC_ARG_ENABLE(vcdx,
2501   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2503 if test "${enable_vcdx}" = "yes"
2504 then
2505   if test "${have_libvcdinfo}" = "yes"
2506   then
2507     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2508     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2509   else 
2510     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2511     HAVE_VCDX=no
2512   fi
2514   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2515    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2516     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2517     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2518     HAVE_VCDX=no])
2520   if test "$have_libvcdinfo" = "yes"
2521   then
2522     AC_DEFINE(HAVE_VCDX, 1, 
2523     [Define for the VCD plugin using libcdio/libvcdinfo])
2524     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2525     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2526     VLC_ADD_PLUGIN([vcdx])
2527   else 
2528     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2529     HAVE_VCDX=no
2530   fi
2534 dnl  Built-in CD-DA and VCD module
2536 AC_ARG_ENABLE(cdda,           
2537   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2539 AC_ARG_ENABLE(vcd,
2540   [  --enable-vcd            built-in VCD (default enabled)])
2542 if test "${enable_vcd}" != "no"
2543 then
2544   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2545   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2546     AC_MSG_RESULT(yes)
2547     VLC_ADD_PLUGIN([vcd])
2548     VLC_ADD_PLUGIN([cdda])
2549   ],[
2550     AC_MSG_RESULT(no)
2551   ])
2553   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2554   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2555     AC_MSG_RESULT(yes)
2556     VLC_ADD_PLUGIN([vcd])
2557     VLC_ADD_PLUGIN([cdda])
2558     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2559   ],[
2560     AC_MSG_RESULT(no)
2561   ])
2563   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2564   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2565     AC_MSG_RESULT(yes)
2566     VLC_ADD_PLUGIN([vcd])
2567     VLC_ADD_PLUGIN([cdda])
2568     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2569   ],[
2570     AC_MSG_RESULT(no)
2571   ])
2573   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2574   then
2575     VLC_ADD_PLUGIN([vcd])
2576     VLC_ADD_PLUGIN([cdda])
2577   fi
2579   if test "${SYS}" = "darwin"
2580   then
2581     VLC_ADD_PLUGIN([vcd])
2582     VLC_ADD_PLUGIN([cdda])
2583     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2584     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2585   fi
2587   if test "$enable_libcddb" != "no"; then
2588     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2589       HAVE_LIBCDDB=yes 
2590       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2591       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2592       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2593       ],:
2594       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2595       HAVE_LIBCDDB=no])
2596   fi
2600 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2602 AC_ARG_ENABLE(dvb,
2603   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2605 if test "${enable_dvb}" != "no"
2606 then
2607     AS_IF([test "${have_dvbpsi}" = "yes" ],[  
2608     AC_ARG_WITH(dvb,
2609      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2610      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2611      then
2612        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2613      fi
2614      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2615      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2616      VLC_ADD_PLUGIN([dvb])
2617      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2618      CPPFLAGS="${CPPFLAGS_save}"
2619    ],[
2620      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2621     ]) 
2625 dnl  Screen capture module
2627 AC_ARG_ENABLE(screen,
2628   [  --enable-screen         Screen capture support (default enabled)])
2629 if test "${enable_screen}" != "no"; then
2630   if test "${SYS}" = "darwin"; then
2631     AC_CHECK_HEADERS(OpenGL/gl.h, [
2632       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2633         VLC_ADD_PLUGIN([screen])
2634         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2635       ])
2636     ])
2637   elif test "${SYS}" = "mingw32"; then
2638     VLC_ADD_PLUGIN([screen])
2639     VLC_ADD_LIBS([screen],[-lgdi32])
2640   elif test "${SYS}" = "mingwce"; then
2641     CPPFLAGS="${CPPFLAGS_save}"
2642   elif test "${SYS}" = "beos"; then
2643     VLC_ADD_PLUGIN([screen])
2644     VLC_ADD_CXXFLAGS([screen],[])
2645     VLC_ADD_LIBS([screen],[-lbe])
2646   else
2647     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2648     AC_CHECK_HEADERS(X11/Xlib.h, [
2649       VLC_ADD_PLUGIN([screen])
2650       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2651       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2652     ])
2653     CPPFLAGS="${CPPFLAGS_save}"
2654   fi
2658 dnl  ipv6 plugin - not for QNX yet
2660 have_ipv6=no
2661 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2662   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2665 AS_IF([test "${have_ipv6}" = "yes"], [
2666   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2669 AC_CHECK_FUNCS(inet_ntop,[
2670   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2674 dnl  ogg demux plugin
2676 AC_ARG_ENABLE(ogg,
2677   [  --enable-ogg            Ogg demux support (default enabled)])
2678 if test "${enable_ogg}" != "no"
2679 then
2680   AC_ARG_WITH(ogg-tree,
2681   [    --with-ogg-tree=PATH  ogg tree for static linking])
2682   if test -n "${with_ogg_tree}"
2683   then
2684     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2685     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2686     if test -z "${real_ogg_tree}"
2687     then
2688       dnl  The given directory can't be found
2689       AC_MSG_RESULT(no)
2690       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2691     fi
2692     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2693     then
2694       dnl  Use a custom ogg
2695       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2696       VLC_ADD_PLUGIN([ogg])
2697       if test "${enable_sout}" != "no"; then
2698         VLC_ADD_PLUGIN([mux_ogg])
2699       fi
2700       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2701       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2702     else
2703       dnl  The given ogg wasn't built
2704       AC_MSG_RESULT(no)
2705       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2706     fi
2707   else
2708     AC_CHECK_HEADERS(ogg/ogg.h, [
2709       AC_CHECK_LIB( ogg, oggpack_read, [
2710         VLC_ADD_PLUGIN([ogg])
2711         if test "${enable_sout}" != "no"; then
2712           VLC_ADD_PLUGIN([mux_ogg])
2713         fi
2714         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2715      ],[])
2716   fi
2720 dnl  matroska demux plugin
2722 AC_ARG_ENABLE(mkv,
2723   [  --enable-mkv            Matroska demux support (default enabled)])
2724 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2725   AC_LANG_PUSH(C++)
2726   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2727     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2728     AC_EGREP_CPP(yes,
2729       [#include <ebml/EbmlVersion.h>
2730        #ifdef LIBEBML_VERSION
2731        #if LIBEBML_VERSION >= 0x000706
2732        yes
2733        #endif
2734        #endif],
2735       [AC_MSG_RESULT([yes])
2736         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2737           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2738           AC_EGREP_CPP(yes,
2739             [#include <matroska/KaxVersion.h>
2740              #ifdef LIBMATROSKA_VERSION
2741              #if LIBMATROSKA_VERSION >= 0x000705
2742              yes
2743              #endif
2744              #endif],
2745             [AC_MSG_RESULT([yes])
2746               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2747               VLC_ADD_CXXFLAGS([mkv],[])
2748               if test "${SYS}" = "darwin"; then
2749                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2750               fi
2751               AC_CHECK_LIB(ebml_pic, main, [
2752                 VLC_ADD_PLUGIN([mkv])
2753                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2754               ],
2755                 AC_CHECK_LIB(ebml, main, [
2756                   VLC_ADD_PLUGIN([mkv])
2757                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2758                 ]) 
2759               )
2760             ],
2761             [AC_MSG_RESULT([no])
2762               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.])
2763           ])
2764         ])
2765       ],
2766       [AC_MSG_RESULT([no])
2767         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.])
2768     ])
2769   ])
2770   AC_LANG_POP(C++)
2774 dnl  modplug demux plugin
2776 AC_ARG_ENABLE(mod,
2777   [  --enable-mod            Mod demux support (default enabled)])
2778 if test "${enable_mod}" != "no"
2779 then
2780   AC_ARG_WITH(mod-tree,
2781   [    --with-mod-tree=PATH mod tree for static linking])
2782   if test -n "${with_mod_tree}"
2783   then
2784     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2785     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2786     if test -z "${real_mod_tree}"
2787     then
2788       dnl  The given directory can't be found
2789       AC_MSG_RESULT(no)
2790       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2791     fi
2792     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2793     then
2794       dnl  Use a custom mod
2795       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2796       VLC_ADD_PLUGIN([mod])
2797       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2798       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2799     else
2800       dnl  The given mod wasn't built
2801       AC_MSG_RESULT(no)
2802       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2803     fi
2804   else
2805     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2806       VLC_ADD_PLUGIN([mod])
2807       VLC_ADD_CXXFLAGS([mod],[])
2808       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2809   fi
2813 dnl  mpc demux plugin
2815 AC_ARG_ENABLE(mpc,
2816   [  --enable-mpc            Mpc demux support (default enabled)])
2817 if test "${enable_mpc}" != "no"
2818 then
2819   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2820     VLC_ADD_PLUGIN([mpc])
2821     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2825 dnl  game music emu demux plugin
2827 AC_ARG_ENABLE(gme,
2828   [  --enable-gme            Game Music Emu demux support (default enabled)])
2829 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2830 then
2831   AC_LANG_PUSH(C++)
2832   AC_ARG_WITH(gme-tree,
2833   [    --with-gme-tree=PATH gme tree for static linking])
2834   if test -n "${with_gme_tree}"
2835   then
2836     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2837     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2838     if test -z "${real_gme_tree}"
2839     then
2840       dnl  The given directory can't be found
2841       AC_MSG_RESULT(no)
2842       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2843     fi
2844     if test -f "${real_gme_tree}/gme/libgme.a"
2845     then
2846       dnl  Use a custom gme
2847       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2848       VLC_ADD_PLUGIN([gme])
2849       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2850       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2851     else
2852       dnl  The given gme wasn't built
2853       AC_MSG_RESULT(no)
2854       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2855     fi
2856   else
2857       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2858   fi
2859   AC_LANG_POP(C++)
2863 dnl  Codec plugins
2866 AC_ARG_WITH(,[Codec plugins:])
2869 dnl  mad plugin
2871 AC_ARG_ENABLE(mad,
2872   [  --enable-mad            libmad module (default enabled)])
2873 if test "${enable_mad}" != "no"
2874 then
2875   AC_ARG_WITH(mad,
2876     [    --with-mad=PATH       path to libmad],[],[])
2877   if test "${with_mad}" != "no" -a -n "${with_mad}"
2878   then
2879     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2880     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2881   fi
2883   AC_ARG_WITH(mad-tree,
2884     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2885   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2886   then
2887     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2888     if test -z "${real_mad_tree}"
2889     then
2890       dnl  The given directory can't be found
2891       AC_MSG_RESULT(no)
2892       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2893     fi
2894     dnl  Use a custom libmad
2895     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2896     if test -f ${real_mad_tree}/mad.h
2897     then
2898       AC_MSG_RESULT(yes)
2899       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2900       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2901       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2902       AC_CHECK_LIB(mad, mad_bit_init, [
2903         VLC_ADD_PLUGIN([mpgatofixed32])
2904         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2905         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2906       ],[])
2907       LDFLAGS="${LDFLAGS_save}"
2908     else
2909       AC_MSG_RESULT(no)
2910       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2911     fi
2912   else
2913     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2914     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2915     AC_CHECK_HEADERS(mad.h, ,
2916       [ 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.]) ])
2917     AC_CHECK_LIB(mad, mad_bit_init, [
2918       VLC_ADD_PLUGIN([mpgatofixed32])
2919       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2920       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2921     CPPFLAGS="${CPPFLAGS_save}"
2922     LDFLAGS="${LDFLAGS_save}"
2923   fi
2927 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2929 AC_ARG_ENABLE( id3tag,
2930 [  --disable-id3tag        id3tag metadata reader plugin (default enabled)])
2931 AS_IF([test "${enable_id3tag}" != "no"], [
2932   AC_CHECK_HEADERS(id3tag.h, [
2933     AC_CHECK_HEADERS(zlib.h, [
2934       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2935       VLC_ADD_PLUGIN([id3tag])
2936     ])
2937   ])
2941 dnl  avcodec decoder/encoder plugin
2944 if test "${with_ffmpeg_tree}"
2945 then
2946   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2949 AC_ARG_ENABLE(avcodec,
2950 [  --enable-avcodec        libavcodec codec (default enabled)])
2951 if test "${enable_avcodec}" != "no"
2952 then
2953   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2954     [
2955       VLC_SAVE_FLAGS
2956       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2957       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2958       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2959       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2960       VLC_ADD_PLUGIN([avcodec])
2961       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2962       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2963       VLC_RESTORE_FLAGS
2964     ],[
2965       AC_MSG_FAILURE([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2966   ])
2970 dnl  avformat demuxer/muxer plugin
2973 AC_ARG_ENABLE(avformat,
2974 [  --enable-avformat       libavformat containers (default enabled)])
2975 if test "${enable_avformat}" != "no"
2976 then
2977   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2978     [
2979       VLC_SAVE_FLAGS
2980       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2981       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2982       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2983       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2984       VLC_ADD_PLUGIN([avformat])
2985       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
2986       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
2987       VLC_RESTORE_FLAGS
2988     ],[
2989       AC_MSG_FAILURE([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2990   ])
2994 dnl  swscale image scaling and conversion plugin
2997 AC_ARG_ENABLE(swscale,
2998   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
2999                   (default enabled)]))
3000 if test "${enable_swscale}" != "no"
3001 then
3002   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3003     [
3004       VLC_SAVE_FLAGS
3005       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3006       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3007       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3008       VLC_ADD_PLUGIN([swscale])
3009       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3010       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3011       VLC_RESTORE_FLAGS
3012     ],[
3013       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3014       enable_imgresample=yes
3015   ])
3019 dnl  avcodec (deprecated API) image scaling and conversion plugin
3021 dnl  This is build as a seperate module than the avcodec one to prevent
3022 dnl  stupid run time library load errors from disabling most codecs
3023 dnl  from VLC.
3026 AC_ARG_ENABLE(imgresample,
3027   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3028                   and conversion (default disabled)]))
3029 if test "${enable_imgresample}" = "yes"
3030 then
3031   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3032     [
3033       VLC_SAVE_FLAGS
3034       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3035       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3036       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3037       AC_CHECK_LIB(avcodec,img_resample,
3038         [
3039           VLC_ADD_PLUGIN([imgresample])
3040           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3041           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3042         ],[
3043           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3044           if test "${enable_swscale}" != "no"
3045           then
3046             AC_MSG_FAILURE([swscale (and its fallback module imgresample) support will be missing. Use --disable-swscale to ignore this error. (This basically means that you will be missing any good software scaling module and some video chroma converters.)])
3047           fi
3048         # That sed hack to add -rpath is kind of ugly but at least it fixes
3049         # detection when linking against a shared libavcodec with
3050         # a libavutil not in one of your ld.so.conf directories.
3051         # (for example a local install)
3052         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3053       VLC_RESTORE_FLAGS
3054     ],[
3055       AC_MSG_WARN([Could not find libavcodec.])
3056   ])
3060 dnl  postproc plugin
3063 AC_ARG_ENABLE(postproc,
3064 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3065 if test "${enable_postproc}" != "no"
3066 then
3067   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3068     [
3069       VLC_SAVE_FLAGS
3070       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3071       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3072       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3073       VLC_ADD_PLUGIN([postproc])
3074       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3075       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3076       VLC_RESTORE_FLAGS
3077     ],[
3078       AC_MSG_ERROR([Could not find libpostproc.])
3079   ])
3083 dnl  faad decoder plugin
3085 AC_ARG_ENABLE(faad,
3086 [  --enable-faad           faad codec (default disabled)])
3087 if test "${enable_faad}" = "yes"
3088 then
3089   AC_ARG_WITH(faad-tree,
3090   [    --with-faad-tree=PATH faad tree for static linking])
3091   if test -n "${with_faad_tree}"
3092   then
3093     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3094     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3095     if test -z "${real_faad_tree}"
3096     then
3097       dnl  The given directory can't be found
3098       AC_MSG_RESULT(no)
3099       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3100     fi
3101     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3102     then
3103       dnl  Use a custom faad
3104       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3105       VLC_ADD_PLUGIN([faad])
3106       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3107       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3108     else
3109       dnl  The given libfaad wasn't built
3110       AC_MSG_RESULT(no)
3111       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3112     fi
3113   else
3114     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3115     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3116     AC_CHECK_HEADERS(faad.h, ,
3117       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3118     AC_CHECK_LIB(faad, faacDecOpen, [
3119       VLC_ADD_PLUGIN([faad])
3120       VLC_ADD_LIBS([faad],[-lfaad]) ],
3121       AC_CHECK_LIB(faad, NeAACDecOpen, [
3122         VLC_ADD_PLUGIN([faad])
3123         VLC_ADD_LIBS([faad],[-lfaad]) ],
3124         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3125     LDFLAGS="${LDFLAGS_save}"
3126     CPPFLAGS="${CPPFLAGS_save}"
3127   fi
3131 dnl twolame encoder plugin
3133 AC_ARG_ENABLE(twolame,
3134 [  --enable-twolame        twolame codec (default disabled)])
3135 if test "${enable_twolame}" = "yes"
3136 then
3137   AC_ARG_WITH(twolame-tree,
3138   [    --with-twolame-tree=PATH twolame tree for static linking])
3139   if test -n "${with_twolame_tree}"
3140   then
3141     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3142     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3143     if test -z "${real_twolame_tree}"
3144     then
3145       dnl  The given directory can't be found
3146       AC_MSG_RESULT(no)
3147       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3148     fi
3149     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3150     then
3151       dnl  Use a custom twolame
3152       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3153       VLC_ADD_PLUGIN([twolame])
3154       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3155       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3156     else
3157       dnl  The given libtwolame wasn't built
3158       AC_MSG_RESULT(no)
3159       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3160     fi
3161   else
3162     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3163     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3164     AC_CHECK_HEADERS(twolame.h, ,
3165       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3166     AC_CHECK_LIB(twolame, twolame_init, [
3167       VLC_ADD_PLUGIN([twolame])
3168       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3169       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3170         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3171     LDFLAGS="${LDFLAGS_save}"  
3172     CPPFLAGS="${CPPFLAGS_save}"
3173   fi
3177 dnl  QuickTime plugin
3179 AC_ARG_ENABLE(quicktime,
3180   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3181 if test "${enable_quicktime}" != "no" &&
3182   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3183 then
3184   if test "${SYS}" = "mingw32"; then
3185     VLC_ADD_PLUGIN([quicktime])
3186   else
3187   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3188     [ VLC_ADD_PLUGIN([quicktime])
3189       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3190     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3191   fi
3195 dnl  Real plugin
3197 AC_ARG_ENABLE(real,
3198   [  --enable-real           Real media module (default disabled)])
3199 if test "${enable_real}" = "yes"; then
3200   VLC_ADD_PLUGIN([realaudio])
3201   VLC_ADD_PLUGIN([realvideo])
3205 dnl  Real RTSP plugin
3207 AC_ARG_ENABLE(realrtsp,
3208   [  --enable-realrtsp       Real RTSP module (default disabled)])
3209 if test "${enable_realrtsp}" = "yes"; then
3210   VLC_ADD_PLUGIN([access_realrtsp])
3214 dnl MP4 module
3216 AC_CHECK_HEADERS(zlib.h, [
3217   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3218 ] )
3220 AC_ARG_ENABLE(libsysfs,
3221   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3223 AS_IF([test "${enable_libsysfs}" != "no"],[
3224   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3225     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3226   ] )
3230 dnl skins2 module
3232 AC_ARG_ENABLE(libtar,
3233   [  --enable-libtar         libtar support for skins2 (default enabled)])
3235 AS_IF([test "${enable_libtar}" != "no"],[
3236   AC_CHECK_HEADERS(libtar.h, [
3237     VLC_ADD_LIBS([skins2],[-ltar])
3238   ] )
3242 dnl A52/AC3 decoder plugin
3244 AC_ARG_ENABLE(a52,
3245   [  --enable-a52            A/52 support with liba52 (default enabled)])
3246 if test "${enable_a52}" != "no"
3247 then
3248   AC_ARG_WITH(a52,
3249     [    --with-a52=PATH       a52 headers and libraries])
3250   AC_ARG_WITH(a52-tree,
3251     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3252   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3253   then
3254     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3255     if test -z "${real_a52_tree}"
3256     then
3257       dnl  The given directory can't be found
3258       AC_MSG_RESULT(no)
3259       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3260     fi
3261     dnl  Use a custom a52dec
3262     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3263     if test -f ${real_a52_tree}/include/a52.h
3264     then
3265       AC_MSG_RESULT(yes)
3266       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3267       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3268       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3269       AC_CHECK_LIB(a52, a52_free, [
3270         VLC_ADD_PLUGIN([a52tofloat32])
3271         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3272         VLC_ADD_LIBS([a52tofloat32],[-la52])
3273         ],[
3274         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3275         then
3276           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3277         else
3278           AC_MSG_ERROR([the specified tree hasn't been compiled])
3279         fi
3280       ])
3281       LDFLAGS="${LDFLAGS_save}"
3282     else
3283       AC_MSG_RESULT(no)
3284       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3285     fi
3286   else
3287     if test -z "${with_a52}"
3288     then
3289       LDFLAGS_test=""
3290       CPPFLAGS_test=""
3291     else
3292       LDFLAGS_test="-L${with_a52}/lib"
3293       CPPFLAGS_test="-I${with_a52}/include"
3294     fi
3295     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3296     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3297     AC_CHECK_HEADERS(a52dec/a52.h, [
3298       AC_CHECK_LIB(a52, a52_free, [
3299         VLC_ADD_PLUGIN([a52tofloat32])
3300         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3301         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3302       ],[
3303         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.])
3304         ])
3305     ],[
3306       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.])
3307     ])
3308     CPPFLAGS="${CPPFLAGS_save}"
3309     LDFLAGS="${LDFLAGS_save}"
3310   fi
3313 AC_ARG_WITH(a52-fixed,
3314       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3315       [
3316         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3319 dnl DTS Coherent Acoustics decoder plugin
3321 AS_IF([test "x${enable_dts}" != "x"], [
3322   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3324 AS_IF([test "x${with_dts_tree}" != "x"], [
3325   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3328 AC_ARG_ENABLE(dca,
3329   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3330                   (default enabled)]))
3331 AS_IF([test "${enable_dca}" != "no"], [
3332   AC_ARG_WITH(dca-tree,
3333     [    --with-dca-tree=PATH  libdca tree for static linking],,
3334     [with_dca_tree="no"])
3335   AS_IF([test "${with_dca_tree}" != "no"], [
3336     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3337     AS_IF([test -z "${real_dca_tree}"], [
3338       dnl  The given directory can't be found
3339       AC_MSG_RESULT(no)
3340       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3341     ])
3342     dnl  Use a custom libdca
3343     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3344     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3345       AC_MSG_RESULT(yes)
3346       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3347       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3348         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3349       ], [
3350         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3351       ])
3352     ], [
3353       AC_MSG_RESULT(no)
3354       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3355     ])
3356   ], [
3357     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3358       VLC_ADD_PLUGIN([dtstofloat32])
3359       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3360       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3361     ], [
3362       AS_IF([test "x${enable_dca}" != "x"], [
3363         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3364       ])
3365     ])
3366   ])
3370 dnl  Flac plugin
3372 AC_ARG_ENABLE(flac,
3373   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3374 if test "${enable_flac}" = "yes"
3375 then
3376   AC_ARG_WITH(flac-tree,
3377   [    --with-flac-tree=PATH flac tree for static linking])
3378   if test -n "${with_flac_tree}"
3379   then
3380     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3381     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3382     if test -z "${real_flac_tree}"
3383     then
3384       dnl  The given directory can't be found
3385       AC_MSG_RESULT(no)
3386       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3387     fi
3388     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3389     then
3390       dnl  Use a custom flac
3391       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3392       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3393       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3394       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3395     else
3396       dnl  The given flac wasn't built
3397       AC_MSG_RESULT(no)
3398       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3399     fi
3400   else
3401     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3402       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3403      ],[])
3404   fi
3408 dnl  Libmpeg2 plugin
3410 AC_ARG_ENABLE(libmpeg2,
3411   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3412 if test "${enable_libmpeg2}" != "no"
3413 then
3414   AC_ARG_WITH(libmpeg2-tree,
3415   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3416   AS_IF([test -n "${with_libmpeg2_tree}"],[
3417     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3418     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3419     if test -z "${real_libmpeg2_tree}"
3420     then
3421       dnl  The given directory can't be found
3422       AC_MSG_RESULT(no)
3423       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3424     fi
3425     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3426     then
3427       dnl  Use a custom libmpeg2
3428       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3429       VLC_ADD_PLUGIN([libmpeg2])
3430       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3431       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3432     else
3433       dnl  The given libmpeg2 wasn't built
3434       AC_MSG_RESULT(no)
3435       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3436     fi
3437   ],[
3438    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3439           VLC_ADD_PLUGIN([libmpeg2])
3440           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3441           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3442        ], 
3443       AC_MSG_WARN([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ . Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.]))
3444   ])
3448 dnl  Vorbis plugin
3450 AC_ARG_ENABLE(vorbis,
3451   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3452 if test "${enable_vorbis}" != "no"
3453 then
3454   AC_ARG_WITH(vorbis-tree,
3455   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3456   if test -n "${with_vorbis_tree}"
3457   then
3458     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3459     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3460     if test -z "${real_vorbis_tree}"
3461     then
3462       dnl  The given directory can't be found
3463       AC_MSG_RESULT(no)
3464       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3465     fi
3466     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3467     then
3468       dnl  Use a custom vorbis 
3469       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3470       VLC_ADD_PLUGIN([vorbis])
3471       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3472       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3473     else
3474       dnl  The given vorbis wasn't built
3475       AC_MSG_RESULT(no)
3476       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3477     fi
3478   else
3479     AC_CHECK_HEADERS(vorbis/codec.h, [
3480       VLC_ADD_PLUGIN([vorbis])
3481       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3483     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3484       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3485   fi
3489 dnl  Tremor plugin
3491 AC_ARG_ENABLE(tremor,
3492   [  --enable-tremor         Tremor decoder support (default disabled)])
3493 if test "${enable_tremor}" = "yes"
3494 then
3495   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3496     VLC_ADD_PLUGIN([tremor])
3497     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3498    ],[])
3502 dnl  Speex plugin
3504 AC_ARG_ENABLE(speex,
3505   [  --enable-speex          Speex decoder support (default enabled)])
3506 if test "${enable_speex}" != "no"
3507 then
3508   AC_ARG_WITH(speex-tree,
3509   [    --with-speex-tree=PATH speex tree for static linking])
3510   if test -n "${with_speex_tree}"
3511   then
3512     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3513     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3514     if test -z "${real_speex_tree}"
3515     then
3516       dnl  The given directory can't be found
3517       AC_MSG_RESULT(no)
3518       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3519     fi
3520     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3521     then
3522       dnl  Use a custom speex
3523       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3524       VLC_ADD_PLUGIN([speex])
3525       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3526       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3527     else
3528       dnl  The given speex wasn't built
3529       AC_MSG_RESULT(no)
3530       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3531     fi
3532   else
3533     AC_CHECK_HEADERS(speex/speex.h, [
3534       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3535       AC_CHECK_LIB(speex, speex_decode_int, [
3536         VLC_ADD_PLUGIN([speex])
3537         VLC_ADD_LIBS([speex],[-lspeex]) ],
3538         [ AC_MSG_RESULT([no])
3539           AC_MSG_WARN([Your libspeex is too old, please get the development
3540                        version.]) ],[])
3541       LDFLAGS="${LDFLAGS_save}"
3542       ],[])
3543   fi
3547 dnl  tarkin decoder plugin
3549 AC_ARG_ENABLE(tarkin,
3550 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3551 if test "${enable_tarkin}" = "yes"
3552 then
3553   AC_ARG_WITH(tarkin-tree,
3554   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3555   if test -n "${with_tarkin_tree}"
3556   then
3557     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3558     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3559     if test -f "${real_tarkin_tree}/tarkin.o"
3560     then
3561       VLC_ADD_PLUGIN([tarkin])
3562       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3563       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])
3564       AC_MSG_RESULT(yes)
3565     else
3566       dnl  The given tarkin tree wasn't built
3567       AC_MSG_RESULT(no)
3568       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3569                     make sure you compiled tarkin in ${with_tarkin_tree}])
3570     fi
3571   fi
3575 dnl  theora decoder plugin
3577 AC_ARG_ENABLE(theora,
3578 [  --enable-theora         experimental theora codec (default disabled)])
3579 if test "${enable_theora}" = "yes"
3580 then
3581   AC_CHECK_HEADERS(theora/theora.h, [
3582     AC_CHECK_LIB(theora, theora_granule_time, [
3583       VLC_ADD_PLUGIN([theora])
3584       theora_libs="-ltheora -logg"
3585       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3586       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3587 You also need to check that you have a libogg posterior to the 1.0 release.])],
3588       [-logg])
3589   ])
3593 dnl  dirac decoder plugin
3595 AC_ARG_ENABLE(dirac,
3596 [  --enable-dirac          experimental dirac codec (default disabled)])
3597 if test "${enable_dirac}" = "yes"; then
3598   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3599       VLC_ADD_PLUGIN([dirac])
3600       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3601       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3602       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3603   ])
3607 dnl  schroedinger decoder plugin (for dirac format video)
3609 AC_ARG_ENABLE(schroedinger,
3610 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3611 if test "${enable_schroedinger}" != "no"; then
3612   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3613       VLC_ADD_PLUGIN([schroedinger])
3614       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3615       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3616         AS_IF([test "x${enable_schroedinger}" != "x"], [
3617           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3618         ])
3623 dnl  PNG decoder module
3625 AC_ARG_ENABLE(png,
3626   [  --enable-png            PNG support (default enabled)])
3627 if test "${enable_png}" != "no"; then
3628 AC_CHECK_HEADERS(png.h, [
3629   LDFLAGS="${LDFLAGS_save} -lz"
3630   AC_CHECK_LIB(png, png_set_rows, [
3631     VLC_ADD_LIBS([png],[-lpng -lz])
3632     VLC_ADD_PLUGIN([png])
3633     VLC_ADD_PLUGIN([osdmenu])
3634     VLC_ADD_PLUGIN([osd_parser])
3635     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3636     [],[-lz])
3637     LDFLAGS="${LDFLAGS_save}"
3638   ])
3640 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3643 dnl H264 encoder plugin (using libx264)
3645 AC_ARG_ENABLE(x264,
3646   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3647 if test "${enable_x264}" != "no"; then
3648   AC_ARG_WITH(x264-tree,
3649     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3650   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3651   then
3652     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3653     if test -z "${real_x264_tree}"
3654     then
3655       dnl  The given directory can't be found
3656       AC_MSG_RESULT(no)
3657       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3658     fi
3659     dnl  Use a custom libx264
3660     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3661     if test -f ${real_x264_tree}/x264.h
3662     then
3663       AC_MSG_RESULT(yes)
3664       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3665       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3666       PKG_CHECK_MODULES(X264,x264, [
3667         VLC_ADD_PLUGIN([x264])
3668         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3669         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3670       ],[
3671         AC_MSG_ERROR([the specified tree hasn't been compiled])
3672       ])
3673       LDFLAGS="${LDFLAGS_save}"
3674     else
3675       AC_MSG_RESULT(no)
3676       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3677     fi
3678   else
3679       PKG_CHECK_MODULES(X264,x264, [
3680         VLC_ADD_PLUGIN([x264])
3681         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3682         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3683       ],[
3684         if test "${enable_x264}" = "yes"; then
3685             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3686           fi
3687       ])
3688     LDFLAGS="${LDFLAGS_save}"
3689   fi
3693 dnl libfluidsynth (MIDI synthetizer) plugin
3695 AC_ARG_ENABLE(fluidsynth,
3696   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3697 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3698   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3699     VLC_ADD_PLUGIN(fluidsynth)
3700     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3701     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3702   ], [
3703     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3704       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3705     ])
3706   ])
3710 dnl Teletext Modules
3711 dnl vbi decoder plugin (using libzbvi)
3712 dnl telx module
3713 dnl uncompatible
3715 AC_ARG_ENABLE(zvbi,
3716   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3717                   libzvbi (default enabled)]))
3718 AC_ARG_ENABLE(telx,
3719   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3720                   zvbi) (default enabled if zvbi is absent)]))
3722 AS_IF( [test "${enable_zvbi}" != "no"],[
3723     PKG_CHECK_MODULES(ZVBI,
3724         zvbi-0.2 >= 0.2.25,
3725         [
3726           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3727           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3728           VLC_ADD_PLUGIN([zvbi])
3729           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3730           AS_IF( [test "${enable_telx}" = "yes"],[
3731                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles. 
3732                                Using zvbi.])
3733                   ])
3734         ],[
3735           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3736         ])
3737     ])  
3738 AS_IF( [test "${enable_telx}" != "no" ],[
3739   VLC_ADD_PLUGIN([telx])
3740   ])
3743 dnl asa/csri subtitle rendering module
3745 AC_ARG_ENABLE(csri,
3746   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3747 AS_IF( [test "${enable_csri}" = "yes"], [
3748   PKG_CHECK_MODULES(CSRI,
3749       csri >= 0.1.0,
3750       [
3751         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3752         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3753         VLC_ADD_PLUGIN([csri])
3754       ],[
3755         AC_MSG_WARN([CSRI helper library not found])
3756       ])
3757   ])
3760 dnl libass subtitle rendering module
3762 AC_ARG_ENABLE(libass,
3763   [  --enable-libass         Subtitle support using libass (default disabled)])
3764 AS_IF( [test "${enable_libass}" = "yes"], [
3765   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3766       [
3767         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3768         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3769         VLC_ADD_PLUGIN([libass])
3771         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3772           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3773         if test "${SYS}" = "mingw32"; then
3774            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz -lxml2])
3775         else
3776            VLC_ADD_LIBS([libass],[-lfontconfig])
3777         fi
3778        ])
3779       ],[
3780         AC_MSG_WARN([LIBASS library not found])
3781       ])
3782   ])
3785 dnl asa demuxer
3787 AC_ARG_ENABLE(asademux,
3788   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3789 AS_IF( [test "${enable_asademux}" = "yes"], [
3790   PKG_CHECK_MODULES(PCRE,
3791       libpcre >= 6.5,
3792       [
3793         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3794         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3795         if test "${SYS}" = "mingw32"; then
3796                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3797         fi
3798         VLC_ADD_PLUGIN([asademux])
3799       ],[
3800         AC_MSG_WARN([PCRE library not found (required for asademux)])
3801       ])
3802   ])
3805 dnl  CMML plugin
3807 AC_ARG_ENABLE(cmml,
3808   [  --enable-cmml           CMML support (default enabled)])
3809 if test "${enable_cmml}" != "no"
3810 then
3811   VLC_ADD_PLUGIN([cmml])
3815 dnl  kate decoder plugin
3817 AC_ARG_ENABLE(kate,
3818 [  --enable-kate           kate codec (default enabled)])
3819 AS_IF([test "${enable_kate}" != "no"], [
3820   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3821       VLC_ADD_PLUGIN([kate])
3822       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3823       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3824         AC_CHECK_HEADERS(kate/kate.h, [
3825           AC_CHECK_LIB(kate, kate_decode_init, [
3826             VLC_ADD_PLUGIN([kate])
3827             kate_libs="-lkate -logg"
3828             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3829             AS_IF([test "x${enable_kate}" != "x"], [
3830               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3831               You also need to check that you have a libogg posterior to the 1.0 release.])
3832             ])
3833           ], [-lkate -logg])
3834         ],[
3835           AS_IF([test "x${enable_kate}" != "x"], [
3836             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3837             You also need to check that you have a libogg posterior to the 1.0 release.])
3838           ])
3839         ])
3840   ])
3845 dnl  Video plugins
3848 AC_ARG_WITH(,[Video plugins:])
3850 dnl Check for DPMS
3851 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3852   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3853   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3854     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3855     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3856       AC_MSG_RESULT(yes)
3857       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3858                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3859     ],[
3860       AC_MSG_RESULT(no)
3861     ])
3862   ],,[
3863     #include <X11/Xlib.h>
3864   ])
3865   CPPFLAGS="${CPPFLAGS_save}"
3869 dnl  X11 module
3870 dnl  (enabled by default except on win32)
3872 AC_ARG_ENABLE(x11,
3873   [  --enable-x11            X11 support (default enabled)])
3874 if test "${enable_x11}" != "no" &&
3875   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3876    test "${enable_x11}" = "yes"); then
3877   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3878   AC_CHECK_HEADERS(X11/Xlib.h, [
3879     VLC_ADD_PLUGIN([panoramix])
3880     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3881     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3882     AC_CHECK_LIB(Xext, XShmAttach, [
3883       VLC_ADD_PLUGIN([x11])
3884       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3885       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3886     ])
3887   ])
3888   CPPFLAGS="${CPPFLAGS_save}"
3892 dnl  XVideo module
3893 dnl  (enabled by default except on win32)
3895 AC_ARG_ENABLE(xvideo,
3896   [  --enable-xvideo         XVideo support (default enabled)])
3897 if test "${enable_xvideo}" != "no" &&
3898   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3899    test "${enable_xvideo}" = "yes"); then
3900   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3901   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3902     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3903     AC_CHECK_LIB(Xv,XvPutImage,[
3904         VLC_ADD_PLUGIN([xvideo])
3905         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3906         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3907     ])
3908     CFLAGS="${CFLAGS_save}"
3909   ]
3910   CPPFLAGS="${CPPFLAGS_save}")
3914 dnl  GLX module
3915 dnl  (enabled by default except on win32)
3917 AC_ARG_ENABLE(glx,
3918   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3919 if test "${enable_glx}" != "no" &&
3920   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3921    test "${enable_glx}" = "yes"); then
3922   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3923   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3924   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3925     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3926     choke me
3927     #endif]]),
3928     [
3929       VLC_ADD_PLUGIN([glx])
3930       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3931       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3932     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3933   CPPFLAGS="${CPPFLAGS_save}"
3937 dnl  XVMC module
3938 dnl  (disabled by default except on win32)
3940 AC_ARG_ENABLE(xvmc,
3941   [  --enable-xvmc           XVMC support (default disabled)])
3942 if test "${enable_xvmc}" = "yes" &&
3943   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3944    test "${enable_xvmc}" = "yes"); then
3945   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3946   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3947     VLC_ADD_PLUGIN([xvmc])
3948     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
3949     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3950   ])
3951   CPPFLAGS="${CPPFLAGS_save}"
3955 dnl  Check for the Xinerama extension
3957 AC_ARG_ENABLE(xinerama,
3958   [  --enable-xinerama       Xinerama support (default enabled)])
3959 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3960   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3961    test "${enable_xvideo}" = "yes"); then
3962   ac_cv_have_xinerama="no"
3963   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3964   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3965   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3966     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3967       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3968       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3969       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3970       ac_cv_have_xinerama="yes"
3971     ],[
3972       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3973         VLC_ADD_LIBS([xvideo],[-lXinerama])
3974         VLC_ADD_LIBS([x11],[-lXinerama])
3975         VLC_ADD_LIBS([glx],[-lXinerama])
3976         ac_cv_have_xinerama="yes"
3977       ])
3978     ])
3979   ])
3980   if test "${ac_cv_have_xinerama}" = "yes"; then
3981     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3982   fi
3983   CFLAGS="${CFLAGS_save}"
3984   CPPFLAGS="${CPPFLAGS_save}"
3987 dnl  Check for XF86VidMode extension
3989   ac_cv_have_xf86vidmode="no"
3990   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3991   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3992   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3993     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3994       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
3995       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
3996       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
3997       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
3998       ac_cv_have_xf86vidmode="yes"
3999     ],[
4000       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4001         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4002         VLC_ADD_LIBS([x11],[-lXxf86vm])
4003         VLC_ADD_LIBS([glx],[-lXxf86vm])
4004         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4005         ac_cv_have_xf86vidmode="yes"
4006       ])
4007     ])
4008   ],[true],
4009 [#ifdef HAVE_X11_XLIB_H
4010 # include <X11/Xlib.h>
4011 #endif]
4012    )
4013   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4014     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4015   ])
4016   CFLAGS="${CFLAGS_save}"
4017   CPPFLAGS="${CPPFLAGS_save}"
4022 dnl  OpenGL module
4023 dnl  (enabled by default except on beos)
4025 AC_ARG_ENABLE(opengl,
4026   [  --enable-opengl         OpenGL support (default enabled)])
4027 if test "${enable_opengl}" != "no" &&
4028    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4029   if test "${SYS}" != "darwin"; then
4030     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4031       VLC_ADD_PLUGIN([opengl])
4032       if test "${SYS}" != "mingw32"; then
4033         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4034       else
4035         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4036       fi
4037     ])
4038   else
4039     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4040     VLC_ADD_PLUGIN([opengl])
4041     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4042   fi
4046 dnl  SDL module
4048 AC_ARG_ENABLE(sdl,
4049   [  --enable-sdl            SDL support (default enabled)])
4050 AC_ARG_ENABLE(sdl-image,
4051   [  --enable-sdl-image      SDL image support (default enabled)])
4052 if test "${enable_sdl}" != "no"
4053 then
4054   SDL_PATH="${PATH}"
4055   AC_ARG_WITH(sdl-config-path,
4056     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4057     [ if test "${with_sdl_config_path}" != "no"
4058       then
4059         SDL_PATH="${with_sdl_config_path}:${PATH}"
4060       fi ])
4061   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4062   SDL_CONFIG="${SDL12_CONFIG}"
4063   SDL_HEADER="SDL12/SDL.h"
4064   SDL_IMAGE="SDL12/SDL_image.h"
4065   if test "${SDL_CONFIG}" = "no"
4066   then
4067     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4068     SDL_CONFIG=${SDL11_CONFIG}
4069     SDL_HEADER="SDL11/SDL.h"
4070     SDL_IMAGE="SDL11/SDL_image.h"
4071   fi
4072   if test "${SDL_CONFIG}" = "no"
4073   then
4074     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4075     SDL_HEADER="SDL/SDL.h"
4076     SDL_IMAGE="SDL/SDL_image.h"
4077   fi
4078   # check for cross-compiling
4079   SDL_PREFIX=
4080   AC_ARG_WITH(sdl-prefix,
4081     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4082                                e.g use as:
4083                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4084   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4085   then
4086     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4087   fi
4088   if test "${SDL_CONFIG}" != "no"
4089   then
4090     # SDL on Darwin is heavily patched and can only run SDL_image
4091     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4092       VLC_ADD_PLUGIN([vout_sdl])
4093       VLC_ADD_PLUGIN([aout_sdl])
4094     fi
4095     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4096     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4097     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4098     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4099       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4100       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4101           As a last resort we also test for SDL.h presence),
4102       [ AC_MSG_ERROR([The development package for SDL is not installed.
4103 Please install it and try again. Alternatively you can also configure with
4104 --disable-sdl.])
4105       ])])
4106     AS_IF([ test "${enable_sdl_image}" != "no"],[
4107       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4108         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4109         VLC_ADD_PLUGIN([sdl_image])
4110         AC_CHECK_LIB(png, png_set_rows,
4111           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4112         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4113           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4114         AC_CHECK_LIB(tiff, TIFFClientOpen,
4115           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4116         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4117         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4118             As a last resort we also test for SDL_image.h presence),
4119         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4120   You should install it alongside your SDL package.])
4121         ])])
4122     ])
4123     CPPFLAGS="${CPPFLAGS_save}"
4124     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4125     then
4126       AC_MSG_ERROR([The development package for SDL is not installed.
4127 Please install it and try again. Alternatively you can also configure with
4128 --disable-sdl.])
4129     fi
4131   elif test "${enable_sdl}" =  "yes"
4132   then
4133     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4134 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4135     ])
4136   fi
4140 dnl  freetype module
4142 AC_ARG_ENABLE(freetype,
4143   [  --enable-freetype       freetype support (default enabled)])
4144 AC_ARG_ENABLE(fribidi,
4145   [  --enable-fribidi        fribidi support (default enabled)])
4146 AC_ARG_ENABLE(fontconfig,
4147   [  --enable-fontconfig,    fontconfig support (default enabled)])
4148 if test "${enable_freetype}" != "no"
4149 then
4150    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4151       VLC_ADD_PLUGIN([freetype])
4152       have_freetype=yes
4153       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4154       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4155       if test "${SYS}" = "mingw32"; then
4156         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4157       fi
4158       if test "${SYS}" = "mingw32"; then
4159         VLC_ADD_LIBS([freetype],[-liconv])
4160       fi
4161       if test "${enable_fontconfig}" != "no"
4162       then
4163         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4164           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4165            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4166         AC_CHECK_HEADERS(Carbon/Carbon.h,
4167           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4168       fi
4169   ],[
4170   have_freetype=no
4171   AS_IF([ test "${enable_freetype}" =  "yes"],[
4172     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4173 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4174       ])
4175     ])
4176   ])
4178   dnl fribidi support
4179   if test "${enable_fribidi}" != "no"
4180   then
4181     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4182       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4183       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4184     ])
4185     fi
4189 dnl  libxml2 module
4191 AC_ARG_ENABLE(libxml2,
4192   [  --enable-libxml2        libxml2 support (default enabled)])
4193 if test "${enable_libxml2}" != "no"
4194 then
4195   XML2_PATH="${PATH}"
4196   AC_ARG_WITH(xml2-config-path,
4197     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4198     [ if test "${with_xml2_config_path}" != "no"; then
4199         XML2_PATH="${with_xml2_config_path}:${PATH}"
4200       fi ])
4201   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4202   if test "${XML2_CONFIG}" != "no"; then
4203     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4204     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4205     dnl depends on the xmlTextReader extension
4206     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4207     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4208     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4209       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4210         VLC_ADD_PLUGIN([xml]) ],[
4211           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4212           if test "${enable_xml2}" = "yes"; then
4213             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4214           fi])
4215        ],[
4216       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4217       if test "${enable_xml2}" = "yes"; then
4218         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4219       fi])
4220     LDFLAGS="${LDFLAGS_save}"
4221     CPPFLAGS="${CPPFLAGS_save}"
4222   else
4223     if test "${enable_xml2}" = "yes"; then
4224       AC_MSG_ERROR([Could not find libxml2])
4225     fi
4226   fi
4230 dnl  SVG module
4232 AC_ARG_ENABLE(svg,
4233   [  --enable-svg            SVG support (default disabled)])
4234 if test "${enable_svg}" = "yes"
4235 then
4236   PKG_CHECK_MODULES(SVG, 
4237         librsvg-2.0 >= 2.9.0,
4238         [
4239           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4240           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4241           VLC_ADD_PLUGIN([svg]) ],
4242         [AC_MSG_WARN(SVG library not found)])
4246 dnl Snapshot vout module (with cache)
4248 AC_ARG_ENABLE(snapshot,
4249   [  --enable-snapshot       snapshot module (default disabled)])
4250 if test "${enable_snapshot}" = "yes"
4251 then
4252   VLC_ADD_PLUGIN([snapshot])
4256 dnl  Qt Embedded module
4257 dnl  (disabled by default)
4259 AC_ARG_ENABLE(qte,
4260   [  --enable-qte            QT Embedded support (default disabled)])
4261 if test "${enable_qte}" = "yes"
4262 then
4263   AC_ARG_WITH(qte,
4264   [    --with-qte=PATH       Qt Embedded headers and libraries])
4265   if test "${with_qte}" != "no" -a -n "${with_qte}"
4266   then
4267     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4268     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])
4269   else
4270     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4271     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4272   fi
4273   VLC_ADD_PLUGIN([qte])
4274   NEED_QTE_MAIN=yes
4275   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4276   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4277     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4278   ] )
4279   CPPFLAGS="${CPPFLAGS_save}"
4283 dnl Roku HD1000 Video output module
4285 AC_ARG_ENABLE(hd1000v,
4286   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4287 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4288   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4289    test "${enable_hd1000v}" = "yes"); then
4290   AC_LANG_PUSH([C++])
4291   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4292   [
4293     can_build_roku="yes"
4294   ],
4295   [
4296     can_build_roku="no"
4297     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4298   ])
4299   if test "$can_build_roku" = "yes"
4300   then
4301     VLC_ADD_PLUGIN([hd1000v])
4302     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4303   fi
4304   AC_LANG_POP([C++])
4308 dnl  Windows DirectX module
4311 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4312 then
4313   VLC_ADD_PLUGIN([panoramix])
4316 AC_ARG_ENABLE(directx,
4317   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4318 if test "${enable_directx}" != "no"
4319 then
4320   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4321   then
4322     AC_ARG_WITH(directx,
4323     [    --with-directx=PATH   Win32 DirectX headers])
4324     if test -z "${with_directx}"
4325     then
4326       AC_CHECK_HEADERS(ddraw.h,
4327       [ VLC_ADD_PLUGIN([vout_directx])
4328         VLC_ADD_PLUGIN([aout_directx])
4329         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4330       ])
4331       AC_CHECK_HEADERS(GL/gl.h,
4332       [ VLC_ADD_PLUGIN([glwin32])
4333         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4334       ])
4335       AC_CHECK_HEADERS(d3d9.h,
4336       [ VLC_ADD_PLUGIN([direct3d])
4337         VLC_ADD_LIBS([direct3d],[-lgdi32])
4338       ])
4339     else
4340       AC_MSG_CHECKING(for directX headers in ${with_directx})
4341       if test -f ${with_directx}/ddraw.h
4342       then
4343         VLC_ADD_PLUGIN([vout_directx])
4344         VLC_ADD_PLUGIN([aout_directx])
4345         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4346         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4347         AC_MSG_RESULT(yes)
4348       else
4349         AC_MSG_RESULT(no)
4350         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4351       fi
4352     fi
4353   fi
4357 dnl  Linux framebuffer module
4359 AC_ARG_ENABLE(fb,
4360   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4361     if test "${enable_fb}" != "no"
4362     then
4363       AC_CHECK_HEADERS(linux/fb.h, [
4364         VLC_ADD_PLUGIN([fb])
4365       ])
4366     fi
4369 dnl  Linux MGA module
4371 AC_ARG_ENABLE(mga,
4372   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4373   [ if test "${enable_mga}" = "yes"
4374     then
4375       VLC_ADD_PLUGIN([mga])
4376     fi ])
4379 dnl  SVGAlib module
4381 AC_ARG_ENABLE(svgalib,
4382   [  --enable-svgalib        SVGAlib support (default disabled)])
4383 if test "${enable_svgalib}" = "yes"
4384 then
4385   VLC_ADD_PLUGIN([svgalib])
4386   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4390 dnl  DirectFB module
4391 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4392 dnl  TODO: support for static linking
4394 AC_ARG_ENABLE(directfb,
4395   [  --enable-directfb       DirectFB support (default disabled)])
4396 AC_ARG_WITH(directfb, 
4397   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4399 if test "${enable_directfb}" = "yes"; then
4400     have_directfb="false"
4401     CPPFLAGS_mydirectfb=
4402     LIBS_mydirectfb=
4403     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4404         dnl Trying the given location
4405         CPPFLAGS_save="${CPPFLAGS}"
4406         LIBS_save="${LIBS}"
4408         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4409         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4410         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4412         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4413         LIBS="${LIBS} ${LIBS_new}"
4415         dnl FIXME: too obscure
4416         AC_CHECK_HEADER([directfb.h], [
4417             AC_CHECK_LIB([direct],[direct_initialize], [
4418                 AC_CHECK_LIB([fusion], [fusion_enter], [
4419                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4420                 ], have_directfb="false")
4421             ], have_directfb="false")
4422         ], have_directfb="false")
4424         dnl Restore flags
4425         CPPFLAGS="${CPPFLAGS_save}"
4426         LIBS="${LIBS_save}"
4428         if test "${have_directfb}" = "true"; then
4429             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4430             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4431         fi
4432     else 
4433         dnl Look for directfb-config
4434         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4435         if test "${DIRECTFB_CONFIG}" != "no"; then
4436             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4437             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4438             have_directfb="true"
4439         else 
4440             dnl Trying with pkg-config
4441             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4442                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4443                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4444                 have_directfb="true"
4445                 ], [have_directfb="false"])
4446         fi
4447     fi
4448     if test "${have_directfb}" = "true"; then
4449         VLC_ADD_PLUGIN([directfb])
4450         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4451         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4452     else 
4453         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4454     fi
4460 dnl  GGI module
4462 AC_ARG_ENABLE(ggi,
4463   [  --enable-ggi            GGI support (default disabled)])
4464 if test "${enable_ggi}" = "yes"
4465 then
4466   AC_CHECK_HEADER([ggi/ggi.h],[
4467     VLC_ADD_PLUGIN([ggi])
4468     VLC_ADD_LIBS([ggi],[-lggi])
4469     AC_ARG_WITH(ggi,
4470       [    --with-ggi=PATH       path to libggi],
4471       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4472         then
4473           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4474           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4475         fi ])
4476     ],[
4477        AC_MSG_ERROR([LibGGI development files can't be found])
4478     ])
4482 dnl  AA plugin
4484 AC_ARG_ENABLE(aa,
4485   [  --enable-aa             aalib output (default disabled)])
4486 if test "${enable_aa}" = "yes"
4487 then
4488   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4489   if test "${have_aa}" = "true"
4490   then
4491     VLC_ADD_PLUGIN([aa])
4492     VLC_ADD_LIBS([aa],[-laa])
4493   fi
4497 dnl  libcaca plugin
4499 AC_ARG_ENABLE(caca,
4500   [  --enable-caca           libcaca output (default disabled)])
4501 if test "${enable_caca}" = "yes"
4502 then
4503   CACA_PATH="${PATH}"
4504   AC_ARG_WITH(caca-config-path,
4505     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4506     [ if test "${with_caca_config_path}" != "no"
4507       then
4508         CACA_PATH="${with_caca_config_path}:${PATH}"
4509       fi ])
4510   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4511   if test "${CACA_CONFIG}" != "no"
4512   then
4513     VLC_ADD_PLUGIN([caca])
4514     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4515     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4516     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4517                                         caca_event_t ev;]],
4518                                         [[ev.type = 0;]]
4519                        )],
4520                        [],
4521       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4522     )
4523   fi
4527 dnl  win32 GDI plugin
4529 AC_ARG_ENABLE(wingdi,
4530   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4531 if test "${enable_wingdi}" != "no"; then
4532   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4533     VLC_ADD_PLUGIN([wingdi])
4534     VLC_ADD_LIBS([wingdi],[-lgdi32])
4535   fi
4536   if test "${SYS}" = "mingwce"; then
4537     VLC_ADD_PLUGIN([wingdi])
4538     VLC_ADD_PLUGIN([wingapi])
4539   fi
4543 dnl  Audio plugins
4546 AC_ARG_WITH(,[Audio plugins:])
4549 dnl  OSS /dev/dsp module (enabled by default except on win32)
4551 AC_ARG_ENABLE(oss,
4552   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4554 if test "${enable_oss}" != "no" &&
4555   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4556    test "${enable_oss}" = "yes")
4557 then
4558   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4559     VLC_ADD_PLUGIN([oss])
4560     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4561   ])
4565 dnl  Pulseaudio module
4567 AC_ARG_ENABLE(pulse,
4568   [  --enable-pulse          Pulseaudio support (default enabled)])
4569   if test "${enable_pulse}" != "no"
4570    then
4571      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4572        [ VLC_ADD_PLUGIN([pulse])
4573         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4574         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4575        [AC_MSG_WARN(pulseaudio library not found)])
4576    fi
4579 dnl  Portaudio module
4581 AC_ARG_ENABLE(portaudio,
4582   [  --enable-portaudio      Portaudio library support (default disabled)],
4583   [if test "${enable_portaudio}" = "yes"
4584    then
4585      VLC_ADD_PLUGIN([portaudio])
4586      VLC_ADD_CXXFLAGS([portaudio],[])
4587      if test "${SYS}" = "mingw32"; then
4588         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4589      else
4590         VLC_ADD_LIBS([portaudio],[-lportaudio])
4591      fi
4592    fi])
4595 dnl  ALSA module
4597 AC_ARG_ENABLE(alsa,
4598   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4599 if test "${enable_alsa}" != "no"
4600 then
4601   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4602   if test "${have_alsa}" = "true"
4603   then
4604     CFLAGS="${CFLAGS_save}"
4605     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4606                     #define ALSA_PCM_NEW_SW_PARAMS_API
4607                     #include <alsa/asoundlib.h>],
4608        [snd_pcm_hw_params_get_period_time(0,0,0);],
4609         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4610     VLC_ADD_PLUGIN([alsa])
4611     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4612   else
4613     if test "${enable_alsa}" = "yes"; then
4614       AC_MSG_ERROR([Could not find ALSA development headers])
4615     fi
4616   fi
4620 dnl  win32 waveOut plugin
4622 AC_ARG_ENABLE(waveout,
4623   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4624 if test "${enable_waveout}" != "no"; then
4625   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4626     VLC_ADD_PLUGIN([waveout])
4627     VLC_ADD_LIBS([waveout],[-lwinmm])
4628   fi
4629   if test "${SYS}" = "mingwce"; then
4630     VLC_ADD_PLUGIN([waveout])
4631   fi
4635 dnl  CoreAudio plugin
4637 AC_ARG_ENABLE(macosx-audio,
4638   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4639 if test "${enable_macosx-audio}" != "no" &&
4640   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4641 then
4642   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4643     [ VLC_ADD_PLUGIN([auhal])
4644       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4645     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4649 dnl  Roku HD1000 audio
4651 AC_ARG_ENABLE(hd1000a,
4652   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4653 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4654   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4655    test "${enable_hd1000a}" = "yes")
4656 then
4657   AC_LANG_PUSH([C++])
4658   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4659     VLC_ADD_PLUGIN([hd1000a])
4660     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4661   AC_LANG_POP([C++])
4665 dnl  JACK modules
4667 AC_ARG_ENABLE(jack,
4668  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4669  [enable_jack="no"])
4671 AS_IF([test "${enable_jack}" != "no"], [
4672   AC_CHECK_HEADERS(jack/jack.h, [
4673     VLC_ADD_PLUGIN([access_jack])
4674     VLC_ADD_PLUGIN([jack])
4675     VLC_ADD_LIBS([access_jack jack],[-ljack])
4676   ],[AC_MSG_ERROR([cannot find JACK headers])])
4680 dnl  CyberLink for C++ UPnP stack
4682 AC_ARG_ENABLE(cyberlink,
4683   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4684   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4685   AC_ARG_WITH(cyberlink-tree,
4686     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4688   dnl
4689   dnl test for --with-cyberlink-tree
4690   dnl
4691   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4692     AC_LANG_PUSH(C++)
4693     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4694     AS_IF([test -z "${real_cyberlink_tree}"], [
4695       dnl  The given directory can't be found
4696       AC_MSG_RESULT(no)
4697       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4698     ])
4699     CPPFLAGS_save="${CPPFLAGS}"
4700     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4701     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4702     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4703       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4704         VLC_ADD_PLUGIN([upnp_cc]) 
4705       ],[
4706         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4707       ])
4708     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4709     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4710       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4711       dnl The mere fact that we have to make such an ugly check sucks
4712       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4713       LIBS_save="$LIBS"
4714       LIBS_cclink="no"
4715       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4716         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4717         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4718 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4719 using namespace CyberLink;
4721 class testclass : public SearchResponseListener, public MediaPlayer
4723     virtual void deviceSearchResponseReceived( SSDPPacket *)
4724     {
4725     }
4727     public:
4728       testclass (void)
4729       {
4730         addSearchResponseListener (this);
4731         start ();
4732       }
4734 ],[testclass l;])],[LIBS_cclink="$l"])
4735       done
4736       LIBS="${LIBS_save}"
4737       dnl should not happen - otherwise this needs fixing - hence FAILURE
4738       AS_IF([test "${LIBS_cclink}" = "no"],
4739         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4740       AC_MSG_RESULT([${LIBS_cclink}])
4741       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4742     ], [
4743       AC_MSG_RESULT(no)
4744       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4745     ])
4746     CPPFLAGS="${CPPFLAGS_save}"
4747     AC_LANG_POP([C++])
4748   ])
4752 dnl UPnP Plugin (Intel SDK)
4754 AC_ARG_ENABLE(upnp,
4755   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4757 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4758 AS_IF([test "x${enable_upnp}" != "xno"], [
4759   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4760   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4761     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4762   ])
4763   AS_IF([test "${has_upnp}" = "yes"], [
4764     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4765   ])
4766 ], [
4767   has_upnp="no"
4770 AS_IF([test "${has_upnp}" = "yes"], [
4771   VLC_ADD_PLUGIN([upnp_intel])
4776 dnl  Interface plugins
4779 AC_ARG_WITH(,[Interface plugins:])
4781 dnl special case for BeOS
4782 if test "${SYS}" = "beos"
4783 then
4784     VLC_ADD_PLUGIN([beos])
4788 dnl Skins2 module
4790 AC_ARG_ENABLE(skins2,
4791   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4792    enabled except on MacOSX, BeOS and WinCE)])])
4793 if test "${enable_skins2}" = "yes" ||
4794   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4795    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4797   dnl test for the required libraries
4798   skins2_missing_lib="no"
4800   dnl freetype
4801   if test "${have_freetype}" != "yes"; then
4802     skins2_missing_lib="yes"
4803     if test "${enable_skins2}" = "yes"; then
4804       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4805     fi
4806   fi
4808   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4809     VLC_ADD_PLUGIN([skins2])
4810     ALIASES="${ALIASES} svlc"
4811     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4812     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4813     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4815   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4816     VLC_ADD_PLUGIN([skins2])
4817     ALIASES="${ALIASES} svlc"
4818     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4819     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4820     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4822   else if test "${skins2_missing_lib}" = "no"; then
4823     VLC_ADD_PLUGIN([skins2])
4824     ALIASES="${ALIASES} svlc"
4825     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4826     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4827     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4828   fi fi fi
4830 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4831          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4832           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4835 dnl  PDA Gtk+2 module
4837 AC_ARG_ENABLE(pda,
4838   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4839 if test "${enable_pda}" = "yes"
4840 then
4841   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4842   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4843   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4844   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4845   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4846   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4847   VLC_ADD_PLUGIN([pda])
4848   if test "${SYS}" != "mingw32"; then
4849     NEED_GTK2_MAIN=yes
4850     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4851     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4852   fi
4854 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4857 dnl Maemo
4859 AC_ARG_ENABLE(maemo,
4860   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4861 if test "${enable_maemo}" = "yes"
4862 then
4863   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4864     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4865     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4866     VLC_ADD_PLUGIN([maemo])
4867     VLC_ADD_PLUGIN([swscale_maemo])
4868     AC_DEFINE([BUILD_MAEMO], 1, [Define if you're using Maemo interfaces])
4869     ALIASES="${ALIASES} mvlc"
4870   ], [
4871     AS_IF([test "${enable_maemo}" = "yes"],[
4872       AC_MSG_ERROR([Hildon libraries not found])
4873     ])
4874     enable_maemo="no"
4875   ])
4877 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4880 dnl QT 4
4882 AC_ARG_ENABLE(qt4,
4883   [  --enable-qt4            QT 4 support (default enabled) ],, [
4884   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4886 AS_IF([test "${enable_qt4}" != "no"], [
4887   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0], [
4888     VLC_ADD_PLUGIN([qt4])
4889     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4890     ALIASES="${ALIASES} qvlc"
4891     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4892         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4893     ], [
4894         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
4895     ])
4896     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4897     AC_SUBST(QT4LOCALEDIR)
4898     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4899     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4900     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4901     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4902   ], [
4903     AS_IF([test "${enable_qt4}" = "yes"],[
4904       AC_MSG_ERROR([Qt 4 library not found])
4905     ],[
4906       AC_MSG_WARN([Qt 4 library not found])
4907     ])
4908     enable_qt4="no"
4909   ])
4911 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4914 dnl  WinCE GUI module
4916 AC_ARG_ENABLE(wince,
4917   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4918 if test "${enable_wince}" != "no"; then
4919   if test "${SYS}" = "mingwce"; then
4920     VLC_ADD_PLUGIN([wince])
4921     VLC_ADD_CXXFLAGS([wince],[])
4922     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4923     dnl Gross hack
4924     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4925   elif test "${SYS}" = "mingw32"; then
4926     VLC_ADD_CXXFLAGS([wince],[])
4927     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4928     dnl Gross hack
4929     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4930   fi
4934 dnl Simple test for skins2 dependency
4936 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4937   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.])
4941 dnl  Opie QT embedded module
4943 AC_ARG_ENABLE(opie,
4944   [  --enable-opie           Qt embedded interface support (default disabled)],
4945   [if test "${enable_opie}" = "yes"; then
4946      AC_ARG_WITH(qte,
4947      [    --with-qte=PATH       Qt Embedded headers and libraries])
4948      if test "${with_qte}" != "no" -a -n "${with_qte}"
4949      then
4950        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4951        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])
4952      else
4953        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4954        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4955      fi
4956      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4957      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4958        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4959      ] )
4960      CPPFLAGS="${CPPFLAGS_save}"
4962      VLC_ADD_PLUGIN([opie])
4963      NEED_QTE_MAIN=yes
4964      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4965      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4966      if test "${with_qte}" != "no" -a -n "${with_qte}"
4967      then
4968        MOC=${with_qte}/bin/moc
4969      else
4970        MOC=${QTDIR}/bin/moc
4971      fi
4972    fi])
4975 dnl  MacOS X video output/gui modules
4977 AC_ARG_ENABLE(macosx,
4978   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4979 if test "x${enable_macosx}" = "xyes"
4980 then
4981   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4982   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4983   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4984   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4985   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4986   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4987   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
4988   dnl For bug report
4989   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4990   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
4991   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4992   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4993   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4994   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4995   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
4997   VLC_ADD_PLUGIN([access_eyetv])
4998   VLC_ADD_PLUGIN([qtcapture])
4999   VLC_ADD_PLUGIN([macosx])
5000   VLC_ADD_PLUGIN([minimal_macosx])
5002   ORIGCFLAGS=$CFLAGS
5003   CFLAGS="$CFLAGS -x objective-c"
5004   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>],,
5005   [VLC_ADD_PLUGIN([opengllayer])
5006   VLC_ADD_OBJCFLAGS([opengllayer])],[])
5007   CFLAGS=$ORIGCFLAGS
5011 dnl  QNX RTOS module
5013 AC_ARG_ENABLE(qnx,
5014   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5015     if test "${enable_qnx}" != "no"
5016     then
5017       AC_CHECK_HEADERS(Ph.h, [
5018         VLC_ADD_PLUGIN([qnx])
5019         VLC_ADD_LIBS([qnx],[-lasound -lph])
5020       ])
5021     fi
5024 dnl  ncurses module
5026 AC_ARG_ENABLE(ncurses,
5027   [  --disable-ncurses       ncurses interface support (default enabled)],
5028   [if test "${enable_ncurses}" != "no"; then
5029     AC_CHECK_HEADER(ncurses.h,
5030       [AC_CHECK_LIB(ncursesw, mvprintw,
5031         [VLC_ADD_PLUGIN([ncurses])
5032         VLC_ADD_LIBS([ncurses],[-lncursesw])
5033         ALIASES="${ALIASES} nvlc"
5034         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5035         AC_CHECK_LIB(ncursesw, tgetent, [],
5036           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5037             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5038               [AS_IF([test "x${enable_ncurses}" != "x"],
5039                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5040                )])])
5041             ]
5042           )
5043         )
5044         ],
5045         [AC_CHECK_LIB( ncurses, mvprintw,
5046           [VLC_ADD_PLUGIN([ncurses])
5047           ALIASES="${ALIASES} nvlc"
5048           VLC_ADD_LIBS([ncurses],[-lncurses])
5049           AC_CHECK_LIB(ncurses, tgetent, [],
5050             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5051               [AS_IF([test "x${enable_ncurses}" != "x"],
5052                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5053             )]
5054           )],
5055           [AS_IF([test "x${enable_ncurses}" != "x"], [
5056             AC_MSG_ERROR([libncurses not found])])]
5057         )]
5058       )]
5059     )
5060   fi]
5064 dnl  XOSD plugin
5066 AC_ARG_ENABLE(xosd,
5067   [  --enable-xosd           xosd interface support (default disabled)])
5068 if test "${enable_xosd}" = "yes"
5069 then
5070   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5071   AC_CHECK_LIB(xosd,xosd_set_offset,
5072       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5073     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5074         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5075       AC_TRY_COMPILE([#include <xosd.h>],
5076          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5077           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5078   if test "${have_xosd}" = "true"
5079   then
5080     VLC_ADD_PLUGIN([xosd])
5081     VLC_ADD_LIBS([xosd],[-lxosd])
5082   fi
5086 dnl Framebuffer (overlay) plugin
5088 AC_ARG_ENABLE(fbosd,
5089   [  --enable-fbosd          fbosd interface support (default disabled)])
5090 if test "${enable_fbosd}" = "yes"
5091 then
5092   AC_CHECK_HEADERS(linux/fb.h, [
5093     VLC_ADD_PLUGIN([fbosd])
5094  ])
5098 dnl Visualisation plugin
5100 AC_ARG_ENABLE(visual,
5101   [  --enable-visual         visualisation plugin (default enabled)])
5102 if test "${enable_visual}" != "no"
5103 then
5104     VLC_ADD_PLUGIN([visual])
5108 dnl OpenGL visualisation plugin
5110 AC_ARG_ENABLE(galaktos,
5111   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5112 if test "${enable_galaktos}" = "yes"
5113 then
5114   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5115     VLC_ADD_PLUGIN([galaktos])
5116     if test "${SYS}" != "mingw32"; then
5117       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5118     else
5119       VLC_ADD_LIBS([galaktos],[-lopengl32])
5120     fi
5121   ])
5125 dnl  goom visualization plugin
5127 AC_ARG_ENABLE(goom,
5128 [  --enable-goom           goom visualisation plugin (default disabled)])
5129 if test "${enable_goom}" = "yes"
5130 then
5131   AC_ARG_WITH(goom-tree,
5132     [    --with-goom-tree=PATH goom tree for static linking (required)])
5134   dnl
5135   dnl test for --with-goom-tree
5136   dnl
5137   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5138     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5139     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5140     if test -z "${real_goom_tree}"; then
5141       dnl  The given directory can't be found
5142       AC_MSG_RESULT(no)
5143       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5144     fi
5145     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5146       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5147       VLC_ADD_PLUGIN([goom])
5148       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5149       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5150     else
5151       dnl  The given libgoom2 wasn't built, try to look for the old goom
5152       AC_MSG_RESULT(no)
5153       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5154       if test -f "${real_goom_tree}/libgoom.a"; then
5155         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5156         VLC_ADD_PLUGIN([goom])
5157         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5158         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5159       else
5160         dnl  The given libgoom wasn't built
5161         AC_MSG_RESULT(no)
5162         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5163       fi
5164     fi
5165   else
5166     AC_CHECK_HEADERS(goom/goom.h, [
5167       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5168       AC_CHECK_LIB(goom2, goom_init, [
5169         VLC_ADD_PLUGIN([goom])
5170         VLC_ADD_LIBS([goom],[-lgoom2])
5171       ],[
5172         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5173       ])
5174       LDFLAGS="${LDFLAGS_save}"
5175     ])
5176   fi
5180 dnl  AtmoLight (homebrew AmbiLight)
5182 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5183    AC_ARG_ENABLE(atmo,
5184 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight) 
5185                 (default enabled)]))
5186    if test "${enable_atmo}" != "no"; then
5187       AC_LANG_PUSH(C++)
5188       VLC_ADD_PLUGIN([atmo])
5189       AC_LANG_POP(C++)
5190    fi
5194 dnl  Bonjour services discovery
5196 AC_ARG_ENABLE(bonjour,
5197   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5198 AS_IF([test "${enable_bonjour}" != "no"], [
5199   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5200     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5201     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5202     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5203     VLC_ADD_PLUGIN([bonjour])
5204   ], [
5205     AC_MSG_WARN(avahi-client library not found)
5206   ])
5210 dnl  Lirc plugin
5212 AC_ARG_ENABLE(lirc,
5213   [  --enable-lirc           lirc support (default disabled)])
5214 if test "${enable_lirc}" = "yes"
5215 then
5216   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5217   if test "${have_lirc}" = "true"
5218   then
5219     VLC_ADD_PLUGIN([lirc])
5220     VLC_ADD_LIBS([lirc],[-llirc_client])
5221   fi
5225 AC_ARG_WITH(,[Misc options:])
5228 dnl libgcrypt
5230 AC_ARG_ENABLE(libgcrypt,
5231   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5232 AS_IF([test "${enable_libgcrypt}" != "no"], [
5233   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5235 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5236   AS_IF([test "${have_libgcrypt}" = "yes"],[
5237     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5238   ])
5240 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5243 dnl TLS/SSL
5245 AC_ARG_ENABLE(gnutls,
5246   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5248 AS_IF([test "${enable_gnutls}" != "no"], [
5249   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5250     VLC_ADD_PLUGIN([gnutls])
5251     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5252     AS_IF([test "${SYS}" = "mingw32"], [
5253       dnl pkg-config --libs gnutls omits these
5254       VLC_ADD_LIBS([gnutls], [-lz])
5255       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5256     ])
5257     dnl The GnuTLS plugin invokes gcry_control directly.
5258     AS_IF([test "${have_libgcrypt}" = "yes"],[
5259       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5260       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5261     ])
5262     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5263   ], [
5264     AS_IF([test "${enable_gnutls}" = "yes"], [
5265       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5266     ])
5267   ])
5272 dnl RemoteOSD plugin (VNC client as video filter)
5274 AC_ARG_ENABLE(remoteosd,
5275   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5277 AS_IF([test "${enable_remoteosd}" != "no"], [
5278   AS_IF([test "${have_libgcrypt}" = "yes"],[
5279     VLC_ADD_PLUGIN([remoteosd])
5280     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5281     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5282   ], [
5283     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5284   ])
5289 dnl update checking system
5291 AC_ARG_ENABLE(update-check,
5292   [  --enable-update-check   update checking system (default disabled)])
5293 if test "${enable_update_check}" = "yes"
5294 then
5295   if test "${have_libgcrypt}" != "yes"
5296   then
5297     AC_MSG_ERROR([libgcrypt is required for update checking system])
5298   fi
5299   VLC_ADD_LIBS([libvlc], [${LIBGCRYPT_LIBS}])
5300   VLC_ADD_CFLAGS([libvlc], [${LIBGCRYPT_CFLAGS}])
5301   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5305 dnl  Endianness check
5307 AC_C_BIGENDIAN
5308 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5309   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5310 ], [
5311   DEFS_BIGENDIAN=""
5313 AC_SUBST(DEFS_BIGENDIAN)
5316 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5318 loader=false
5319 AC_ARG_ENABLE(loader,
5320   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms 
5321                   (default disabled)]))
5322 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5323 AS_IF([test "${enable_loader}" = "yes"],
5324   [ VLC_ADD_PLUGIN([dmo])
5325     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5326     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5327     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5328     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5329     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5330     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5331     VLC_ADD_CPPFLAGS([realvideo],[-I../../@top_srcdir@/libs/loader -DLOADER])
5332     VLC_ADD_LIBS([realvideo],[../../libs/loader/libloader.la])
5333   ])
5335 AC_ARG_WITH(,[Components:])
5338 dnl  the VLC binary
5340 AC_ARG_ENABLE(vlc,
5341   [  --enable-vlc            build the VLC media player (default enabled)])
5342 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5345 dnl  Microsoft ActiveX support
5347 activex=false
5348 AC_ARG_ENABLE(activex,
5349   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control 
5350                   (default enabled on Win32)]))
5351 AC_ARG_WITH(wine-sdk-path,
5352   [    --with-wine-sdk-path=PATH path to wine sdk])
5353 if test "${enable_activex}" != "no"
5354 then
5355   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5356   then
5357     AC_CHECK_PROGS(MIDL, [midl], no)
5358     if test "${with_wine_sdk_path}" != ""
5359     then
5360        WINE_SDK_PATH=${with_wine_sdk_path}
5361        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5362     else
5363        WIDL=no
5364     fi
5365     AC_LANG_PUSH(C++)
5366     AC_CHECK_HEADERS(ole2.h, 
5367       [AC_CHECK_HEADERS(olectl.h,
5368         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5369           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5370           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5371           AC_CHECK_HEADERS(objsafe.h,
5372             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5373             [
5374              #if HAVE_OLE2_H
5375              #   include <ole2.h>
5376              #endif
5377             ]
5378           )
5379           activex=:
5380           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5381         ],
5382         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5383       )],
5384       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5385     )
5386     AC_LANG_POP(C++)
5387   fi
5389 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5390 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5391 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5392 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5393 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5396 dnl  Mozilla plugin
5398 mozilla=false
5399 AC_ARG_ENABLE(mozilla,
5400   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5401                   (default disabled)]))
5402 AC_ARG_WITH(mozilla-sdk-path,
5403   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5404 AC_ARG_WITH(mozilla-pkg,
5405   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5406 AC_LANG_PUSH(C++)
5407 if test "${enable_mozilla}" = "yes" 
5408 then
5409   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5410     [
5411     dnl pkg-config
5412     dnl As we want to do a loop due to the number of name possible for the .pc 
5413     dnl we can't use the pkg-config macros.
5415     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5416     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5417     AC_MSG_NOTICE([Checking for Mozilla])
5418     found=0
5419     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5420     then
5421       found=1
5422     else
5423       if test -n "$PKG_CONFIG"; then
5424         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5425           echo "Trying to find $i.pc files" >&5
5426           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5427           then
5428             echo "Using $i.pc files." >&5
5429             echo "Using $i.pc files." >&6
5430             found=1
5431             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5432             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5433             break
5434           fi
5435         done
5436       fi
5437     fi 
5438     AS_IF( [test $found = 1],[
5439         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5440         MOZILLA_REQUIRED_HEADERS=1
5441         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5442         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5443           [#if HAVE_NPAPI_H
5444            # include <npapi.h>
5445            #endif
5446           ])
5447         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5448             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5449         fi
5450         MOZILLA_REQUIRED_HEADERS=
5451         mozilla=:
5452         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5453            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5454            AS_IF([ test "${SYS}" != "darwin"],[
5455              PKG_CHECK_MODULES(XPM, [xpm xt],[
5456                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5457              ],[
5458                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5459              ])
5460           ])
5461         ])
5462         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5463         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5464         VLC_ADD_PLUGIN([mozilla])
5465         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5466         MOZILLA_CONFIG=
5467         CPPFLAGS="${CPPFLAGS_save}"
5468           ],
5469           [
5470             AC_PATH_PROGS(MOZILLA_CONFIG, 
5471             [mozilla-config seamonkey-config xulrunner-config], 
5472             AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5473                   )
5474           ]
5475         )
5476     dnl pkg-config failed but we might have found a mozilla-config
5477     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5478       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5479         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5480         AC_CHECK_LIB(Xt,XtStrings,
5481          [
5482            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5483            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5484          ],
5485          [],
5486          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5487         ])
5488         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5489         LDFLAGS="${LDFLAGS_save}"
5490       fi
5492       mozilla=:
5493       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5494       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5495       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5496       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5497       MOZILLA_REQUIRED_HEADERS=1
5498       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5499       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5500       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5501         [#if HAVE_NPAPI_H
5502          # include <npapi.h>
5503          #endif
5504         ])
5505       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5506       then
5507         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5508       fi
5509       MOZILLA_REQUIRED_HEADERS=
5510       CPPFLAGS="${CPPFLAGS_save}"
5511       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5512     ])
5513     dnl End of moz_sdk = ""
5514   ],[
5515     dnl special case for mingw32
5516     if test "${SYS}" = "mingw32"
5517     then
5518       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5519       dnl latest gecko sdk does not have an xpcom directory
5520       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5521           mozilla_sdk_xpcom="/xpcom"
5522       fi
5523     fi
5525     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5526     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5527     MOZILLA_REQUIRED_HEADERS=1
5528     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5529     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5530     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5531         [#if HAVE_NPAPI_H
5532           #include <npapi.h>
5533           #endif
5534         ])
5535     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5536     then
5537         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5538     fi
5539     MOZILLA_REQUIRED_HEADERS=
5540     mozilla=:
5541     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5542     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])
5543     if ${need_xpcom_libs}; then
5544        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])
5545       if test "${SYS}" = "mingw32"; then
5546         dnl latest gecko sdk does not have embedstring
5547         if test -d "${real_mozilla_sdk}/embedstring/bin"
5548         then
5549           VLC_ADD_LIBS([mozilla],[-lembedstring])
5550         fi
5551       fi
5552     fi
5553     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5555     if test -n "${CYGPATH}"; then
5556       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5557     fi
5558     CPPFLAGS="${CPPFLAGS_save}"
5559  ]) 
5561 AC_LANG_POP(C++)
5562 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5564 dnl Tests for Osso and Xsp
5565 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5566   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5567     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5568     VLC_ADD_LIBS([x11 xvideo xvmc glx],[-losso])
5569  ])
5571 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5572   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5573   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5577 dnl  test plugins
5579 AC_ARG_ENABLE(testsuite,
5580   [  --enable-testsuite      build test modules (default disabled)])
5581 if test "${enable_testsuite}" = "yes"
5582 then
5583   TESTS="test1 test2 test3 test4"
5585   dnl  we define those so that bootstrap sets the right linker
5586   VLC_ADD_CXXFLAGS([test2],[])
5587   VLC_ADD_OBJCFLAGS([test3],[])
5588   dnl  this one is needed until automake knows what to do
5589   VLC_ADD_LIBS([test3],[-lobjc])
5591   VLC_ADD_PLUGIN([test1])
5592   VLC_ADD_PLUGIN([test2])
5593   VLC_ADD_PLUGIN([test3])
5594   VLC_ADD_PLUGIN([test4])
5598 dnl  gtk_main plugin
5600 if test "${NEED_GTK_MAIN}" != "no"
5601 then
5602     VLC_ADD_PLUGIN([gtk_main])
5603     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5604     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5607 if test "${NEED_GNOME_MAIN}" != "no"
5608 then
5609     VLC_ADD_PLUGIN([gnome_main])
5610     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5611     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5614 if test "${NEED_GTK2_MAIN}" != "no"
5615 then
5616     VLC_ADD_PLUGIN([gtk2_main])
5617     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5618     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5619     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5620     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5623 if test "${NEED_GNOME2_MAIN}" != "no"
5624 then
5625     VLC_ADD_PLUGIN([gnome2_main])
5626     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5627     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5631 dnl  qte_main plugin
5633 if test "${NEED_QTE_MAIN}" != "no"
5634 then
5635     VLC_ADD_PLUGIN([qte_main])
5636     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5637     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5638     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5642 dnl  Plugin and builtin checks
5644 plugin_support=yes
5646 dnl Automagically disable plugins if there is no system support for
5647 dnl dynamically loadable files (.so, .dll, .dylib).
5648 dnl don't forget vlc-win32 still can load .dll as plugins
5649 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5650   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5651   plugin_support=no
5654 AS_IF([test "${enable_shared}" = "no"], [
5655   plugin_support=no
5658 AS_IF([test "${plugin_support}" != "no"], [
5659   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5661 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5663 dnl Temporary(?) hack for plugins/builtins transition
5664 dnl VLC_ADD_PLUGIN([${BUILTINS}])
5665 dnl BUILTINS=""
5668 dnl Pic and shared libvlc stuff
5670 AS_IF([test "${SYS}" = "mingw32"], [
5671   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5672   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5676 dnl  Stuff used by the program
5678 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5679 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5680 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5681 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5682 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5683 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5684 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5685 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5686 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5687 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5688 AC_SUBST(COPYRIGHT_MESSAGE)
5689 AC_SUBST(VERSION_MESSAGE)
5690 AC_SUBST(VERSION_MAJOR)
5691 AC_SUBST(VERSION_MINOR)
5692 AC_SUBST(VERSION_REVISION)
5693 AC_SUBST(COPYRIGHT_YEARS)
5694 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5695 if test "${build_os}" = "cygwin"
5696 then
5697     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5698 else
5699     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5701 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5702 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5703 dnl Win32 need s a numerical version_extra.
5704 case $( echo ${VERSION_EXTRA}|wc -m ) in 
5705        "1") VERSION_EXTRA_RC="0";;
5706        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5707        *) VERSION_EXTRA_RC="99"
5708 esac
5709 AC_SUBST(VERSION_EXTRA_RC)
5711 dnl  Handle substvars that use $(top_srcdir)
5713 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5714 AC_SUBST(VLC_CONFIG)
5715 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5718 dnl  Restore *FLAGS
5720 VLC_RESTORE_FLAGS
5723 dnl Sort the modules list
5724 dnl 
5725 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5728 dnl  Create the vlc-config script
5730 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5733 dnl  Configuration is finished
5735 AC_SUBST(SYS)
5736 AC_SUBST(ARCH)
5737 AC_SUBST(ALIASES)
5738 AC_SUBST(ASM)
5739 AC_SUBST(MOC)
5740 AC_SUBST(RCC)
5741 AC_SUBST(UIC)
5742 AC_SUBST(WINDRES)
5743 AC_SUBST(MOZILLA_SDK_PATH)
5744 AC_SUBST(WINE_SDK_PATH)
5745 AC_SUBST(LIBEXT)
5746 AC_SUBST(AM_CPPFLAGS)
5747 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5748 AC_SUBST(FILE_LIBVLCCORE_DLL)
5749 AC_SUBST(FILE_LIBVLC_DLL)
5751 dnl Create vlc-config.in
5752 VLC_OUTPUT_VLC_CONFIG_IN
5754 AC_CONFIG_FILES([
5755   extras/package/win32/vlc.win32.nsi
5756   extras/package/macosx/Info.plist
5757   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5758   extras/package/macosx/plugin/Info.plist
5759   extras/package/macosx/plugin/InstallerInfo.plist
5760   extras/package/macosx/plugin/English.lproj/InfoPlist.strings
5761   Makefile
5762   projects/activex/Makefile
5763   projects/activex/axvlc.inf
5764   doc/Makefile
5765   extras/package/ipkg/Makefile
5766   libs/loader/Makefile
5767   libs/srtp/Makefile
5768   modules/Makefile
5769   projects/mozilla/Makefile
5770   m4/Makefile
5771   po/Makefile.in
5772   projects/activex/axvlc_rc.rc
5773   projects/mozilla/npvlc_rc.rc
5774   share/Makefile
5775   share/vlc_win32_rc.rc
5776   share/libvlc_win32_rc.rc
5777   src/Makefile
5778   src/test/Makefile
5779   bin/Makefile
5780   test/Makefile
5783 AC_CONFIG_FILES([
5784   modules/access/Makefile
5785   modules/access/bda/Makefile
5786   modules/access/dshow/Makefile
5787   modules/access/dvb/Makefile
5788   modules/access/mms/Makefile
5789   modules/access/cdda/Makefile
5790   modules/access/rtp/Makefile
5791   modules/access/rtsp/Makefile
5792   modules/access/rtmp/Makefile
5793   modules/access/v4l2/Makefile
5794   modules/access/vcd/Makefile
5795   modules/access/vcdx/Makefile
5796   modules/access/screen/Makefile
5797   modules/access_filter/Makefile
5798   modules/access_output/Makefile
5799   modules/audio_filter/Makefile
5800   modules/audio_filter/channel_mixer/Makefile
5801   modules/audio_filter/converter/Makefile
5802   modules/audio_filter/resampler/Makefile
5803   modules/audio_filter/spatializer/Makefile
5804   modules/audio_mixer/Makefile
5805   modules/audio_output/Makefile
5806   modules/codec/Makefile
5807   modules/codec/avcodec/Makefile
5808   modules/codec/cmml/Makefile
5809   modules/codec/dmo/Makefile
5810   modules/codec/subtitles/Makefile
5811   modules/codec/spudec/Makefile
5812   modules/codec/xvmc/Makefile
5813   modules/control/Makefile
5814   modules/control/http/Makefile
5815   modules/demux/Makefile
5816   modules/demux/asf/Makefile
5817   modules/demux/avformat/Makefile
5818   modules/demux/avi/Makefile
5819   modules/demux/mkv/Makefile
5820   modules/demux/mp4/Makefile
5821   modules/demux/mpeg/Makefile
5822   modules/demux/playlist/Makefile
5823   modules/gui/Makefile
5824   modules/gui/beos/Makefile
5825   modules/gui/pda/Makefile
5826   modules/gui/macosx/Makefile
5827   modules/gui/maemo/Makefile
5828   modules/gui/minimal_macosx/Makefile
5829   modules/gui/qnx/Makefile
5830   modules/gui/qt4/Makefile
5831   modules/gui/skins2/Makefile
5832   modules/gui/wince/Makefile
5833   modules/meta_engine/Makefile
5834   modules/misc/Makefile
5835   modules/misc/dummy/Makefile
5836   modules/misc/lua/Makefile
5837   modules/misc/memcpy/Makefile
5838   modules/misc/notify/Makefile
5839   modules/misc/testsuite/Makefile
5840   modules/misc/playlist/Makefile
5841   modules/misc/osd/Makefile
5842   modules/misc/stats/Makefile
5843   modules/misc/xml/Makefile
5844   modules/misc/probe/Makefile
5845   modules/mux/Makefile
5846   modules/mux/mpeg/Makefile
5847   modules/packetizer/Makefile
5848   modules/services_discovery/Makefile
5849   modules/stream_out/Makefile
5850   modules/stream_out/transrate/Makefile
5851   modules/video_chroma/Makefile
5852   modules/video_filter/Makefile
5853   modules/video_filter/atmo/Makefile
5854   modules/video_filter/dynamicoverlay/Makefile
5855   modules/video_output/Makefile
5856   modules/video_output/msw/Makefile
5857   modules/video_output/qte/Makefile
5858   modules/video_output/x11/Makefile
5859   modules/visualization/Makefile
5860   modules/visualization/visual/Makefile
5861   modules/visualization/galaktos/Makefile
5864 dnl Generate makefiles
5865 AC_OUTPUT
5867 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5868 # not provided with the source
5869 ${SHELL} ./config.status --file=vlc-config
5870 chmod 0755 vlc-config
5872 /bin/echo -n "Enabled modules: "
5873 ./vlc-config --list plugin
5875 dnl Shortcut to nice compile message
5876 rm -f compile
5877 echo '#! /bin/sh' >compile
5878 echo rm -f .error\$\$ >>compile
5879 echo ERROR=0 >>compile
5880 echo export PATH=$PATH LANG=C >>compile
5881 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5882 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5883 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5884 echo rm -f .error\$\$ >>compile
5885 echo exit \$ERROR >>compile
5886 chmod a+x compile
5888 printf "
5889 libvlc configuration
5890 --------------------
5891 version               : ${VERSION}
5892 system                : ${SYS}
5893 architecture          : ${ARCH}
5894 build flavour         : "
5895 test "${enable_debug}" = "yes" && printf "debug "
5896 test "${enable_cprof}" = "yes" && printf "cprof "
5897 test "${enable_gprof}" = "yes" && printf "gprof "
5898 test "${enable_optimizations}" = "yes" && printf "optim "
5899 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5900 echo ""
5901 if test "${enable_vlc}" != "no"; then
5902 echo "vlc aliases           :${ALIASES}"
5903 else
5904 echo "build vlc executable  : no"
5906 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5908 You can tune the compiler flags in vlc-config.
5909 To build vlc and its plugins, type \`./compile' or \`make'.
5911 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5912    echo ""
5913    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5914    echo "         turned off."
5915    echo "         FFmpeg will be REALLY slow."
5916    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5917    echo ""