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