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