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