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