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