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