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