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