]> git.sesse.net Git - vlc/blob - configure.ac
Support for rendering Kate streams with libtiger
[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  tiger decoder plugin
3846 dnl
3847 AC_ARG_ENABLE(tiger,
3848 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3849 AS_IF([test "${enable_tiger}" != "no"], [
3850   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3851       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3852       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3853       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3854         AS_IF([test "x${enable_tiger}" != "x"], [
3855           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3856         ])
3857   ])
3858 ])
3859
3860
3861 dnl
3862 dnl  Video plugins
3863 dnl
3864
3865 AC_ARG_WITH(,[Video plugins:])
3866
3867 dnl Check for DPMS
3868 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3869   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3870   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3871     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3872     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3873       AC_MSG_RESULT(yes)
3874       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3875                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3876     ],[
3877       AC_MSG_RESULT(no)
3878     ])
3879   ],,[
3880     #include <X11/Xlib.h>
3881   ])
3882   CPPFLAGS="${CPPFLAGS_save}"
3883 fi
3884
3885 dnl
3886 dnl  X11 module
3887 dnl  (enabled by default except on win32)
3888 dnl
3889 AC_ARG_ENABLE(x11,
3890   [  --enable-x11            X11 support (default enabled)])
3891 if test "${enable_x11}" != "no" &&
3892   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3893    test "${enable_x11}" = "yes"); then
3894   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3895   AC_CHECK_HEADERS(X11/Xlib.h, [
3896     VLC_ADD_PLUGIN([panoramix])
3897     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3898     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3899     AC_CHECK_LIB(Xext, XShmAttach, [
3900       VLC_ADD_PLUGIN([x11])
3901       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3902       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3903     ])
3904   ])
3905   CPPFLAGS="${CPPFLAGS_save}"
3906 fi
3907
3908 dnl
3909 dnl  XVideo module
3910 dnl  (enabled by default except on win32)
3911 dnl
3912 AC_ARG_ENABLE(xvideo,
3913   [  --enable-xvideo         XVideo support (default enabled)])
3914 if test "${enable_xvideo}" != "no" &&
3915   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3916    test "${enable_xvideo}" = "yes"); then
3917   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3918   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3919     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3920     AC_CHECK_LIB(Xv,XvPutImage,[
3921         VLC_ADD_PLUGIN([xvideo])
3922         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3923         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3924     ])
3925     CFLAGS="${CFLAGS_save}"
3926   ]
3927   CPPFLAGS="${CPPFLAGS_save}")
3928 fi
3929
3930 dnl
3931 dnl  GLX module
3932 dnl  (enabled by default except on win32)
3933 dnl
3934 AC_ARG_ENABLE(glx,
3935   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3936 if test "${enable_glx}" != "no" &&
3937   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3938    test "${enable_glx}" = "yes"); then
3939   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3940   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3941   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3942     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3943     choke me
3944     #endif]]),
3945     [
3946       VLC_ADD_PLUGIN([glx])
3947       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3948       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3949     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3950   CPPFLAGS="${CPPFLAGS_save}"
3951 fi
3952
3953 dnl
3954 dnl  XVMC module
3955 dnl  (disabled by default except on win32)
3956 dnl
3957 AC_ARG_ENABLE(xvmc,
3958   [  --enable-xvmc           XVMC support (default disabled)])
3959 if test "${enable_xvmc}" = "yes" &&
3960   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3961    test "${enable_xvmc}" = "yes"); then
3962   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3963   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3964     VLC_ADD_PLUGIN([xvmc])
3965     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
3966     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3967   ])
3968   CPPFLAGS="${CPPFLAGS_save}"
3969 fi
3970
3971 dnl
3972 dnl  Check for the Xinerama extension
3973 dnl
3974 AC_ARG_ENABLE(xinerama,
3975   [  --enable-xinerama       Xinerama support (default enabled)])
3976 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3977   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3978    test "${enable_xvideo}" = "yes"); then
3979   ac_cv_have_xinerama="no"
3980   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3981   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3982   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3983     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3984       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3985       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3986       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3987       ac_cv_have_xinerama="yes"
3988     ],[
3989       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3990         VLC_ADD_LIBS([xvideo],[-lXinerama])
3991         VLC_ADD_LIBS([x11],[-lXinerama])
3992         VLC_ADD_LIBS([glx],[-lXinerama])
3993         ac_cv_have_xinerama="yes"
3994       ])
3995     ])
3996   ])
3997   if test "${ac_cv_have_xinerama}" = "yes"; then
3998     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3999   fi
4000   CFLAGS="${CFLAGS_save}"
4001   CPPFLAGS="${CPPFLAGS_save}"
4002
4003 dnl
4004 dnl  Check for XF86VidMode extension
4005 dnl
4006   ac_cv_have_xf86vidmode="no"
4007   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4008   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4009   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4010     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4011       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4012       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4013       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4014       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4015       ac_cv_have_xf86vidmode="yes"
4016     ],[
4017       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4018         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4019         VLC_ADD_LIBS([x11],[-lXxf86vm])
4020         VLC_ADD_LIBS([glx],[-lXxf86vm])
4021         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4022         ac_cv_have_xf86vidmode="yes"
4023       ])
4024     ])
4025   ],[true],
4026 [#ifdef HAVE_X11_XLIB_H
4027 # include <X11/Xlib.h>
4028 #endif]
4029    )
4030   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4031     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4032   ])
4033   CFLAGS="${CFLAGS_save}"
4034   CPPFLAGS="${CPPFLAGS_save}"
4035
4036 fi
4037
4038 dnl
4039 dnl  OpenGL module
4040 dnl  (enabled by default except on beos)
4041 dnl
4042 AC_ARG_ENABLE(opengl,
4043   [  --enable-opengl         OpenGL support (default enabled)])
4044 if test "${enable_opengl}" != "no" &&
4045    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4046   if test "${SYS}" != "darwin"; then
4047     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4048       VLC_ADD_PLUGIN([opengl])
4049       if test "${SYS}" != "mingw32"; then
4050         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4051       else
4052         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4053       fi
4054     ])
4055   else
4056     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4057     VLC_ADD_PLUGIN([opengl])
4058     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4059   fi
4060 fi
4061
4062 dnl
4063 dnl  SDL module
4064 dnl
4065 AC_ARG_ENABLE(sdl,
4066   [  --enable-sdl            SDL support (default enabled)])
4067 AC_ARG_ENABLE(sdl-image,
4068   [  --enable-sdl-image      SDL image support (default enabled)])
4069 if test "${enable_sdl}" != "no"
4070 then
4071   SDL_PATH="${PATH}"
4072   AC_ARG_WITH(sdl-config-path,
4073     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4074     [ if test "${with_sdl_config_path}" != "no"
4075       then
4076         SDL_PATH="${with_sdl_config_path}:${PATH}"
4077       fi ])
4078   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4079   SDL_CONFIG="${SDL12_CONFIG}"
4080   SDL_HEADER="SDL12/SDL.h"
4081   SDL_IMAGE="SDL12/SDL_image.h"
4082   if test "${SDL_CONFIG}" = "no"
4083   then
4084     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4085     SDL_CONFIG=${SDL11_CONFIG}
4086     SDL_HEADER="SDL11/SDL.h"
4087     SDL_IMAGE="SDL11/SDL_image.h"
4088   fi
4089   if test "${SDL_CONFIG}" = "no"
4090   then
4091     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4092     SDL_HEADER="SDL/SDL.h"
4093     SDL_IMAGE="SDL/SDL_image.h"
4094   fi
4095   # check for cross-compiling
4096   SDL_PREFIX=
4097   AC_ARG_WITH(sdl-prefix,
4098     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4099                                e.g use as:
4100                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4101   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4102   then
4103     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4104   fi
4105   if test "${SDL_CONFIG}" != "no"
4106   then
4107     # SDL on Darwin is heavily patched and can only run SDL_image
4108     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4109       VLC_ADD_PLUGIN([vout_sdl])
4110       VLC_ADD_PLUGIN([aout_sdl])
4111     fi
4112     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4113     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4114     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4115     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4116       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4117       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4118           As a last resort we also test for SDL.h presence),
4119       [ AC_MSG_ERROR([The development package for SDL is not installed.
4120 Please install it and try again. Alternatively you can also configure with
4121 --disable-sdl.])
4122       ])])
4123     AS_IF([ test "${enable_sdl_image}" != "no"],[
4124       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4125         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4126         VLC_ADD_PLUGIN([sdl_image])
4127         AC_CHECK_LIB(png, png_set_rows,
4128           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4129         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4130           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4131         AC_CHECK_LIB(tiff, TIFFClientOpen,
4132           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4133         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4134         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4135             As a last resort we also test for SDL_image.h presence),
4136         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4137   You should install it alongside your SDL package.])
4138         ])])
4139     ])
4140     CPPFLAGS="${CPPFLAGS_save}"
4141     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4142     then
4143       AC_MSG_ERROR([The development package for SDL is not installed.
4144 Please install it and try again. Alternatively you can also configure with
4145 --disable-sdl.])
4146     fi
4147
4148   elif test "${enable_sdl}" =  "yes"
4149   then
4150     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4151 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4152     ])
4153   fi
4154 fi
4155
4156 dnl
4157 dnl  freetype module
4158 dnl
4159 AC_ARG_ENABLE(freetype,
4160   [  --enable-freetype       freetype support (default enabled)])
4161 AC_ARG_ENABLE(fribidi,
4162   [  --enable-fribidi        fribidi support (default enabled)])
4163 AC_ARG_ENABLE(fontconfig,
4164   [  --enable-fontconfig,    fontconfig support (default enabled)])
4165 if test "${enable_freetype}" != "no"
4166 then
4167    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4168       VLC_ADD_PLUGIN([freetype])
4169       have_freetype=yes
4170       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4171       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4172       if test "${SYS}" = "mingw32"; then
4173         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4174       fi
4175       if test "${SYS}" = "mingw32"; then
4176         VLC_ADD_LIBS([freetype],[-liconv])
4177       fi
4178       if test "${enable_fontconfig}" != "no"
4179       then
4180         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4181           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4182            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4183         AC_CHECK_HEADERS(Carbon/Carbon.h,
4184           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4185       fi
4186   ],[
4187   have_freetype=no
4188   AS_IF([ test "${enable_freetype}" =  "yes"],[
4189     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4190 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4191       ])
4192     ])
4193   ])
4194
4195   dnl fribidi support
4196   if test "${enable_fribidi}" != "no"
4197   then
4198     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4199       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4200       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4201     ])
4202     fi
4203 fi
4204
4205 dnl
4206 dnl  libxml2 module
4207 dnl
4208 AC_ARG_ENABLE(libxml2,
4209   [  --enable-libxml2        libxml2 support (default enabled)])
4210 if test "${enable_libxml2}" != "no"
4211 then
4212   XML2_PATH="${PATH}"
4213   AC_ARG_WITH(xml2-config-path,
4214     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4215     [ if test "${with_xml2_config_path}" != "no"; then
4216         XML2_PATH="${with_xml2_config_path}:${PATH}"
4217       fi ])
4218   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4219   if test "${XML2_CONFIG}" != "no"; then
4220     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4221     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4222     dnl depends on the xmlTextReader extension
4223     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4224     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4225     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4226       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4227         VLC_ADD_PLUGIN([xml]) ],[
4228           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4229           if test "${enable_xml2}" = "yes"; then
4230             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4231           fi])
4232        ],[
4233       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4234       if test "${enable_xml2}" = "yes"; then
4235         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4236       fi])
4237     LDFLAGS="${LDFLAGS_save}"
4238     CPPFLAGS="${CPPFLAGS_save}"
4239   else
4240     if test "${enable_xml2}" = "yes"; then
4241       AC_MSG_ERROR([Could not find libxml2])
4242     fi
4243   fi
4244 fi
4245
4246 dnl
4247 dnl  SVG module
4248 dnl
4249 AC_ARG_ENABLE(svg,
4250   [  --enable-svg            SVG support (default disabled)])
4251 if test "${enable_svg}" = "yes"
4252 then
4253   PKG_CHECK_MODULES(SVG, 
4254         librsvg-2.0 >= 2.9.0,
4255         [
4256           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4257           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4258           VLC_ADD_PLUGIN([svg]) ],
4259         [AC_MSG_WARN(SVG library not found)])
4260 fi
4261
4262 dnl
4263 dnl Snapshot vout module (with cache)
4264 dnl
4265 AC_ARG_ENABLE(snapshot,
4266   [  --enable-snapshot       snapshot module (default disabled)])
4267 if test "${enable_snapshot}" = "yes"
4268 then
4269   VLC_ADD_PLUGIN([snapshot])
4270 fi
4271
4272 dnl
4273 dnl  Qt Embedded module
4274 dnl  (disabled by default)
4275 dnl
4276 AC_ARG_ENABLE(qte,
4277   [  --enable-qte            QT Embedded support (default disabled)])
4278 if test "${enable_qte}" = "yes"
4279 then
4280   AC_ARG_WITH(qte,
4281   [    --with-qte=PATH       Qt Embedded headers and libraries])
4282   if test "${with_qte}" != "no" -a -n "${with_qte}"
4283   then
4284     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4285     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])
4286   else
4287     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4288     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4289   fi
4290   VLC_ADD_PLUGIN([qte])
4291   NEED_QTE_MAIN=yes
4292   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4293   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4294     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4295   ] )
4296   CPPFLAGS="${CPPFLAGS_save}"
4297 fi
4298
4299 dnl
4300 dnl Roku HD1000 Video output module
4301 dnl
4302 AC_ARG_ENABLE(hd1000v,
4303   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4304 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4305   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4306    test "${enable_hd1000v}" = "yes"); then
4307   AC_LANG_PUSH([C++])
4308   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4309   [
4310     can_build_roku="yes"
4311   ],
4312   [
4313     can_build_roku="no"
4314     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4315   ])
4316   if test "$can_build_roku" = "yes"
4317   then
4318     VLC_ADD_PLUGIN([hd1000v])
4319     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4320   fi
4321   AC_LANG_POP([C++])
4322 fi
4323
4324 dnl
4325 dnl  Windows DirectX module
4326 dnl
4327
4328 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4329 then
4330   VLC_ADD_PLUGIN([panoramix])
4331 fi
4332
4333 AC_ARG_ENABLE(directx,
4334   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4335 if test "${enable_directx}" != "no"
4336 then
4337   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4338   then
4339     AC_ARG_WITH(directx,
4340     [    --with-directx=PATH   Win32 DirectX headers])
4341     if test -z "${with_directx}"
4342     then
4343       AC_CHECK_HEADERS(ddraw.h,
4344       [ VLC_ADD_PLUGIN([vout_directx])
4345         VLC_ADD_PLUGIN([aout_directx])
4346         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4347       ])
4348       AC_CHECK_HEADERS(GL/gl.h,
4349       [ VLC_ADD_PLUGIN([glwin32])
4350         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4351       ])
4352       AC_CHECK_HEADERS(d3d9.h,
4353       [ VLC_ADD_PLUGIN([direct3d])
4354         VLC_ADD_LIBS([direct3d],[-lgdi32])
4355       ])
4356     else
4357       AC_MSG_CHECKING(for directX headers in ${with_directx})
4358       if test -f ${with_directx}/ddraw.h
4359       then
4360         VLC_ADD_PLUGIN([vout_directx])
4361         VLC_ADD_PLUGIN([aout_directx])
4362         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4363         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4364         AC_MSG_RESULT(yes)
4365       else
4366         AC_MSG_RESULT(no)
4367         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4368       fi
4369     fi
4370   fi
4371 fi
4372
4373 dnl
4374 dnl  Linux framebuffer module
4375 dnl
4376 AC_ARG_ENABLE(fb,
4377   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4378     if test "${enable_fb}" != "no"
4379     then
4380       AC_CHECK_HEADERS(linux/fb.h, [
4381         VLC_ADD_PLUGIN([fb])
4382       ])
4383     fi
4384
4385 dnl
4386 dnl  Linux MGA module
4387 dnl
4388 AC_ARG_ENABLE(mga,
4389   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4390   [ if test "${enable_mga}" = "yes"
4391     then
4392       VLC_ADD_PLUGIN([mga])
4393     fi ])
4394
4395 dnl
4396 dnl  OMAP Framebuffer module
4397 dnl
4398 AC_ARG_ENABLE(omapfb,
4399   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4400     if test "${enable_omapfb}" = "yes"
4401     then
4402       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4403         VLC_ADD_PLUGIN([omapfb])
4404         AC_CHECK_HEADERS(X11/Xlib.h, [
4405           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4406       ])
4407     fi
4408
4409 dnl
4410 dnl  SVGAlib module
4411 dnl
4412 AC_ARG_ENABLE(svgalib,
4413   [  --enable-svgalib        SVGAlib support (default disabled)])
4414 if test "${enable_svgalib}" = "yes"
4415 then
4416   VLC_ADD_PLUGIN([svgalib])
4417   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4418 fi
4419
4420 dnl
4421 dnl  DirectFB module
4422 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4423 dnl  TODO: support for static linking
4424 dnl
4425 AC_ARG_ENABLE(directfb,
4426   [  --enable-directfb       DirectFB support (default disabled)])
4427 AC_ARG_WITH(directfb, 
4428   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4429
4430 if test "${enable_directfb}" = "yes"; then
4431     have_directfb="false"
4432     CPPFLAGS_mydirectfb=
4433     LIBS_mydirectfb=
4434     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4435         dnl Trying the given location
4436         CPPFLAGS_save="${CPPFLAGS}"
4437         LIBS_save="${LIBS}"
4438
4439         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4440         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4441         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4442
4443         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4444         LIBS="${LIBS} ${LIBS_new}"
4445
4446         dnl FIXME: too obscure
4447         AC_CHECK_HEADER([directfb.h], [
4448             AC_CHECK_LIB([direct],[direct_initialize], [
4449                 AC_CHECK_LIB([fusion], [fusion_enter], [
4450                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4451                 ], have_directfb="false")
4452             ], have_directfb="false")
4453         ], have_directfb="false")
4454
4455         dnl Restore flags
4456         CPPFLAGS="${CPPFLAGS_save}"
4457         LIBS="${LIBS_save}"
4458
4459         if test "${have_directfb}" = "true"; then
4460             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4461             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4462         fi
4463     else 
4464         dnl Look for directfb-config
4465         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4466         if test "${DIRECTFB_CONFIG}" != "no"; then
4467             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4468             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4469             have_directfb="true"
4470         else 
4471             dnl Trying with pkg-config
4472             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4473                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4474                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4475                 have_directfb="true"
4476                 ], [have_directfb="false"])
4477         fi
4478     fi
4479     if test "${have_directfb}" = "true"; then
4480         VLC_ADD_PLUGIN([directfb])
4481         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4482         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4483     else 
4484         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4485     fi
4486 fi
4487  
4488
4489
4490 dnl
4491 dnl  GGI module
4492 dnl
4493 AC_ARG_ENABLE(ggi,
4494   [  --enable-ggi            GGI support (default disabled)])
4495 if test "${enable_ggi}" = "yes"
4496 then
4497   AC_CHECK_HEADER([ggi/ggi.h],[
4498     VLC_ADD_PLUGIN([ggi])
4499     VLC_ADD_LIBS([ggi],[-lggi])
4500     AC_ARG_WITH(ggi,
4501       [    --with-ggi=PATH       path to libggi],
4502       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4503         then
4504           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4505           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4506         fi ])
4507     ],[
4508        AC_MSG_ERROR([LibGGI development files can't be found])
4509     ])
4510 fi
4511
4512 dnl
4513 dnl  AA plugin
4514 dnl
4515 AC_ARG_ENABLE(aa,
4516   [  --enable-aa             aalib output (default disabled)])
4517 if test "${enable_aa}" = "yes"
4518 then
4519   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4520   if test "${have_aa}" = "true"
4521   then
4522     VLC_ADD_PLUGIN([aa])
4523     VLC_ADD_LIBS([aa],[-laa])
4524   fi
4525 fi
4526
4527 dnl
4528 dnl  libcaca plugin
4529 dnl
4530 AC_ARG_ENABLE(caca,
4531   [  --enable-caca           libcaca output (default disabled)])
4532 if test "${enable_caca}" = "yes"
4533 then
4534   CACA_PATH="${PATH}"
4535   AC_ARG_WITH(caca-config-path,
4536     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4537     [ if test "${with_caca_config_path}" != "no"
4538       then
4539         CACA_PATH="${with_caca_config_path}:${PATH}"
4540       fi ])
4541   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4542   if test "${CACA_CONFIG}" != "no"
4543   then
4544     VLC_ADD_PLUGIN([caca])
4545     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4546     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4547     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4548                                         caca_event_t ev;]],
4549                                         [[ev.type = 0;]]
4550                        )],
4551                        [],
4552       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4553     )
4554   fi
4555 fi
4556
4557 dnl
4558 dnl  win32 GDI plugin
4559 dnl
4560 AC_ARG_ENABLE(wingdi,
4561   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4562 if test "${enable_wingdi}" != "no"; then
4563   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4564     VLC_ADD_PLUGIN([wingdi])
4565     VLC_ADD_LIBS([wingdi],[-lgdi32])
4566   fi
4567   if test "${SYS}" = "mingwce"; then
4568     VLC_ADD_PLUGIN([wingdi])
4569     VLC_ADD_PLUGIN([wingapi])
4570   fi
4571 fi
4572
4573 dnl
4574 dnl  Audio plugins
4575 dnl
4576
4577 AC_ARG_WITH(,[Audio plugins:])
4578
4579 dnl
4580 dnl  OSS /dev/dsp module (enabled by default except on win32)
4581 dnl
4582 AC_ARG_ENABLE(oss,
4583   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4584
4585 if test "${enable_oss}" != "no" &&
4586   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4587    test "${enable_oss}" = "yes")
4588 then
4589   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4590     VLC_ADD_PLUGIN([oss])
4591     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4592   ])
4593 fi
4594
4595 dnl
4596 dnl  Pulseaudio module
4597 dnl
4598 AC_ARG_ENABLE(pulse,
4599   [  --enable-pulse          Pulseaudio support (default enabled)])
4600   if test "${enable_pulse}" != "no"
4601    then
4602      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4603        [ VLC_ADD_PLUGIN([pulse])
4604         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4605         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4606        [AC_MSG_WARN(pulseaudio library not found)])
4607    fi
4608
4609 dnl
4610 dnl  Portaudio module
4611 dnl
4612 AC_ARG_ENABLE(portaudio,
4613   [  --enable-portaudio      Portaudio library support (default disabled)],
4614   [if test "${enable_portaudio}" = "yes"
4615    then
4616      VLC_ADD_PLUGIN([portaudio])
4617      VLC_ADD_CXXFLAGS([portaudio],[])
4618      if test "${SYS}" = "mingw32"; then
4619         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4620      else
4621         VLC_ADD_LIBS([portaudio],[-lportaudio])
4622      fi
4623    fi])
4624
4625 dnl
4626 dnl  ALSA module
4627 dnl
4628 AC_ARG_ENABLE(alsa,
4629   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4630 if test "${enable_alsa}" != "no"
4631 then
4632   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4633   if test "${have_alsa}" = "true"
4634   then
4635     CFLAGS="${CFLAGS_save}"
4636     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4637                     #define ALSA_PCM_NEW_SW_PARAMS_API
4638                     #include <alsa/asoundlib.h>],
4639        [snd_pcm_hw_params_get_period_time(0,0,0);],
4640         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4641     VLC_ADD_PLUGIN([alsa])
4642     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4643   else
4644     if test "${enable_alsa}" = "yes"; then
4645       AC_MSG_ERROR([Could not find ALSA development headers])
4646     fi
4647   fi
4648 fi
4649
4650 dnl
4651 dnl  win32 waveOut plugin
4652 dnl
4653 AC_ARG_ENABLE(waveout,
4654   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4655 if test "${enable_waveout}" != "no"; then
4656   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4657     VLC_ADD_PLUGIN([waveout])
4658     VLC_ADD_LIBS([waveout],[-lwinmm])
4659   fi
4660   if test "${SYS}" = "mingwce"; then
4661     VLC_ADD_PLUGIN([waveout])
4662   fi
4663 fi
4664
4665 dnl
4666 dnl  CoreAudio plugin
4667 dnl
4668 AC_ARG_ENABLE(macosx-audio,
4669   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4670 if test "${enable_macosx-audio}" != "no" &&
4671   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4672 then
4673   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4674     [ VLC_ADD_PLUGIN([auhal])
4675       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4676     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4677 fi
4678
4679 dnl
4680 dnl  Roku HD1000 audio
4681 dnl
4682 AC_ARG_ENABLE(hd1000a,
4683   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4684 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4685   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4686    test "${enable_hd1000a}" = "yes")
4687 then
4688   AC_LANG_PUSH([C++])
4689   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4690     VLC_ADD_PLUGIN([hd1000a])
4691     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4692   AC_LANG_POP([C++])
4693 fi
4694
4695 dnl
4696 dnl  JACK modules
4697 dnl
4698 AC_ARG_ENABLE(jack,
4699  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4700  [enable_jack="no"])
4701
4702 AS_IF([test "${enable_jack}" != "no"], [
4703   AC_CHECK_HEADERS(jack/jack.h, [
4704     VLC_ADD_PLUGIN([access_jack])
4705     VLC_ADD_PLUGIN([jack])
4706     VLC_ADD_LIBS([access_jack jack],[-ljack])
4707   ],[AC_MSG_ERROR([cannot find JACK headers])])
4708 ])
4709
4710 dnl
4711 dnl  CyberLink for C++ UPnP stack
4712 dnl
4713 AC_ARG_ENABLE(cyberlink,
4714   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4715   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4716   AC_ARG_WITH(cyberlink-tree,
4717     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4718
4719   dnl
4720   dnl test for --with-cyberlink-tree
4721   dnl
4722   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4723     AC_LANG_PUSH(C++)
4724     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4725     AS_IF([test -z "${real_cyberlink_tree}"], [
4726       dnl  The given directory can't be found
4727       AC_MSG_RESULT(no)
4728       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4729     ])
4730     CPPFLAGS_save="${CPPFLAGS}"
4731     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4732     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4733     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4734       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4735         VLC_ADD_PLUGIN([upnp_cc]) 
4736       ],[
4737         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4738       ])
4739     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4740     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4741       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4742       dnl The mere fact that we have to make such an ugly check sucks
4743       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4744       LIBS_save="$LIBS"
4745       LIBS_cclink="no"
4746       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4747         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4748         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4749 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4750 using namespace CyberLink;
4751
4752 class testclass : public SearchResponseListener, public MediaPlayer
4753 {
4754     virtual void deviceSearchResponseReceived( SSDPPacket *)
4755     {
4756     }
4757
4758     public:
4759       testclass (void)
4760       {
4761         addSearchResponseListener (this);
4762         start ();
4763       }
4764 };
4765 ],[testclass l;])],[LIBS_cclink="$l"])
4766       done
4767       LIBS="${LIBS_save}"
4768       dnl should not happen - otherwise this needs fixing - hence FAILURE
4769       AS_IF([test "${LIBS_cclink}" = "no"],
4770         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4771       AC_MSG_RESULT([${LIBS_cclink}])
4772       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4773     ], [
4774       AC_MSG_RESULT(no)
4775       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4776     ])
4777     CPPFLAGS="${CPPFLAGS_save}"
4778     AC_LANG_POP([C++])
4779   ])
4780 ])
4781
4782 dnl
4783 dnl UPnP Plugin (Intel SDK)
4784 dnl
4785 AC_ARG_ENABLE(upnp,
4786   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4787
4788 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4789 AS_IF([test "x${enable_upnp}" != "xno"], [
4790   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4791   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4792     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4793   ])
4794   AS_IF([test "${has_upnp}" = "yes"], [
4795     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4796   ])
4797 ], [
4798   has_upnp="no"
4799 ])
4800
4801 AS_IF([test "${has_upnp}" = "yes"], [
4802   VLC_ADD_PLUGIN([upnp_intel])
4803 ])
4804
4805
4806 dnl
4807 dnl  Interface plugins
4808 dnl
4809
4810 AC_ARG_WITH(,[Interface plugins:])
4811
4812 dnl special case for BeOS
4813 if test "${SYS}" = "beos"
4814 then
4815     VLC_ADD_PLUGIN([beos])
4816 fi
4817
4818 dnl
4819 dnl Skins2 module
4820 dnl
4821 AC_ARG_ENABLE(skins2,
4822   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4823    enabled except on MacOSX, BeOS and WinCE)])])
4824 if test "${enable_skins2}" = "yes" ||
4825   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4826    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4827
4828   dnl test for the required libraries
4829   skins2_missing_lib="no"
4830
4831   dnl freetype
4832   if test "${have_freetype}" != "yes"; then
4833     skins2_missing_lib="yes"
4834     if test "${enable_skins2}" = "yes"; then
4835       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4836     fi
4837   fi
4838
4839   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4840     VLC_ADD_PLUGIN([skins2])
4841     ALIASES="${ALIASES} svlc"
4842     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4843     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4844     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4845
4846   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4847     VLC_ADD_PLUGIN([skins2])
4848     ALIASES="${ALIASES} svlc"
4849     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4850     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4851     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4852
4853   else if test "${skins2_missing_lib}" = "no"; then
4854     VLC_ADD_PLUGIN([skins2])
4855     ALIASES="${ALIASES} svlc"
4856     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4857     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4858     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4859   fi fi fi
4860 fi
4861 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4862          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4863           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4864
4865 dnl
4866 dnl  PDA Gtk+2 module
4867 dnl
4868 AC_ARG_ENABLE(pda,
4869   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4870 if test "${enable_pda}" = "yes"
4871 then
4872   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4873   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4874   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4875   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4876   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4877   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4878   VLC_ADD_PLUGIN([pda])
4879   if test "${SYS}" != "mingw32"; then
4880     NEED_GTK2_MAIN=yes
4881     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4882     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4883   fi
4884 fi
4885 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4886
4887 dnl
4888 dnl Maemo
4889 dnl
4890 AC_ARG_ENABLE(maemo,
4891   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4892 if test "${enable_maemo}" = "yes"
4893 then
4894   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4895     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4896     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4897     VLC_ADD_PLUGIN([maemo])
4898     VLC_ADD_PLUGIN([swscale_maemo])
4899     AC_DEFINE([BUILD_MAEMO], 1, [Define if you're using Maemo interfaces])
4900     ALIASES="${ALIASES} mvlc"
4901   ], [
4902     AS_IF([test "${enable_maemo}" = "yes"],[
4903       AC_MSG_ERROR([Hildon libraries not found])
4904     ])
4905     enable_maemo="no"
4906   ])
4907 fi
4908 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4909
4910 dnl
4911 dnl QT 4
4912 dnl
4913 AC_ARG_ENABLE(qt4,
4914   [  --enable-qt4            QT 4 support (default enabled) ],, [
4915   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4916 ])
4917 AS_IF([test "${enable_qt4}" != "no"], [
4918   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.3.0], [
4919     VLC_ADD_PLUGIN([qt4])
4920     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4921     ALIASES="${ALIASES} qvlc"
4922     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4923         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4924     ], [
4925         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
4926     ])
4927     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4928     AC_SUBST(QT4LOCALEDIR)
4929     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4930     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4931     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4932     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4933   ], [
4934     AS_IF([test "${enable_qt4}" = "yes"],[
4935       AC_MSG_ERROR([Qt 4 library not found])
4936     ],[
4937       AC_MSG_WARN([Qt 4 library not found])
4938     ])
4939     enable_qt4="no"
4940   ])
4941 ])
4942 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4943
4944 dnl
4945 dnl  WinCE GUI module
4946 dnl
4947 AC_ARG_ENABLE(wince,
4948   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4949 if test "${enable_wince}" != "no"; then
4950   if test "${SYS}" = "mingwce"; then
4951     VLC_ADD_PLUGIN([wince])
4952     VLC_ADD_CXXFLAGS([wince],[])
4953     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4954     dnl Gross hack
4955     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4956   elif test "${SYS}" = "mingw32"; then
4957     VLC_ADD_CXXFLAGS([wince],[])
4958     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4959     dnl Gross hack
4960     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4961   fi
4962 fi
4963
4964 dnl
4965 dnl Simple test for skins2 dependency
4966 dnl
4967 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4968   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.])
4969 ])
4970
4971 dnl
4972 dnl  Opie QT embedded module
4973 dnl
4974 AC_ARG_ENABLE(opie,
4975   [  --enable-opie           Qt embedded interface support (default disabled)],
4976   [if test "${enable_opie}" = "yes"; then
4977      AC_ARG_WITH(qte,
4978      [    --with-qte=PATH       Qt Embedded headers and libraries])
4979      if test "${with_qte}" != "no" -a -n "${with_qte}"
4980      then
4981        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4982        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])
4983      else
4984        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4985        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4986      fi
4987      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4988      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4989        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4990      ] )
4991      CPPFLAGS="${CPPFLAGS_save}"
4992
4993      VLC_ADD_PLUGIN([opie])
4994      NEED_QTE_MAIN=yes
4995      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4996      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4997      if test "${with_qte}" != "no" -a -n "${with_qte}"
4998      then
4999        MOC=${with_qte}/bin/moc
5000      else
5001        MOC=${QTDIR}/bin/moc
5002      fi
5003    fi])
5004
5005 dnl
5006 dnl  MacOS X video output/gui modules
5007 dnl
5008 AC_ARG_ENABLE(macosx,
5009   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5010 if test "x${enable_macosx}" = "xyes"
5011 then
5012   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5013   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
5014   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5015   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5016   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5017   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5018   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5019   dnl For bug report
5020   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
5021   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5022   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
5023   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5024   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5025   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5026   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5027
5028   VLC_ADD_PLUGIN([access_eyetv])
5029   VLC_ADD_PLUGIN([qtcapture])
5030   VLC_ADD_PLUGIN([macosx])
5031   VLC_ADD_PLUGIN([minimal_macosx])
5032  
5033   ORIGCFLAGS=$CFLAGS
5034   CFLAGS="$CFLAGS -x objective-c"
5035   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>],,
5036   [VLC_ADD_PLUGIN([opengllayer])
5037   VLC_ADD_OBJCFLAGS([opengllayer])],[])
5038   CFLAGS=$ORIGCFLAGS
5039 fi
5040
5041 dnl
5042 dnl  QNX RTOS module
5043 dnl
5044 AC_ARG_ENABLE(qnx,
5045   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5046     if test "${enable_qnx}" != "no"
5047     then
5048       AC_CHECK_HEADERS(Ph.h, [
5049         VLC_ADD_PLUGIN([qnx])
5050         VLC_ADD_LIBS([qnx],[-lasound -lph])
5051       ])
5052     fi
5053
5054 dnl
5055 dnl  ncurses module
5056 dnl
5057 AC_ARG_ENABLE(ncurses,
5058   [  --disable-ncurses       ncurses interface support (default enabled)],
5059   [if test "${enable_ncurses}" != "no"; then
5060     AC_CHECK_HEADER(ncurses.h,
5061       [AC_CHECK_LIB(ncursesw, mvprintw,
5062         [VLC_ADD_PLUGIN([ncurses])
5063         VLC_ADD_LIBS([ncurses],[-lncursesw])
5064         ALIASES="${ALIASES} nvlc"
5065         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5066         AC_CHECK_LIB(ncursesw, tgetent, [],
5067           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5068             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5069               [AS_IF([test "x${enable_ncurses}" != "x"],
5070                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5071                )])])
5072             ]
5073           )
5074         )
5075         ],
5076         [AC_CHECK_LIB( ncurses, mvprintw,
5077           [VLC_ADD_PLUGIN([ncurses])
5078           ALIASES="${ALIASES} nvlc"
5079           VLC_ADD_LIBS([ncurses],[-lncurses])
5080           AC_CHECK_LIB(ncurses, tgetent, [],
5081             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5082               [AS_IF([test "x${enable_ncurses}" != "x"],
5083                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5084             )]
5085           )],
5086           [AS_IF([test "x${enable_ncurses}" != "x"], [
5087             AC_MSG_ERROR([libncurses not found])])]
5088         )]
5089       )]
5090     )
5091   fi]
5092 )
5093
5094 dnl
5095 dnl  XOSD plugin
5096 dnl
5097 AC_ARG_ENABLE(xosd,
5098   [  --enable-xosd           xosd interface support (default disabled)])
5099 if test "${enable_xosd}" = "yes"
5100 then
5101   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5102   AC_CHECK_LIB(xosd,xosd_set_offset,
5103       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5104     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5105         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5106       AC_TRY_COMPILE([#include <xosd.h>],
5107          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5108           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5109   if test "${have_xosd}" = "true"
5110   then
5111     VLC_ADD_PLUGIN([xosd])
5112     VLC_ADD_LIBS([xosd],[-lxosd])
5113   fi
5114 fi
5115
5116 dnl
5117 dnl Framebuffer (overlay) plugin
5118 dnl
5119 AC_ARG_ENABLE(fbosd,
5120   [  --enable-fbosd          fbosd interface support (default disabled)])
5121 if test "${enable_fbosd}" = "yes"
5122 then
5123   AC_CHECK_HEADERS(linux/fb.h, [
5124     VLC_ADD_PLUGIN([fbosd])
5125  ])
5126 fi
5127
5128 dnl
5129 dnl Visualisation plugin
5130 dnl
5131 AC_ARG_ENABLE(visual,
5132   [  --enable-visual         visualisation plugin (default enabled)])
5133 if test "${enable_visual}" != "no"
5134 then
5135     VLC_ADD_PLUGIN([visual])
5136 fi
5137
5138 dnl
5139 dnl OpenGL visualisation plugin
5140 dnl
5141 AC_ARG_ENABLE(galaktos,
5142   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5143 if test "${enable_galaktos}" = "yes"
5144 then
5145   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5146     VLC_ADD_PLUGIN([galaktos])
5147     if test "${SYS}" != "mingw32"; then
5148       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5149     else
5150       VLC_ADD_LIBS([galaktos],[-lopengl32])
5151     fi
5152   ])
5153 fi
5154
5155 dnl
5156 dnl  goom visualization plugin
5157 dnl
5158 AC_ARG_ENABLE(goom,
5159 [  --enable-goom           goom visualisation plugin (default disabled)])
5160 if test "${enable_goom}" = "yes"
5161 then
5162   AC_ARG_WITH(goom-tree,
5163     [    --with-goom-tree=PATH goom tree for static linking (required)])
5164
5165   dnl
5166   dnl test for --with-goom-tree
5167   dnl
5168   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5169     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5170     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5171     if test -z "${real_goom_tree}"; then
5172       dnl  The given directory can't be found
5173       AC_MSG_RESULT(no)
5174       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5175     fi
5176     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5177       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5178       VLC_ADD_PLUGIN([goom])
5179       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5180       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5181     else
5182       dnl  The given libgoom2 wasn't built, try to look for the old goom
5183       AC_MSG_RESULT(no)
5184       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5185       if test -f "${real_goom_tree}/libgoom.a"; then
5186         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5187         VLC_ADD_PLUGIN([goom])
5188         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5189         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5190       else
5191         dnl  The given libgoom wasn't built
5192         AC_MSG_RESULT(no)
5193         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5194       fi
5195     fi
5196   else
5197     AC_CHECK_HEADERS(goom/goom.h, [
5198       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5199       AC_CHECK_LIB(goom2, goom_init, [
5200         VLC_ADD_PLUGIN([goom])
5201         VLC_ADD_LIBS([goom],[-lgoom2])
5202       ],[
5203         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5204       ])
5205       LDFLAGS="${LDFLAGS_save}"
5206     ])
5207   fi
5208 fi
5209
5210 dnl
5211 dnl  AtmoLight (homebrew AmbiLight)
5212 dnl
5213 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5214    AC_ARG_ENABLE(atmo,
5215 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight) 
5216                 (default enabled)]))
5217    if test "${enable_atmo}" != "no"; then
5218       AC_LANG_PUSH(C++)
5219       VLC_ADD_PLUGIN([atmo])
5220       AC_LANG_POP(C++)
5221    fi
5222 fi
5223
5224 dnl
5225 dnl  Bonjour services discovery
5226 dnl
5227 AC_ARG_ENABLE(bonjour,
5228   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5229 AS_IF([test "${enable_bonjour}" != "no"], [
5230   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5231     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5232     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5233     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5234     VLC_ADD_PLUGIN([bonjour])
5235   ], [
5236     AC_MSG_WARN(avahi-client library not found)
5237   ])
5238 ])
5239
5240 dnl
5241 dnl  Lirc plugin
5242 dnl
5243 AC_ARG_ENABLE(lirc,
5244   [  --enable-lirc           lirc support (default disabled)])
5245 if test "${enable_lirc}" = "yes"
5246 then
5247   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5248   if test "${have_lirc}" = "true"
5249   then
5250     VLC_ADD_PLUGIN([lirc])
5251     VLC_ADD_LIBS([lirc],[-llirc_client])
5252   fi
5253 fi
5254
5255
5256 AC_ARG_WITH(,[Misc options:])
5257
5258 dnl
5259 dnl libgcrypt
5260 dnl
5261 AC_ARG_ENABLE(libgcrypt,
5262   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5263 AS_IF([test "${enable_libgcrypt}" != "no"], [
5264   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5265 ])
5266 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5267   AS_IF([test "${have_libgcrypt}" = "yes"],[
5268     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5269   ])
5270 fi
5271 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5272
5273 dnl
5274 dnl TLS/SSL
5275 dnl
5276 AC_ARG_ENABLE(gnutls,
5277   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5278
5279 AS_IF([test "${enable_gnutls}" != "no"], [
5280   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5281     VLC_ADD_PLUGIN([gnutls])
5282     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5283     AS_IF([test "${SYS}" = "mingw32"], [
5284       dnl pkg-config --libs gnutls omits these
5285       VLC_ADD_LIBS([gnutls], [-lz])
5286       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5287     ])
5288     dnl The GnuTLS plugin invokes gcry_control directly.
5289     AS_IF([test "${have_libgcrypt}" = "yes"],[
5290       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5291       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5292     ])
5293     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5294   ], [
5295     AS_IF([test "${enable_gnutls}" = "yes"], [
5296       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5297     ])
5298   ])
5299 ])
5300
5301
5302 dnl
5303 dnl RemoteOSD plugin (VNC client as video filter)
5304 dnl
5305 AC_ARG_ENABLE(remoteosd,
5306   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5307
5308 AS_IF([test "${enable_remoteosd}" != "no"], [
5309   AS_IF([test "${have_libgcrypt}" = "yes"],[
5310     VLC_ADD_PLUGIN([remoteosd])
5311     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5312     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5313   ], [
5314     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5315   ])
5316 ])
5317
5318
5319 dnl
5320 dnl RAOP plugin
5321 dnl
5322 AC_MSG_CHECKING([whether to enable RAOP plugin])
5323 AS_IF([test "${have_libgcrypt}" = "yes"], [
5324   AC_MSG_RESULT(yes)
5325   VLC_ADD_PLUGIN([stream_out_raop])
5326   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS}])
5327   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5328 ], [
5329   AC_MSG_RESULT(no)
5330   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5331 ])
5332
5333
5334 dnl
5335 dnl update checking system
5336 dnl
5337 AC_ARG_ENABLE(update-check,
5338   [  --enable-update-check   update checking system (default disabled)])
5339 if test "${enable_update_check}" = "yes"
5340 then
5341   if test "${have_libgcrypt}" != "yes"
5342   then
5343     AC_MSG_ERROR([libgcrypt is required for update checking system])
5344   fi
5345   VLC_ADD_LIBS([libvlc], [${LIBGCRYPT_LIBS}])
5346   VLC_ADD_CFLAGS([libvlc], [${LIBGCRYPT_CFLAGS}])
5347   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5348 fi
5349
5350 dnl
5351 dnl  Endianness check
5352 dnl
5353 AC_C_BIGENDIAN
5354 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5355   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5356 ], [
5357   DEFS_BIGENDIAN=""
5358 ])
5359 AC_SUBST(DEFS_BIGENDIAN)
5360
5361 dnl
5362 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5363 dnl
5364 loader=false
5365 AC_ARG_ENABLE(loader,
5366   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms 
5367                   (default disabled)]))
5368 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5369 AS_IF([test "${enable_loader}" = "yes"],
5370   [ VLC_ADD_PLUGIN([dmo])
5371     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5372     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5373     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5374     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5375     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5376     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5377     VLC_ADD_CPPFLAGS([realvideo],[-I../../@top_srcdir@/libs/loader -DLOADER])
5378     VLC_ADD_LIBS([realvideo],[../../libs/loader/libloader.la])
5379   ])
5380
5381 AC_ARG_WITH(,[Components:])
5382
5383 dnl
5384 dnl  the VLC binary
5385 dnl
5386 AC_ARG_ENABLE(vlc,
5387   [  --enable-vlc            build the VLC media player (default enabled)])
5388 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5389
5390 dnl
5391 dnl  Microsoft ActiveX support
5392 dnl
5393 activex=false
5394 AC_ARG_ENABLE(activex,
5395   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control 
5396                   (default enabled on Win32)]))
5397 AC_ARG_WITH(wine-sdk-path,
5398   [    --with-wine-sdk-path=PATH path to wine sdk])
5399 if test "${enable_activex}" != "no"
5400 then
5401   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5402   then
5403     AC_CHECK_PROGS(MIDL, [midl], no)
5404     if test "${with_wine_sdk_path}" != ""
5405     then
5406        WINE_SDK_PATH=${with_wine_sdk_path}
5407        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5408     else
5409        WIDL=no
5410     fi
5411     AC_LANG_PUSH(C++)
5412     AC_CHECK_HEADERS(ole2.h, 
5413       [AC_CHECK_HEADERS(olectl.h,
5414         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5415           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5416           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5417           AC_CHECK_HEADERS(objsafe.h,
5418             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5419             [
5420              #if HAVE_OLE2_H
5421              #   include <ole2.h>
5422              #endif
5423             ]
5424           )
5425           activex=:
5426           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5427         ],
5428         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5429       )],
5430       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5431     )
5432     AC_LANG_POP(C++)
5433   fi
5434 fi
5435 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5436 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5437 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5438 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5439 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5440
5441 dnl
5442 dnl  Mozilla plugin
5443 dnl
5444 mozilla=false
5445 AC_ARG_ENABLE(mozilla,
5446   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5447                   (default disabled)]))
5448 AC_ARG_WITH(mozilla-sdk-path,
5449   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5450 AC_ARG_WITH(mozilla-pkg,
5451   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5452 AC_LANG_PUSH(C++)
5453 if test "${enable_mozilla}" = "yes" 
5454 then
5455   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5456     [
5457     dnl pkg-config
5458     dnl As we want to do a loop due to the number of name possible for the .pc 
5459     dnl we can't use the pkg-config macros.
5460
5461     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5462     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5463     AC_MSG_NOTICE([Checking for Mozilla])
5464     found=0
5465     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5466     then
5467       found=1
5468     else
5469       if test -n "$PKG_CONFIG"; then
5470         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5471           echo "Trying to find $i.pc files" >&5
5472           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5473           then
5474             echo "Using $i.pc files." >&5
5475             echo "Using $i.pc files." >&6
5476             found=1
5477             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5478             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5479             break
5480           fi
5481         done
5482       fi
5483     fi 
5484     AS_IF( [test $found = 1],[
5485         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5486         MOZILLA_REQUIRED_HEADERS=1
5487         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5488         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5489           [#if HAVE_NPAPI_H
5490            # include <npapi.h>
5491            #endif
5492           ])
5493         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5494             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5495         fi
5496         MOZILLA_REQUIRED_HEADERS=
5497         mozilla=:
5498         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5499            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5500            AS_IF([ test "${SYS}" != "darwin"],[
5501              PKG_CHECK_MODULES(XPM, [xpm xt],[
5502                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5503              ],[
5504                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5505              ])
5506           ])
5507         ])
5508         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5509         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5510         VLC_ADD_PLUGIN([mozilla])
5511         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5512         MOZILLA_CONFIG=
5513         CPPFLAGS="${CPPFLAGS_save}"
5514           ],
5515           [
5516             AC_PATH_PROGS(MOZILLA_CONFIG, 
5517             [mozilla-config seamonkey-config xulrunner-config], 
5518             AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5519                   )
5520           ]
5521         )
5522     dnl pkg-config failed but we might have found a mozilla-config
5523     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5524       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5525         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5526         AC_CHECK_LIB(Xt,XtStrings,
5527          [
5528            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5529            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5530          ],
5531          [],
5532          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5533         ])
5534         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5535         LDFLAGS="${LDFLAGS_save}"
5536       fi
5537
5538       mozilla=:
5539       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5540       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5541       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5542       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5543       MOZILLA_REQUIRED_HEADERS=1
5544       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5545       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5546       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5547         [#if HAVE_NPAPI_H
5548          # include <npapi.h>
5549          #endif
5550         ])
5551       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5552       then
5553         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5554       fi
5555       MOZILLA_REQUIRED_HEADERS=
5556       CPPFLAGS="${CPPFLAGS_save}"
5557       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5558     ])
5559     dnl End of moz_sdk = ""
5560   ],[
5561     dnl special case for mingw32
5562     if test "${SYS}" = "mingw32"
5563     then
5564       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5565       dnl latest gecko sdk does not have an xpcom directory
5566       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5567           mozilla_sdk_xpcom="/xpcom"
5568       fi
5569     fi
5570
5571     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5572     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5573     MOZILLA_REQUIRED_HEADERS=1
5574     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5575     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5576     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5577         [#if HAVE_NPAPI_H
5578           #include <npapi.h>
5579           #endif
5580         ])
5581     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5582     then
5583         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5584     fi
5585     MOZILLA_REQUIRED_HEADERS=
5586     mozilla=:
5587     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5588     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])
5589     if ${need_xpcom_libs}; then
5590        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])
5591       if test "${SYS}" = "mingw32"; then
5592         dnl latest gecko sdk does not have embedstring
5593         if test -d "${real_mozilla_sdk}/embedstring/bin"
5594         then
5595           VLC_ADD_LIBS([mozilla],[-lembedstring])
5596         fi
5597       fi
5598     fi
5599     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5600
5601     if test -n "${CYGPATH}"; then
5602       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5603     fi
5604     CPPFLAGS="${CPPFLAGS_save}"
5605  ]) 
5606 fi
5607 AC_LANG_POP(C++)
5608 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5609
5610 dnl Tests for Osso and Xsp
5611 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5612   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5613     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5614     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5615  ])
5616 ])
5617 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5618   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5619   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5620 ])
5621
5622 dnl
5623 dnl  test plugins
5624 dnl
5625 AC_ARG_ENABLE(testsuite,
5626   [  --enable-testsuite      build test modules (default disabled)])
5627 if test "${enable_testsuite}" = "yes"
5628 then
5629   TESTS="test1 test2 test3 test4"
5630
5631   dnl  we define those so that bootstrap sets the right linker
5632   VLC_ADD_CXXFLAGS([test2],[])
5633   VLC_ADD_OBJCFLAGS([test3],[])
5634   dnl  this one is needed until automake knows what to do
5635   VLC_ADD_LIBS([test3],[-lobjc])
5636
5637   VLC_ADD_PLUGIN([test1])
5638   VLC_ADD_PLUGIN([test2])
5639   VLC_ADD_PLUGIN([test3])
5640   VLC_ADD_PLUGIN([test4])
5641 fi
5642
5643 dnl
5644 dnl  gtk_main plugin
5645 dnl
5646 if test "${NEED_GTK_MAIN}" != "no"
5647 then
5648     VLC_ADD_PLUGIN([gtk_main])
5649     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5650     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5651 fi
5652
5653 if test "${NEED_GNOME_MAIN}" != "no"
5654 then
5655     VLC_ADD_PLUGIN([gnome_main])
5656     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5657     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5658 fi
5659
5660 if test "${NEED_GTK2_MAIN}" != "no"
5661 then
5662     VLC_ADD_PLUGIN([gtk2_main])
5663     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5664     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5665     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5666     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5667 fi
5668
5669 if test "${NEED_GNOME2_MAIN}" != "no"
5670 then
5671     VLC_ADD_PLUGIN([gnome2_main])
5672     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5673     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5674 fi
5675
5676 dnl
5677 dnl  qte_main plugin
5678 dnl
5679 if test "${NEED_QTE_MAIN}" != "no"
5680 then
5681     VLC_ADD_PLUGIN([qte_main])
5682     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5683     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5684     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5685 fi
5686
5687 dnl
5688 dnl  Plugin and builtin checks
5689 dnl
5690 plugin_support=yes
5691
5692 dnl Automagically disable plugins if there is no system support for
5693 dnl dynamically loadable files (.so, .dll, .dylib).
5694 dnl don't forget vlc-win32 still can load .dll as plugins
5695 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5696   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5697   plugin_support=no
5698 ])
5699
5700 AS_IF([test "${enable_shared}" = "no"], [
5701   plugin_support=no
5702 ])
5703
5704 AS_IF([test "${plugin_support}" != "no"], [
5705   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5706 ])
5707 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5708
5709 dnl Temporary(?) hack for plugins/builtins transition
5710 dnl VLC_ADD_PLUGIN([${BUILTINS}])
5711 dnl BUILTINS=""
5712
5713 dnl
5714 dnl Pic and shared libvlc stuff
5715 dnl
5716 AS_IF([test "${SYS}" = "mingw32"], [
5717   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5718   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5719 ])
5720
5721 dnl
5722 dnl  Stuff used by the program
5723 dnl
5724 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5725 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5726 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5727 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5728 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5729 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5730 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5731 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5732 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5733 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5734 AC_SUBST(COPYRIGHT_MESSAGE)
5735 AC_SUBST(VERSION_MESSAGE)
5736 AC_SUBST(VERSION_MAJOR)
5737 AC_SUBST(VERSION_MINOR)
5738 AC_SUBST(VERSION_REVISION)
5739 AC_SUBST(COPYRIGHT_YEARS)
5740 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5741 if test "${build_os}" = "cygwin"
5742 then
5743     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5744 else
5745     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5746 fi
5747 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5748 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5749 dnl Win32 need s a numerical version_extra.
5750 case $( echo ${VERSION_EXTRA}|wc -m ) in 
5751        "1") VERSION_EXTRA_RC="0";;
5752        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5753        *) VERSION_EXTRA_RC="99"
5754 esac
5755 AC_SUBST(VERSION_EXTRA_RC)
5756 dnl
5757 dnl  Handle substvars that use $(top_srcdir)
5758 dnl
5759 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5760 AC_SUBST(VLC_CONFIG)
5761 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5762
5763 dnl
5764 dnl  Restore *FLAGS
5765 dnl
5766 VLC_RESTORE_FLAGS
5767
5768 dnl
5769 dnl Sort the modules list
5770 dnl 
5771 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5772
5773 dnl
5774 dnl  Create the vlc-config script
5775 dnl
5776 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5777
5778 dnl
5779 dnl  Configuration is finished
5780 dnl
5781 AC_SUBST(SYS)
5782 AC_SUBST(ARCH)
5783 AC_SUBST(ALIASES)
5784 AC_SUBST(ASM)
5785 AC_SUBST(MOC)
5786 AC_SUBST(RCC)
5787 AC_SUBST(UIC)
5788 AC_SUBST(WINDRES)
5789 AC_SUBST(MOZILLA_SDK_PATH)
5790 AC_SUBST(WINE_SDK_PATH)
5791 AC_SUBST(LIBEXT)
5792 AC_SUBST(AM_CPPFLAGS)
5793 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5794 AC_SUBST(FILE_LIBVLCCORE_DLL)
5795 AC_SUBST(FILE_LIBVLC_DLL)
5796
5797 dnl Create vlc-config.in
5798 VLC_OUTPUT_VLC_CONFIG_IN
5799
5800 AC_CONFIG_FILES([
5801   extras/package/win32/vlc.win32.nsi
5802   extras/package/macosx/Info.plist
5803   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5804   extras/package/macosx/plugin/Info.plist
5805   extras/package/macosx/plugin/InstallerInfo.plist
5806   extras/package/macosx/plugin/English.lproj/InfoPlist.strings
5807   Makefile
5808   projects/activex/Makefile
5809   projects/activex/axvlc.inf
5810   doc/Makefile
5811   extras/package/ipkg/Makefile
5812   libs/loader/Makefile
5813   libs/srtp/Makefile
5814   modules/Makefile
5815   projects/mozilla/Makefile
5816   m4/Makefile
5817   po/Makefile.in
5818   projects/activex/axvlc_rc.rc
5819   projects/mozilla/npvlc_rc.rc
5820   share/Makefile
5821   share/vlc_win32_rc.rc
5822   share/libvlc_win32_rc.rc
5823   src/Makefile
5824   src/test/Makefile
5825   bin/Makefile
5826   test/Makefile
5827 ])
5828
5829 AC_CONFIG_FILES([
5830   modules/access/Makefile
5831   modules/access/bda/Makefile
5832   modules/access/dshow/Makefile
5833   modules/access/dvb/Makefile
5834   modules/access/mms/Makefile
5835   modules/access/cdda/Makefile
5836   modules/access/rtp/Makefile
5837   modules/access/rtsp/Makefile
5838   modules/access/rtmp/Makefile
5839   modules/access/v4l2/Makefile
5840   modules/access/vcd/Makefile
5841   modules/access/vcdx/Makefile
5842   modules/access/screen/Makefile
5843   modules/access_output/Makefile
5844   modules/audio_filter/Makefile
5845   modules/audio_filter/channel_mixer/Makefile
5846   modules/audio_filter/converter/Makefile
5847   modules/audio_filter/resampler/Makefile
5848   modules/audio_filter/spatializer/Makefile
5849   modules/audio_mixer/Makefile
5850   modules/audio_output/Makefile
5851   modules/codec/Makefile
5852   modules/codec/avcodec/Makefile
5853   modules/codec/cmml/Makefile
5854   modules/codec/dmo/Makefile
5855   modules/codec/subtitles/Makefile
5856   modules/codec/spudec/Makefile
5857   modules/codec/xvmc/Makefile
5858   modules/control/Makefile
5859   modules/control/http/Makefile
5860   modules/demux/Makefile
5861   modules/demux/asf/Makefile
5862   modules/demux/avformat/Makefile
5863   modules/demux/avi/Makefile
5864   modules/demux/mkv/Makefile
5865   modules/demux/mp4/Makefile
5866   modules/demux/mpeg/Makefile
5867   modules/demux/playlist/Makefile
5868   modules/gui/Makefile
5869   modules/gui/beos/Makefile
5870   modules/gui/pda/Makefile
5871   modules/gui/macosx/Makefile
5872   modules/gui/maemo/Makefile
5873   modules/gui/minimal_macosx/Makefile
5874   modules/gui/qnx/Makefile
5875   modules/gui/qt4/Makefile
5876   modules/gui/skins2/Makefile
5877   modules/gui/wince/Makefile
5878   modules/meta_engine/Makefile
5879   modules/misc/Makefile
5880   modules/misc/dummy/Makefile
5881   modules/misc/lua/Makefile
5882   modules/misc/memcpy/Makefile
5883   modules/misc/notify/Makefile
5884   modules/misc/testsuite/Makefile
5885   modules/misc/playlist/Makefile
5886   modules/misc/osd/Makefile
5887   modules/misc/stats/Makefile
5888   modules/misc/xml/Makefile
5889   modules/misc/probe/Makefile
5890   modules/mux/Makefile
5891   modules/mux/mpeg/Makefile
5892   modules/packetizer/Makefile
5893   modules/services_discovery/Makefile
5894   modules/stream_filter/Makefile
5895   modules/stream_out/Makefile
5896   modules/stream_out/transrate/Makefile
5897   modules/video_chroma/Makefile
5898   modules/video_filter/Makefile
5899   modules/video_filter/atmo/Makefile
5900   modules/video_filter/dynamicoverlay/Makefile
5901   modules/video_output/Makefile
5902   modules/video_output/msw/Makefile
5903   modules/video_output/qte/Makefile
5904   modules/video_output/x11/Makefile
5905   modules/visualization/Makefile
5906   modules/visualization/visual/Makefile
5907   modules/visualization/galaktos/Makefile
5908 ])
5909
5910 dnl Generate makefiles
5911 AC_OUTPUT
5912
5913 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5914 # not provided with the source
5915 ${SHELL} ./config.status --file=vlc-config
5916 chmod 0755 vlc-config
5917
5918 /bin/echo -n "Enabled modules: "
5919 ./vlc-config --list plugin
5920
5921 dnl Shortcut to nice compile message
5922 rm -f compile
5923 echo '#! /bin/sh' >compile
5924 echo rm -f .error\$\$ >>compile
5925 echo ERROR=0 >>compile
5926 echo export PATH=$PATH LANG=C >>compile
5927 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5928 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5929 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5930 echo rm -f .error\$\$ >>compile
5931 echo exit \$ERROR >>compile
5932 chmod a+x compile
5933
5934 printf "
5935 libvlc configuration
5936 --------------------
5937 version               : ${VERSION}
5938 system                : ${SYS}
5939 architecture          : ${ARCH}
5940 build flavour         : "
5941 test "${enable_debug}" = "yes" && printf "debug "
5942 test "${enable_cprof}" = "yes" && printf "cprof "
5943 test "${enable_gprof}" = "yes" && printf "gprof "
5944 test "${enable_optimizations}" = "yes" && printf "optim "
5945 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5946 echo ""
5947 if test "${enable_vlc}" != "no"; then
5948 echo "vlc aliases           :${ALIASES}"
5949 else
5950 echo "build vlc executable  : no"
5951 fi
5952 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5953
5954 You can tune the compiler flags in vlc-config.
5955 To build vlc and its plugins, type \`./compile' or \`make'.
5956 "
5957 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5958    echo ""
5959    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5960    echo "         turned off."
5961    echo "         FFmpeg will be REALLY slow."
5962    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5963    echo ""
5964 fi