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