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