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