]> 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.6], [
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
3769         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3770           [ac_cv_ld_bsymbolic],
3771           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3772             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3773             LDFLAGS="${LDFLAGS_save}"
3774           ])
3775         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3776           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3777         ])
3778
3779         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3780         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3781           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3782         fi
3783       ],[
3784         if test "${enable_x264}" = "yes"; then
3785             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3786           fi
3787       ])
3788     LDFLAGS="${LDFLAGS_save}"
3789   fi
3790 fi
3791
3792 dnl
3793 dnl libfluidsynth (MIDI synthetizer) plugin
3794 dnl
3795 AC_ARG_ENABLE(fluidsynth,
3796   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3797 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3798   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3799     VLC_ADD_PLUGIN(fluidsynth)
3800     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3801     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3802   ], [
3803     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3804       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3805     ])
3806   ])
3807 ])
3808
3809 dnl
3810 dnl Teletext Modules
3811 dnl vbi decoder plugin (using libzbvi)
3812 dnl telx module
3813 dnl uncompatible
3814 dnl
3815 AC_ARG_ENABLE(zvbi,
3816   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3817                   libzvbi (default enabled)]))
3818 AC_ARG_ENABLE(telx,
3819   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3820                   zvbi) (default enabled if zvbi is absent)]))
3821
3822 AS_IF( [test "${enable_zvbi}" != "no"],[
3823     PKG_CHECK_MODULES(ZVBI,
3824         zvbi-0.2 >= 0.2.25,
3825         [
3826           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3827           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3828           VLC_ADD_PLUGIN([zvbi])
3829           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3830           AS_IF( [test "${enable_telx}" = "yes"],[
3831                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3832                                Using zvbi.])
3833                   ])
3834         ],[
3835           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3836         ])
3837     ])
3838 AS_IF( [test "${enable_telx}" != "no" ],[
3839   VLC_ADD_PLUGIN([telx])
3840   ])
3841
3842 dnl
3843 dnl asa/csri subtitle rendering module
3844 dnl
3845 AC_ARG_ENABLE(csri,
3846   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3847 AS_IF( [test "${enable_csri}" = "yes"], [
3848   PKG_CHECK_MODULES(CSRI,
3849       csri >= 0.1.0,
3850       [
3851         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3852         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3853         VLC_ADD_PLUGIN([csri])
3854       ],[
3855         AC_MSG_WARN([CSRI helper library not found])
3856       ])
3857   ])
3858
3859 dnl
3860 dnl libass subtitle rendering module
3861 dnl
3862 AC_ARG_ENABLE(libass,
3863   [  --enable-libass         Subtitle support using libass (default disabled)])
3864 AS_IF( [test "${enable_libass}" = "yes"], [
3865   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3866       [
3867         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3868         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3869         VLC_ADD_PLUGIN([libass])
3870
3871         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3872           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3873         if test "${SYS}" = "mingw32"; then
3874            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz -lxml2])
3875         else
3876            VLC_ADD_LIBS([libass],[-lfontconfig])
3877         fi
3878        ])
3879       ],[
3880         AC_MSG_WARN([LIBASS library not found])
3881       ])
3882   ])
3883
3884 dnl
3885 dnl asa demuxer
3886 dnl
3887 AC_ARG_ENABLE(asademux,
3888   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3889 AS_IF( [test "${enable_asademux}" = "yes"], [
3890   PKG_CHECK_MODULES(PCRE,
3891       libpcre >= 6.5,
3892       [
3893         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3894         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3895         if test "${SYS}" = "mingw32"; then
3896                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3897         fi
3898         VLC_ADD_PLUGIN([asademux])
3899       ],[
3900         AC_MSG_WARN([PCRE library not found (required for asademux)])
3901       ])
3902   ])
3903
3904 dnl
3905 dnl  CMML plugin
3906 dnl
3907 AC_ARG_ENABLE(cmml,
3908   [  --enable-cmml           CMML support (default enabled)])
3909 if test "${enable_cmml}" != "no"
3910 then
3911   VLC_ADD_PLUGIN([cmml])
3912 fi
3913
3914 dnl
3915 dnl  kate decoder plugin
3916 dnl
3917 AC_ARG_ENABLE(kate,
3918 [  --enable-kate           kate codec (default enabled)])
3919 AS_IF([test "${enable_kate}" != "no"], [
3920   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3921       VLC_ADD_PLUGIN([kate])
3922       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3923       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3924         AC_CHECK_HEADERS(kate/kate.h, [
3925           AC_CHECK_LIB(kate, kate_decode_init, [
3926             VLC_ADD_PLUGIN([kate])
3927             kate_libs="-lkate -logg"
3928             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3929             AS_IF([test "x${enable_kate}" != "x"], [
3930               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3931               You also need to check that you have a libogg posterior to the 1.0 release.])
3932             ])
3933           ], [-lkate -logg])
3934         ],[
3935           AS_IF([test "x${enable_kate}" != "x"], [
3936             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3937             You also need to check that you have a libogg posterior to the 1.0 release.])
3938           ])
3939         ])
3940   ])
3941 ])
3942
3943
3944 dnl
3945 dnl  tiger decoder plugin
3946 dnl
3947 AC_ARG_ENABLE(tiger,
3948 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3949 AS_IF([test "${enable_tiger}" != "no"], [
3950   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3951       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3952       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3953       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3954         AS_IF([test "x${enable_tiger}" != "x"], [
3955           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3956         ])
3957   ])
3958 ])
3959
3960
3961 dnl
3962 dnl  Video plugins
3963 dnl
3964
3965 AC_ARG_WITH(,[Video plugins:])
3966
3967 dnl
3968 dnl  Xlib
3969 dnl
3970
3971 AC_PATH_XTRA()
3972 AC_ARG_ENABLE(x11,
3973   [  --enable-x11            X11 support (default enabled)],, [
3974   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3975     enable_x11="yes"
3976   ], [
3977     enable_x11="no"
3978   ])
3979 ])
3980
3981 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3982
3983 AS_IF([test "${enable_x11}" != "no"], [
3984   AC_CHECK_HEADERS(X11/Xlib.h, [
3985     VLC_ADD_PLUGIN([x11_screen])
3986     VLC_ADD_CPPFLAGS([x11_screen],[${X_CFLAGS}])
3987     VLC_ADD_LIBS([x11_screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3988
3989     VLC_ADD_PLUGIN([panoramix])
3990     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3991     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3992
3993     VLC_ADD_PLUGIN([x11])
3994     VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3995     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3996
3997     AC_CHECK_LIB(Xext, XShmAttach, [VLC_ADD_LIBS([x11],[-lXext])])
3998   ])
3999
4000 dnl Check for DPMS
4001   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
4002     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
4003     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
4004       AC_MSG_RESULT(yes)
4005       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
4006                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
4007     ],[
4008       AC_MSG_RESULT(no)
4009     ])
4010   ],,[
4011     #include <X11/Xlib.h>
4012   ])
4013 ])
4014
4015 dnl
4016 dnl  XVideo module
4017 dnl  (enabled by default except on win32)
4018 dnl
4019 AC_ARG_ENABLE(xvideo,
4020   [  --enable-xvideo         XVideo support (default enabled)],, [
4021     enable_xvideo="$enable_x11"
4022 ])
4023 AS_IF([test "${enable_xvideo}" != "no"], [
4024   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
4025     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4026     AC_CHECK_LIB(Xv,XvPutImage,[
4027         VLC_ADD_PLUGIN([xvideo])
4028         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4029         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
4030     ])
4031     CFLAGS="${CFLAGS_save}"
4032   ])
4033 ])
4034
4035 dnl
4036 dnl  GLX module
4037 dnl  (enabled by default except on win32)
4038 dnl
4039 AC_ARG_ENABLE(glx,
4040   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
4041   enable_glx="$enable_x11"
4042 ])
4043 AS_IF([test "${enable_glx}" != "no"], [
4044   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
4045   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
4046     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
4047     choke me
4048     #endif]]),
4049     [
4050       VLC_ADD_PLUGIN([glx])
4051       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
4052       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
4053     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
4054 ])
4055
4056 dnl
4057 dnl  XVMC module
4058 dnl  (disabled by default except on win32)
4059 dnl
4060 AC_ARG_ENABLE(xvmc,
4061   [  --enable-xvmc           XVMC support (default disabled)],, [
4062   enable_xvmc="no"
4063 ])
4064 AS_IF([test "${enable_xvmc}" != "no"], [
4065   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4066     VLC_ADD_PLUGIN([xvmc])
4067     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
4068     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
4069   ])
4070 ])
4071
4072 dnl
4073 dnl  Check for the Xinerama extension
4074 dnl
4075 AC_ARG_ENABLE(xinerama,
4076   [  --enable-xinerama       Xinerama support (default enabled)],, [
4077   enable_xinerama="$enable_xvideo"
4078 ])
4079 AS_IF([test "$enable_xinerama" != "no"], [
4080   ac_cv_have_xinerama="no"
4081   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4082   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4083     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4084       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4085       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4086       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4087       ac_cv_have_xinerama="yes"
4088     ],[
4089       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4090         VLC_ADD_LIBS([xvideo],[-lXinerama])
4091         VLC_ADD_LIBS([x11],[-lXinerama])
4092         VLC_ADD_LIBS([glx],[-lXinerama])
4093         ac_cv_have_xinerama="yes"
4094       ])
4095     ])
4096   ])
4097   if test "${ac_cv_have_xinerama}" = "yes"; then
4098     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4099   fi
4100
4101 dnl
4102 dnl  Check for XF86VidMode extension
4103 dnl
4104   ac_cv_have_xf86vidmode="no"
4105   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4106     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4107       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4108       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4109       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4110       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4111       ac_cv_have_xf86vidmode="yes"
4112     ],[
4113       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4114         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4115         VLC_ADD_LIBS([x11],[-lXxf86vm])
4116         VLC_ADD_LIBS([glx],[-lXxf86vm])
4117         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4118         ac_cv_have_xf86vidmode="yes"
4119       ])
4120     ])
4121   ],[true],
4122 [#ifdef HAVE_X11_XLIB_H
4123 # include <X11/Xlib.h>
4124 #endif]
4125    )
4126   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4127     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4128   ])
4129   CFLAGS="${CFLAGS_save}"
4130 ])
4131
4132 dnl End of Xlib tests
4133 CPPFLAGS="${CPPFLAGS_save}"
4134
4135
4136 dnl
4137 dnl  X C Bindings modules
4138 dnl  (work in progress)
4139 dnl
4140 AC_ARG_ENABLE(xcb,
4141   [  --enable-xcb            X C Bindings work-in-progress (default disabled)],
4142   ,[enable_xcb="no"])
4143 AS_IF([test "${enable_xcb}" != "no"], [
4144   PKG_CHECK_MODULES(XPROTO, [xproto])
4145
4146   dnl libxcb
4147   PKG_CHECK_MODULES(XCB, [xcb])
4148   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
4149
4150   dnl xcb-utils
4151   PKG_CHECK_MODULES(XCB_AUX, [xcb-aux])
4152   PKG_CHECK_MODULES(XCB_IMAGE, [xcb-image])
4153   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
4154
4155   VLC_ADD_PLUGIN([xcb])
4156   VLC_ADD_PLUGIN([xcb_window])
4157 ])
4158
4159 dnl
4160 dnl  OpenGL module
4161 dnl  (enabled by default except on beos)
4162 dnl
4163 AC_ARG_ENABLE(opengl,
4164   [  --enable-opengl         OpenGL support (default enabled)])
4165 if test "${enable_opengl}" != "no" &&
4166    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4167   if test "${SYS}" != "darwin"; then
4168     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4169       VLC_ADD_PLUGIN([opengl])
4170       if test "${SYS}" != "mingw32"; then
4171         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4172       else
4173         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4174       fi
4175     ])
4176   else
4177     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4178     VLC_ADD_PLUGIN([opengl])
4179     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4180   fi
4181 fi
4182
4183 dnl
4184 dnl  SDL module
4185 dnl
4186 AC_ARG_ENABLE(sdl,
4187   [  --enable-sdl            SDL support (default enabled)])
4188 AC_ARG_ENABLE(sdl-image,
4189   [  --enable-sdl-image      SDL image support (default enabled)])
4190 if test "${enable_sdl}" != "no"
4191 then
4192   SDL_PATH="${PATH}"
4193   AC_ARG_WITH(sdl-config-path,
4194     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4195     [ if test "${with_sdl_config_path}" != "no"
4196       then
4197         SDL_PATH="${with_sdl_config_path}:${PATH}"
4198       fi ])
4199   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4200   SDL_CONFIG="${SDL12_CONFIG}"
4201   SDL_HEADER="SDL12/SDL.h"
4202   SDL_IMAGE="SDL12/SDL_image.h"
4203   if test "${SDL_CONFIG}" = "no"
4204   then
4205     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4206     SDL_CONFIG=${SDL11_CONFIG}
4207     SDL_HEADER="SDL11/SDL.h"
4208     SDL_IMAGE="SDL11/SDL_image.h"
4209   fi
4210   if test "${SDL_CONFIG}" = "no"
4211   then
4212     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4213     SDL_HEADER="SDL/SDL.h"
4214     SDL_IMAGE="SDL/SDL_image.h"
4215   fi
4216   # check for cross-compiling
4217   SDL_PREFIX=
4218   AC_ARG_WITH(sdl-prefix,
4219     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4220                                e.g use as:
4221                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4222   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4223   then
4224     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4225   fi
4226   if test "${SDL_CONFIG}" != "no"
4227   then
4228     # SDL on Darwin is heavily patched and can only run SDL_image
4229     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4230       VLC_ADD_PLUGIN([vout_sdl])
4231       VLC_ADD_PLUGIN([aout_sdl])
4232     fi
4233     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4234     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4235     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4236     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4237       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4238       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4239           As a last resort we also test for SDL.h presence),
4240       [ AC_MSG_ERROR([The development package for SDL is not installed.
4241 Please install it and try again. Alternatively you can also configure with
4242 --disable-sdl.])
4243       ])])
4244     AS_IF([ test "${enable_sdl_image}" != "no"],[
4245       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4246         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4247         VLC_ADD_PLUGIN([sdl_image])
4248         AC_CHECK_LIB(png, png_set_rows,
4249           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4250         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4251           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4252         AC_CHECK_LIB(tiff, TIFFClientOpen,
4253           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4254         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4255         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4256             As a last resort we also test for SDL_image.h presence),
4257         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4258   You should install it alongside your SDL package.])
4259         ])])
4260     ])
4261     CPPFLAGS="${CPPFLAGS_save}"
4262     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4263     then
4264       AC_MSG_ERROR([The development package for SDL is not installed.
4265 Please install it and try again. Alternatively you can also configure with
4266 --disable-sdl.])
4267     fi
4268
4269   elif test "${enable_sdl}" =  "yes"
4270   then
4271     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4272 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4273     ])
4274   fi
4275 fi
4276
4277 dnl
4278 dnl  freetype module
4279 dnl
4280 AC_ARG_ENABLE(freetype,
4281   [  --enable-freetype       freetype support (default enabled)])
4282 AC_ARG_ENABLE(fribidi,
4283   [  --enable-fribidi        fribidi support (default enabled)])
4284 AC_ARG_ENABLE(fontconfig,
4285   [  --enable-fontconfig,    fontconfig support (default enabled)])
4286 if test "${enable_freetype}" != "no"
4287 then
4288    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4289       VLC_ADD_PLUGIN([freetype])
4290       have_freetype=yes
4291       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4292       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4293       if test "${SYS}" = "mingw32"; then
4294         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4295         VLC_ADD_LIBS([freetype],[-liconv])
4296       fi
4297       if test "${enable_fontconfig}" != "no"
4298       then
4299         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4300           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4301            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4302         AC_CHECK_HEADERS(Carbon/Carbon.h,
4303           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4304       fi
4305   ],[
4306   have_freetype=no
4307   AS_IF([ test "${enable_freetype}" =  "yes"],[
4308     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4309 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4310       ])
4311     ])
4312   ])
4313
4314   dnl fribidi support
4315   if test "${enable_fribidi}" != "no"
4316   then
4317     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4318       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4319       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4320     ])
4321     fi
4322 fi
4323
4324 dnl
4325 dnl  libxml2 module
4326 dnl
4327 AC_ARG_ENABLE(libxml2,
4328   [  --enable-libxml2        libxml2 support (default enabled)])
4329 AS_IF([test "${enable_libxml2}" != "no"], [
4330   PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5], [
4331     VLC_ADD_CPPFLAGS([xml],[${XML2_CFLAGS}])
4332     VLC_ADD_LIBS([xml],[${XML2_LIBS}])
4333     VLC_ADD_PLUGIN([xml])
4334   ], [
4335     AS_IF([test "x${enable_xml2}" != "x"], [
4336       AC_MSG_ERROR([Could not find libxml version 2.5 or higher])
4337     ])
4338   ])
4339 ])
4340
4341 dnl
4342 dnl  SVG module
4343 dnl
4344 AC_ARG_ENABLE(svg,
4345   [  --enable-svg            SVG support (default disabled)])
4346 if test "${enable_svg}" = "yes"
4347 then
4348   PKG_CHECK_MODULES(SVG,
4349         librsvg-2.0 >= 2.9.0,
4350         [
4351           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4352           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4353           VLC_ADD_PLUGIN([svg]) ],
4354         [AC_MSG_WARN(SVG library not found)])
4355 fi
4356
4357 dnl
4358 dnl Snapshot vout module (with cache)
4359 dnl
4360 AC_ARG_ENABLE(snapshot,
4361   [  --enable-snapshot       snapshot module (default disabled)])
4362 if test "${enable_snapshot}" = "yes"
4363 then
4364   VLC_ADD_PLUGIN([snapshot])
4365 fi
4366
4367 dnl
4368 dnl  Qt Embedded module
4369 dnl  (disabled by default)
4370 dnl
4371 AC_ARG_ENABLE(qte,
4372   [  --enable-qte            QT Embedded support (default disabled)])
4373 if test "${enable_qte}" = "yes"
4374 then
4375   AC_ARG_WITH(qte,
4376   [    --with-qte=PATH       Qt Embedded headers and libraries])
4377   if test "${with_qte}" != "no" -a -n "${with_qte}"
4378   then
4379     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4380     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])
4381   else
4382     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4383     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4384   fi
4385   VLC_ADD_PLUGIN([qte])
4386   NEED_QTE_MAIN=yes
4387   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4388   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4389     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4390   ] )
4391   CPPFLAGS="${CPPFLAGS_save}"
4392 fi
4393
4394 dnl
4395 dnl Roku HD1000 Video output module
4396 dnl
4397 AC_ARG_ENABLE(hd1000v,
4398   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4399 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4400   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4401    test "${enable_hd1000v}" = "yes"); then
4402   AC_LANG_PUSH([C++])
4403   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4404   [
4405     can_build_roku="yes"
4406   ],
4407   [
4408     can_build_roku="no"
4409     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4410   ])
4411   if test "$can_build_roku" = "yes"
4412   then
4413     VLC_ADD_PLUGIN([hd1000v])
4414     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4415   fi
4416   AC_LANG_POP([C++])
4417 fi
4418
4419 dnl
4420 dnl  Windows DirectX module
4421 dnl
4422
4423 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4424 then
4425   VLC_ADD_PLUGIN([panoramix])
4426 fi
4427
4428 AC_ARG_ENABLE(directx,
4429   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4430 if test "${enable_directx}" != "no"
4431 then
4432   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4433   then
4434     AC_ARG_WITH(directx,
4435     [    --with-directx=PATH   Win32 DirectX headers])
4436     if test -z "${with_directx}"
4437     then
4438       AC_CHECK_HEADERS(ddraw.h,
4439       [ VLC_ADD_PLUGIN([vout_directx])
4440         VLC_ADD_PLUGIN([aout_directx])
4441         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4442       ])
4443       AC_CHECK_HEADERS(GL/gl.h,
4444       [ VLC_ADD_PLUGIN([glwin32])
4445         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4446       ])
4447       AC_CHECK_HEADERS(d3d9.h,
4448       [ VLC_ADD_PLUGIN([direct3d])
4449         VLC_ADD_LIBS([direct3d],[-lgdi32])
4450       ])
4451     else
4452       AC_MSG_CHECKING(for directX headers in ${with_directx})
4453       if test -f ${with_directx}/ddraw.h
4454       then
4455         VLC_ADD_PLUGIN([vout_directx])
4456         VLC_ADD_PLUGIN([aout_directx])
4457         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4458         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4459         AC_MSG_RESULT(yes)
4460       else
4461         AC_MSG_RESULT(no)
4462         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4463       fi
4464     fi
4465   fi
4466 fi
4467
4468 dnl
4469 dnl  Linux framebuffer module
4470 dnl
4471 AC_ARG_ENABLE(fb,
4472   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4473     if test "${enable_fb}" != "no"
4474     then
4475       AC_CHECK_HEADERS(linux/fb.h, [
4476         VLC_ADD_PLUGIN([fb])
4477       ])
4478     fi
4479
4480 dnl
4481 dnl  Linux MGA module
4482 dnl
4483 AC_ARG_ENABLE(mga,
4484   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4485   [ if test "${enable_mga}" = "yes"
4486     then
4487       VLC_ADD_PLUGIN([mga])
4488     fi ])
4489
4490 dnl
4491 dnl  OMAP Framebuffer module
4492 dnl
4493 AC_ARG_ENABLE(omapfb,
4494   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4495     if test "${enable_omapfb}" = "yes"
4496     then
4497       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4498         VLC_ADD_PLUGIN([omapfb])
4499         AC_CHECK_HEADERS(X11/Xlib.h, [
4500           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4501       ])
4502     fi
4503
4504 dnl
4505 dnl  SVGAlib module
4506 dnl
4507 AC_ARG_ENABLE(svgalib,
4508   [  --enable-svgalib        SVGAlib support (default disabled)])
4509 if test "${enable_svgalib}" = "yes"
4510 then
4511   VLC_ADD_PLUGIN([svgalib])
4512   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4513 fi
4514
4515 dnl
4516 dnl  DirectFB module
4517 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4518 dnl  TODO: support for static linking
4519 dnl
4520 AC_ARG_ENABLE(directfb,
4521   [  --enable-directfb       DirectFB support (default disabled)])
4522 AC_ARG_WITH(directfb,
4523   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4524
4525 if test "${enable_directfb}" = "yes"; then
4526     have_directfb="false"
4527     CPPFLAGS_mydirectfb=
4528     LIBS_mydirectfb=
4529     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4530         dnl Trying the given location
4531         CPPFLAGS_save="${CPPFLAGS}"
4532         LIBS_save="${LIBS}"
4533
4534         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4535         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4536         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4537
4538         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4539         LIBS="${LIBS} ${LIBS_new}"
4540
4541         dnl FIXME: too obscure
4542         AC_CHECK_HEADER([directfb.h], [
4543             AC_CHECK_LIB([direct],[direct_initialize], [
4544                 AC_CHECK_LIB([fusion], [fusion_enter], [
4545                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4546                 ], have_directfb="false")
4547             ], have_directfb="false")
4548         ], have_directfb="false")
4549
4550         dnl Restore flags
4551         CPPFLAGS="${CPPFLAGS_save}"
4552         LIBS="${LIBS_save}"
4553
4554         if test "${have_directfb}" = "true"; then
4555             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4556             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4557         fi
4558     else
4559         dnl Look for directfb-config
4560         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4561         if test "${DIRECTFB_CONFIG}" != "no"; then
4562             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4563             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4564             have_directfb="true"
4565         else
4566             dnl Trying with pkg-config
4567             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4568                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4569                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4570                 have_directfb="true"
4571                 ], [have_directfb="false"])
4572         fi
4573     fi
4574     if test "${have_directfb}" = "true"; then
4575         VLC_ADD_PLUGIN([directfb])
4576         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4577         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4578     else
4579         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4580     fi
4581 fi
4582
4583
4584
4585 dnl
4586 dnl  GGI module
4587 dnl
4588 AC_ARG_ENABLE(ggi,
4589   [  --enable-ggi            GGI support (default disabled)])
4590 if test "${enable_ggi}" = "yes"
4591 then
4592   AC_CHECK_HEADER([ggi/ggi.h],[
4593     VLC_ADD_PLUGIN([ggi])
4594     VLC_ADD_LIBS([ggi],[-lggi])
4595     AC_ARG_WITH(ggi,
4596       [    --with-ggi=PATH       path to libggi],
4597       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4598         then
4599           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4600           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4601         fi ])
4602     ],[
4603        AC_MSG_ERROR([LibGGI development files can't be found])
4604     ])
4605 fi
4606
4607 dnl
4608 dnl  AA plugin
4609 dnl
4610 AC_ARG_ENABLE(aa,
4611   [  --enable-aa             aalib output (default disabled)])
4612 if test "${enable_aa}" = "yes"
4613 then
4614   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4615   if test "${have_aa}" = "true"
4616   then
4617     VLC_ADD_PLUGIN([aa])
4618     VLC_ADD_LIBS([aa],[-laa])
4619   fi
4620 fi
4621
4622 dnl
4623 dnl  libcaca plugin
4624 dnl
4625 AC_ARG_ENABLE(caca,
4626   [  --enable-caca           libcaca output (default disabled)])
4627 if test "${enable_caca}" = "yes"
4628 then
4629   CACA_PATH="${PATH}"
4630   AC_ARG_WITH(caca-config-path,
4631     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4632     [ if test "${with_caca_config_path}" != "no"
4633       then
4634         CACA_PATH="${with_caca_config_path}:${PATH}"
4635       fi ])
4636   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4637   if test "${CACA_CONFIG}" != "no"
4638   then
4639     VLC_ADD_PLUGIN([caca])
4640     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4641     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4642     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4643                                         caca_event_t ev;]],
4644                                         [[ev.type = 0;]]
4645                        )],
4646                        [],
4647       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4648     )
4649   fi
4650 fi
4651
4652 dnl
4653 dnl  win32 GDI plugin
4654 dnl
4655 AC_ARG_ENABLE(wingdi,
4656   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4657 if test "${enable_wingdi}" != "no"; then
4658   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4659     VLC_ADD_PLUGIN([wingdi])
4660     VLC_ADD_LIBS([wingdi],[-lgdi32])
4661   fi
4662   if test "${SYS}" = "mingwce"; then
4663     VLC_ADD_PLUGIN([wingdi])
4664     VLC_ADD_PLUGIN([wingapi])
4665     VLC_ADD_LIBS([wingdi],[-laygshell])
4666     VLC_ADD_LIBS([wingapi],[-laygshell])
4667   fi
4668 fi
4669
4670 dnl
4671 dnl  Audio plugins
4672 dnl
4673
4674 AC_ARG_WITH(,[Audio plugins:])
4675
4676 dnl
4677 dnl  OSS /dev/dsp module (enabled by default except on win32)
4678 dnl
4679 AC_ARG_ENABLE(oss,
4680   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4681
4682 if test "${enable_oss}" != "no" &&
4683   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4684    test "${enable_oss}" = "yes")
4685 then
4686   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4687     VLC_ADD_PLUGIN([oss])
4688     VLC_ADD_PLUGIN([access_oss])
4689     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4690   ])
4691 fi
4692
4693 dnl
4694 dnl  Pulseaudio module
4695 dnl
4696 AC_ARG_ENABLE(pulse,
4697   [  --enable-pulse          Pulseaudio support (default enabled)])
4698   if test "${enable_pulse}" != "no"
4699    then
4700      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4701        [ VLC_ADD_PLUGIN([pulse])
4702         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4703         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4704        [AC_MSG_WARN(pulseaudio library not found)])
4705    fi
4706
4707 dnl
4708 dnl  Portaudio module
4709 dnl
4710 AC_ARG_ENABLE(portaudio,
4711   [  --enable-portaudio      Portaudio library support (default disabled)],
4712   [if test "${enable_portaudio}" = "yes"
4713    then
4714      VLC_ADD_PLUGIN([portaudio])
4715      VLC_ADD_CXXFLAGS([portaudio],[])
4716      if test "${SYS}" = "mingw32"; then
4717         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4718      else
4719         VLC_ADD_LIBS([portaudio],[-lportaudio])
4720      fi
4721    fi])
4722
4723 dnl
4724 dnl  ALSA module
4725 dnl
4726 AC_ARG_ENABLE(alsa,
4727   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4728 if test "${enable_alsa}" != "no"
4729 then
4730   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4731   if test "${have_alsa}" = "true"
4732   then
4733     CFLAGS="${CFLAGS_save}"
4734     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4735                     #define ALSA_PCM_NEW_SW_PARAMS_API
4736                     #include <alsa/asoundlib.h>],
4737        [snd_pcm_hw_params_get_period_time(0,0,0);],
4738         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4739     VLC_ADD_PLUGIN([alsa])
4740     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4741     VLC_ADD_PLUGIN([access_alsa])
4742     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4743   else
4744     if test "${enable_alsa}" = "yes"; then
4745       AC_MSG_ERROR([Could not find ALSA development headers])
4746     fi
4747   fi
4748 fi
4749
4750 dnl
4751 dnl  win32 waveOut plugin
4752 dnl
4753 AC_ARG_ENABLE(waveout,
4754   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4755 if test "${enable_waveout}" != "no"; then
4756   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4757     VLC_ADD_PLUGIN([waveout])
4758     VLC_ADD_LIBS([waveout],[-lwinmm])
4759   fi
4760   if test "${SYS}" = "mingwce"; then
4761     VLC_ADD_PLUGIN([waveout])
4762   fi
4763 fi
4764
4765 dnl
4766 dnl  CoreAudio plugin
4767 dnl
4768 AC_ARG_ENABLE(macosx-audio,
4769   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4770 if test "${enable_macosx-audio}" != "no" &&
4771   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4772 then
4773   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4774     [ VLC_ADD_PLUGIN([auhal])
4775       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4776     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4777 fi
4778
4779 dnl
4780 dnl  Roku HD1000 audio
4781 dnl
4782 AC_ARG_ENABLE(hd1000a,
4783   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4784 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4785   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4786    test "${enable_hd1000a}" = "yes")
4787 then
4788   AC_LANG_PUSH([C++])
4789   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4790     VLC_ADD_PLUGIN([hd1000a])
4791     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4792   AC_LANG_POP([C++])
4793 fi
4794
4795 dnl
4796 dnl  JACK modules
4797 dnl
4798 AC_ARG_ENABLE(jack,
4799  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4800  [enable_jack="no"])
4801
4802 AS_IF([test "${enable_jack}" != "no"], [
4803   AC_CHECK_HEADERS(jack/jack.h, [
4804     VLC_ADD_PLUGIN([access_jack])
4805     VLC_ADD_PLUGIN([jack])
4806     VLC_ADD_LIBS([access_jack jack],[-ljack])
4807   ],[AC_MSG_ERROR([cannot find JACK headers])])
4808 ])
4809
4810 dnl
4811 dnl  CyberLink for C++ UPnP stack
4812 dnl
4813 AC_ARG_ENABLE(cyberlink,
4814   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4815   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4816   AC_ARG_WITH(cyberlink-tree,
4817     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4818
4819   dnl
4820   dnl test for --with-cyberlink-tree
4821   dnl
4822   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4823     AC_LANG_PUSH(C++)
4824     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4825     AS_IF([test -z "${real_cyberlink_tree}"], [
4826       dnl  The given directory can't be found
4827       AC_MSG_RESULT(no)
4828       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4829     ])
4830     CPPFLAGS_save="${CPPFLAGS}"
4831     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4832     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4833     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4834       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4835         VLC_ADD_PLUGIN([upnp_cc])
4836       ],[
4837         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4838       ])
4839     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4840     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4841       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4842       dnl The mere fact that we have to make such an ugly check sucks
4843       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4844       LIBS_save="$LIBS"
4845       LIBS_cclink="no"
4846       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4847         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4848         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4849 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4850 using namespace CyberLink;
4851
4852 class testclass : public SearchResponseListener, public MediaPlayer
4853 {
4854     virtual void deviceSearchResponseReceived( SSDPPacket *)
4855     {
4856     }
4857
4858     public:
4859       testclass (void)
4860       {
4861         addSearchResponseListener (this);
4862         start ();
4863       }
4864 };
4865 ],[testclass l;])],[LIBS_cclink="$l"])
4866       done
4867       LIBS="${LIBS_save}"
4868       dnl should not happen - otherwise this needs fixing - hence FAILURE
4869       AS_IF([test "${LIBS_cclink}" = "no"],
4870         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4871       AC_MSG_RESULT([${LIBS_cclink}])
4872       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4873     ], [
4874       AC_MSG_RESULT(no)
4875       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4876     ])
4877     CPPFLAGS="${CPPFLAGS_save}"
4878     AC_LANG_POP([C++])
4879   ])
4880 ])
4881
4882 dnl
4883 dnl UPnP Plugin (Intel SDK)
4884 dnl
4885 AC_ARG_ENABLE(upnp,
4886   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4887
4888 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4889 AS_IF([test "x${enable_upnp}" != "xno"], [
4890   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4891   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4892     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4893   ])
4894   AS_IF([test "${has_upnp}" = "yes"], [
4895     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4896   ])
4897 ], [
4898   has_upnp="no"
4899 ])
4900
4901 AS_IF([test "${has_upnp}" = "yes"], [
4902   VLC_ADD_PLUGIN([upnp_intel])
4903 ])
4904
4905
4906 dnl
4907 dnl  Interface plugins
4908 dnl
4909
4910 AC_ARG_WITH(,[Interface plugins:])
4911
4912 dnl special case for BeOS
4913 if test "${SYS}" = "beos"
4914 then
4915     VLC_ADD_PLUGIN([beos])
4916 fi
4917
4918 dnl
4919 dnl Skins2 module
4920 dnl
4921 AC_ARG_ENABLE(skins2,
4922   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4923    enabled except on MacOSX, BeOS and WinCE)])])
4924 if test "${enable_skins2}" = "yes" ||
4925   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4926    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4927
4928   dnl test for the required libraries
4929   skins2_missing_lib="no"
4930
4931   dnl freetype
4932   if test "${have_freetype}" != "yes"; then
4933     skins2_missing_lib="yes"
4934     if test "${enable_skins2}" = "yes"; then
4935       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4936     fi
4937   fi
4938
4939   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4940     VLC_ADD_PLUGIN([skins2])
4941     ALIASES="${ALIASES} svlc"
4942     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4943     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4944     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4945
4946   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4947     VLC_ADD_PLUGIN([skins2])
4948     ALIASES="${ALIASES} svlc"
4949     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4950     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4951     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4952
4953   else if test "${skins2_missing_lib}" = "no"; then
4954     VLC_ADD_PLUGIN([skins2])
4955     ALIASES="${ALIASES} svlc"
4956     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4957     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4958     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4959   fi fi fi
4960 fi
4961 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4962          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4963           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4964
4965 dnl
4966 dnl  PDA Gtk+2 module
4967 dnl
4968 AC_ARG_ENABLE(pda,
4969   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4970 if test "${enable_pda}" = "yes"
4971 then
4972   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4973   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4974   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4975   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4976   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4977   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4978   VLC_ADD_PLUGIN([pda])
4979   if test "${SYS}" != "mingw32"; then
4980     NEED_GTK2_MAIN=yes
4981     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4982     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4983   fi
4984 fi
4985 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4986
4987 dnl
4988 dnl Maemo
4989 dnl
4990 AC_ARG_ENABLE(maemo,
4991   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4992 if test "${enable_maemo}" = "yes"
4993 then
4994   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4995     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4996     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4997     VLC_ADD_PLUGIN([maemo])
4998     VLC_ADD_PLUGIN([swscale_maemo])
4999     AC_DEFINE([BUILD_MAEMO], 1, [Define if you're using Maemo interfaces])
5000     ALIASES="${ALIASES} mvlc"
5001   ], [
5002     AS_IF([test "${enable_maemo}" = "yes"],[
5003       AC_MSG_ERROR([Hildon libraries not found])
5004     ])
5005     enable_maemo="no"
5006   ])
5007 fi
5008 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
5009
5010 dnl
5011 dnl QT 4
5012 dnl
5013 AC_ARG_ENABLE(qt4,
5014   [  --enable-qt4            QT 4 support (default enabled) ],, [
5015   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
5016 ])
5017 AS_IF([test "${enable_qt4}" != "no"], [
5018   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.3.0], [
5019     VLC_ADD_PLUGIN([qt4])
5020     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5021     ALIASES="${ALIASES} qvlc"
5022     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
5023         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5024     ], [
5025         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5026     ])
5027     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
5028     AC_SUBST(QT4LOCALEDIR)
5029     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
5030     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5031     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5032     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5033   ], [
5034     AS_IF([test "${enable_qt4}" = "yes"],[
5035       AC_MSG_ERROR([Qt 4 library not found])
5036     ],[
5037       AC_MSG_WARN([Qt 4 library not found])
5038     ])
5039     enable_qt4="no"
5040   ])
5041 ])
5042 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
5043
5044 dnl
5045 dnl  WinCE GUI module
5046 dnl
5047 AC_ARG_ENABLE(wince,
5048   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
5049 if test "${enable_wince}" != "no"; then
5050   if test "${SYS}" = "mingwce"; then
5051     VLC_ADD_PLUGIN([wince])
5052     VLC_ADD_CXXFLAGS([wince],[])
5053     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5054     dnl Gross hack
5055     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5056   elif test "${SYS}" = "mingw32"; then
5057     VLC_ADD_CXXFLAGS([wince],[])
5058     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5059     dnl Gross hack
5060     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5061   fi
5062 fi
5063
5064 dnl
5065 dnl Simple test for skins2 dependency
5066 dnl
5067 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
5068   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.])
5069 ])
5070
5071 dnl
5072 dnl  Opie QT embedded module
5073 dnl
5074 AC_ARG_ENABLE(opie,
5075   [  --enable-opie           Qt embedded interface support (default disabled)],
5076   [if test "${enable_opie}" = "yes"; then
5077      AC_ARG_WITH(qte,
5078      [    --with-qte=PATH       Qt Embedded headers and libraries])
5079      if test "${with_qte}" != "no" -a -n "${with_qte}"
5080      then
5081        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5082        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])
5083      else
5084        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5085        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5086      fi
5087      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5088      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5089        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5090      ] )
5091      CPPFLAGS="${CPPFLAGS_save}"
5092
5093      VLC_ADD_PLUGIN([opie])
5094      NEED_QTE_MAIN=yes
5095      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5096      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5097      if test "${with_qte}" != "no" -a -n "${with_qte}"
5098      then
5099        MOC=${with_qte}/bin/moc
5100      else
5101        MOC=${QTDIR}/bin/moc
5102      fi
5103    fi])
5104
5105 dnl
5106 dnl  MacOS X video output/gui modules
5107 dnl
5108 AC_ARG_ENABLE(macosx,
5109   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5110 if test "x${enable_macosx}" = "xyes"
5111 then
5112   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5113   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
5114   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5115   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5116   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5117   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5118   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5119   dnl For bug report
5120   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
5121   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5122   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
5123   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5124   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5125   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5126   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5127
5128   VLC_ADD_PLUGIN([access_eyetv])
5129   VLC_ADD_PLUGIN([qtcapture])
5130   VLC_ADD_PLUGIN([macosx])
5131   VLC_ADD_PLUGIN([minimal_macosx])
5132
5133   ORIGCFLAGS=$CFLAGS
5134   CFLAGS="$CFLAGS -x objective-c"
5135   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>],,
5136   [VLC_ADD_PLUGIN([opengllayer])
5137   VLC_ADD_OBJCFLAGS([opengllayer])],[])
5138   CFLAGS=$ORIGCFLAGS
5139 fi
5140
5141 dnl
5142 dnl  QNX RTOS module
5143 dnl
5144 AC_ARG_ENABLE(qnx,
5145   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5146     if test "${enable_qnx}" != "no"
5147     then
5148       AC_CHECK_HEADERS(Ph.h, [
5149         VLC_ADD_PLUGIN([qnx])
5150         VLC_ADD_LIBS([qnx],[-lasound -lph])
5151       ])
5152     fi
5153
5154 dnl
5155 dnl  ncurses module
5156 dnl
5157 AC_ARG_ENABLE(ncurses,
5158   [  --disable-ncurses       ncurses interface support (default enabled)],
5159   [if test "${enable_ncurses}" != "no"; then
5160     AC_CHECK_HEADER(ncurses.h,
5161       [AC_CHECK_LIB(ncursesw, mvprintw,
5162         [VLC_ADD_PLUGIN([ncurses])
5163         VLC_ADD_LIBS([ncurses],[-lncursesw])
5164         ALIASES="${ALIASES} nvlc"
5165         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5166         AC_CHECK_LIB(ncursesw, tgetent, [],
5167           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5168             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5169               [AS_IF([test "x${enable_ncurses}" != "x"],
5170                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5171                )])])
5172             ]
5173           )
5174         )
5175         ],
5176         [AC_CHECK_LIB( ncurses, mvprintw,
5177           [VLC_ADD_PLUGIN([ncurses])
5178           ALIASES="${ALIASES} nvlc"
5179           VLC_ADD_LIBS([ncurses],[-lncurses])
5180           AC_CHECK_LIB(ncurses, tgetent, [],
5181             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5182               [AS_IF([test "x${enable_ncurses}" != "x"],
5183                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5184             )]
5185           )],
5186           [AS_IF([test "x${enable_ncurses}" != "x"], [
5187             AC_MSG_ERROR([libncurses not found])])]
5188         )]
5189       )]
5190     )
5191   fi]
5192 )
5193
5194 dnl
5195 dnl  XOSD plugin
5196 dnl
5197 AC_ARG_ENABLE(xosd,
5198   [  --enable-xosd           xosd interface support (default disabled)])
5199 if test "${enable_xosd}" = "yes"
5200 then
5201   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5202   AC_CHECK_LIB(xosd,xosd_set_offset,
5203       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5204     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5205         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5206       AC_TRY_COMPILE([#include <xosd.h>],
5207          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5208           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5209   if test "${have_xosd}" = "true"
5210   then
5211     VLC_ADD_PLUGIN([xosd])
5212     VLC_ADD_LIBS([xosd],[-lxosd])
5213   fi
5214 fi
5215
5216 dnl
5217 dnl Framebuffer (overlay) plugin
5218 dnl
5219 AC_ARG_ENABLE(fbosd,
5220   [  --enable-fbosd          fbosd interface support (default disabled)])
5221 if test "${enable_fbosd}" = "yes"
5222 then
5223   AC_CHECK_HEADERS(linux/fb.h, [
5224     VLC_ADD_PLUGIN([fbosd])
5225  ])
5226 fi
5227
5228 dnl
5229 dnl Visualisation plugin
5230 dnl
5231 AC_ARG_ENABLE(visual,
5232   [  --enable-visual         visualisation plugin (default enabled)])
5233 if test "${enable_visual}" != "no"
5234 then
5235     VLC_ADD_PLUGIN([visual])
5236 fi
5237
5238 dnl
5239 dnl OpenGL visualisation plugin
5240 dnl
5241 AC_ARG_ENABLE(galaktos,
5242   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5243 if test "${enable_galaktos}" = "yes"
5244 then
5245   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5246     VLC_ADD_PLUGIN([galaktos])
5247     if test "${SYS}" != "mingw32"; then
5248       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5249     else
5250       VLC_ADD_LIBS([galaktos],[-lopengl32])
5251     fi
5252   ])
5253 fi
5254
5255 dnl
5256 dnl  goom visualization plugin
5257 dnl
5258 AC_ARG_ENABLE(goom,
5259 [  --enable-goom           goom visualisation plugin (default disabled)])
5260 if test "${enable_goom}" = "yes"
5261 then
5262   AC_ARG_WITH(goom-tree,
5263     [    --with-goom-tree=PATH goom tree for static linking (required)])
5264
5265   dnl
5266   dnl test for --with-goom-tree
5267   dnl
5268   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5269     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5270     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5271     if test -z "${real_goom_tree}"; then
5272       dnl  The given directory can't be found
5273       AC_MSG_RESULT(no)
5274       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5275     fi
5276     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5277       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5278       VLC_ADD_PLUGIN([goom])
5279       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5280       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5281     else
5282       dnl  The given libgoom2 wasn't built, try to look for the old goom
5283       AC_MSG_RESULT(no)
5284       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5285       if test -f "${real_goom_tree}/libgoom.a"; then
5286         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5287         VLC_ADD_PLUGIN([goom])
5288         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5289         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5290       else
5291         dnl  The given libgoom wasn't built
5292         AC_MSG_RESULT(no)
5293         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5294       fi
5295     fi
5296   else
5297     AC_CHECK_HEADERS(goom/goom.h, [
5298       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5299       AC_CHECK_LIB(goom2, goom_init, [
5300         VLC_ADD_PLUGIN([goom])
5301         VLC_ADD_LIBS([goom],[-lgoom2])
5302       ],[
5303         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5304       ])
5305       LDFLAGS="${LDFLAGS_save}"
5306     ])
5307   fi
5308 fi
5309
5310 dnl
5311 dnl  AtmoLight (homebrew AmbiLight)
5312 dnl
5313 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5314    AC_ARG_ENABLE(atmo,
5315 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight)
5316                 (default enabled)]))
5317    if test "${enable_atmo}" != "no"; then
5318       AC_LANG_PUSH(C++)
5319       VLC_ADD_PLUGIN([atmo])
5320       AC_LANG_POP(C++)
5321    fi
5322 fi
5323
5324 dnl
5325 dnl  Bonjour services discovery
5326 dnl
5327 AC_ARG_ENABLE(bonjour,
5328   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5329 AS_IF([test "${enable_bonjour}" != "no"], [
5330   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5331     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5332     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5333     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5334     VLC_ADD_PLUGIN([bonjour])
5335   ], [
5336     AC_MSG_WARN(avahi-client library not found)
5337   ])
5338 ])
5339
5340 dnl
5341 dnl  Lirc plugin
5342 dnl
5343 AC_ARG_ENABLE(lirc,
5344   [  --enable-lirc           lirc support (default disabled)])
5345 if test "${enable_lirc}" = "yes"
5346 then
5347   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5348   if test "${have_lirc}" = "true"
5349   then
5350     VLC_ADD_PLUGIN([lirc])
5351     VLC_ADD_LIBS([lirc],[-llirc_client])
5352   fi
5353 fi
5354
5355 dnl
5356 dnl Global hotkeys using XCB
5357 dnl
5358 PKG_CHECK_MODULES(XCB, [xcb], [
5359   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
5360     PKG_CHECK_MODULES(XPROTO, [xproto], [
5361       VLC_ADD_PLUGIN([globalhotkeys])
5362       VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
5363       VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
5364     ], [ AC_MSG_WARN( [Xproto not found] ) ])
5365   ], [ AC_MSG_WARN( [XCB keysyms was not found]) ])
5366 ], [ AC_MSG_WARN( [XCB was not found]) ])
5367
5368 AC_ARG_WITH(,[Misc options:])
5369
5370 dnl
5371 dnl libgcrypt
5372 dnl
5373 AC_ARG_ENABLE(libgcrypt,
5374   [  --disable-libgcrypt      libgcrypts support (default enabled)])
5375 AS_IF([test "${enable_libgcrypt}" != "no"], [
5376   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5377 ])
5378 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5379   AS_IF([test "${have_libgcrypt}" = "yes"],[
5380     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5381   ])
5382 fi
5383 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5384
5385 dnl
5386 dnl TLS/SSL
5387 dnl
5388 AC_ARG_ENABLE(gnutls,
5389   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5390
5391 AS_IF([test "${enable_gnutls}" != "no"], [
5392   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5393     VLC_ADD_PLUGIN([gnutls])
5394     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5395     AS_IF([test "${SYS}" = "mingw32"], [
5396       dnl pkg-config --libs gnutls omits these
5397       VLC_ADD_LIBS([gnutls], [-lz])
5398       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5399     ])
5400     dnl The GnuTLS plugin invokes gcry_control directly.
5401     AS_IF([test "${have_libgcrypt}" = "yes"],[
5402       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5403       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5404     ])
5405     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5406   ], [
5407     AS_IF([test "${enable_gnutls}" = "yes"], [
5408       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5409     ])
5410   ])
5411 ])
5412
5413
5414 dnl
5415 dnl RemoteOSD plugin (VNC client as video filter)
5416 dnl
5417 AC_ARG_ENABLE(remoteosd,
5418   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5419
5420 AS_IF([test "${enable_remoteosd}" != "no"], [
5421   AS_IF([test "${have_libgcrypt}" = "yes"],[
5422     VLC_ADD_PLUGIN([remoteosd])
5423     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5424     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5425   ], [
5426     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5427   ])
5428 ])
5429
5430
5431 dnl
5432 dnl RAOP plugin
5433 dnl
5434 AC_MSG_CHECKING([whether to enable RAOP plugin])
5435 AS_IF([test "${have_libgcrypt}" = "yes"], [
5436   AC_MSG_RESULT(yes)
5437   VLC_ADD_PLUGIN([stream_out_raop])
5438   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS}])
5439   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5440 ], [
5441   AC_MSG_RESULT(no)
5442   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5443 ])
5444
5445
5446 dnl
5447 dnl update checking system
5448 dnl
5449 AC_ARG_ENABLE(update-check,
5450   [  --enable-update-check   update checking system (default disabled)])
5451 if test "${enable_update_check}" = "yes"
5452 then
5453   if test "${have_libgcrypt}" != "yes"
5454   then
5455     AC_MSG_ERROR([libgcrypt is required for update checking system])
5456   fi
5457   VLC_ADD_LIBS([libvlc], [${LIBGCRYPT_LIBS}])
5458   VLC_ADD_CFLAGS([libvlc], [${LIBGCRYPT_CFLAGS}])
5459   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5460 fi
5461
5462
5463 dnl
5464 dnl  Endianness check
5465 dnl
5466 AC_C_BIGENDIAN
5467 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5468   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5469 ], [
5470   DEFS_BIGENDIAN=""
5471 ])
5472 AC_SUBST(DEFS_BIGENDIAN)
5473
5474 dnl
5475 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5476 dnl
5477 loader=false
5478 AC_ARG_ENABLE(loader,
5479   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
5480                   (default disabled)]))
5481 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5482 AS_IF([test "${enable_loader}" = "yes"],
5483   [ VLC_ADD_PLUGIN([dmo])
5484     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
5485     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5486     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
5487     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5488     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5489     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
5490     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5491     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
5492   ])
5493
5494 AC_ARG_WITH(,[Components:])
5495
5496 dnl
5497 dnl  the VLC binary
5498 dnl
5499 AC_ARG_ENABLE(vlc,
5500   [  --enable-vlc            build the VLC media player (default enabled)])
5501 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5502
5503 dnl
5504 dnl  Microsoft ActiveX support
5505 dnl
5506 activex=false
5507 AC_ARG_ENABLE(activex,
5508   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
5509                   (default enabled on Win32)]))
5510 AC_ARG_WITH(wine-sdk-path,
5511   [    --with-wine-sdk-path=PATH path to wine sdk])
5512 if test "${enable_activex}" != "no"
5513 then
5514   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5515   then
5516     AC_CHECK_PROGS(MIDL, [midl], no)
5517     if test "${with_wine_sdk_path}" != ""
5518     then
5519        WINE_SDK_PATH=${with_wine_sdk_path}
5520        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5521     else
5522        WIDL=no
5523     fi
5524     AC_LANG_PUSH(C++)
5525     AC_CHECK_HEADERS(ole2.h,
5526       [AC_CHECK_HEADERS(olectl.h,
5527         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5528           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5529           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
5530           AC_CHECK_HEADERS(objsafe.h,
5531             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5532             [
5533              #if HAVE_OLE2_H
5534              #   include <ole2.h>
5535              #endif
5536             ]
5537           )
5538           activex=:
5539           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5540         ],
5541         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5542       )],
5543       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5544     )
5545     AC_LANG_POP(C++)
5546   fi
5547 fi
5548 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5549 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5550 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5551 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5552 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5553
5554 dnl
5555 dnl  Mozilla plugin
5556 dnl
5557 mozilla=false
5558 AC_ARG_ENABLE(mozilla,
5559   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5560                   (default disabled)]))
5561 AC_ARG_WITH(mozilla-sdk-path,
5562   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5563 AC_ARG_WITH(mozilla-pkg,
5564   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5565 AC_LANG_PUSH(C++)
5566 if test "${enable_mozilla}" = "yes"
5567 then
5568   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5569     [
5570     dnl pkg-config
5571     dnl As we want to do a loop due to the number of name possible for the .pc
5572     dnl we can't use the pkg-config macros.
5573
5574     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5575     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5576     AC_MSG_NOTICE([Checking for Mozilla])
5577     found=0
5578     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5579     then
5580       found=1
5581     else
5582       if test -n "$PKG_CONFIG"; then
5583         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5584           echo "Trying to find $i.pc files" >&5
5585           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5586           then
5587             echo "Using $i.pc files." >&5
5588             echo "Using $i.pc files." >&6
5589             found=1
5590             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5591             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5592             break
5593           fi
5594         done
5595       fi
5596     fi
5597     AS_IF( [test $found = 1],[
5598         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5599         MOZILLA_REQUIRED_HEADERS=1
5600         AC_CHECK_HEADERS([npfunctions.h])
5601         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5602         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5603           [#if HAVE_NPAPI_H
5604            # include <npapi.h>
5605            #endif
5606           ])
5607         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5608             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5609         fi
5610         MOZILLA_REQUIRED_HEADERS=
5611         mozilla=:
5612         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5613            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5614            AS_IF([ test "${SYS}" != "darwin"],[
5615              PKG_CHECK_MODULES(XPM, [xpm xt],[
5616                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5617              ],[
5618                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5619              ])
5620           ])
5621         ])
5622         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5623         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5624         VLC_ADD_PLUGIN([mozilla])
5625         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5626         MOZILLA_CONFIG=
5627         CPPFLAGS="${CPPFLAGS_save}"
5628           ],
5629           [
5630             AC_PATH_PROGS(MOZILLA_CONFIG,
5631             [mozilla-config seamonkey-config xulrunner-config],
5632             AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5633                   )
5634           ]
5635         )
5636     dnl pkg-config failed but we might have found a mozilla-config
5637     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5638       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5639         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5640         AC_CHECK_LIB(Xt,XtStrings,
5641          [
5642            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5643            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5644          ],
5645          [],
5646          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5647         ])
5648         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5649         LDFLAGS="${LDFLAGS_save}"
5650       fi
5651
5652       mozilla=:
5653       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5654       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5655       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5656       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5657       MOZILLA_REQUIRED_HEADERS=1
5658       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5659       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5660       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5661         [#if HAVE_NPAPI_H
5662          # include <npapi.h>
5663          #endif
5664         ])
5665       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5666       then
5667         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5668       fi
5669       MOZILLA_REQUIRED_HEADERS=
5670       CPPFLAGS="${CPPFLAGS_save}"
5671       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5672     ])
5673     dnl End of moz_sdk = ""
5674   ],[
5675     dnl special case for mingw32
5676     if test "${SYS}" = "mingw32"
5677     then
5678       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5679       dnl latest gecko sdk does not have an xpcom directory
5680       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5681           mozilla_sdk_xpcom="/xpcom"
5682       fi
5683     fi
5684
5685     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5686     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5687     MOZILLA_REQUIRED_HEADERS=1
5688     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5689     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5690     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5691         [#if HAVE_NPAPI_H
5692           #include <npapi.h>
5693           #endif
5694         ])
5695     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5696     then
5697         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5698     fi
5699     MOZILLA_REQUIRED_HEADERS=
5700     mozilla=:
5701     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5702     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])
5703     if ${need_xpcom_libs}; then
5704        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])
5705       if test "${SYS}" = "mingw32"; then
5706         dnl latest gecko sdk does not have embedstring
5707         if test -d "${real_mozilla_sdk}/embedstring/bin"
5708         then
5709           VLC_ADD_LIBS([mozilla],[-lembedstring])
5710         fi
5711       fi
5712     fi
5713     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5714
5715     if test -n "${CYGPATH}"; then
5716       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5717     fi
5718     CPPFLAGS="${CPPFLAGS_save}"
5719  ])
5720 fi
5721 AC_LANG_POP(C++)
5722 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5723
5724 dnl Tests for Osso and Xsp
5725 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5726   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5727     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5728     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5729  ])
5730 ])
5731 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5732   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5733   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5734 ])
5735
5736 dnl
5737 dnl  test plugins
5738 dnl
5739 AC_ARG_ENABLE(testsuite,
5740   [  --enable-testsuite      build test modules (default disabled)])
5741 if test "${enable_testsuite}" = "yes"
5742 then
5743   TESTS="test1 test2 test3 test4"
5744
5745   dnl  we define those so that bootstrap sets the right linker
5746   VLC_ADD_CXXFLAGS([test2],[])
5747   VLC_ADD_OBJCFLAGS([test3],[])
5748   dnl  this one is needed until automake knows what to do
5749   VLC_ADD_LIBS([test3],[-lobjc])
5750
5751   VLC_ADD_PLUGIN([test1])
5752   VLC_ADD_PLUGIN([test2])
5753   VLC_ADD_PLUGIN([test3])
5754   VLC_ADD_PLUGIN([test4])
5755 fi
5756
5757 dnl
5758 dnl  gtk_main plugin
5759 dnl
5760 if test "${NEED_GTK_MAIN}" != "no"
5761 then
5762     VLC_ADD_PLUGIN([gtk_main])
5763     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5764     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5765 fi
5766
5767 if test "${NEED_GNOME_MAIN}" != "no"
5768 then
5769     VLC_ADD_PLUGIN([gnome_main])
5770     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5771     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5772 fi
5773
5774 if test "${NEED_GTK2_MAIN}" != "no"
5775 then
5776     VLC_ADD_PLUGIN([gtk2_main])
5777     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5778     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5779     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5780     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5781 fi
5782
5783 if test "${NEED_GNOME2_MAIN}" != "no"
5784 then
5785     VLC_ADD_PLUGIN([gnome2_main])
5786     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5787     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5788 fi
5789
5790 dnl
5791 dnl  qte_main plugin
5792 dnl
5793 if test "${NEED_QTE_MAIN}" != "no"
5794 then
5795     VLC_ADD_PLUGIN([qte_main])
5796     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5797     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5798     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5799 fi
5800
5801 dnl
5802 dnl  Plugin and builtin checks
5803 dnl
5804 plugin_support=yes
5805
5806 dnl Automagically disable plugins if there is no system support for
5807 dnl dynamically loadable files (.so, .dll, .dylib).
5808 dnl don't forget vlc-win32 still can load .dll as plugins
5809 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5810   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5811   plugin_support=no
5812 ])
5813
5814 AS_IF([test "${plugin_support}" != "no"], [
5815   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5816 ])
5817
5818 dnl
5819 dnl Pic and shared libvlc stuff
5820 dnl
5821 AS_IF([test "${SYS}" = "mingw32"], [
5822   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5823   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5824 ])
5825
5826 dnl
5827 dnl  Stuff used by the program
5828 dnl
5829 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5830 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5831 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5832 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5833 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5834 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5835 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5836 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5837 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5838 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5839 AC_SUBST(COPYRIGHT_MESSAGE)
5840 AC_SUBST(VERSION_MESSAGE)
5841 AC_SUBST(VERSION_MAJOR)
5842 AC_SUBST(VERSION_MINOR)
5843 AC_SUBST(VERSION_REVISION)
5844 AC_SUBST(VERSION_EXTRA)
5845 AC_SUBST(COPYRIGHT_YEARS)
5846 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5847 if test "${build_os}" = "cygwin"
5848 then
5849     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5850 else
5851     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5852 fi
5853 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5854 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5855 dnl Win32 need s a numerical version_extra.
5856 case $( echo ${VERSION_EXTRA}|wc -m ) in
5857        "1") VERSION_EXTRA_RC="0";;
5858        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5859        *) VERSION_EXTRA_RC="99"
5860 esac
5861 AC_SUBST(VERSION_EXTRA_RC)
5862 dnl
5863 dnl  Handle substvars that use $(top_srcdir)
5864 dnl
5865 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5866 AC_SUBST(VLC_CONFIG)
5867 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5868
5869 dnl
5870 dnl  Restore *FLAGS
5871 dnl
5872 VLC_RESTORE_FLAGS
5873
5874 dnl
5875 dnl Sort the modules list
5876 dnl
5877 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5878
5879 dnl
5880 dnl  Create the vlc-config script
5881 dnl
5882 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5883
5884 dnl
5885 dnl  Configuration is finished
5886 dnl
5887 AC_SUBST(SYS)
5888 AC_SUBST(ARCH)
5889 AC_SUBST(ALIASES)
5890 AC_SUBST(ASM)
5891 AC_SUBST(MOC)
5892 AC_SUBST(RCC)
5893 AC_SUBST(UIC)
5894 AC_SUBST(WINDRES)
5895 AC_SUBST(MOZILLA_SDK_PATH)
5896 AC_SUBST(WINE_SDK_PATH)
5897 AC_SUBST(LIBEXT)
5898 AC_SUBST(AM_CPPFLAGS)
5899 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5900 AC_SUBST(FILE_LIBVLCCORE_DLL)
5901 AC_SUBST(FILE_LIBVLC_DLL)
5902
5903 dnl Create vlc-config.in
5904 VLC_OUTPUT_VLC_CONFIG_IN
5905
5906 AC_CONFIG_FILES([
5907   extras/package/win32/vlc.win32.nsi
5908   extras/package/macosx/Info.plist
5909   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5910   extras/package/macosx/plugin/Info.plist
5911   extras/package/macosx/plugin/InstallerInfo.plist
5912   Makefile
5913   projects/activex/Makefile
5914   projects/activex/axvlc.inf
5915   doc/Makefile
5916   extras/package/ipkg/Makefile
5917   libs/loader/Makefile
5918   libs/srtp/Makefile
5919   libs/unzip/Makefile
5920   modules/Makefile
5921   projects/mozilla/Makefile
5922   m4/Makefile
5923   po/Makefile.in
5924   projects/activex/axvlc_rc.rc
5925   projects/mozilla/npvlc_rc.rc
5926   projects/mozilla/vlc.r
5927   projects/mozilla/install.js
5928   share/Makefile
5929   share/vlc_win32_rc.rc
5930   share/libvlc_win32_rc.rc
5931   src/Makefile
5932   src/test/Makefile
5933   bin/Makefile
5934   test/Makefile
5935   modules/access/Makefile
5936   modules/access/bd/Makefile
5937   modules/access/bda/Makefile
5938   modules/access/dshow/Makefile
5939   modules/access/dvb/Makefile
5940   modules/access/mms/Makefile
5941   modules/access/cdda/Makefile
5942   modules/access/rtp/Makefile
5943   modules/access/rtsp/Makefile
5944   modules/access/rtmp/Makefile
5945   modules/access/vcd/Makefile
5946   modules/access/vcdx/Makefile
5947   modules/access/screen/Makefile
5948   modules/access/zip/Makefile
5949   modules/access_output/Makefile
5950   modules/audio_filter/Makefile
5951   modules/audio_filter/channel_mixer/Makefile
5952   modules/audio_filter/converter/Makefile
5953   modules/audio_filter/resampler/Makefile
5954   modules/audio_filter/spatializer/Makefile
5955   modules/audio_mixer/Makefile
5956   modules/audio_output/Makefile
5957   modules/codec/Makefile
5958   modules/codec/avcodec/Makefile
5959   modules/codec/cmml/Makefile
5960   modules/codec/dmo/Makefile
5961   modules/codec/shine/Makefile
5962   modules/codec/subtitles/Makefile
5963   modules/codec/spudec/Makefile
5964   modules/codec/wmafixed/Makefile
5965   modules/codec/xvmc/Makefile
5966   modules/control/Makefile
5967   modules/control/http/Makefile
5968   modules/control/globalhotkeys/Makefile
5969   modules/demux/Makefile
5970   modules/demux/asf/Makefile
5971   modules/demux/avformat/Makefile
5972   modules/demux/avi/Makefile
5973   modules/demux/mkv/Makefile
5974   modules/demux/mp4/Makefile
5975   modules/demux/mpeg/Makefile
5976   modules/demux/playlist/Makefile
5977   modules/gui/Makefile
5978   modules/gui/beos/Makefile
5979   modules/gui/pda/Makefile
5980   modules/gui/macosx/Makefile
5981   modules/gui/maemo/Makefile
5982   modules/gui/minimal_macosx/Makefile
5983   modules/gui/qnx/Makefile
5984   modules/gui/qt4/Makefile
5985   modules/gui/skins2/Makefile
5986   modules/gui/wince/Makefile
5987   modules/meta_engine/Makefile
5988   modules/misc/Makefile
5989   modules/misc/dummy/Makefile
5990   modules/misc/lua/Makefile
5991   modules/misc/memcpy/Makefile
5992   modules/misc/notify/Makefile
5993   modules/misc/testsuite/Makefile
5994   modules/misc/playlist/Makefile
5995   modules/misc/osd/Makefile
5996   modules/misc/stats/Makefile
5997   modules/misc/xml/Makefile
5998   modules/misc/probe/Makefile
5999   modules/mux/Makefile
6000   modules/mux/mpeg/Makefile
6001   modules/packetizer/Makefile
6002   modules/services_discovery/Makefile
6003   modules/stream_filter/Makefile
6004   modules/stream_out/Makefile
6005   modules/stream_out/transrate/Makefile
6006   modules/video_chroma/Makefile
6007   modules/video_filter/Makefile
6008   modules/video_filter/atmo/Makefile
6009   modules/video_filter/dynamicoverlay/Makefile
6010   modules/video_output/Makefile
6011   modules/video_output/msw/Makefile
6012   modules/video_output/qte/Makefile
6013   modules/video_output/x11/Makefile
6014   modules/visualization/Makefile
6015   modules/visualization/visual/Makefile
6016   modules/visualization/galaktos/Makefile
6017 ])
6018
6019 dnl Generate makefiles
6020 AC_OUTPUT
6021
6022 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6023 # not provided with the source
6024 ${SHELL} ./config.status --file=vlc-config
6025 chmod 0755 vlc-config
6026
6027 /bin/echo -n "Enabled modules: "
6028 ./vlc-config --list plugin
6029
6030 dnl Shortcut to nice compile message
6031 rm -f compile
6032 echo '#! /bin/sh' >compile
6033 echo rm -f .error\$\$ >>compile
6034 echo ERROR=0 >>compile
6035 echo export PATH=$PATH LANG=C >>compile
6036 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
6037 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
6038 echo test -f .error\$\$ \&\& ERROR=1 >>compile
6039 echo rm -f .error\$\$ >>compile
6040 echo exit \$ERROR >>compile
6041 chmod a+x compile
6042
6043 printf "
6044 libvlc configuration
6045 --------------------
6046 version               : ${VERSION}
6047 system                : ${SYS}
6048 architecture          : ${ARCH}
6049 build flavour         : "
6050 test "${enable_debug}" = "yes" && printf "debug "
6051 test "${enable_cprof}" = "yes" && printf "cprof "
6052 test "${enable_gprof}" = "yes" && printf "gprof "
6053 test "${enable_optimizations}" = "yes" && printf "optim "
6054 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6055 echo ""
6056 if test "${enable_vlc}" != "no"; then
6057 echo "vlc aliases           :${ALIASES}"
6058 else
6059 echo "build vlc executable  : no"
6060 fi
6061 echo "plugins/bindings      :${PLUGINS_BINDINGS}
6062
6063 You can tune the compiler flags in vlc-config.
6064 To build vlc and its plugins, type \`./compile' or \`make'.
6065 "
6066 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6067    echo ""
6068    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6069    echo "         turned off."
6070    echo "         FFmpeg will be REALLY slow."
6071    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6072    echo ""
6073 fi