]> git.sesse.net Git - vlc/blob - configure.ac
Move v4l2.c back to the access/ directory
[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 stream_out_raop 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 vmsplice])
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   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2347   AC_CHECK_HEADERS(linux/videodev2.h, [
2348     VLC_ADD_PLUGIN([v4l2])
2349   ],[])
2350   CPPFLAGS="${CPPFLAGS_save}"
2351 fi
2352
2353 dnl
2354 dnl libv4l2 support for video4linux.
2355 dnl
2356 AC_ARG_ENABLE( libv4l2,
2357   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2358 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2359 then
2360     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2361       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2362       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2363       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2364       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2365     )
2366 fi
2367
2368 dnl
2369 dnl  special access module for Hauppauge PVR cards
2370 dnl
2371 AC_ARG_ENABLE(pvr,
2372   [  --enable-pvr            PVR cards access module (default disabled)])
2373 if test "${enable_pvr}" = "yes"
2374 then
2375   VLC_ADD_PLUGIN([pvr])
2376   AC_ARG_WITH(videodev2,
2377     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2378   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2379   then
2380     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2381   fi
2382     
2383
2384   AC_CACHE_CHECK([for new linux/videodev2.h],
2385       [ac_cv_new_linux_videodev2_h],
2386       [AC_TRY_COMPILE([
2387           #include <sys/types.h>
2388           #   ifdef VIDEODEV2_H_FILE
2389           #   include VIDEODEV2_H_FILE
2390           #   else
2391           #   include <linux/videodev2.h>
2392           #   endif
2393           ],
2394           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2395           ac_cv_new_linux_videodev2_h=yes,
2396           ac_cv_new_linux_videodev2_h=no)])
2397   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2398     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2399   fi
2400 fi
2401
2402 dnl
2403 dnl  gnomeVFS access module
2404 dnl
2405 AC_ARG_ENABLE(gnomevfs,
2406   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2407 if test "${enable_gnomevfs}" = "yes" 
2408 then
2409   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2410     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2411     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2412     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2413     VLC_ADD_PLUGIN([access_gnomevfs]),
2414     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2415 fi
2416
2417 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2418 AC_ARG_ENABLE(libcdio,
2419   [  --enable-libcdio        CD input and control library support (default enabled)])
2420
2421 AC_ARG_ENABLE(vcdinfo,
2422   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2423
2424 have_libcdio=no
2425 have_libvcdinfo=no
2426 if test "${enable_libcdio}" != "no"
2427 then
2428   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2429      have_libcdio=yes
2430      AC_DEFINE(HAVE_LIBCDIO, 1, 
2431      [Define if you have libcdio 0.78.2 or greater installed]),
2432      [AC_MSG_WARN(CD Reading and information library not found)])
2433
2434   if test "${enable_vcdinfo}" != "no"
2435   then
2436     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2437        [have_libvcdinfo=yes
2438        AC_DEFINE(HAVE_VCDINFO, 1, 
2439        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2440        [AC_MSG_WARN(VCD information library not found)])
2441   fi
2442 fi
2443
2444 dnl
2445 dnl  VCDX and CDDAX modules
2446 dnl
2447 AC_ARG_ENABLE(cddax,
2448   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2449                   via libcdio (default disabled)]))
2450  
2451 AC_ARG_ENABLE(libcddb,
2452   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2453  
2454 if test "${enable_cddax}" = "yes"
2455 then
2456   if test "$have_libcdio" = "yes"
2457   then
2458     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2459     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2460     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2461     VLC_ADD_PLUGIN([cddax])
2462     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2463     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2464     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2465   else 
2466     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2467     HAVE_CDDAX=no
2468   fi
2469
2470   if test "$enable_libcddb" != "no"; then
2471     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2472       HAVE_LIBCDDB=yes 
2473       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2474       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2475       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2476       ],
2477       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2478       HAVE_LIBCDDB=no])
2479   fi
2480  
2481 fi
2482
2483 AC_ARG_ENABLE(vcdx,
2484   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2485  
2486 if test "${enable_vcdx}" = "yes"
2487 then
2488   if test "${have_libvcdinfo}" = "yes"
2489   then
2490     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2491     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2492   else 
2493     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2494     HAVE_VCDX=no
2495   fi
2496
2497   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2498    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2499     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2500     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2501     HAVE_VCDX=no])
2502
2503   if test "$have_libvcdinfo" = "yes"
2504   then
2505     AC_DEFINE(HAVE_VCDX, 1, 
2506     [Define for the VCD plugin using libcdio/libvcdinfo])
2507     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2508     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2509     VLC_ADD_PLUGIN([vcdx])
2510   else 
2511     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2512     HAVE_VCDX=no
2513   fi
2514 fi
2515
2516 dnl
2517 dnl  Built-in CD-DA and VCD module
2518 dnl
2519 AC_ARG_ENABLE(cdda,           
2520   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2521  
2522 AC_ARG_ENABLE(vcd,
2523   [  --enable-vcd            built-in VCD (default enabled)])
2524
2525 if test "${enable_vcd}" != "no"
2526 then
2527   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2528   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2529     AC_MSG_RESULT(yes)
2530     VLC_ADD_PLUGIN([vcd])
2531     VLC_ADD_PLUGIN([cdda])
2532   ],[
2533     AC_MSG_RESULT(no)
2534   ])
2535
2536   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2537   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2538     AC_MSG_RESULT(yes)
2539     VLC_ADD_PLUGIN([vcd])
2540     VLC_ADD_PLUGIN([cdda])
2541     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2542   ],[
2543     AC_MSG_RESULT(no)
2544   ])
2545
2546   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2547   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2548     AC_MSG_RESULT(yes)
2549     VLC_ADD_PLUGIN([vcd])
2550     VLC_ADD_PLUGIN([cdda])
2551     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2552   ],[
2553     AC_MSG_RESULT(no)
2554   ])
2555
2556   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2557   then
2558     VLC_ADD_PLUGIN([vcd])
2559     VLC_ADD_PLUGIN([cdda])
2560   fi
2561
2562   if test "${SYS}" = "darwin"
2563   then
2564     VLC_ADD_PLUGIN([vcd])
2565     VLC_ADD_PLUGIN([cdda])
2566     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2567     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2568   fi
2569
2570   if test "$enable_libcddb" != "no"; then
2571     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2572       HAVE_LIBCDDB=yes 
2573       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2574       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2575       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2576       ],:
2577       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2578       HAVE_LIBCDDB=no])
2579   fi
2580 fi
2581
2582 dnl
2583 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2584 dnl
2585 AC_ARG_ENABLE(dvb,
2586   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2587
2588 if test "${enable_dvb}" != "no"
2589 then
2590     AS_IF([test "${have_dvbpsi}" = "yes" ],[  
2591     AC_ARG_WITH(dvb,
2592      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2593      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2594      then
2595        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2596      fi
2597      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2598      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2599      VLC_ADD_PLUGIN([dvb])
2600      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2601      CPPFLAGS="${CPPFLAGS_save}"
2602    ],[
2603      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2604     ]) 
2605 fi
2606
2607 dnl
2608 dnl  Screen capture module
2609 dnl
2610 AC_ARG_ENABLE(screen,
2611   [  --enable-screen         Screen capture support (default enabled)])
2612 if test "${enable_screen}" != "no"; then
2613   if test "${SYS}" = "darwin"; then
2614     AC_CHECK_HEADERS(OpenGL/gl.h, [
2615       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2616         VLC_ADD_PLUGIN([screen])
2617         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2618       ])
2619     ])
2620   elif test "${SYS}" = "mingw32"; then
2621     VLC_ADD_PLUGIN([screen])
2622     VLC_ADD_LIBS([screen],[-lgdi32])
2623   elif test "${SYS}" = "mingwce"; then
2624     CPPFLAGS="${CPPFLAGS_save}"
2625   elif test "${SYS}" = "beos"; then
2626     VLC_ADD_PLUGIN([screen])
2627     VLC_ADD_CXXFLAGS([screen],[])
2628     VLC_ADD_LIBS([screen],[-lbe])
2629   else
2630     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2631     AC_CHECK_HEADERS(X11/Xlib.h, [
2632       VLC_ADD_PLUGIN([screen])
2633       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2634       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2635     ])
2636     CPPFLAGS="${CPPFLAGS_save}"
2637   fi
2638 fi
2639
2640 dnl
2641 dnl  ipv6 plugin - not for QNX yet
2642 dnl
2643 have_ipv6=no
2644 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2645   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2646 ])
2647
2648 AS_IF([test "${have_ipv6}" = "yes"], [
2649   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2650
2651
2652 AC_CHECK_FUNCS(inet_ntop,[
2653   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2654
2655
2656 dnl
2657 dnl  ogg demux plugin
2658 dnl
2659 AC_ARG_ENABLE(ogg,
2660   [  --enable-ogg            Ogg demux support (default enabled)])
2661 if test "${enable_ogg}" != "no"
2662 then
2663   AC_ARG_WITH(ogg-tree,
2664   [    --with-ogg-tree=PATH  ogg tree for static linking])
2665   if test -n "${with_ogg_tree}"
2666   then
2667     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2668     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2669     if test -z "${real_ogg_tree}"
2670     then
2671       dnl  The given directory can't be found
2672       AC_MSG_RESULT(no)
2673       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2674     fi
2675     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2676     then
2677       dnl  Use a custom ogg
2678       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2679       VLC_ADD_PLUGIN([ogg])
2680       if test "${enable_sout}" != "no"; then
2681         VLC_ADD_PLUGIN([mux_ogg])
2682       fi
2683       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2684       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2685     else
2686       dnl  The given ogg wasn't built
2687       AC_MSG_RESULT(no)
2688       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2689     fi
2690   else
2691     AC_CHECK_HEADERS(ogg/ogg.h, [
2692       AC_CHECK_LIB( ogg, oggpack_read, [
2693         VLC_ADD_PLUGIN([ogg])
2694         if test "${enable_sout}" != "no"; then
2695           VLC_ADD_PLUGIN([mux_ogg])
2696         fi
2697         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2698      ],[])
2699   fi
2700 fi
2701
2702 dnl
2703 dnl  matroska demux plugin
2704 dnl
2705 AC_ARG_ENABLE(mkv,
2706   [  --enable-mkv            Matroska demux support (default enabled)])
2707 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2708   AC_LANG_PUSH(C++)
2709   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2710     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2711     AC_EGREP_CPP(yes,
2712       [#include <ebml/EbmlVersion.h>
2713        #ifdef LIBEBML_VERSION
2714        #if LIBEBML_VERSION >= 0x000706
2715        yes
2716        #endif
2717        #endif],
2718       [AC_MSG_RESULT([yes])
2719         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2720           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2721           AC_EGREP_CPP(yes,
2722             [#include <matroska/KaxVersion.h>
2723              #ifdef LIBMATROSKA_VERSION
2724              #if LIBMATROSKA_VERSION >= 0x000705
2725              yes
2726              #endif
2727              #endif],
2728             [AC_MSG_RESULT([yes])
2729               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2730               VLC_ADD_CXXFLAGS([mkv],[])
2731               if test "${SYS}" = "darwin"; then
2732                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2733               fi
2734               AC_CHECK_LIB(ebml_pic, main, [
2735                 VLC_ADD_PLUGIN([mkv])
2736                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2737               ],
2738                 AC_CHECK_LIB(ebml, main, [
2739                   VLC_ADD_PLUGIN([mkv])
2740                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2741                 ]) 
2742               )
2743             ],
2744             [AC_MSG_RESULT([no])
2745               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.])
2746           ])
2747         ])
2748       ],
2749       [AC_MSG_RESULT([no])
2750         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.])
2751     ])
2752   ])
2753   AC_LANG_POP(C++)
2754 fi
2755
2756 dnl
2757 dnl  modplug demux plugin
2758 dnl
2759 AC_ARG_ENABLE(mod,
2760   [  --enable-mod            Mod demux support (default enabled)])
2761 if test "${enable_mod}" != "no"
2762 then
2763   AC_ARG_WITH(mod-tree,
2764   [    --with-mod-tree=PATH mod tree for static linking])
2765   if test -n "${with_mod_tree}"
2766   then
2767     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2768     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2769     if test -z "${real_mod_tree}"
2770     then
2771       dnl  The given directory can't be found
2772       AC_MSG_RESULT(no)
2773       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2774     fi
2775     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2776     then
2777       dnl  Use a custom mod
2778       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2779       VLC_ADD_PLUGIN([mod])
2780       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2781       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2782     else
2783       dnl  The given mod wasn't built
2784       AC_MSG_RESULT(no)
2785       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2786     fi
2787   else
2788     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2789       VLC_ADD_PLUGIN([mod])
2790       VLC_ADD_CXXFLAGS([mod],[])
2791       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2792   fi
2793 fi
2794
2795 dnl
2796 dnl  mpc demux plugin
2797 dnl
2798 AC_ARG_ENABLE(mpc,
2799   [  --enable-mpc            Mpc demux support (default enabled)])
2800 if test "${enable_mpc}" != "no"
2801 then
2802   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2803     VLC_ADD_PLUGIN([mpc])
2804     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2805 fi
2806
2807 dnl
2808 dnl  game music emu demux plugin
2809 dnl
2810 AC_ARG_ENABLE(gme,
2811   [  --enable-gme            Game Music Emu demux support (default enabled)])
2812 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2813 then
2814   AC_LANG_PUSH(C++)
2815   AC_ARG_WITH(gme-tree,
2816   [    --with-gme-tree=PATH gme tree for static linking])
2817   if test -n "${with_gme_tree}"
2818   then
2819     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2820     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2821     if test -z "${real_gme_tree}"
2822     then
2823       dnl  The given directory can't be found
2824       AC_MSG_RESULT(no)
2825       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2826     fi
2827     if test -f "${real_gme_tree}/gme/libgme.a"
2828     then
2829       dnl  Use a custom gme
2830       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2831       VLC_ADD_PLUGIN([gme])
2832       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2833       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2834     else
2835       dnl  The given gme wasn't built
2836       AC_MSG_RESULT(no)
2837       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2838     fi
2839   else
2840       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2841   fi
2842   AC_LANG_POP(C++)
2843 fi
2844
2845 dnl
2846 dnl  Codec plugins
2847 dnl
2848
2849 AC_ARG_WITH(,[Codec plugins:])
2850
2851 dnl
2852 dnl  mad plugin
2853 dnl
2854 AC_ARG_ENABLE(mad,
2855   [  --enable-mad            libmad module (default enabled)])
2856 if test "${enable_mad}" != "no"
2857 then
2858   AC_ARG_WITH(mad,
2859     [    --with-mad=PATH       path to libmad],[],[])
2860   if test "${with_mad}" != "no" -a -n "${with_mad}"
2861   then
2862     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2863     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2864   fi
2865
2866   AC_ARG_WITH(mad-tree,
2867     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2868   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2869   then
2870     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2871     if test -z "${real_mad_tree}"
2872     then
2873       dnl  The given directory can't be found
2874       AC_MSG_RESULT(no)
2875       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2876     fi
2877     dnl  Use a custom libmad
2878     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2879     if test -f ${real_mad_tree}/mad.h
2880     then
2881       AC_MSG_RESULT(yes)
2882       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2883       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2884       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2885       AC_CHECK_LIB(mad, mad_bit_init, [
2886         VLC_ADD_PLUGIN([mpgatofixed32])
2887         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2888         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2889       ],[])
2890       LDFLAGS="${LDFLAGS_save}"
2891     else
2892       AC_MSG_RESULT(no)
2893       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2894     fi
2895   else
2896     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2897     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2898     AC_CHECK_HEADERS(mad.h, ,
2899       [ 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.]) ])
2900     AC_CHECK_LIB(mad, mad_bit_init, [
2901       VLC_ADD_PLUGIN([mpgatofixed32])
2902       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2903       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2904     CPPFLAGS="${CPPFLAGS_save}"
2905     LDFLAGS="${LDFLAGS_save}"
2906   fi
2907 fi
2908
2909 dnl
2910 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2911 dnl
2912 AC_ARG_ENABLE( id3tag,
2913 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2914 AS_IF([test "${enable_id3tag}" = "yes"], [
2915   AC_CHECK_HEADERS(id3tag.h, [
2916     AC_CHECK_HEADERS(zlib.h, [
2917       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2918       VLC_ADD_PLUGIN([id3tag])
2919     ])
2920   ])
2921 ])
2922
2923 dnl
2924 dnl  avcodec decoder/encoder plugin
2925 dnl
2926
2927 if test "${with_ffmpeg_tree}"
2928 then
2929   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2930 fi
2931
2932 AC_ARG_ENABLE(avcodec,
2933 [  --enable-avcodec        libavcodec codec (default enabled)])
2934 if test "${enable_avcodec}" != "no"
2935 then
2936   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2937     [
2938       VLC_SAVE_FLAGS
2939       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2940       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2941       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2942       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2943       VLC_ADD_PLUGIN([avcodec])
2944       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2945       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2946       VLC_RESTORE_FLAGS
2947     ],[
2948       AC_MSG_FAILURE([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2949   ])
2950 fi
2951
2952 dnl
2953 dnl  avformat demuxer/muxer plugin
2954 dnl
2955
2956 AC_ARG_ENABLE(avformat,
2957 [  --enable-avformat       libavformat containers (default enabled)])
2958 if test "${enable_avformat}" != "no"
2959 then
2960   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2961     [
2962       VLC_SAVE_FLAGS
2963       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2964       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2965       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2966       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2967       VLC_ADD_PLUGIN([avformat])
2968       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
2969       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
2970       VLC_RESTORE_FLAGS
2971     ],[
2972       AC_MSG_FAILURE([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2973   ])
2974 fi
2975
2976 dnl
2977 dnl  swscale image scaling and conversion plugin
2978 dnl
2979
2980 AC_ARG_ENABLE(swscale,
2981   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
2982                   (default enabled)]))
2983 if test "${enable_swscale}" != "no"
2984 then
2985   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2986     [
2987       VLC_SAVE_FLAGS
2988       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2989       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2990       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2991       VLC_ADD_PLUGIN([swscale])
2992       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2993       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2994       VLC_RESTORE_FLAGS
2995     ],[
2996       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
2997       enable_imgresample=yes
2998   ])
2999 fi
3000
3001 dnl
3002 dnl  avcodec (deprecated API) image scaling and conversion plugin
3003 dnl
3004 dnl  This is build as a seperate module than the avcodec one to prevent
3005 dnl  stupid run time library load errors from disabling most codecs
3006 dnl  from VLC.
3007 dnl
3008
3009 AC_ARG_ENABLE(imgresample,
3010   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3011                   and conversion (default disabled)]))
3012 if test "${enable_imgresample}" = "yes"
3013 then
3014   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3015     [
3016       VLC_SAVE_FLAGS
3017       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3018       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3019       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3020       AC_CHECK_LIB(avcodec,img_resample,
3021         [
3022           VLC_ADD_PLUGIN([imgresample])
3023           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3024           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3025         ],[
3026           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3027           if test "${enable_swscale}" != "no"
3028           then
3029             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.)])
3030           fi
3031         # That sed hack to add -rpath is kind of ugly but at least it fixes
3032         # detection when linking against a shared libavcodec with
3033         # a libavutil not in one of your ld.so.conf directories.
3034         # (for example a local install)
3035         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3036       VLC_RESTORE_FLAGS
3037     ],[
3038       AC_MSG_WARN([Could not find libavcodec.])
3039   ])
3040 fi
3041
3042 dnl
3043 dnl  postproc plugin
3044 dnl
3045
3046 AC_ARG_ENABLE(postproc,
3047 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3048 if test "${enable_postproc}" != "no"
3049 then
3050   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3051     [
3052       VLC_SAVE_FLAGS
3053       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3054       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3055       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3056       VLC_ADD_PLUGIN([postproc])
3057       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3058       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3059       VLC_RESTORE_FLAGS
3060     ],[
3061       AC_MSG_ERROR([Could not find libpostproc.])
3062   ])
3063 fi
3064
3065 dnl
3066 dnl  faad decoder plugin
3067 dnl
3068 AC_ARG_ENABLE(faad,
3069 [  --enable-faad           faad codec (default disabled)])
3070 if test "${enable_faad}" = "yes"
3071 then
3072   AC_ARG_WITH(faad-tree,
3073   [    --with-faad-tree=PATH faad tree for static linking])
3074   if test -n "${with_faad_tree}"
3075   then
3076     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3077     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3078     if test -z "${real_faad_tree}"
3079     then
3080       dnl  The given directory can't be found
3081       AC_MSG_RESULT(no)
3082       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3083     fi
3084     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3085     then
3086       dnl  Use a custom faad
3087       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3088       VLC_ADD_PLUGIN([faad])
3089       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3090       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3091     else
3092       dnl  The given libfaad wasn't built
3093       AC_MSG_RESULT(no)
3094       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3095     fi
3096   else
3097     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3098     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3099     AC_CHECK_HEADERS(faad.h, ,
3100       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3101     AC_CHECK_LIB(faad, faacDecOpen, [
3102       VLC_ADD_PLUGIN([faad])
3103       VLC_ADD_LIBS([faad],[-lfaad]) ],
3104       AC_CHECK_LIB(faad, NeAACDecOpen, [
3105         VLC_ADD_PLUGIN([faad])
3106         VLC_ADD_LIBS([faad],[-lfaad]) ],
3107         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3108     LDFLAGS="${LDFLAGS_save}"
3109     CPPFLAGS="${CPPFLAGS_save}"
3110   fi
3111 fi
3112
3113 dnl
3114 dnl twolame encoder plugin
3115 dnl
3116 AC_ARG_ENABLE(twolame,
3117 [  --enable-twolame        twolame codec (default disabled)])
3118 if test "${enable_twolame}" = "yes"
3119 then
3120   AC_ARG_WITH(twolame-tree,
3121   [    --with-twolame-tree=PATH twolame tree for static linking])
3122   if test -n "${with_twolame_tree}"
3123   then
3124     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3125     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3126     if test -z "${real_twolame_tree}"
3127     then
3128       dnl  The given directory can't be found
3129       AC_MSG_RESULT(no)
3130       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3131     fi
3132     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3133     then
3134       dnl  Use a custom twolame
3135       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3136       VLC_ADD_PLUGIN([twolame])
3137       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3138       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3139     else
3140       dnl  The given libtwolame wasn't built
3141       AC_MSG_RESULT(no)
3142       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3143     fi
3144   else
3145     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3146     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3147     AC_CHECK_HEADERS(twolame.h, ,
3148       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3149     AC_CHECK_LIB(twolame, twolame_init, [
3150       VLC_ADD_PLUGIN([twolame])
3151       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3152       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3153         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3154     LDFLAGS="${LDFLAGS_save}"  
3155     CPPFLAGS="${CPPFLAGS_save}"
3156   fi
3157 fi
3158
3159 dnl
3160 dnl  QuickTime plugin
3161 dnl
3162 AC_ARG_ENABLE(quicktime,
3163   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3164 if test "${enable_quicktime}" != "no" &&
3165   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3166 then
3167   if test "${SYS}" = "mingw32"; then
3168     VLC_ADD_PLUGIN([quicktime])
3169   else
3170   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3171     [ VLC_ADD_PLUGIN([quicktime])
3172       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3173     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3174   fi
3175 fi
3176
3177 dnl
3178 dnl  Real plugin
3179 dnl
3180 AC_ARG_ENABLE(real,
3181   [  --enable-real           Real media module (default disabled)])
3182 if test "${enable_real}" = "yes"; then
3183   VLC_ADD_PLUGIN([realaudio])
3184   VLC_ADD_PLUGIN([realvideo])
3185 fi
3186
3187 dnl
3188 dnl  Real RTSP plugin
3189 dnl
3190 AC_ARG_ENABLE(realrtsp,
3191   [  --enable-realrtsp       Real RTSP module (default disabled)])
3192 if test "${enable_realrtsp}" = "yes"; then
3193   VLC_ADD_PLUGIN([access_realrtsp])
3194 fi
3195
3196 dnl
3197 dnl MP4 module
3198 dnl
3199 AC_CHECK_HEADERS(zlib.h, [
3200   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3201 ] )
3202
3203 AC_ARG_ENABLE(libsysfs,
3204   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3205
3206 AS_IF([test "${enable_libsysfs}" != "no"],[
3207   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3208     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3209   ] )
3210 ])
3211
3212 dnl
3213 dnl skins2 module
3214 dnl
3215 AC_ARG_ENABLE(libtar,
3216   [  --enable-libtar         libtar support for skins2 (default enabled)])
3217
3218 AS_IF([test "${enable_libtar}" != "no"],[
3219   AC_CHECK_HEADERS(libtar.h, [
3220     VLC_ADD_LIBS([skins2],[-ltar])
3221   ] )
3222 ])
3223
3224 dnl
3225 dnl A52/AC3 decoder plugin
3226 dnl
3227 AC_ARG_ENABLE(a52,
3228   [  --enable-a52            A/52 support with liba52 (default enabled)])
3229 if test "${enable_a52}" != "no"
3230 then
3231   AC_ARG_WITH(a52,
3232     [    --with-a52=PATH       a52 headers and libraries])
3233   AC_ARG_WITH(a52-tree,
3234     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3235   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3236   then
3237     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3238     if test -z "${real_a52_tree}"
3239     then
3240       dnl  The given directory can't be found
3241       AC_MSG_RESULT(no)
3242       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3243     fi
3244     dnl  Use a custom a52dec
3245     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3246     if test -f ${real_a52_tree}/include/a52.h
3247     then
3248       AC_MSG_RESULT(yes)
3249       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3250       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3251       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3252       AC_CHECK_LIB(a52, a52_free, [
3253         VLC_ADD_PLUGIN([a52tofloat32])
3254         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3255         VLC_ADD_LIBS([a52tofloat32],[-la52])
3256         ],[
3257         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3258         then
3259           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3260         else
3261           AC_MSG_ERROR([the specified tree hasn't been compiled])
3262         fi
3263       ])
3264       LDFLAGS="${LDFLAGS_save}"
3265     else
3266       AC_MSG_RESULT(no)
3267       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3268     fi
3269   else
3270     if test -z "${with_a52}"
3271     then
3272       LDFLAGS_test=""
3273       CPPFLAGS_test=""
3274     else
3275       LDFLAGS_test="-L${with_a52}/lib"
3276       CPPFLAGS_test="-I${with_a52}/include"
3277     fi
3278     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3279     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3280     AC_CHECK_HEADERS(a52dec/a52.h, [
3281       AC_CHECK_LIB(a52, a52_free, [
3282         VLC_ADD_PLUGIN([a52tofloat32])
3283         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3284         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3285       ],[
3286         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.])
3287         ])
3288     ],[
3289       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.])
3290     ])
3291     CPPFLAGS="${CPPFLAGS_save}"
3292     LDFLAGS="${LDFLAGS_save}"
3293   fi
3294 fi
3295
3296 AC_ARG_WITH(a52-fixed,
3297       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3298       [
3299         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3300
3301 dnl
3302 dnl DTS Coherent Acoustics decoder plugin
3303 dnl
3304 AS_IF([test "x${enable_dts}" != "x"], [
3305   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3306 ])
3307 AS_IF([test "x${with_dts_tree}" != "x"], [
3308   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3309 ])
3310
3311 AC_ARG_ENABLE(dca,
3312   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3313                   (default enabled)]))
3314 AS_IF([test "${enable_dca}" != "no"], [
3315   AC_ARG_WITH(dca-tree,
3316     [    --with-dca-tree=PATH  libdca tree for static linking],,
3317     [with_dca_tree="no"])
3318   AS_IF([test "${with_dca_tree}" != "no"], [
3319     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3320     AS_IF([test -z "${real_dca_tree}"], [
3321       dnl  The given directory can't be found
3322       AC_MSG_RESULT(no)
3323       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3324     ])
3325     dnl  Use a custom libdca
3326     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3327     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3328       AC_MSG_RESULT(yes)
3329       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3330       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3331         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3332       ], [
3333         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3334       ])
3335     ], [
3336       AC_MSG_RESULT(no)
3337       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3338     ])
3339   ], [
3340     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3341       VLC_ADD_PLUGIN([dtstofloat32])
3342       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3343       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3344     ], [
3345       AS_IF([test "x${enable_dca}" != "x"], [
3346         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3347       ])
3348     ])
3349   ])
3350 ])
3351
3352 dnl
3353 dnl  Flac plugin
3354 dnl
3355 AC_ARG_ENABLE(flac,
3356   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3357 if test "${enable_flac}" = "yes"
3358 then
3359   AC_ARG_WITH(flac-tree,
3360   [    --with-flac-tree=PATH flac tree for static linking])
3361   if test -n "${with_flac_tree}"
3362   then
3363     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3364     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3365     if test -z "${real_flac_tree}"
3366     then
3367       dnl  The given directory can't be found
3368       AC_MSG_RESULT(no)
3369       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3370     fi
3371     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3372     then
3373       dnl  Use a custom flac
3374       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3375       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3376       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3377       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3378     else
3379       dnl  The given flac wasn't built
3380       AC_MSG_RESULT(no)
3381       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3382     fi
3383   else
3384     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3385       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3386      ],[])
3387   fi
3388 fi
3389
3390 dnl
3391 dnl  Libmpeg2 plugin
3392 dnl
3393 AC_ARG_ENABLE(libmpeg2,
3394   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3395 if test "${enable_libmpeg2}" != "no"
3396 then
3397   AC_ARG_WITH(libmpeg2-tree,
3398   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3399   AS_IF([test -n "${with_libmpeg2_tree}"],[
3400     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3401     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3402     if test -z "${real_libmpeg2_tree}"
3403     then
3404       dnl  The given directory can't be found
3405       AC_MSG_RESULT(no)
3406       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3407     fi
3408     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3409     then
3410       dnl  Use a custom libmpeg2
3411       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3412       VLC_ADD_PLUGIN([libmpeg2])
3413       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3414       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3415     else
3416       dnl  The given libmpeg2 wasn't built
3417       AC_MSG_RESULT(no)
3418       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3419     fi
3420   ],[
3421    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3422           VLC_ADD_PLUGIN([libmpeg2])
3423           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3424           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3425        ], 
3426       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.]))
3427   ])
3428 fi
3429
3430 dnl
3431 dnl  Vorbis plugin
3432 dnl
3433 AC_ARG_ENABLE(vorbis,
3434   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3435 if test "${enable_vorbis}" != "no"
3436 then
3437   AC_ARG_WITH(vorbis-tree,
3438   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3439   if test -n "${with_vorbis_tree}"
3440   then
3441     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3442     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3443     if test -z "${real_vorbis_tree}"
3444     then
3445       dnl  The given directory can't be found
3446       AC_MSG_RESULT(no)
3447       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3448     fi
3449     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3450     then
3451       dnl  Use a custom vorbis 
3452       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3453       VLC_ADD_PLUGIN([vorbis])
3454       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3455       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3456     else
3457       dnl  The given vorbis wasn't built
3458       AC_MSG_RESULT(no)
3459       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3460     fi
3461   else
3462     AC_CHECK_HEADERS(vorbis/codec.h, [
3463       VLC_ADD_PLUGIN([vorbis])
3464       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3465
3466     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3467       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3468   fi
3469 fi
3470
3471 dnl
3472 dnl  Tremor plugin
3473 dnl
3474 AC_ARG_ENABLE(tremor,
3475   [  --enable-tremor         Tremor decoder support (default disabled)])
3476 if test "${enable_tremor}" = "yes"
3477 then
3478   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3479     VLC_ADD_PLUGIN([tremor])
3480     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3481    ],[])
3482 fi
3483
3484 dnl
3485 dnl  Speex plugin
3486 dnl
3487 AC_ARG_ENABLE(speex,
3488   [  --enable-speex          Speex decoder support (default enabled)])
3489 if test "${enable_speex}" != "no"
3490 then
3491   AC_ARG_WITH(speex-tree,
3492   [    --with-speex-tree=PATH speex tree for static linking])
3493   if test -n "${with_speex_tree}"
3494   then
3495     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3496     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3497     if test -z "${real_speex_tree}"
3498     then
3499       dnl  The given directory can't be found
3500       AC_MSG_RESULT(no)
3501       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3502     fi
3503     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3504     then
3505       dnl  Use a custom speex
3506       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3507       VLC_ADD_PLUGIN([speex])
3508       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3509       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3510     else
3511       dnl  The given speex wasn't built
3512       AC_MSG_RESULT(no)
3513       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3514     fi
3515   else
3516     AC_CHECK_HEADERS(speex/speex.h, [
3517       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3518       AC_CHECK_LIB(speex, speex_decode_int, [
3519         VLC_ADD_PLUGIN([speex])
3520         VLC_ADD_LIBS([speex],[-lspeex]) ],
3521         [ AC_MSG_RESULT([no])
3522           AC_MSG_WARN([Your libspeex is too old, please get the development
3523                        version.]) ],[])
3524       LDFLAGS="${LDFLAGS_save}"
3525       ],[])
3526   fi
3527 fi
3528
3529 dnl
3530 dnl  tarkin decoder plugin
3531 dnl
3532 AC_ARG_ENABLE(tarkin,
3533 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3534 if test "${enable_tarkin}" = "yes"
3535 then
3536   AC_ARG_WITH(tarkin-tree,
3537   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3538   if test -n "${with_tarkin_tree}"
3539   then
3540     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3541     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3542     if test -f "${real_tarkin_tree}/tarkin.o"
3543     then
3544       VLC_ADD_PLUGIN([tarkin])
3545       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3546       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])
3547       AC_MSG_RESULT(yes)
3548     else
3549       dnl  The given tarkin tree wasn't built
3550       AC_MSG_RESULT(no)
3551       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3552                     make sure you compiled tarkin in ${with_tarkin_tree}])
3553     fi
3554   fi
3555 fi
3556
3557 dnl
3558 dnl  theora decoder plugin
3559 dnl
3560 AC_ARG_ENABLE(theora,
3561 [  --enable-theora         experimental theora codec (default disabled)])
3562 if test "${enable_theora}" = "yes"
3563 then
3564   AC_CHECK_HEADERS(theora/theora.h, [
3565     AC_CHECK_LIB(theora, theora_granule_time, [
3566       VLC_ADD_PLUGIN([theora])
3567       theora_libs="-ltheora -logg"
3568       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3569       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3570 You also need to check that you have a libogg posterior to the 1.0 release.])],
3571       [-logg])
3572   ])
3573 fi
3574
3575 dnl
3576 dnl  dirac decoder plugin
3577 dnl
3578 AC_ARG_ENABLE(dirac,
3579 [  --enable-dirac          experimental dirac codec (default disabled)])
3580 if test "${enable_dirac}" = "yes"; then
3581   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3582       VLC_ADD_PLUGIN([dirac])
3583       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3584       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3585       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3586   ])
3587 fi
3588
3589 dnl
3590 dnl  schroedinger decoder plugin (for dirac format video)
3591 dnl
3592 AC_ARG_ENABLE(schroedinger,
3593 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3594 if test "${enable_schroedinger}" != "no"; then
3595   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3596       VLC_ADD_PLUGIN([schroedinger])
3597       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3598       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3599         AS_IF([test "x${enable_schroedinger}" != "x"], [
3600           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3601         ])
3602 ])
3603 fi
3604
3605 dnl
3606 dnl  PNG decoder module
3607 dnl
3608 AC_ARG_ENABLE(png,
3609   [  --enable-png            PNG support (default enabled)])
3610 if test "${enable_png}" != "no"; then
3611 AC_CHECK_HEADERS(png.h, [
3612   LDFLAGS="${LDFLAGS_save} -lz"
3613   AC_CHECK_LIB(png, png_set_rows, [
3614     VLC_ADD_LIBS([png],[-lpng -lz])
3615     VLC_ADD_PLUGIN([png])
3616     VLC_ADD_PLUGIN([osdmenu])
3617     VLC_ADD_PLUGIN([osd_parser])
3618     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3619     [],[-lz])
3620     LDFLAGS="${LDFLAGS_save}"
3621   ])
3622 fi
3623 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3624
3625 dnl
3626 dnl H264 encoder plugin (using libx264)
3627 dnl
3628 AC_ARG_ENABLE(x264,
3629   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3630 if test "${enable_x264}" != "no"; then
3631   AC_ARG_WITH(x264-tree,
3632     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3633   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3634   then
3635     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3636     if test -z "${real_x264_tree}"
3637     then
3638       dnl  The given directory can't be found
3639       AC_MSG_RESULT(no)
3640       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3641     fi
3642     dnl  Use a custom libx264
3643     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3644     if test -f ${real_x264_tree}/x264.h
3645     then
3646       AC_MSG_RESULT(yes)
3647       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3648       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3649       PKG_CHECK_MODULES(X264,x264, [
3650         VLC_ADD_PLUGIN([x264])
3651         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3652         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3653       ],[
3654         AC_MSG_ERROR([the specified tree hasn't been compiled])
3655       ])
3656       LDFLAGS="${LDFLAGS_save}"
3657     else
3658       AC_MSG_RESULT(no)
3659       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3660     fi
3661   else
3662       PKG_CHECK_MODULES(X264,x264, [
3663         VLC_ADD_PLUGIN([x264])
3664         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3665         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3666       ],[
3667         if test "${enable_x264}" = "yes"; then
3668             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3669           fi
3670       ])
3671     LDFLAGS="${LDFLAGS_save}"
3672   fi
3673 fi
3674
3675 dnl
3676 dnl libfluidsynth (MIDI synthetizer) plugin
3677 dnl
3678 AC_ARG_ENABLE(fluidsynth,
3679   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3680 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3681   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3682     VLC_ADD_PLUGIN(fluidsynth)
3683     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3684     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3685   ], [
3686     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3687       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3688     ])
3689   ])
3690 ])
3691
3692 dnl
3693 dnl Teletext Modules
3694 dnl vbi decoder plugin (using libzbvi)
3695 dnl telx module
3696 dnl uncompatible
3697 dnl
3698 AC_ARG_ENABLE(zvbi,
3699   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3700                   libzvbi (default enabled)]))
3701 AC_ARG_ENABLE(telx,
3702   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3703                   zvbi) (default enabled if zvbi is absent)]))
3704
3705 AS_IF( [test "${enable_zvbi}" != "no"],[
3706     PKG_CHECK_MODULES(ZVBI,
3707         zvbi-0.2 >= 0.2.25,
3708         [
3709           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3710           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3711           VLC_ADD_PLUGIN([zvbi])
3712           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3713           AS_IF( [test "${enable_telx}" = "yes"],[
3714                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles. 
3715                                Using zvbi.])
3716                   ])
3717         ],[
3718           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3719         ])
3720     ])  
3721 AS_IF( [test "${enable_telx}" != "no" ],[
3722   VLC_ADD_PLUGIN([telx])
3723   ])
3724
3725 dnl
3726 dnl asa/csri subtitle rendering module
3727 dnl
3728 AC_ARG_ENABLE(csri,
3729   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3730 AS_IF( [test "${enable_csri}" = "yes"], [
3731   PKG_CHECK_MODULES(CSRI,
3732       csri >= 0.1.0,
3733       [
3734         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3735         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3736         VLC_ADD_PLUGIN([csri])
3737       ],[
3738         AC_MSG_WARN([CSRI helper library not found])
3739       ])
3740   ])
3741
3742 dnl
3743 dnl libass subtitle rendering module
3744 dnl
3745 AC_ARG_ENABLE(libass,
3746   [  --enable-libass         Subtitle support using libass (default disabled)])
3747 AS_IF( [test "${enable_libass}" = "yes"], [
3748   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3749       [
3750         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3751         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3752         VLC_ADD_PLUGIN([libass])
3753
3754         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3755           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3756         if test "${SYS}" = "mingw32"; then
3757            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz -lxml2])
3758         else
3759            VLC_ADD_LIBS([libass],[-lfontconfig])
3760         fi
3761        ])
3762       ],[
3763         AC_MSG_WARN([LIBASS library not found])
3764       ])
3765   ])
3766
3767 dnl
3768 dnl asa demuxer
3769 dnl
3770 AC_ARG_ENABLE(asademux,
3771   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3772 AS_IF( [test "${enable_asademux}" = "yes"], [
3773   PKG_CHECK_MODULES(PCRE,
3774       libpcre >= 6.5,
3775       [
3776         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3777         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3778         if test "${SYS}" = "mingw32"; then
3779                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3780         fi
3781         VLC_ADD_PLUGIN([asademux])
3782       ],[
3783         AC_MSG_WARN([PCRE library not found (required for asademux)])
3784       ])
3785   ])
3786
3787 dnl
3788 dnl  CMML plugin
3789 dnl
3790 AC_ARG_ENABLE(cmml,
3791   [  --enable-cmml           CMML support (default enabled)])
3792 if test "${enable_cmml}" != "no"
3793 then
3794   VLC_ADD_PLUGIN([cmml])
3795 fi
3796
3797 dnl
3798 dnl  kate decoder plugin
3799 dnl
3800 AC_ARG_ENABLE(kate,
3801 [  --enable-kate           kate codec (default enabled)])
3802 AS_IF([test "${enable_kate}" != "no"], [
3803   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3804       VLC_ADD_PLUGIN([kate])
3805       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3806       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3807         AC_CHECK_HEADERS(kate/kate.h, [
3808           AC_CHECK_LIB(kate, kate_decode_init, [
3809             VLC_ADD_PLUGIN([kate])
3810             kate_libs="-lkate -logg"
3811             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3812             AS_IF([test "x${enable_kate}" != "x"], [
3813               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3814               You also need to check that you have a libogg posterior to the 1.0 release.])
3815             ])
3816           ], [-lkate -logg])
3817         ],[
3818           AS_IF([test "x${enable_kate}" != "x"], [
3819             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3820             You also need to check that you have a libogg posterior to the 1.0 release.])
3821           ])
3822         ])
3823   ])
3824 ])
3825
3826
3827 dnl
3828 dnl  tiger decoder plugin
3829 dnl
3830 AC_ARG_ENABLE(tiger,
3831 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3832 AS_IF([test "${enable_tiger}" != "no"], [
3833   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3834       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3835       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3836       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3837         AS_IF([test "x${enable_tiger}" != "x"], [
3838           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3839         ])
3840   ])
3841 ])
3842
3843
3844 dnl
3845 dnl  Video plugins
3846 dnl
3847
3848 AC_ARG_WITH(,[Video plugins:])
3849
3850 dnl Check for DPMS
3851 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3852   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3853   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3854     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3855     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3856       AC_MSG_RESULT(yes)
3857       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3858                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3859     ],[
3860       AC_MSG_RESULT(no)
3861     ])
3862   ],,[
3863     #include <X11/Xlib.h>
3864   ])
3865   CPPFLAGS="${CPPFLAGS_save}"
3866 fi
3867
3868 dnl
3869 dnl  X11 module
3870 dnl  (enabled by default except on win32)
3871 dnl
3872 AC_ARG_ENABLE(x11,
3873   [  --enable-x11            X11 support (default enabled)])
3874 if test "${enable_x11}" != "no" &&
3875   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3876    test "${enable_x11}" = "yes"); then
3877   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3878   AC_CHECK_HEADERS(X11/Xlib.h, [
3879     VLC_ADD_PLUGIN([panoramix])
3880     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3881     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3882     AC_CHECK_LIB(Xext, XShmAttach, [
3883       VLC_ADD_PLUGIN([x11])
3884       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3885       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3886     ])
3887   ])
3888   CPPFLAGS="${CPPFLAGS_save}"
3889 fi
3890
3891 dnl
3892 dnl  XVideo module
3893 dnl  (enabled by default except on win32)
3894 dnl
3895 AC_ARG_ENABLE(xvideo,
3896   [  --enable-xvideo         XVideo support (default enabled)])
3897 if test "${enable_xvideo}" != "no" &&
3898   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3899    test "${enable_xvideo}" = "yes"); then
3900   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3901   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3902     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3903     AC_CHECK_LIB(Xv,XvPutImage,[
3904         VLC_ADD_PLUGIN([xvideo])
3905         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3906         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3907     ])
3908     CFLAGS="${CFLAGS_save}"
3909   ]
3910   CPPFLAGS="${CPPFLAGS_save}")
3911 fi
3912
3913 dnl
3914 dnl  GLX module
3915 dnl  (enabled by default except on win32)
3916 dnl
3917 AC_ARG_ENABLE(glx,
3918   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3919 if test "${enable_glx}" != "no" &&
3920   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3921    test "${enable_glx}" = "yes"); then
3922   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3923   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3924   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3925     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3926     choke me
3927     #endif]]),
3928     [
3929       VLC_ADD_PLUGIN([glx])
3930       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3931       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3932     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3933   CPPFLAGS="${CPPFLAGS_save}"
3934 fi
3935
3936 dnl
3937 dnl  XVMC module
3938 dnl  (disabled by default except on win32)
3939 dnl
3940 AC_ARG_ENABLE(xvmc,
3941   [  --enable-xvmc           XVMC support (default disabled)])
3942 if test "${enable_xvmc}" = "yes" &&
3943   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3944    test "${enable_xvmc}" = "yes"); then
3945   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3946   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3947     VLC_ADD_PLUGIN([xvmc])
3948     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
3949     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3950   ])
3951   CPPFLAGS="${CPPFLAGS_save}"
3952 fi
3953
3954 dnl
3955 dnl  Check for the Xinerama extension
3956 dnl
3957 AC_ARG_ENABLE(xinerama,
3958   [  --enable-xinerama       Xinerama support (default enabled)])
3959 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3960   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3961    test "${enable_xvideo}" = "yes"); then
3962   ac_cv_have_xinerama="no"
3963   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3964   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3965   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3966     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3967       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3968       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3969       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3970       ac_cv_have_xinerama="yes"
3971     ],[
3972       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3973         VLC_ADD_LIBS([xvideo],[-lXinerama])
3974         VLC_ADD_LIBS([x11],[-lXinerama])
3975         VLC_ADD_LIBS([glx],[-lXinerama])
3976         ac_cv_have_xinerama="yes"
3977       ])
3978     ])
3979   ])
3980   if test "${ac_cv_have_xinerama}" = "yes"; then
3981     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3982   fi
3983   CFLAGS="${CFLAGS_save}"
3984   CPPFLAGS="${CPPFLAGS_save}"
3985
3986 dnl
3987 dnl  Check for XF86VidMode extension
3988 dnl
3989   ac_cv_have_xf86vidmode="no"
3990   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3991   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3992   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3993     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3994       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
3995       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
3996       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
3997       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
3998       ac_cv_have_xf86vidmode="yes"
3999     ],[
4000       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4001         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4002         VLC_ADD_LIBS([x11],[-lXxf86vm])
4003         VLC_ADD_LIBS([glx],[-lXxf86vm])
4004         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4005         ac_cv_have_xf86vidmode="yes"
4006       ])
4007     ])
4008   ],[true],
4009 [#ifdef HAVE_X11_XLIB_H
4010 # include <X11/Xlib.h>
4011 #endif]
4012    )
4013   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4014     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4015   ])
4016   CFLAGS="${CFLAGS_save}"
4017   CPPFLAGS="${CPPFLAGS_save}"
4018
4019 fi
4020
4021 dnl
4022 dnl  OpenGL module
4023 dnl  (enabled by default except on beos)
4024 dnl
4025 AC_ARG_ENABLE(opengl,
4026   [  --enable-opengl         OpenGL support (default enabled)])
4027 if test "${enable_opengl}" != "no" &&
4028    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4029   if test "${SYS}" != "darwin"; then
4030     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4031       VLC_ADD_PLUGIN([opengl])
4032       if test "${SYS}" != "mingw32"; then
4033         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4034       else
4035         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4036       fi
4037     ])
4038   else
4039     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4040     VLC_ADD_PLUGIN([opengl])
4041     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4042   fi
4043 fi
4044
4045 dnl
4046 dnl  SDL module
4047 dnl
4048 AC_ARG_ENABLE(sdl,
4049   [  --enable-sdl            SDL support (default enabled)])
4050 AC_ARG_ENABLE(sdl-image,
4051   [  --enable-sdl-image      SDL image support (default enabled)])
4052 if test "${enable_sdl}" != "no"
4053 then
4054   SDL_PATH="${PATH}"
4055   AC_ARG_WITH(sdl-config-path,
4056     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4057     [ if test "${with_sdl_config_path}" != "no"
4058       then
4059         SDL_PATH="${with_sdl_config_path}:${PATH}"
4060       fi ])
4061   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4062   SDL_CONFIG="${SDL12_CONFIG}"
4063   SDL_HEADER="SDL12/SDL.h"
4064   SDL_IMAGE="SDL12/SDL_image.h"
4065   if test "${SDL_CONFIG}" = "no"
4066   then
4067     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4068     SDL_CONFIG=${SDL11_CONFIG}
4069     SDL_HEADER="SDL11/SDL.h"
4070     SDL_IMAGE="SDL11/SDL_image.h"
4071   fi
4072   if test "${SDL_CONFIG}" = "no"
4073   then
4074     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4075     SDL_HEADER="SDL/SDL.h"
4076     SDL_IMAGE="SDL/SDL_image.h"
4077   fi
4078   # check for cross-compiling
4079   SDL_PREFIX=
4080   AC_ARG_WITH(sdl-prefix,
4081     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4082                                e.g use as:
4083                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4084   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4085   then
4086     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4087   fi
4088   if test "${SDL_CONFIG}" != "no"
4089   then
4090     # SDL on Darwin is heavily patched and can only run SDL_image
4091     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4092       VLC_ADD_PLUGIN([vout_sdl])
4093       VLC_ADD_PLUGIN([aout_sdl])
4094     fi
4095     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4096     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4097     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4098     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4099       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4100       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4101           As a last resort we also test for SDL.h presence),
4102       [ AC_MSG_ERROR([The development package for SDL is not installed.
4103 Please install it and try again. Alternatively you can also configure with
4104 --disable-sdl.])
4105       ])])
4106     AS_IF([ test "${enable_sdl_image}" != "no"],[
4107       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4108         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4109         VLC_ADD_PLUGIN([sdl_image])
4110         AC_CHECK_LIB(png, png_set_rows,
4111           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4112         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4113           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4114         AC_CHECK_LIB(tiff, TIFFClientOpen,
4115           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4116         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4117         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4118             As a last resort we also test for SDL_image.h presence),
4119         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4120   You should install it alongside your SDL package.])
4121         ])])
4122     ])
4123     CPPFLAGS="${CPPFLAGS_save}"
4124     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4125     then
4126       AC_MSG_ERROR([The development package for SDL is not installed.
4127 Please install it and try again. Alternatively you can also configure with
4128 --disable-sdl.])
4129     fi
4130
4131   elif test "${enable_sdl}" =  "yes"
4132   then
4133     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4134 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4135     ])
4136   fi
4137 fi
4138
4139 dnl
4140 dnl  freetype module
4141 dnl
4142 AC_ARG_ENABLE(freetype,
4143   [  --enable-freetype       freetype support (default enabled)])
4144 AC_ARG_ENABLE(fribidi,
4145   [  --enable-fribidi        fribidi support (default enabled)])
4146 AC_ARG_ENABLE(fontconfig,
4147   [  --enable-fontconfig,    fontconfig support (default enabled)])
4148 if test "${enable_freetype}" != "no"
4149 then
4150    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4151       VLC_ADD_PLUGIN([freetype])
4152       have_freetype=yes
4153       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4154       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4155       if test "${SYS}" = "mingw32"; then
4156         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4157       fi
4158       if test "${SYS}" = "mingw32"; then
4159         VLC_ADD_LIBS([freetype],[-liconv])
4160       fi
4161       if test "${enable_fontconfig}" != "no"
4162       then
4163         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4164           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4165            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4166         AC_CHECK_HEADERS(Carbon/Carbon.h,
4167           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4168       fi
4169   ],[
4170   have_freetype=no
4171   AS_IF([ test "${enable_freetype}" =  "yes"],[
4172     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4173 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4174       ])
4175     ])
4176   ])
4177
4178   dnl fribidi support
4179   if test "${enable_fribidi}" != "no"
4180   then
4181     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4182       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4183       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4184     ])
4185     fi
4186 fi
4187
4188 dnl
4189 dnl  libxml2 module
4190 dnl
4191 AC_ARG_ENABLE(libxml2,
4192   [  --enable-libxml2        libxml2 support (default enabled)])
4193 if test "${enable_libxml2}" != "no"
4194 then
4195   XML2_PATH="${PATH}"
4196   AC_ARG_WITH(xml2-config-path,
4197     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4198     [ if test "${with_xml2_config_path}" != "no"; then
4199         XML2_PATH="${with_xml2_config_path}:${PATH}"
4200       fi ])
4201   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4202   if test "${XML2_CONFIG}" != "no"; then
4203     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4204     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4205     dnl depends on the xmlTextReader extension
4206     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4207     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4208     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4209       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4210         VLC_ADD_PLUGIN([xml]) ],[
4211           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4212           if test "${enable_xml2}" = "yes"; then
4213             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4214           fi])
4215        ],[
4216       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4217       if test "${enable_xml2}" = "yes"; then
4218         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4219       fi])
4220     LDFLAGS="${LDFLAGS_save}"
4221     CPPFLAGS="${CPPFLAGS_save}"
4222   else
4223     if test "${enable_xml2}" = "yes"; then
4224       AC_MSG_ERROR([Could not find libxml2])
4225     fi
4226   fi
4227 fi
4228
4229 dnl
4230 dnl  SVG module
4231 dnl
4232 AC_ARG_ENABLE(svg,
4233   [  --enable-svg            SVG support (default disabled)])
4234 if test "${enable_svg}" = "yes"
4235 then
4236   PKG_CHECK_MODULES(SVG, 
4237         librsvg-2.0 >= 2.9.0,
4238         [
4239           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4240           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4241           VLC_ADD_PLUGIN([svg]) ],
4242         [AC_MSG_WARN(SVG library not found)])
4243 fi
4244
4245 dnl
4246 dnl Snapshot vout module (with cache)
4247 dnl
4248 AC_ARG_ENABLE(snapshot,
4249   [  --enable-snapshot       snapshot module (default disabled)])
4250 if test "${enable_snapshot}" = "yes"
4251 then
4252   VLC_ADD_PLUGIN([snapshot])
4253 fi
4254
4255 dnl
4256 dnl  Qt Embedded module
4257 dnl  (disabled by default)
4258 dnl
4259 AC_ARG_ENABLE(qte,
4260   [  --enable-qte            QT Embedded support (default disabled)])
4261 if test "${enable_qte}" = "yes"
4262 then
4263   AC_ARG_WITH(qte,
4264   [    --with-qte=PATH       Qt Embedded headers and libraries])
4265   if test "${with_qte}" != "no" -a -n "${with_qte}"
4266   then
4267     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4268     VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4269   else
4270     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4271     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4272   fi
4273   VLC_ADD_PLUGIN([qte])
4274   NEED_QTE_MAIN=yes
4275   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4276   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4277     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4278   ] )
4279   CPPFLAGS="${CPPFLAGS_save}"
4280 fi
4281
4282 dnl
4283 dnl Roku HD1000 Video output module
4284 dnl
4285 AC_ARG_ENABLE(hd1000v,
4286   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4287 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4288   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4289    test "${enable_hd1000v}" = "yes"); then
4290   AC_LANG_PUSH([C++])
4291   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4292   [
4293     can_build_roku="yes"
4294   ],
4295   [
4296     can_build_roku="no"
4297     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4298   ])
4299   if test "$can_build_roku" = "yes"
4300   then
4301     VLC_ADD_PLUGIN([hd1000v])
4302     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4303   fi
4304   AC_LANG_POP([C++])
4305 fi
4306
4307 dnl
4308 dnl  Windows DirectX module
4309 dnl
4310
4311 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4312 then
4313   VLC_ADD_PLUGIN([panoramix])
4314 fi
4315
4316 AC_ARG_ENABLE(directx,
4317   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4318 if test "${enable_directx}" != "no"
4319 then
4320   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4321   then
4322     AC_ARG_WITH(directx,
4323     [    --with-directx=PATH   Win32 DirectX headers])
4324     if test -z "${with_directx}"
4325     then
4326       AC_CHECK_HEADERS(ddraw.h,
4327       [ VLC_ADD_PLUGIN([vout_directx])
4328         VLC_ADD_PLUGIN([aout_directx])
4329         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4330       ])
4331       AC_CHECK_HEADERS(GL/gl.h,
4332       [ VLC_ADD_PLUGIN([glwin32])
4333         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4334       ])
4335       AC_CHECK_HEADERS(d3d9.h,
4336       [ VLC_ADD_PLUGIN([direct3d])
4337         VLC_ADD_LIBS([direct3d],[-lgdi32])
4338       ])
4339     else
4340       AC_MSG_CHECKING(for directX headers in ${with_directx})
4341       if test -f ${with_directx}/ddraw.h
4342       then
4343         VLC_ADD_PLUGIN([vout_directx])
4344         VLC_ADD_PLUGIN([aout_directx])
4345         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4346         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4347         AC_MSG_RESULT(yes)
4348       else
4349         AC_MSG_RESULT(no)
4350         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4351       fi
4352     fi
4353   fi
4354 fi
4355
4356 dnl
4357 dnl  Linux framebuffer module
4358 dnl
4359 AC_ARG_ENABLE(fb,
4360   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4361     if test "${enable_fb}" != "no"
4362     then
4363       AC_CHECK_HEADERS(linux/fb.h, [
4364         VLC_ADD_PLUGIN([fb])
4365       ])
4366     fi
4367
4368 dnl
4369 dnl  Linux MGA module
4370 dnl
4371 AC_ARG_ENABLE(mga,
4372   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4373   [ if test "${enable_mga}" = "yes"
4374     then
4375       VLC_ADD_PLUGIN([mga])
4376     fi ])
4377
4378 dnl
4379 dnl  OMAP Framebuffer module
4380 dnl
4381 AC_ARG_ENABLE(omapfb,
4382   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4383     if test "${enable_omapfb}" = "yes"
4384     then
4385       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4386         VLC_ADD_PLUGIN([omapfb])
4387         AC_CHECK_HEADERS(X11/Xlib.h, [
4388           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4389       ])
4390     fi
4391
4392 dnl
4393 dnl  SVGAlib module
4394 dnl
4395 AC_ARG_ENABLE(svgalib,
4396   [  --enable-svgalib        SVGAlib support (default disabled)])
4397 if test "${enable_svgalib}" = "yes"
4398 then
4399   VLC_ADD_PLUGIN([svgalib])
4400   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4401 fi
4402
4403 dnl
4404 dnl  DirectFB module
4405 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4406 dnl  TODO: support for static linking
4407 dnl
4408 AC_ARG_ENABLE(directfb,
4409   [  --enable-directfb       DirectFB support (default disabled)])
4410 AC_ARG_WITH(directfb, 
4411   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4412
4413 if test "${enable_directfb}" = "yes"; then
4414     have_directfb="false"
4415     CPPFLAGS_mydirectfb=
4416     LIBS_mydirectfb=
4417     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4418         dnl Trying the given location
4419         CPPFLAGS_save="${CPPFLAGS}"
4420         LIBS_save="${LIBS}"
4421
4422         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4423         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4424         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4425
4426         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4427         LIBS="${LIBS} ${LIBS_new}"
4428
4429         dnl FIXME: too obscure
4430         AC_CHECK_HEADER([directfb.h], [
4431             AC_CHECK_LIB([direct],[direct_initialize], [
4432                 AC_CHECK_LIB([fusion], [fusion_enter], [
4433                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4434                 ], have_directfb="false")
4435             ], have_directfb="false")
4436         ], have_directfb="false")
4437
4438         dnl Restore flags
4439         CPPFLAGS="${CPPFLAGS_save}"
4440         LIBS="${LIBS_save}"
4441
4442         if test "${have_directfb}" = "true"; then
4443             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4444             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4445         fi
4446     else 
4447         dnl Look for directfb-config
4448         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4449         if test "${DIRECTFB_CONFIG}" != "no"; then
4450             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4451             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4452             have_directfb="true"
4453         else 
4454             dnl Trying with pkg-config
4455             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4456                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4457                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4458                 have_directfb="true"
4459                 ], [have_directfb="false"])
4460         fi
4461     fi
4462     if test "${have_directfb}" = "true"; then
4463         VLC_ADD_PLUGIN([directfb])
4464         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4465         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4466     else 
4467         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4468     fi
4469 fi
4470  
4471
4472
4473 dnl
4474 dnl  GGI module
4475 dnl
4476 AC_ARG_ENABLE(ggi,
4477   [  --enable-ggi            GGI support (default disabled)])
4478 if test "${enable_ggi}" = "yes"
4479 then
4480   AC_CHECK_HEADER([ggi/ggi.h],[
4481     VLC_ADD_PLUGIN([ggi])
4482     VLC_ADD_LIBS([ggi],[-lggi])
4483     AC_ARG_WITH(ggi,
4484       [    --with-ggi=PATH       path to libggi],
4485       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4486         then
4487           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4488           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4489         fi ])
4490     ],[
4491        AC_MSG_ERROR([LibGGI development files can't be found])
4492     ])
4493 fi
4494
4495 dnl
4496 dnl  AA plugin
4497 dnl
4498 AC_ARG_ENABLE(aa,
4499   [  --enable-aa             aalib output (default disabled)])
4500 if test "${enable_aa}" = "yes"
4501 then
4502   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4503   if test "${have_aa}" = "true"
4504   then
4505     VLC_ADD_PLUGIN([aa])
4506     VLC_ADD_LIBS([aa],[-laa])
4507   fi
4508 fi
4509
4510 dnl
4511 dnl  libcaca plugin
4512 dnl
4513 AC_ARG_ENABLE(caca,
4514   [  --enable-caca           libcaca output (default disabled)])
4515 if test "${enable_caca}" = "yes"
4516 then
4517   CACA_PATH="${PATH}"
4518   AC_ARG_WITH(caca-config-path,
4519     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4520     [ if test "${with_caca_config_path}" != "no"
4521       then
4522         CACA_PATH="${with_caca_config_path}:${PATH}"
4523       fi ])
4524   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4525   if test "${CACA_CONFIG}" != "no"
4526   then
4527     VLC_ADD_PLUGIN([caca])
4528     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4529     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4530     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4531                                         caca_event_t ev;]],
4532                                         [[ev.type = 0;]]
4533                        )],
4534                        [],
4535       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4536     )
4537   fi
4538 fi
4539
4540 dnl
4541 dnl  win32 GDI plugin
4542 dnl
4543 AC_ARG_ENABLE(wingdi,
4544   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4545 if test "${enable_wingdi}" != "no"; then
4546   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4547     VLC_ADD_PLUGIN([wingdi])
4548     VLC_ADD_LIBS([wingdi],[-lgdi32])
4549   fi
4550   if test "${SYS}" = "mingwce"; then
4551     VLC_ADD_PLUGIN([wingdi])
4552     VLC_ADD_PLUGIN([wingapi])
4553     VLC_ADD_LIBS([wingdi],[-laygshell])
4554     VLC_ADD_LIBS([wingapi],[-laygshell])
4555   fi
4556 fi
4557
4558 dnl
4559 dnl  Audio plugins
4560 dnl
4561
4562 AC_ARG_WITH(,[Audio plugins:])
4563
4564 dnl
4565 dnl  OSS /dev/dsp module (enabled by default except on win32)
4566 dnl
4567 AC_ARG_ENABLE(oss,
4568   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4569
4570 if test "${enable_oss}" != "no" &&
4571   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4572    test "${enable_oss}" = "yes")
4573 then
4574   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4575     VLC_ADD_PLUGIN([oss])
4576     VLC_ADD_PLUGIN([access_oss])
4577     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4578   ])
4579 fi
4580
4581 dnl
4582 dnl  Pulseaudio module
4583 dnl
4584 AC_ARG_ENABLE(pulse,
4585   [  --enable-pulse          Pulseaudio support (default enabled)])
4586   if test "${enable_pulse}" != "no"
4587    then
4588      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4589        [ VLC_ADD_PLUGIN([pulse])
4590         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4591         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4592        [AC_MSG_WARN(pulseaudio library not found)])
4593    fi
4594
4595 dnl
4596 dnl  Portaudio module
4597 dnl
4598 AC_ARG_ENABLE(portaudio,
4599   [  --enable-portaudio      Portaudio library support (default disabled)],
4600   [if test "${enable_portaudio}" = "yes"
4601    then
4602      VLC_ADD_PLUGIN([portaudio])
4603      VLC_ADD_CXXFLAGS([portaudio],[])
4604      if test "${SYS}" = "mingw32"; then
4605         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4606      else
4607         VLC_ADD_LIBS([portaudio],[-lportaudio])
4608      fi
4609    fi])
4610
4611 dnl
4612 dnl  ALSA module
4613 dnl
4614 AC_ARG_ENABLE(alsa,
4615   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4616 if test "${enable_alsa}" != "no"
4617 then
4618   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4619   if test "${have_alsa}" = "true"
4620   then
4621     CFLAGS="${CFLAGS_save}"
4622     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4623                     #define ALSA_PCM_NEW_SW_PARAMS_API
4624                     #include <alsa/asoundlib.h>],
4625        [snd_pcm_hw_params_get_period_time(0,0,0);],
4626         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4627     VLC_ADD_PLUGIN([alsa])
4628     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4629     VLC_ADD_PLUGIN([access_alsa])
4630     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4631   else
4632     if test "${enable_alsa}" = "yes"; then
4633       AC_MSG_ERROR([Could not find ALSA development headers])
4634     fi
4635   fi
4636 fi
4637
4638 dnl
4639 dnl  win32 waveOut plugin
4640 dnl
4641 AC_ARG_ENABLE(waveout,
4642   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4643 if test "${enable_waveout}" != "no"; then
4644   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4645     VLC_ADD_PLUGIN([waveout])
4646     VLC_ADD_LIBS([waveout],[-lwinmm])
4647   fi
4648   if test "${SYS}" = "mingwce"; then
4649     VLC_ADD_PLUGIN([waveout])
4650   fi
4651 fi
4652
4653 dnl
4654 dnl  CoreAudio plugin
4655 dnl
4656 AC_ARG_ENABLE(macosx-audio,
4657   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4658 if test "${enable_macosx-audio}" != "no" &&
4659   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4660 then
4661   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4662     [ VLC_ADD_PLUGIN([auhal])
4663       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4664     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4665 fi
4666
4667 dnl
4668 dnl  Roku HD1000 audio
4669 dnl
4670 AC_ARG_ENABLE(hd1000a,
4671   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4672 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4673   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4674    test "${enable_hd1000a}" = "yes")
4675 then
4676   AC_LANG_PUSH([C++])
4677   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4678     VLC_ADD_PLUGIN([hd1000a])
4679     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4680   AC_LANG_POP([C++])
4681 fi
4682
4683 dnl
4684 dnl  JACK modules
4685 dnl
4686 AC_ARG_ENABLE(jack,
4687  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4688  [enable_jack="no"])
4689
4690 AS_IF([test "${enable_jack}" != "no"], [
4691   AC_CHECK_HEADERS(jack/jack.h, [
4692     VLC_ADD_PLUGIN([access_jack])
4693     VLC_ADD_PLUGIN([jack])
4694     VLC_ADD_LIBS([access_jack jack],[-ljack])
4695   ],[AC_MSG_ERROR([cannot find JACK headers])])
4696 ])
4697
4698 dnl
4699 dnl  CyberLink for C++ UPnP stack
4700 dnl
4701 AC_ARG_ENABLE(cyberlink,
4702   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4703   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4704   AC_ARG_WITH(cyberlink-tree,
4705     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4706
4707   dnl
4708   dnl test for --with-cyberlink-tree
4709   dnl
4710   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4711     AC_LANG_PUSH(C++)
4712     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4713     AS_IF([test -z "${real_cyberlink_tree}"], [
4714       dnl  The given directory can't be found
4715       AC_MSG_RESULT(no)
4716       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4717     ])
4718     CPPFLAGS_save="${CPPFLAGS}"
4719     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4720     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4721     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4722       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4723         VLC_ADD_PLUGIN([upnp_cc]) 
4724       ],[
4725         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4726       ])
4727     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4728     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4729       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4730       dnl The mere fact that we have to make such an ugly check sucks
4731       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4732       LIBS_save="$LIBS"
4733       LIBS_cclink="no"
4734       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4735         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4736         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4737 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4738 using namespace CyberLink;
4739
4740 class testclass : public SearchResponseListener, public MediaPlayer
4741 {
4742     virtual void deviceSearchResponseReceived( SSDPPacket *)
4743     {
4744     }
4745
4746     public:
4747       testclass (void)
4748       {
4749         addSearchResponseListener (this);
4750         start ();
4751       }
4752 };
4753 ],[testclass l;])],[LIBS_cclink="$l"])
4754       done
4755       LIBS="${LIBS_save}"
4756       dnl should not happen - otherwise this needs fixing - hence FAILURE
4757       AS_IF([test "${LIBS_cclink}" = "no"],
4758         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4759       AC_MSG_RESULT([${LIBS_cclink}])
4760       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4761     ], [
4762       AC_MSG_RESULT(no)
4763       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4764     ])
4765     CPPFLAGS="${CPPFLAGS_save}"
4766     AC_LANG_POP([C++])
4767   ])
4768 ])
4769
4770 dnl
4771 dnl UPnP Plugin (Intel SDK)
4772 dnl
4773 AC_ARG_ENABLE(upnp,
4774   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4775
4776 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4777 AS_IF([test "x${enable_upnp}" != "xno"], [
4778   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4779   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4780     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4781   ])
4782   AS_IF([test "${has_upnp}" = "yes"], [
4783     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4784   ])
4785 ], [
4786   has_upnp="no"
4787 ])
4788
4789 AS_IF([test "${has_upnp}" = "yes"], [
4790   VLC_ADD_PLUGIN([upnp_intel])
4791 ])
4792
4793
4794 dnl
4795 dnl  Interface plugins
4796 dnl
4797
4798 AC_ARG_WITH(,[Interface plugins:])
4799
4800 dnl special case for BeOS
4801 if test "${SYS}" = "beos"
4802 then
4803     VLC_ADD_PLUGIN([beos])
4804 fi
4805
4806 dnl
4807 dnl Skins2 module
4808 dnl
4809 AC_ARG_ENABLE(skins2,
4810   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4811    enabled except on MacOSX, BeOS and WinCE)])])
4812 if test "${enable_skins2}" = "yes" ||
4813   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4814    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4815
4816   dnl test for the required libraries
4817   skins2_missing_lib="no"
4818
4819   dnl freetype
4820   if test "${have_freetype}" != "yes"; then
4821     skins2_missing_lib="yes"
4822     if test "${enable_skins2}" = "yes"; then
4823       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4824     fi
4825   fi
4826
4827   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4828     VLC_ADD_PLUGIN([skins2])
4829     ALIASES="${ALIASES} svlc"
4830     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4831     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4832     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4833
4834   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4835     VLC_ADD_PLUGIN([skins2])
4836     ALIASES="${ALIASES} svlc"
4837     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4838     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4839     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4840
4841   else if test "${skins2_missing_lib}" = "no"; then
4842     VLC_ADD_PLUGIN([skins2])
4843     ALIASES="${ALIASES} svlc"
4844     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4845     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4846     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4847   fi fi fi
4848 fi
4849 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4850          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4851           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4852
4853 dnl
4854 dnl  PDA Gtk+2 module
4855 dnl
4856 AC_ARG_ENABLE(pda,
4857   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4858 if test "${enable_pda}" = "yes"
4859 then
4860   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4861   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4862   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4863   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4864   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4865   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4866   VLC_ADD_PLUGIN([pda])
4867   if test "${SYS}" != "mingw32"; then
4868     NEED_GTK2_MAIN=yes
4869     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4870     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4871   fi
4872 fi
4873 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4874
4875 dnl
4876 dnl Maemo
4877 dnl
4878 AC_ARG_ENABLE(maemo,
4879   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4880 if test "${enable_maemo}" = "yes"
4881 then
4882   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4883     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4884     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4885     VLC_ADD_PLUGIN([maemo])
4886     VLC_ADD_PLUGIN([swscale_maemo])
4887     AC_DEFINE([BUILD_MAEMO], 1, [Define if you're using Maemo interfaces])
4888     ALIASES="${ALIASES} mvlc"
4889   ], [
4890     AS_IF([test "${enable_maemo}" = "yes"],[
4891       AC_MSG_ERROR([Hildon libraries not found])
4892     ])
4893     enable_maemo="no"
4894   ])
4895 fi
4896 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4897
4898 dnl
4899 dnl QT 4
4900 dnl
4901 AC_ARG_ENABLE(qt4,
4902   [  --enable-qt4            QT 4 support (default enabled) ],, [
4903   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4904 ])
4905 AS_IF([test "${enable_qt4}" != "no"], [
4906   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.3.0], [
4907     VLC_ADD_PLUGIN([qt4])
4908     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4909     ALIASES="${ALIASES} qvlc"
4910     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4911         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4912     ], [
4913         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
4914     ])
4915     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4916     AC_SUBST(QT4LOCALEDIR)
4917     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4918     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4919     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4920     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4921   ], [
4922     AS_IF([test "${enable_qt4}" = "yes"],[
4923       AC_MSG_ERROR([Qt 4 library not found])
4924     ],[
4925       AC_MSG_WARN([Qt 4 library not found])
4926     ])
4927     enable_qt4="no"
4928   ])
4929 ])
4930 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4931
4932 dnl
4933 dnl  WinCE GUI module
4934 dnl
4935 AC_ARG_ENABLE(wince,
4936   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4937 if test "${enable_wince}" != "no"; then
4938   if test "${SYS}" = "mingwce"; then
4939     VLC_ADD_PLUGIN([wince])
4940     VLC_ADD_CXXFLAGS([wince],[])
4941     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4942     dnl Gross hack
4943     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4944   elif test "${SYS}" = "mingw32"; then
4945     VLC_ADD_CXXFLAGS([wince],[])
4946     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4947     dnl Gross hack
4948     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4949   fi
4950 fi
4951
4952 dnl
4953 dnl Simple test for skins2 dependency
4954 dnl
4955 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4956   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.])
4957 ])
4958
4959 dnl
4960 dnl  Opie QT embedded module
4961 dnl
4962 AC_ARG_ENABLE(opie,
4963   [  --enable-opie           Qt embedded interface support (default disabled)],
4964   [if test "${enable_opie}" = "yes"; then
4965      AC_ARG_WITH(qte,
4966      [    --with-qte=PATH       Qt Embedded headers and libraries])
4967      if test "${with_qte}" != "no" -a -n "${with_qte}"
4968      then
4969        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4970        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])
4971      else
4972        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4973        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4974      fi
4975      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4976      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4977        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4978      ] )
4979      CPPFLAGS="${CPPFLAGS_save}"
4980
4981      VLC_ADD_PLUGIN([opie])
4982      NEED_QTE_MAIN=yes
4983      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4984      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4985      if test "${with_qte}" != "no" -a -n "${with_qte}"
4986      then
4987        MOC=${with_qte}/bin/moc
4988      else
4989        MOC=${QTDIR}/bin/moc
4990      fi
4991    fi])
4992
4993 dnl
4994 dnl  MacOS X video output/gui modules
4995 dnl
4996 AC_ARG_ENABLE(macosx,
4997   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4998 if test "x${enable_macosx}" = "xyes"
4999 then
5000   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5001   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
5002   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5003   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5004   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5005   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5006   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5007   dnl For bug report
5008   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
5009   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5010   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
5011   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5012   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5013   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5014   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5015
5016   VLC_ADD_PLUGIN([access_eyetv])
5017   VLC_ADD_PLUGIN([qtcapture])
5018   VLC_ADD_PLUGIN([macosx])
5019   VLC_ADD_PLUGIN([minimal_macosx])
5020  
5021   ORIGCFLAGS=$CFLAGS
5022   CFLAGS="$CFLAGS -x objective-c"
5023   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>],,
5024   [VLC_ADD_PLUGIN([opengllayer])
5025   VLC_ADD_OBJCFLAGS([opengllayer])],[])
5026   CFLAGS=$ORIGCFLAGS
5027 fi
5028
5029 dnl
5030 dnl  QNX RTOS module
5031 dnl
5032 AC_ARG_ENABLE(qnx,
5033   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5034     if test "${enable_qnx}" != "no"
5035     then
5036       AC_CHECK_HEADERS(Ph.h, [
5037         VLC_ADD_PLUGIN([qnx])
5038         VLC_ADD_LIBS([qnx],[-lasound -lph])
5039       ])
5040     fi
5041
5042 dnl
5043 dnl  ncurses module
5044 dnl
5045 AC_ARG_ENABLE(ncurses,
5046   [  --disable-ncurses       ncurses interface support (default enabled)],
5047   [if test "${enable_ncurses}" != "no"; then
5048     AC_CHECK_HEADER(ncurses.h,
5049       [AC_CHECK_LIB(ncursesw, mvprintw,
5050         [VLC_ADD_PLUGIN([ncurses])
5051         VLC_ADD_LIBS([ncurses],[-lncursesw])
5052         ALIASES="${ALIASES} nvlc"
5053         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5054         AC_CHECK_LIB(ncursesw, tgetent, [],
5055           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5056             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5057               [AS_IF([test "x${enable_ncurses}" != "x"],
5058                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5059                )])])
5060             ]
5061           )
5062         )
5063         ],
5064         [AC_CHECK_LIB( ncurses, mvprintw,
5065           [VLC_ADD_PLUGIN([ncurses])
5066           ALIASES="${ALIASES} nvlc"
5067           VLC_ADD_LIBS([ncurses],[-lncurses])
5068           AC_CHECK_LIB(ncurses, tgetent, [],
5069             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5070               [AS_IF([test "x${enable_ncurses}" != "x"],
5071                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5072             )]
5073           )],
5074           [AS_IF([test "x${enable_ncurses}" != "x"], [
5075             AC_MSG_ERROR([libncurses not found])])]
5076         )]
5077       )]
5078     )
5079   fi]
5080 )
5081
5082 dnl
5083 dnl  XOSD plugin
5084 dnl
5085 AC_ARG_ENABLE(xosd,
5086   [  --enable-xosd           xosd interface support (default disabled)])
5087 if test "${enable_xosd}" = "yes"
5088 then
5089   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5090   AC_CHECK_LIB(xosd,xosd_set_offset,
5091       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5092     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5093         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5094       AC_TRY_COMPILE([#include <xosd.h>],
5095          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5096           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5097   if test "${have_xosd}" = "true"
5098   then
5099     VLC_ADD_PLUGIN([xosd])
5100     VLC_ADD_LIBS([xosd],[-lxosd])
5101   fi
5102 fi
5103
5104 dnl
5105 dnl Framebuffer (overlay) plugin
5106 dnl
5107 AC_ARG_ENABLE(fbosd,
5108   [  --enable-fbosd          fbosd interface support (default disabled)])
5109 if test "${enable_fbosd}" = "yes"
5110 then
5111   AC_CHECK_HEADERS(linux/fb.h, [
5112     VLC_ADD_PLUGIN([fbosd])
5113  ])
5114 fi
5115
5116 dnl
5117 dnl Visualisation plugin
5118 dnl
5119 AC_ARG_ENABLE(visual,
5120   [  --enable-visual         visualisation plugin (default enabled)])
5121 if test "${enable_visual}" != "no"
5122 then
5123     VLC_ADD_PLUGIN([visual])
5124 fi
5125
5126 dnl
5127 dnl OpenGL visualisation plugin
5128 dnl
5129 AC_ARG_ENABLE(galaktos,
5130   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5131 if test "${enable_galaktos}" = "yes"
5132 then
5133   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5134     VLC_ADD_PLUGIN([galaktos])
5135     if test "${SYS}" != "mingw32"; then
5136       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5137     else
5138       VLC_ADD_LIBS([galaktos],[-lopengl32])
5139     fi
5140   ])
5141 fi
5142
5143 dnl
5144 dnl  goom visualization plugin
5145 dnl
5146 AC_ARG_ENABLE(goom,
5147 [  --enable-goom           goom visualisation plugin (default disabled)])
5148 if test "${enable_goom}" = "yes"
5149 then
5150   AC_ARG_WITH(goom-tree,
5151     [    --with-goom-tree=PATH goom tree for static linking (required)])
5152
5153   dnl
5154   dnl test for --with-goom-tree
5155   dnl
5156   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5157     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5158     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5159     if test -z "${real_goom_tree}"; then
5160       dnl  The given directory can't be found
5161       AC_MSG_RESULT(no)
5162       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5163     fi
5164     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5165       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5166       VLC_ADD_PLUGIN([goom])
5167       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5168       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5169     else
5170       dnl  The given libgoom2 wasn't built, try to look for the old goom
5171       AC_MSG_RESULT(no)
5172       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5173       if test -f "${real_goom_tree}/libgoom.a"; then
5174         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5175         VLC_ADD_PLUGIN([goom])
5176         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5177         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5178       else
5179         dnl  The given libgoom wasn't built
5180         AC_MSG_RESULT(no)
5181         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5182       fi
5183     fi
5184   else
5185     AC_CHECK_HEADERS(goom/goom.h, [
5186       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5187       AC_CHECK_LIB(goom2, goom_init, [
5188         VLC_ADD_PLUGIN([goom])
5189         VLC_ADD_LIBS([goom],[-lgoom2])
5190       ],[
5191         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5192       ])
5193       LDFLAGS="${LDFLAGS_save}"
5194     ])
5195   fi
5196 fi
5197
5198 dnl
5199 dnl  AtmoLight (homebrew AmbiLight)
5200 dnl
5201 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5202    AC_ARG_ENABLE(atmo,
5203 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight) 
5204                 (default enabled)]))
5205    if test "${enable_atmo}" != "no"; then
5206       AC_LANG_PUSH(C++)
5207       VLC_ADD_PLUGIN([atmo])
5208       AC_LANG_POP(C++)
5209    fi
5210 fi
5211
5212 dnl
5213 dnl  Bonjour services discovery
5214 dnl
5215 AC_ARG_ENABLE(bonjour,
5216   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5217 AS_IF([test "${enable_bonjour}" != "no"], [
5218   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5219     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5220     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5221     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5222     VLC_ADD_PLUGIN([bonjour])
5223   ], [
5224     AC_MSG_WARN(avahi-client library not found)
5225   ])
5226 ])
5227
5228 dnl
5229 dnl  Lirc plugin
5230 dnl
5231 AC_ARG_ENABLE(lirc,
5232   [  --enable-lirc           lirc support (default disabled)])
5233 if test "${enable_lirc}" = "yes"
5234 then
5235   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5236   if test "${have_lirc}" = "true"
5237   then
5238     VLC_ADD_PLUGIN([lirc])
5239     VLC_ADD_LIBS([lirc],[-llirc_client])
5240   fi
5241 fi
5242
5243
5244 AC_ARG_WITH(,[Misc options:])
5245
5246 dnl
5247 dnl libgcrypt
5248 dnl
5249 AC_ARG_ENABLE(libgcrypt,
5250   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5251 AS_IF([test "${enable_libgcrypt}" != "no"], [
5252   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5253 ])
5254 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5255   AS_IF([test "${have_libgcrypt}" = "yes"],[
5256     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5257   ])
5258 fi
5259 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5260
5261 dnl
5262 dnl TLS/SSL
5263 dnl
5264 AC_ARG_ENABLE(gnutls,
5265   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5266
5267 AS_IF([test "${enable_gnutls}" != "no"], [
5268   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5269     VLC_ADD_PLUGIN([gnutls])
5270     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5271     AS_IF([test "${SYS}" = "mingw32"], [
5272       dnl pkg-config --libs gnutls omits these
5273       VLC_ADD_LIBS([gnutls], [-lz])
5274       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5275     ])
5276     dnl The GnuTLS plugin invokes gcry_control directly.
5277     AS_IF([test "${have_libgcrypt}" = "yes"],[
5278       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5279       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5280     ])
5281     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5282   ], [
5283     AS_IF([test "${enable_gnutls}" = "yes"], [
5284       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5285     ])
5286   ])
5287 ])
5288
5289
5290 dnl
5291 dnl RemoteOSD plugin (VNC client as video filter)
5292 dnl
5293 AC_ARG_ENABLE(remoteosd,
5294   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5295
5296 AS_IF([test "${enable_remoteosd}" != "no"], [
5297   AS_IF([test "${have_libgcrypt}" = "yes"],[
5298     VLC_ADD_PLUGIN([remoteosd])
5299     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5300     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5301   ], [
5302     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5303   ])
5304 ])
5305
5306
5307 dnl
5308 dnl RAOP plugin
5309 dnl
5310 AC_MSG_CHECKING([whether to enable RAOP plugin])
5311 AS_IF([test "${have_libgcrypt}" = "yes"], [
5312   AC_MSG_RESULT(yes)
5313   VLC_ADD_PLUGIN([stream_out_raop])
5314   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS}])
5315   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5316 ], [
5317   AC_MSG_RESULT(no)
5318   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5319 ])
5320
5321
5322 dnl
5323 dnl update checking system
5324 dnl
5325 AC_ARG_ENABLE(update-check,
5326   [  --enable-update-check   update checking system (default disabled)])
5327 if test "${enable_update_check}" = "yes"
5328 then
5329   if test "${have_libgcrypt}" != "yes"
5330   then
5331     AC_MSG_ERROR([libgcrypt is required for update checking system])
5332   fi
5333   VLC_ADD_LIBS([libvlc], [${LIBGCRYPT_LIBS}])
5334   VLC_ADD_CFLAGS([libvlc], [${LIBGCRYPT_CFLAGS}])
5335   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5336 fi
5337
5338 dnl
5339 dnl  Endianness check
5340 dnl
5341 AC_C_BIGENDIAN
5342 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5343   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5344 ], [
5345   DEFS_BIGENDIAN=""
5346 ])
5347 AC_SUBST(DEFS_BIGENDIAN)
5348
5349 dnl
5350 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5351 dnl
5352 loader=false
5353 AC_ARG_ENABLE(loader,
5354   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms 
5355                   (default disabled)]))
5356 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5357 AS_IF([test "${enable_loader}" = "yes"],
5358   [ VLC_ADD_PLUGIN([dmo])
5359     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5360     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5361     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5362     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5363     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5364     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5365     VLC_ADD_CPPFLAGS([realvideo],[-I../../@top_srcdir@/libs/loader -DLOADER])
5366     VLC_ADD_LIBS([realvideo],[../../libs/loader/libloader.la])
5367   ])
5368
5369 AC_ARG_WITH(,[Components:])
5370
5371 dnl
5372 dnl  the VLC binary
5373 dnl
5374 AC_ARG_ENABLE(vlc,
5375   [  --enable-vlc            build the VLC media player (default enabled)])
5376 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5377
5378 dnl
5379 dnl  Microsoft ActiveX support
5380 dnl
5381 activex=false
5382 AC_ARG_ENABLE(activex,
5383   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control 
5384                   (default enabled on Win32)]))
5385 AC_ARG_WITH(wine-sdk-path,
5386   [    --with-wine-sdk-path=PATH path to wine sdk])
5387 if test "${enable_activex}" != "no"
5388 then
5389   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5390   then
5391     AC_CHECK_PROGS(MIDL, [midl], no)
5392     if test "${with_wine_sdk_path}" != ""
5393     then
5394        WINE_SDK_PATH=${with_wine_sdk_path}
5395        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5396     else
5397        WIDL=no
5398     fi
5399     AC_LANG_PUSH(C++)
5400     AC_CHECK_HEADERS(ole2.h, 
5401       [AC_CHECK_HEADERS(olectl.h,
5402         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5403           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5404           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5405           AC_CHECK_HEADERS(objsafe.h,
5406             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5407             [
5408              #if HAVE_OLE2_H
5409              #   include <ole2.h>
5410              #endif
5411             ]
5412           )
5413           activex=:
5414           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5415         ],
5416         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5417       )],
5418       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5419     )
5420     AC_LANG_POP(C++)
5421   fi
5422 fi
5423 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5424 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5425 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5426 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5427 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5428
5429 dnl
5430 dnl  Mozilla plugin
5431 dnl
5432 mozilla=false
5433 AC_ARG_ENABLE(mozilla,
5434   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5435                   (default disabled)]))
5436 AC_ARG_WITH(mozilla-sdk-path,
5437   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5438 AC_ARG_WITH(mozilla-pkg,
5439   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5440 AC_LANG_PUSH(C++)
5441 if test "${enable_mozilla}" = "yes" 
5442 then
5443   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5444     [
5445     dnl pkg-config
5446     dnl As we want to do a loop due to the number of name possible for the .pc 
5447     dnl we can't use the pkg-config macros.
5448
5449     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5450     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5451     AC_MSG_NOTICE([Checking for Mozilla])
5452     found=0
5453     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5454     then
5455       found=1
5456     else
5457       if test -n "$PKG_CONFIG"; then
5458         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5459           echo "Trying to find $i.pc files" >&5
5460           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5461           then
5462             echo "Using $i.pc files." >&5
5463             echo "Using $i.pc files." >&6
5464             found=1
5465             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5466             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5467             break
5468           fi
5469         done
5470       fi
5471     fi 
5472     AS_IF( [test $found = 1],[
5473         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5474         MOZILLA_REQUIRED_HEADERS=1
5475         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5476         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5477           [#if HAVE_NPAPI_H
5478            # include <npapi.h>
5479            #endif
5480           ])
5481         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5482             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5483         fi
5484         MOZILLA_REQUIRED_HEADERS=
5485         mozilla=:
5486         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5487            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5488            AS_IF([ test "${SYS}" != "darwin"],[
5489              PKG_CHECK_MODULES(XPM, [xpm xt],[
5490                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5491              ],[
5492                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5493              ])
5494           ])
5495         ])
5496         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5497         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5498         VLC_ADD_PLUGIN([mozilla])
5499         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5500         MOZILLA_CONFIG=
5501         CPPFLAGS="${CPPFLAGS_save}"
5502           ],
5503           [
5504             AC_PATH_PROGS(MOZILLA_CONFIG, 
5505             [mozilla-config seamonkey-config xulrunner-config], 
5506             AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5507                   )
5508           ]
5509         )
5510     dnl pkg-config failed but we might have found a mozilla-config
5511     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5512       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5513         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5514         AC_CHECK_LIB(Xt,XtStrings,
5515          [
5516            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5517            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5518          ],
5519          [],
5520          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5521         ])
5522         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5523         LDFLAGS="${LDFLAGS_save}"
5524       fi
5525
5526       mozilla=:
5527       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5528       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5529       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5530       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5531       MOZILLA_REQUIRED_HEADERS=1
5532       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5533       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5534       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5535         [#if HAVE_NPAPI_H
5536          # include <npapi.h>
5537          #endif
5538         ])
5539       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5540       then
5541         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5542       fi
5543       MOZILLA_REQUIRED_HEADERS=
5544       CPPFLAGS="${CPPFLAGS_save}"
5545       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5546     ])
5547     dnl End of moz_sdk = ""
5548   ],[
5549     dnl special case for mingw32
5550     if test "${SYS}" = "mingw32"
5551     then
5552       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5553       dnl latest gecko sdk does not have an xpcom directory
5554       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5555           mozilla_sdk_xpcom="/xpcom"
5556       fi
5557     fi
5558
5559     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5560     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5561     MOZILLA_REQUIRED_HEADERS=1
5562     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5563     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5564     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5565         [#if HAVE_NPAPI_H
5566           #include <npapi.h>
5567           #endif
5568         ])
5569     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5570     then
5571         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5572     fi
5573     MOZILLA_REQUIRED_HEADERS=
5574     mozilla=:
5575     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5576     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])
5577     if ${need_xpcom_libs}; then
5578        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])
5579       if test "${SYS}" = "mingw32"; then
5580         dnl latest gecko sdk does not have embedstring
5581         if test -d "${real_mozilla_sdk}/embedstring/bin"
5582         then
5583           VLC_ADD_LIBS([mozilla],[-lembedstring])
5584         fi
5585       fi
5586     fi
5587     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5588
5589     if test -n "${CYGPATH}"; then
5590       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5591     fi
5592     CPPFLAGS="${CPPFLAGS_save}"
5593  ]) 
5594 fi
5595 AC_LANG_POP(C++)
5596 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5597
5598 dnl Tests for Osso and Xsp
5599 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5600   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5601     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5602     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5603  ])
5604 ])
5605 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5606   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5607   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5608 ])
5609
5610 dnl
5611 dnl  test plugins
5612 dnl
5613 AC_ARG_ENABLE(testsuite,
5614   [  --enable-testsuite      build test modules (default disabled)])
5615 if test "${enable_testsuite}" = "yes"
5616 then
5617   TESTS="test1 test2 test3 test4"
5618
5619   dnl  we define those so that bootstrap sets the right linker
5620   VLC_ADD_CXXFLAGS([test2],[])
5621   VLC_ADD_OBJCFLAGS([test3],[])
5622   dnl  this one is needed until automake knows what to do
5623   VLC_ADD_LIBS([test3],[-lobjc])
5624
5625   VLC_ADD_PLUGIN([test1])
5626   VLC_ADD_PLUGIN([test2])
5627   VLC_ADD_PLUGIN([test3])
5628   VLC_ADD_PLUGIN([test4])
5629 fi
5630
5631 dnl
5632 dnl  gtk_main plugin
5633 dnl
5634 if test "${NEED_GTK_MAIN}" != "no"
5635 then
5636     VLC_ADD_PLUGIN([gtk_main])
5637     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5638     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5639 fi
5640
5641 if test "${NEED_GNOME_MAIN}" != "no"
5642 then
5643     VLC_ADD_PLUGIN([gnome_main])
5644     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5645     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5646 fi
5647
5648 if test "${NEED_GTK2_MAIN}" != "no"
5649 then
5650     VLC_ADD_PLUGIN([gtk2_main])
5651     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5652     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5653     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5654     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5655 fi
5656
5657 if test "${NEED_GNOME2_MAIN}" != "no"
5658 then
5659     VLC_ADD_PLUGIN([gnome2_main])
5660     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5661     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5662 fi
5663
5664 dnl
5665 dnl  qte_main plugin
5666 dnl
5667 if test "${NEED_QTE_MAIN}" != "no"
5668 then
5669     VLC_ADD_PLUGIN([qte_main])
5670     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5671     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5672     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5673 fi
5674
5675 dnl
5676 dnl  Plugin and builtin checks
5677 dnl
5678 plugin_support=yes
5679
5680 dnl Automagically disable plugins if there is no system support for
5681 dnl dynamically loadable files (.so, .dll, .dylib).
5682 dnl don't forget vlc-win32 still can load .dll as plugins
5683 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5684   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5685   plugin_support=no
5686 ])
5687
5688 AS_IF([test "${enable_shared}" = "no"], [
5689   plugin_support=no
5690 ])
5691
5692 AS_IF([test "${plugin_support}" != "no"], [
5693   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5694 ])
5695 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5696
5697 dnl Temporary(?) hack for plugins/builtins transition
5698 dnl VLC_ADD_PLUGIN([${BUILTINS}])
5699 dnl BUILTINS=""
5700
5701 dnl
5702 dnl Pic and shared libvlc stuff
5703 dnl
5704 AS_IF([test "${SYS}" = "mingw32"], [
5705   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5706   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5707 ])
5708
5709 dnl
5710 dnl  Stuff used by the program
5711 dnl
5712 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5713 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5714 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5715 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5716 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5717 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5718 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5719 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5720 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5721 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5722 AC_SUBST(COPYRIGHT_MESSAGE)
5723 AC_SUBST(VERSION_MESSAGE)
5724 AC_SUBST(VERSION_MAJOR)
5725 AC_SUBST(VERSION_MINOR)
5726 AC_SUBST(VERSION_REVISION)
5727 AC_SUBST(COPYRIGHT_YEARS)
5728 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5729 if test "${build_os}" = "cygwin"
5730 then
5731     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5732 else
5733     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5734 fi
5735 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5736 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5737 dnl Win32 need s a numerical version_extra.
5738 case $( echo ${VERSION_EXTRA}|wc -m ) in 
5739        "1") VERSION_EXTRA_RC="0";;
5740        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5741        *) VERSION_EXTRA_RC="99"
5742 esac
5743 AC_SUBST(VERSION_EXTRA_RC)
5744 dnl
5745 dnl  Handle substvars that use $(top_srcdir)
5746 dnl
5747 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5748 AC_SUBST(VLC_CONFIG)
5749 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5750
5751 dnl
5752 dnl  Restore *FLAGS
5753 dnl
5754 VLC_RESTORE_FLAGS
5755
5756 dnl
5757 dnl Sort the modules list
5758 dnl 
5759 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5760
5761 dnl
5762 dnl  Create the vlc-config script
5763 dnl
5764 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5765
5766 dnl
5767 dnl  Configuration is finished
5768 dnl
5769 AC_SUBST(SYS)
5770 AC_SUBST(ARCH)
5771 AC_SUBST(ALIASES)
5772 AC_SUBST(ASM)
5773 AC_SUBST(MOC)
5774 AC_SUBST(RCC)
5775 AC_SUBST(UIC)
5776 AC_SUBST(WINDRES)
5777 AC_SUBST(MOZILLA_SDK_PATH)
5778 AC_SUBST(WINE_SDK_PATH)
5779 AC_SUBST(LIBEXT)
5780 AC_SUBST(AM_CPPFLAGS)
5781 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5782 AC_SUBST(FILE_LIBVLCCORE_DLL)
5783 AC_SUBST(FILE_LIBVLC_DLL)
5784
5785 dnl Create vlc-config.in
5786 VLC_OUTPUT_VLC_CONFIG_IN
5787
5788 AC_CONFIG_FILES([
5789   extras/package/win32/vlc.win32.nsi
5790   extras/package/macosx/Info.plist
5791   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5792   extras/package/macosx/plugin/Info.plist
5793   extras/package/macosx/plugin/InstallerInfo.plist
5794   extras/package/macosx/plugin/English.lproj/InfoPlist.strings
5795   Makefile
5796   projects/activex/Makefile
5797   projects/activex/axvlc.inf
5798   doc/Makefile
5799   extras/package/ipkg/Makefile
5800   libs/loader/Makefile
5801   libs/srtp/Makefile
5802   modules/Makefile
5803   projects/mozilla/Makefile
5804   m4/Makefile
5805   po/Makefile.in
5806   projects/activex/axvlc_rc.rc
5807   projects/mozilla/npvlc_rc.rc
5808   share/Makefile
5809   share/vlc_win32_rc.rc
5810   share/libvlc_win32_rc.rc
5811   src/Makefile
5812   src/test/Makefile
5813   bin/Makefile
5814   test/Makefile
5815 ])
5816
5817 AC_CONFIG_FILES([
5818   modules/access/Makefile
5819   modules/access/bda/Makefile
5820   modules/access/dshow/Makefile
5821   modules/access/dvb/Makefile
5822   modules/access/mms/Makefile
5823   modules/access/cdda/Makefile
5824   modules/access/rtp/Makefile
5825   modules/access/rtsp/Makefile
5826   modules/access/rtmp/Makefile
5827   modules/access/vcd/Makefile
5828   modules/access/vcdx/Makefile
5829   modules/access/screen/Makefile
5830   modules/access_output/Makefile
5831   modules/audio_filter/Makefile
5832   modules/audio_filter/channel_mixer/Makefile
5833   modules/audio_filter/converter/Makefile
5834   modules/audio_filter/resampler/Makefile
5835   modules/audio_filter/spatializer/Makefile
5836   modules/audio_mixer/Makefile
5837   modules/audio_output/Makefile
5838   modules/codec/Makefile
5839   modules/codec/avcodec/Makefile
5840   modules/codec/cmml/Makefile
5841   modules/codec/dmo/Makefile
5842   modules/codec/subtitles/Makefile
5843   modules/codec/spudec/Makefile
5844   modules/codec/xvmc/Makefile
5845   modules/control/Makefile
5846   modules/control/http/Makefile
5847   modules/demux/Makefile
5848   modules/demux/asf/Makefile
5849   modules/demux/avformat/Makefile
5850   modules/demux/avi/Makefile
5851   modules/demux/mkv/Makefile
5852   modules/demux/mp4/Makefile
5853   modules/demux/mpeg/Makefile
5854   modules/demux/playlist/Makefile
5855   modules/gui/Makefile
5856   modules/gui/beos/Makefile
5857   modules/gui/pda/Makefile
5858   modules/gui/macosx/Makefile
5859   modules/gui/maemo/Makefile
5860   modules/gui/minimal_macosx/Makefile
5861   modules/gui/qnx/Makefile
5862   modules/gui/qt4/Makefile
5863   modules/gui/skins2/Makefile
5864   modules/gui/wince/Makefile
5865   modules/meta_engine/Makefile
5866   modules/misc/Makefile
5867   modules/misc/dummy/Makefile
5868   modules/misc/lua/Makefile
5869   modules/misc/memcpy/Makefile
5870   modules/misc/notify/Makefile
5871   modules/misc/testsuite/Makefile
5872   modules/misc/playlist/Makefile
5873   modules/misc/osd/Makefile
5874   modules/misc/stats/Makefile
5875   modules/misc/xml/Makefile
5876   modules/misc/probe/Makefile
5877   modules/mux/Makefile
5878   modules/mux/mpeg/Makefile
5879   modules/packetizer/Makefile
5880   modules/services_discovery/Makefile
5881   modules/stream_filter/Makefile
5882   modules/stream_out/Makefile
5883   modules/stream_out/transrate/Makefile
5884   modules/video_chroma/Makefile
5885   modules/video_filter/Makefile
5886   modules/video_filter/atmo/Makefile
5887   modules/video_filter/dynamicoverlay/Makefile
5888   modules/video_output/Makefile
5889   modules/video_output/msw/Makefile
5890   modules/video_output/qte/Makefile
5891   modules/video_output/x11/Makefile
5892   modules/visualization/Makefile
5893   modules/visualization/visual/Makefile
5894   modules/visualization/galaktos/Makefile
5895 ])
5896
5897 dnl Generate makefiles
5898 AC_OUTPUT
5899
5900 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5901 # not provided with the source
5902 ${SHELL} ./config.status --file=vlc-config
5903 chmod 0755 vlc-config
5904
5905 /bin/echo -n "Enabled modules: "
5906 ./vlc-config --list plugin
5907
5908 dnl Shortcut to nice compile message
5909 rm -f compile
5910 echo '#! /bin/sh' >compile
5911 echo rm -f .error\$\$ >>compile
5912 echo ERROR=0 >>compile
5913 echo export PATH=$PATH LANG=C >>compile
5914 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5915 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5916 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5917 echo rm -f .error\$\$ >>compile
5918 echo exit \$ERROR >>compile
5919 chmod a+x compile
5920
5921 printf "
5922 libvlc configuration
5923 --------------------
5924 version               : ${VERSION}
5925 system                : ${SYS}
5926 architecture          : ${ARCH}
5927 build flavour         : "
5928 test "${enable_debug}" = "yes" && printf "debug "
5929 test "${enable_cprof}" = "yes" && printf "cprof "
5930 test "${enable_gprof}" = "yes" && printf "gprof "
5931 test "${enable_optimizations}" = "yes" && printf "optim "
5932 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5933 echo ""
5934 if test "${enable_vlc}" != "no"; then
5935 echo "vlc aliases           :${ALIASES}"
5936 else
5937 echo "build vlc executable  : no"
5938 fi
5939 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5940
5941 You can tune the compiler flags in vlc-config.
5942 To build vlc and its plugins, type \`./compile' or \`make'.
5943 "
5944 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5945    echo ""
5946    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5947    echo "         turned off."
5948    echo "         FFmpeg will be REALLY slow."
5949    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5950    echo ""
5951 fi