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