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