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