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