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