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