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