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