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