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