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