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