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