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