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