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