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