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