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