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