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