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