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