]> git.sesse.net Git - vlc/blob - configure.ac
Qt: uniformize ui previews, drop xml declaration related to changes made by 2779ac98f...
[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,Carbon,-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      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1774      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1775      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1776   fi
1777 fi
1778 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1779
1780 dnl
1781 dnl HTTP daemon
1782 dnl
1783 AC_ARG_ENABLE(httpd,
1784   [  --enable-httpd          HTTP daemon (default enabled)])
1785 if test "${enable_httpd}" != "no"
1786 then
1787   VLC_ADD_PLUGIN([http])
1788   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1789 fi
1790 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1791
1792 dnl
1793 dnl libproxy support
1794 dnl
1795 AC_ARG_ENABLE(libproxy,
1796   [  --enable-libproxy       libproxy support (default auto)])
1797 AS_IF([test "${enable_libproxy}" != "no"], [
1798   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1799     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1800     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1801     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1802   ], [
1803     AS_IF([test "x${enable_libproxy}" != "x"], [
1804       AC_MSG_ERROR([libproxy could not be found on your system])
1805     ])
1806   ])
1807 ])
1808
1809
1810 dnl
1811 dnl VideoLAN manager
1812 dnl
1813 AC_ARG_ENABLE(vlm,
1814   [  --enable-vlm            VideoLAN manager (default enabled)],,
1815   [enable_vlm="${enable_sout}"])
1816 AS_IF([test "${enable_vlm}" != "no"], [
1817   AS_IF([test "${enable_sout}" = "no"], [
1818     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1819   ])
1820   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1821   VLC_ADD_PLUGIN([telnet])
1822 ])
1823 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1824
1825 dnl
1826 dnl Growl notification plugin
1827 dnl
1828 AC_ARG_ENABLE(growl,
1829   [  --enable-growl          growl notification plugin (default disabled)],,
1830   [enable_growl=no])
1831 AS_IF([test "${enable_growl}" != "no"], [
1832     VLC_ADD_PLUGIN([growl_udp])
1833     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1834       VLC_ADD_PLUGIN([growl])
1835       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1836     ])
1837   ]
1838 )
1839
1840 dnl
1841 dnl Libnotify notification plugin
1842 dnl
1843 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1844
1845 dnl
1846 dnl Audioscrobbler plugin
1847 dnl
1848
1849 AC_ARG_ENABLE(audioscrobbler,
1850   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1851 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1852         VLC_ADD_PLUGIN([audioscrobbler])
1853   ])
1854
1855 dnl
1856 dnl Taglibplugin
1857 dnl
1858 AC_ARG_ENABLE(taglib,
1859   [  --disable-taglib        Taglib support (default enabled) ])
1860   AS_IF([test "${enable_taglib}" != "no"],[
1861     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1862       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1863         VLC_ADD_PLUGIN([taglib])
1864         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1865        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1866       [AC_MSG_WARN(TagLib library not found)])
1867   ])
1868
1869 dnl
1870 dnl  Input plugins
1871 dnl
1872
1873 AC_ARG_WITH(,[Input plugins:])
1874
1875 dnl  live555 input
1876 dnl
1877 if test "${enable_livedotcom}"
1878 then
1879   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1880 fi
1881 if test "${enable_livedotcom}" = "no"
1882 then
1883   enable_live555="no"
1884 fi
1885
1886 AC_ARG_ENABLE(live555,
1887 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1888 if test "${enable_live555}" != "no"; then
1889   AC_ARG_WITH(live555-tree,
1890     [    --with-live555-tree=PATH live.com tree for static linking])
1891
1892   dnl
1893   dnl test for --with-live555-tree
1894   dnl
1895   if test "${with_livedotcom_tree}"
1896   then
1897     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1898   with_live555_tree="${with_livedotcom_tree}"
1899   fi
1900
1901   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1902     AC_LANG_PUSH(C++)
1903     CPPFLAGS_save="${CPPFLAGS}"
1904     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1905     if test "${SYS}" = "solaris"; then
1906       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1907     fi
1908     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1909
1910     AC_CHECK_HEADERS(liveMedia_version.hh, [
1911       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1912       AC_EGREP_CPP(yes,
1913         [#include <liveMedia_version.hh>
1914          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1915          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1916          yes
1917          #endif
1918          #endif],
1919         [AC_MSG_RESULT([no])
1920          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1921 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1922       ],[
1923          AC_MSG_RESULT([yes])
1924          ])
1925     ])
1926      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1927      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1928       if test "${SYS}" = "mingw32"; then
1929         # add ws2_32 for closesocket, select, recv
1930         other_libs="$other_libs -lws2_32"
1931       fi
1932     dnl We need to check for pic because live555 don't provide shared libs
1933     dnl and we want to build a plugins so we need -fPIC on some arch.
1934     AC_CHECK_HEADERS(liveMedia.hh, [
1935       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1936         AC_CHECK_LIB(liveMedia_pic, main, [
1937           VLC_ADD_PLUGIN([live555])
1938          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1939          ],[
1940         AC_CHECK_LIB(liveMedia, main, [
1941           VLC_ADD_PLUGIN([live555])
1942           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1943         ],[],[${other_libs}]) ],[${other_libs_pic}])
1944     ],[
1945        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1946     ])
1947     CPPFLAGS="${CPPFLAGS_save}"
1948     AC_LANG_POP(C++)
1949   else
1950     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1951     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1952     if test -z "${real_live555_tree}"; then
1953       dnl  The given directory can't be found
1954       AC_MSG_RESULT(no)
1955       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1956     fi
1957     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1958       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1959
1960       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1961         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1962         AC_EGREP_CPP(yes,
1963           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1964            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1965            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1966            yes
1967            #endif
1968            #endif],
1969           [AC_MSG_RESULT([no])
1970            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1971 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1972         ],[
1973            AC_MSG_RESULT([yes])
1974            ])
1975       ])
1976
1977       VLC_ADD_PLUGIN([live555])
1978
1979       if test "${SYS}" = "mingw32"; then
1980         # add ws2_32 for closesocket, select, recv
1981         VLC_ADD_LIBS([live555],[-lws2_32])
1982       fi
1983
1984       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1985       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1986       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1987       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1988
1989       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1990       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1991       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1992       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1993       if test "${SYS}" = "solaris"; then
1994         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1995       fi
1996     else
1997       dnl  The given live555 wasn't built
1998         AC_MSG_RESULT(no)
1999       if test "${enable_live555}" = "yes"; then
2000         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
2001       fi        
2002     fi
2003   fi
2004 fi
2005
2006 dnl
2007 dnl - special access module for dc1394 input
2008 dnl - dv module: digital video module check for libraw1394
2009 dnl
2010 PKG_ENABLE_MODULES_VLC([dc1394], [], [libraw1394 >= 2.0.1 libdc1394 >= 1.0.0], [dc1394 access module], [auto])
2011 PKG_ENABLE_MODULES_VLC([dv], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
2012
2013 dnl
2014 dnl dvdread module: check for libdvdread
2015 dnl
2016 AC_ARG_ENABLE(dvdread,
2017 [  --enable-dvdread        dvdread input module (default disabled)])
2018 if test "${enable_dvdread}" != "no"
2019 then
2020   AC_ARG_WITH(dvdread,
2021   [    --with-dvdread=PATH   libdvdread headers and libraries])
2022   AC_ARG_WITH(dvdread-tree,
2023   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2024
2025   dnl Temporary hack (yeah, sure ;)
2026   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2027       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2028   fi
2029
2030   if test -z "${with_dvdread}"
2031   then
2032     if test -z "${with_dvdread_tree}"
2033     then
2034       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2035         [ VLC_ADD_PLUGIN([dvdread])
2036           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2037         ],[
2038           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2039             [ VLC_ADD_PLUGIN([dvdread])
2040               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2041             ],[
2042               if test -n "${enable_dvdread}"
2043               then
2044               AC_MSG_ERROR([cannot find libdvdread headers])
2045              fi
2046            ])
2047         ])
2048     else
2049       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2050       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2051       if test -z "${real_dvdread_tree}"
2052       then
2053         dnl  The given directory can't be found
2054         AC_MSG_RESULT(no)
2055         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2056       fi
2057       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2058       then
2059         dnl  Use a custom libdvdread
2060         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2061         VLC_ADD_PLUGIN([dvdread])
2062         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2063         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2064       else
2065         dnl  The given libdvdread wasn't built
2066         AC_MSG_RESULT(no)
2067         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2068       fi
2069     fi
2070   else
2071     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2072     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2073     then
2074       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2075       AC_MSG_RESULT(yes)
2076       VLC_ADD_PLUGIN([dvdread])
2077       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2078       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2079     else
2080       dnl  No libdvdread could be found, sorry
2081       AC_MSG_RESULT(no)
2082       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2083     fi
2084   fi
2085 fi
2086
2087 dnl
2088 dnl  libdvdnav plugin
2089 dnl
2090 AC_ARG_ENABLE(dvdnav,
2091   [  --enable-dvdnav         dvdnav input module (default enabled)])
2092 if test "${enable_dvdnav}" != "no"
2093 then
2094   dnl Same hack than dvdread
2095   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2096       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2097   fi
2098
2099   DVDNAV_PATH="${PATH}"
2100   AC_ARG_WITH(dvdnav-config-path,
2101     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2102     [ if test "${with_dvdnav_config_path}" != "no"
2103       then
2104         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2105       fi ])
2106   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2107   if test "${DVDNAV_CONFIG}" != "no"
2108   then
2109     VLC_ADD_PLUGIN([dvdnav])
2110     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2111     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2112   fi
2113 fi
2114
2115 dnl
2116 dnl  Windows DirectShow access module
2117 dnl
2118 AC_ARG_ENABLE(dshow,
2119   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2120 if test "${enable_dshow}" != "no"
2121 then
2122   if test "${SYS}" = "mingw32"
2123   then
2124     AC_LANG_PUSH(C++)
2125       AC_CHECK_HEADERS(dshow.h,
2126       [ VLC_ADD_PLUGIN([dshow])
2127         VLC_ADD_CXXFLAGS([dshow],[])
2128         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2129     AC_LANG_POP(C++)
2130   fi
2131 fi
2132
2133 dnl
2134 dnl  Windows DirectShow BDA access module
2135 dnl
2136 AC_ARG_ENABLE(bda,
2137   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2138                   enabled on Win32)]))
2139 if test "${enable_bda}" != "no"
2140 then
2141   if test "${SYS}" = "mingw32"
2142   then
2143       AC_CHECK_HEADERS(dshow.h,
2144       [ VLC_ADD_PLUGIN([bda])
2145         VLC_ADD_CXXFLAGS([bda],[])
2146         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2147   fi
2148 fi
2149
2150
2151 dnl
2152 dnl  OpenCV wrapper and example filters
2153 dnl
2154 AC_ARG_ENABLE(opencv,
2155   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2156 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2157 then
2158   AC_ARG_WITH(opencv-tree,
2159   [    --with-opencv-tree=PATH opencv tree for linking])
2160     if test "${SYS}" = "mingw32"
2161     then
2162       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2163       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2164       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2165         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2166       then
2167         AC_MSG_RESULT(yes)
2168         VLC_ADD_PLUGIN([opencv_wrapper])
2169         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2170         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])
2171         AC_LANG_PUSH(C++)
2172         VLC_ADD_PLUGIN([opencv_example])
2173         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2174         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])
2175         AC_LANG_POP(C++)
2176       else
2177         dnl  No opencv could be found, sorry
2178         AC_MSG_RESULT(no)
2179         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2180       fi
2181     else
2182       PKG_CHECK_MODULES(OPENCV, opencv,
2183         [
2184           VLC_ADD_PLUGIN([opencv_example])
2185           VLC_ADD_PLUGIN([opencv_wrapper])
2186           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2187           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2188           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2189         ],
2190         [AC_MSG_ERROR([libopencv not found!])]
2191       )
2192     fi
2193 fi
2194
2195
2196 dnl
2197 dnl  libsmbclient plugin
2198 dnl
2199 AC_ARG_ENABLE(smb,
2200   [  --enable-smb            smb input module (default enabled)])
2201 if test "${enable_smb}" != "no"; then
2202   AC_CHECK_HEADERS(libsmbclient.h,
2203     [ VLC_ADD_PLUGIN([access_smb])
2204       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2205     [ if test -n "${enable_smb}"; then
2206         AC_MSG_ERROR([cannot find libsmbclient headers])
2207      fi ])
2208 fi
2209
2210 dnl
2211 dnl  libdvbpsi ts demux/mux
2212 dnl
2213 AC_ARG_ENABLE(dvbpsi,
2214   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2215 have_dvbpsi=no
2216 if test "${enable_dvbpsi}" != "no"
2217 then
2218   AC_ARG_WITH(dvbpsi,
2219   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2220   AC_ARG_WITH(dvbpsi,
2221   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2222   case "${with_dvbpsi}" in
2223   ""|yes)
2224     if test -z "${with_dvbpsi_tree}"
2225     then
2226       AC_CHECK_HEADERS(dvbpsi/dr.h,
2227         [ VLC_ADD_PLUGIN([ts])
2228           if test "${enable_sout}" != "no"; then
2229             VLC_ADD_PLUGIN([mux_ts])
2230           fi
2231           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2232           have_dvbpsi=yes],
2233         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2234         [#if defined( HAVE_STDINT_H )
2235 #   include <stdint.h>
2236 #elif defined( HAVE_INTTYPES_H )
2237 #   include <inttypes.h>
2238 #endif
2239 #include <dvbpsi/dvbpsi.h>
2240 #include <dvbpsi/descriptor.h>
2241 #include <dvbpsi/pat.h>
2242 #include <dvbpsi/pmt.h>])
2243     else
2244       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2245       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2246       if test -z "${real_dvbpsi_tree}"
2247       then
2248         dnl  The given directory can't be found
2249         AC_MSG_RESULT(no)
2250         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2251       fi
2252       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2253       then
2254         dnl  Use a custom libdvbpsi
2255         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2256         VLC_ADD_PLUGIN([ts])
2257         if test "${enable_sout}" != "no"; then
2258           VLC_ADD_PLUGIN([mux_ts])
2259         fi
2260         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2261         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2262         have_dvbpsi=yes
2263       else
2264         dnl  The given libdvbpsi wasn't built
2265         AC_MSG_RESULT(no)
2266         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2267       fi
2268     fi
2269   ;;
2270   no)
2271     dnl  Compile without dvbpsi
2272   ;;
2273   *)
2274     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2275     if test -z "${with_dvbpsi}"
2276     then
2277       LDFLAGS_test=""
2278       CPPFLAGS_test=""
2279     else
2280       LDFLAGS_test="-L${with_dvbpsi}/lib"
2281       CPPFLAGS_test="-I${with_dvbpsi}/include"
2282     fi
2283     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2284     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2285       VLC_ADD_PLUGIN([ts])
2286       if test "${enable_sout}" != "no"; then
2287         VLC_ADD_PLUGIN([mux_ts])
2288       fi
2289       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2290       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2291       have_dvbpsi=yes
2292     ],[
2293       if test -n "${enable_dvbpsi}"
2294       then
2295         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])
2296       fi
2297     ],
2298     [#if defined( HAVE_STDINT_H )
2299 #   include <stdint.h>
2300 #elif defined( HAVE_INTTYPES_H )
2301 #   include <inttypes.h>
2302 #endif
2303 #include <dvbpsi/dvbpsi.h>
2304 #include <dvbpsi/descriptor.h>
2305 #include <dvbpsi/pat.h>
2306 #include <dvbpsi/pmt.h>])
2307     CPPFLAGS="${CPPFLAGS_save}"
2308   ;;
2309   esac
2310   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2311     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2312   ], [], [${LIBS_ts}])
2313
2314 fi
2315
2316 dnl
2317 dnl  Video4Linux plugin
2318 dnl
2319 AC_ARG_ENABLE(v4l,
2320   [  --enable-v4l            Video4Linux input support (default disabled)])
2321 if test "${enable_v4l}" = "yes"
2322 then
2323   AC_ARG_WITH(v4l,
2324     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2325   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2326   then
2327     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2328   fi
2329
2330   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2331   AC_CHECK_HEADERS(linux/videodev.h, [
2332     VLC_ADD_PLUGIN([v4l])
2333   ],[])
2334   CPPFLAGS="${CPPFLAGS_save}"
2335 fi
2336
2337 dnl
2338 dnl  Video4Linux2 plugin
2339 dnl
2340 AC_ARG_ENABLE(v4l2,
2341   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2342 if test "${enable_v4l2}" != "no"
2343 then
2344   AC_ARG_WITH(v4l2,
2345     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2346   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2347   then
2348     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2349   fi
2350
2351   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2352   AC_CHECK_HEADERS(linux/videodev2.h, [
2353     VLC_ADD_PLUGIN([v4l2])
2354   ],[])
2355   CPPFLAGS="${CPPFLAGS_save}"
2356 fi
2357
2358 dnl
2359 dnl libv4l2 support for video4linux.
2360 dnl
2361 AC_ARG_ENABLE( libv4l2,
2362   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2363 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2364 then
2365     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2366       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2367       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2368       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2369       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2370     )
2371 fi
2372
2373 dnl
2374 dnl  special access module for Hauppauge PVR cards
2375 dnl
2376 AC_ARG_ENABLE(pvr,
2377   [  --enable-pvr            PVR cards access module (default disabled)])
2378 if test "${enable_pvr}" = "yes"
2379 then
2380   VLC_ADD_PLUGIN([pvr])
2381   AC_ARG_WITH(videodev2,
2382     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2383   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2384   then
2385     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2386   fi
2387
2388   AC_CACHE_CHECK([for new linux/videodev2.h],
2389       [ac_cv_new_linux_videodev2_h],
2390       [AC_TRY_COMPILE([
2391           #include <sys/types.h>
2392           #   ifdef VIDEODEV2_H_FILE
2393           #   include VIDEODEV2_H_FILE
2394           #   else
2395           #   include <linux/videodev2.h>
2396           #   endif
2397           ],
2398           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2399           ac_cv_new_linux_videodev2_h=yes,
2400           ac_cv_new_linux_videodev2_h=no)])
2401   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2402     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2403   fi
2404 fi
2405
2406 dnl
2407 dnl  gnomeVFS access module
2408 dnl
2409 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2410
2411
2412 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2413 AC_ARG_ENABLE(libcdio,
2414   [  --enable-libcdio        CD input and control library support (default enabled)])
2415
2416 AC_ARG_ENABLE(vcdinfo,
2417   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2418
2419 have_libcdio=no
2420 have_libvcdinfo=no
2421 if test "${enable_libcdio}" != "no"
2422 then
2423   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2424      have_libcdio=yes
2425      AC_DEFINE(HAVE_LIBCDIO, 1,
2426      [Define if you have libcdio 0.78.2 or greater installed]),
2427      [AC_MSG_WARN(CD Reading and information library not found)])
2428
2429   if test "${enable_vcdinfo}" != "no"
2430   then
2431     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2432        [have_libvcdinfo=yes
2433        AC_DEFINE(HAVE_VCDINFO, 1,
2434        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2435        [AC_MSG_WARN(VCD information library not found)])
2436   fi
2437 fi
2438
2439 dnl
2440 dnl  VCDX and CDDAX modules
2441 dnl
2442 AC_ARG_ENABLE(cddax,
2443   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2444                   via libcdio (default disabled)]))
2445
2446 AC_ARG_ENABLE(libcddb,
2447   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2448
2449 if test "${enable_cddax}" = "yes"
2450 then
2451   if test "$have_libcdio" = "yes"
2452   then
2453     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2454     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2455     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2456     VLC_ADD_PLUGIN([cddax])
2457     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2458     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2459     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2460   else
2461     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2462     HAVE_CDDAX=no
2463   fi
2464
2465   if test "$enable_libcddb" != "no"; then
2466     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2467       HAVE_LIBCDDB=yes
2468       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2469       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2470       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2471       ],
2472       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2473       HAVE_LIBCDDB=no])
2474   fi
2475
2476 fi
2477
2478 AC_ARG_ENABLE(vcdx,
2479   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2480
2481 if test "${enable_vcdx}" = "yes"
2482 then
2483   if test "${have_libvcdinfo}" = "yes"
2484   then
2485     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2486     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2487   else
2488     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2489     HAVE_VCDX=no
2490   fi
2491
2492   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2493    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2494     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2495     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2496     HAVE_VCDX=no])
2497
2498   if test "$have_libvcdinfo" = "yes"
2499   then
2500     AC_DEFINE(HAVE_VCDX, 1,
2501     [Define for the VCD plugin using libcdio/libvcdinfo])
2502     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2503     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2504     VLC_ADD_PLUGIN([vcdx])
2505   else
2506     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2507     HAVE_VCDX=no
2508   fi
2509 fi
2510
2511 dnl
2512 dnl  Built-in CD-DA and VCD module
2513 dnl
2514 AC_ARG_ENABLE(cdda,
2515   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2516
2517 AC_ARG_ENABLE(vcd,
2518   [  --enable-vcd            built-in VCD (default enabled)])
2519
2520 if test "${enable_vcd}" != "no"
2521 then
2522   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2523   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2524     AC_MSG_RESULT(yes)
2525     VLC_ADD_PLUGIN([vcd])
2526     VLC_ADD_PLUGIN([cdda])
2527   ],[
2528     AC_MSG_RESULT(no)
2529   ])
2530
2531   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2532   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2533     AC_MSG_RESULT(yes)
2534     VLC_ADD_PLUGIN([vcd])
2535     VLC_ADD_PLUGIN([cdda])
2536     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2537   ],[
2538     AC_MSG_RESULT(no)
2539   ])
2540
2541   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2542   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2543     AC_MSG_RESULT(yes)
2544     VLC_ADD_PLUGIN([vcd])
2545     VLC_ADD_PLUGIN([cdda])
2546     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2547   ],[
2548     AC_MSG_RESULT(no)
2549   ])
2550
2551   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2552   then
2553     VLC_ADD_PLUGIN([vcd])
2554     VLC_ADD_PLUGIN([cdda])
2555   fi
2556
2557   if test "${SYS}" = "darwin"
2558   then
2559     VLC_ADD_PLUGIN([vcd])
2560     VLC_ADD_PLUGIN([cdda])
2561     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2562     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2563   fi
2564
2565   if test "$enable_libcddb" != "no"; then
2566     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2567       HAVE_LIBCDDB=yes
2568       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2569       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2570       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2571       ],:
2572       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2573       HAVE_LIBCDDB=no])
2574   fi
2575 fi
2576
2577 dnl
2578 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2579 dnl
2580 AC_ARG_ENABLE(dvb,
2581   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2582
2583 if test "${enable_dvb}" != "no"
2584 then
2585     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2586     AC_ARG_WITH(dvb,
2587      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2588      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2589      then
2590        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2591      fi
2592      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2593      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2594      VLC_ADD_PLUGIN([dvb])
2595      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2596      CPPFLAGS="${CPPFLAGS_save}"
2597    ],[
2598      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2599     ])
2600 fi
2601
2602 dnl
2603 dnl  Screen capture module
2604 dnl
2605 AC_ARG_ENABLE(screen,
2606   [  --enable-screen         Screen capture support (default enabled)])
2607 if test "${enable_screen}" != "no"; then
2608   if test "${SYS}" = "darwin"; then
2609     AC_CHECK_HEADERS(OpenGL/gl.h, [
2610       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2611         VLC_ADD_PLUGIN([screen])
2612         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2613       ])
2614     ])
2615   elif test "${SYS}" = "mingw32"; then
2616     VLC_ADD_PLUGIN([screen])
2617     VLC_ADD_LIBS([screen],[-lgdi32])
2618   elif test "${SYS}" = "mingwce"; then
2619     CPPFLAGS="${CPPFLAGS_save}"
2620   elif test "${SYS}" = "beos"; then
2621     VLC_ADD_PLUGIN([screen])
2622     VLC_ADD_CXXFLAGS([screen],[])
2623     VLC_ADD_LIBS([screen],[-lbe])
2624   fi
2625 fi
2626
2627 dnl
2628 dnl  ipv6 plugin - not for QNX yet
2629 dnl
2630 have_ipv6=no
2631 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2632   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2633 ])
2634
2635 AS_IF([test "${have_ipv6}" = "yes"], [
2636   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2637
2638
2639 AC_CHECK_FUNCS(inet_ntop,[
2640   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2641
2642
2643 dnl
2644 dnl  ogg demux plugin
2645 dnl
2646 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2647 if test "${enable_sout}" != "no"; then
2648     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2649 else
2650     AM_CONDITIONAL(HAVE_MUX_OGG, 0)
2651 fi
2652
2653 if test "${enable_sout}" != "no"; then
2654 dnl Check for libshout
2655 PKG_ENABLE_MODULES_VLC([shout], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2656 else
2657     AM_CONDITIONAL(HAVE_shout, 0)
2658 fi
2659
2660 dnl
2661 dnl  matroska demux plugin
2662 dnl
2663 AC_ARG_ENABLE(mkv,
2664   [  --enable-mkv            Matroska demux support (default enabled)])
2665 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2666   AC_LANG_PUSH(C++)
2667   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2668     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2669     AC_EGREP_CPP(yes,
2670       [#include <ebml/EbmlVersion.h>
2671        #ifdef LIBEBML_VERSION
2672        #if LIBEBML_VERSION >= 0x000706
2673        yes
2674        #endif
2675        #endif],
2676       [AC_MSG_RESULT([yes])
2677         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2678           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2679           AC_EGREP_CPP(yes,
2680             [#include <matroska/KaxVersion.h>
2681              #ifdef LIBMATROSKA_VERSION
2682              #if LIBMATROSKA_VERSION >= 0x000705
2683              yes
2684              #endif
2685              #endif],
2686             [AC_MSG_RESULT([yes])
2687               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2688               VLC_ADD_CXXFLAGS([mkv],[])
2689               if test "${SYS}" = "darwin"; then
2690                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2691               fi
2692               AC_CHECK_LIB(ebml_pic, main, [
2693                 VLC_ADD_PLUGIN([mkv])
2694                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2695               ],
2696                 AC_CHECK_LIB(ebml, main, [
2697                   VLC_ADD_PLUGIN([mkv])
2698                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2699                 ])
2700               )
2701             ],
2702             [AC_MSG_RESULT([no])
2703               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.])
2704           ])
2705         ])
2706       ],
2707       [AC_MSG_RESULT([no])
2708         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.])
2709     ])
2710   ])
2711   AC_LANG_POP(C++)
2712 fi
2713
2714 dnl
2715 dnl  modplug demux plugin
2716 dnl
2717 AC_ARG_ENABLE(mod,
2718   [  --enable-mod            Mod demux support (default enabled)])
2719 if test "${enable_mod}" != "no"
2720 then
2721   AC_ARG_WITH(mod-tree,
2722   [    --with-mod-tree=PATH mod tree for static linking])
2723   if test -n "${with_mod_tree}"
2724   then
2725     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2726     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2727     if test -z "${real_mod_tree}"
2728     then
2729       dnl  The given directory can't be found
2730       AC_MSG_RESULT(no)
2731       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2732     fi
2733     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2734     then
2735       dnl  Use a custom mod
2736       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2737       VLC_ADD_PLUGIN([mod])
2738       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2739       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2740     else
2741       dnl  The given mod wasn't built
2742       AC_MSG_RESULT(no)
2743       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2744     fi
2745   else
2746     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2747       VLC_ADD_PLUGIN([mod])
2748       VLC_ADD_CXXFLAGS([mod],[])
2749       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2750   fi
2751 fi
2752
2753 dnl
2754 dnl  mpc demux plugin
2755 dnl
2756 AC_ARG_ENABLE(mpc,
2757   [  --enable-mpc            Mpc demux support (default enabled)])
2758 if test "${enable_mpc}" != "no"
2759 then
2760   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2761     VLC_ADD_PLUGIN([mpc])
2762     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2763     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2764     VLC_ADD_PLUGIN([mpc])
2765     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2766 fi
2767
2768 dnl
2769 dnl  game music emu demux plugin
2770 dnl
2771 AC_ARG_ENABLE(gme,
2772   [  --enable-gme            Game Music Emu demux support (default enabled)])
2773 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2774 then
2775   AC_LANG_PUSH(C++)
2776   AC_ARG_WITH(gme-tree,
2777   [    --with-gme-tree=PATH gme tree for static linking])
2778   if test -n "${with_gme_tree}"
2779   then
2780     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2781     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2782     if test -z "${real_gme_tree}"
2783     then
2784       dnl  The given directory can't be found
2785       AC_MSG_RESULT(no)
2786       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2787     fi
2788     if test -f "${real_gme_tree}/gme/libgme.a"
2789     then
2790       dnl  Use a custom gme
2791       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2792       VLC_ADD_PLUGIN([gme])
2793       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2794       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2795     else
2796       dnl  The given gme wasn't built
2797       AC_MSG_RESULT(no)
2798       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2799     fi
2800   else
2801       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2802   fi
2803   AC_LANG_POP(C++)
2804 fi
2805
2806 dnl
2807 dnl  Codec plugins
2808 dnl
2809
2810 AC_ARG_WITH(,[Codec plugins:])
2811
2812 dnl
2813 dnl wmafixed plugin
2814 dnl
2815 AC_ARG_ENABLE(wma-fixed,
2816   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2817 if test "${enable_wma_fixed}" = "yes"
2818 then
2819   VLC_ADD_PLUGIN([wma_fixed])
2820 fi
2821
2822 dnl
2823 dnl shine fixed point mp3 encoder
2824 dnl
2825 AC_ARG_ENABLE(shine,
2826   [  --enable-shine          shine mp3 encoding module (default disabled)])
2827 if test "${enable_shine}" = "yes"
2828 then
2829   VLC_ADD_PLUGIN([shine])
2830 fi
2831
2832 dnl
2833 dnl  mad plugin
2834 dnl
2835 AC_ARG_ENABLE(mad,
2836   [  --enable-mad            libmad module (default enabled)])
2837 if test "${enable_mad}" != "no"
2838 then
2839   AC_ARG_WITH(mad,
2840     [    --with-mad=PATH       path to libmad],[],[])
2841   if test "${with_mad}" != "no" -a -n "${with_mad}"
2842   then
2843     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2844     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2845   fi
2846
2847   AC_ARG_WITH(mad-tree,
2848     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2849   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2850   then
2851     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2852     if test -z "${real_mad_tree}"
2853     then
2854       dnl  The given directory can't be found
2855       AC_MSG_RESULT(no)
2856       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2857     fi
2858     dnl  Use a custom libmad
2859     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2860     if test -f ${real_mad_tree}/mad.h
2861     then
2862       AC_MSG_RESULT(yes)
2863       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2864       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2865       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2866       AC_CHECK_LIB(mad, mad_bit_init, [
2867         VLC_ADD_PLUGIN([mpgatofixed32])
2868         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2869         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2870       ],[])
2871       LDFLAGS="${LDFLAGS_save}"
2872     else
2873       AC_MSG_RESULT(no)
2874       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2875     fi
2876   else
2877     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2878     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2879     AC_CHECK_HEADERS(mad.h, ,
2880       [ 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.]) ])
2881     AC_CHECK_LIB(mad, mad_bit_init, [
2882       VLC_ADD_PLUGIN([mpgatofixed32])
2883       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2884       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2885     CPPFLAGS="${CPPFLAGS_save}"
2886     LDFLAGS="${LDFLAGS_save}"
2887   fi
2888 fi
2889
2890 dnl
2891 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2892 dnl
2893 AC_ARG_ENABLE( id3tag,
2894 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2895 AS_IF([test "${enable_id3tag}" = "yes"], [
2896   AC_CHECK_HEADERS(id3tag.h, [
2897       AS_IF([test "${have_zlib}" = "yes"],[
2898           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2899           VLC_ADD_PLUGIN([id3tag])
2900        ])
2901     ])
2902 ])
2903
2904 AC_ARG_ENABLE(merge-ffmpeg,
2905 [  --enable-merged-ffmpeg  merge FFmpeg-based plugins (default disabled)],, [
2906   enable_merge_ffmpeg="no"
2907 ])
2908 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2909
2910 dnl
2911 dnl  avcodec decoder/encoder plugin
2912 dnl
2913
2914 if test "${with_ffmpeg_tree}"
2915 then
2916   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2917 fi
2918
2919 AC_ARG_ENABLE(avcodec,
2920 [  --enable-avcodec        libavcodec codec (default enabled)])
2921 if test "${enable_avcodec}" != "no"
2922 then
2923   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2924     [
2925       VLC_SAVE_FLAGS
2926       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2927       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2928       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2929       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2930       VLC_ADD_PLUGIN([avcodec])
2931       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2932       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2933       VLC_RESTORE_FLAGS
2934       have_avcodec="yes"
2935     ],[
2936       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2937   ])
2938 fi
2939
2940 dnl
2941 dnl stream_out switcher needs libavcodec
2942 dnl
2943 AC_ARG_ENABLE(switcher,
2944   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2945 AS_IF([test "${enable_switcher}" = "yes"], [
2946   AS_IF([test "x${have_avcodec}" = "xyes"], [
2947     VLC_ADD_PLUGIN([stream_out_switcher])
2948     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2949     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2950   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2951   ])
2952 ])
2953
2954
2955 dnl
2956 dnl  avformat demuxer/muxer plugin
2957 dnl
2958
2959 AC_ARG_ENABLE(avformat,
2960 [  --enable-avformat       libavformat containers (default enabled)])
2961 if test "${enable_avformat}" != "no"
2962 then
2963   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2964     [
2965       VLC_SAVE_FLAGS
2966       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2967       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2968       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2969       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2970       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2971         VLC_ADD_PLUGIN([avformat])
2972         VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2973         VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2974       ], [
2975         VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2976         VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2977       ])
2978       VLC_RESTORE_FLAGS
2979     ],[
2980       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2981   ])
2982 fi
2983
2984 dnl
2985 dnl  swscale image scaling and conversion plugin
2986 dnl
2987
2988 AC_ARG_ENABLE(swscale,
2989   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2990                   (default enabled)]))
2991 if test "${enable_swscale}" != "no"
2992 then
2993   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2994     [
2995       VLC_SAVE_FLAGS
2996       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2997       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2998       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2999       VLC_ADD_PLUGIN([swscale])
3000       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3001       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3002       VLC_RESTORE_FLAGS
3003     ],[
3004       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.])
3005   ])
3006 fi
3007
3008 dnl
3009 dnl  postproc plugin
3010 dnl
3011
3012 AC_ARG_ENABLE(postproc,
3013 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3014 if test "${enable_postproc}" != "no"
3015 then
3016   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3017     [
3018       VLC_SAVE_FLAGS
3019       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3020       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3021       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3022       VLC_ADD_PLUGIN([postproc])
3023       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
3024       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
3025       VLC_RESTORE_FLAGS
3026     ],[
3027       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
3028   ])
3029 fi
3030
3031 dnl
3032 dnl  faad decoder plugin
3033 dnl
3034 AC_ARG_ENABLE(faad,
3035 [  --enable-faad           faad codec (default disabled)])
3036 if test "${enable_faad}" = "yes"
3037 then
3038   AC_ARG_WITH(faad-tree,
3039   [    --with-faad-tree=PATH faad tree for static linking])
3040   if test -n "${with_faad_tree}"
3041   then
3042     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3043     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3044     if test -z "${real_faad_tree}"
3045     then
3046       dnl  The given directory can't be found
3047       AC_MSG_RESULT(no)
3048       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3049     fi
3050     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3051     then
3052       dnl  Use a custom faad
3053       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3054       VLC_ADD_PLUGIN([faad])
3055       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3056       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3057     else
3058       dnl  The given libfaad wasn't built
3059       AC_MSG_RESULT(no)
3060       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3061     fi
3062   else
3063     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3064     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3065     AC_CHECK_HEADERS(faad.h, ,
3066       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3067     AC_CHECK_LIB(faad, faacDecOpen, [
3068       VLC_ADD_PLUGIN([faad])
3069       VLC_ADD_LIBS([faad],[-lfaad]) ],
3070       AC_CHECK_LIB(faad, NeAACDecOpen, [
3071         VLC_ADD_PLUGIN([faad])
3072         VLC_ADD_LIBS([faad],[-lfaad]) ],
3073         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3074     LDFLAGS="${LDFLAGS_save}"
3075     CPPFLAGS="${CPPFLAGS_save}"
3076   fi
3077 fi
3078
3079 dnl
3080 dnl twolame encoder plugin
3081 dnl
3082 PKG_ENABLE_MODULES_VLC([twolame], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
3083
3084 dnl
3085 dnl  QuickTime plugin
3086 dnl
3087 AC_ARG_ENABLE(quicktime,
3088   [  --enable-quicktime      QuickTime module (deprecated)])
3089 if test "${enable_quicktime}" = "yes"; then
3090   if test "${SYS}" = "mingw32"; then
3091     VLC_ADD_PLUGIN([quicktime])
3092   else
3093   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3094     [ VLC_ADD_PLUGIN([quicktime])
3095       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3096     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3097   fi
3098 fi
3099
3100 dnl
3101 dnl  Real plugin
3102 dnl
3103 AC_ARG_ENABLE(real,
3104   [  --enable-real           Real media module (default disabled)])
3105 if test "${enable_real}" = "yes"; then
3106   VLC_ADD_PLUGIN([realaudio])
3107   VLC_ADD_PLUGIN([realvideo])
3108 fi
3109
3110 dnl
3111 dnl  Real RTSP plugin
3112 dnl
3113 AC_ARG_ENABLE(realrtsp,
3114   [  --enable-realrtsp       Real RTSP module (default disabled)])
3115 if test "${enable_realrtsp}" = "yes"; then
3116   VLC_ADD_PLUGIN([access_realrtsp])
3117 fi
3118
3119 AC_ARG_ENABLE(libsysfs,
3120   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3121
3122 AS_IF([test "${enable_libsysfs}" != "no"],[
3123   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3124     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3125   ] )
3126 ])
3127
3128 dnl
3129 dnl skins2 module
3130 dnl
3131 AC_ARG_ENABLE(libtar,
3132   [  --enable-libtar         libtar support for skins2 (default enabled)])
3133
3134 AS_IF([test "${enable_libtar}" != "no"],[
3135   AC_CHECK_HEADERS(libtar.h, [
3136     VLC_ADD_LIBS([skins2],[-ltar])
3137   ] )
3138 ])
3139
3140 dnl
3141 dnl A52/AC3 decoder plugin
3142 dnl
3143 AC_ARG_ENABLE(a52,
3144   [  --enable-a52            A/52 support with liba52 (default enabled)])
3145 if test "${enable_a52}" != "no"
3146 then
3147   AC_ARG_WITH(a52,
3148     [    --with-a52=PATH       a52 headers and libraries])
3149   AC_ARG_WITH(a52-tree,
3150     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3151   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3152   then
3153     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3154     if test -z "${real_a52_tree}"
3155     then
3156       dnl  The given directory can't be found
3157       AC_MSG_RESULT(no)
3158       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3159     fi
3160     dnl  Use a custom a52dec
3161     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3162     if test -f ${real_a52_tree}/include/a52.h
3163     then
3164       AC_MSG_RESULT(yes)
3165       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3166       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3167       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3168       AC_CHECK_LIB(a52, a52_free, [
3169         VLC_ADD_PLUGIN([a52tofloat32])
3170         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3171         VLC_ADD_LIBS([a52tofloat32],[-la52])
3172         ],[
3173         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3174         then
3175           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3176         else
3177           AC_MSG_ERROR([the specified tree hasn't been compiled])
3178         fi
3179       ])
3180       LDFLAGS="${LDFLAGS_save}"
3181     else
3182       AC_MSG_RESULT(no)
3183       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3184     fi
3185   else
3186     if test -z "${with_a52}"
3187     then
3188       LDFLAGS_test=""
3189       CPPFLAGS_test=""
3190     else
3191       LDFLAGS_test="-L${with_a52}/lib"
3192       CPPFLAGS_test="-I${with_a52}/include"
3193     fi
3194     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3195     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3196     AC_CHECK_HEADERS(a52dec/a52.h, [
3197       AC_CHECK_LIB(a52, a52_free, [
3198         VLC_ADD_PLUGIN([a52tofloat32])
3199         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3200         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3201       ],[
3202         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.])
3203         ])
3204     ],[
3205       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.])
3206     ])
3207     CPPFLAGS="${CPPFLAGS_save}"
3208     LDFLAGS="${LDFLAGS_save}"
3209   fi
3210 fi
3211
3212 AC_ARG_WITH(a52-fixed,
3213       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3214       [
3215         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3216
3217 dnl
3218 dnl DTS Coherent Acoustics decoder plugin
3219 dnl
3220 AS_IF([test "x${enable_dts}" != "x"], [
3221   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3222 ])
3223 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3224
3225 dnl
3226 dnl  Flac plugin
3227 dnl
3228 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3229
3230 dnl
3231 dnl  Libmpeg2 plugin
3232 dnl
3233 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3234
3235 dnl
3236 dnl  Vorbis plugin
3237 dnl
3238 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3239
3240 dnl
3241 dnl  Tremor plugin
3242 dnl
3243 AC_ARG_ENABLE(tremor,
3244   [  --enable-tremor         Tremor decoder support (default disabled)])
3245 if test "${enable_tremor}" = "yes"
3246 then
3247   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3248     VLC_ADD_PLUGIN([tremor])
3249     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3250    ],[])
3251 fi
3252
3253 dnl
3254 dnl  Speex plugin
3255 dnl
3256 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3257
3258 dnl
3259 dnl  tarkin decoder plugin
3260 dnl
3261 AC_ARG_ENABLE(tarkin,
3262 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3263 if test "${enable_tarkin}" = "yes"
3264 then
3265   AC_ARG_WITH(tarkin-tree,
3266   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3267   if test -n "${with_tarkin_tree}"
3268   then
3269     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3270     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3271     if test -f "${real_tarkin_tree}/tarkin.o"
3272     then
3273       VLC_ADD_PLUGIN([tarkin])
3274       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3275       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])
3276       AC_MSG_RESULT(yes)
3277     else
3278       dnl  The given tarkin tree wasn't built
3279       AC_MSG_RESULT(no)
3280       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3281                     make sure you compiled tarkin in ${with_tarkin_tree}])
3282     fi
3283   fi
3284 fi
3285
3286 dnl
3287 dnl  theora decoder plugin
3288 dnl
3289 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3290
3291 dnl
3292 dnl  dirac encoder plugin
3293 dnl
3294 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3295
3296 dnl
3297 dnl  schroedinger decoder plugin (for dirac format video)
3298 dnl
3299 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3300
3301 dnl
3302 dnl  PNG decoder module
3303 dnl
3304 AC_ARG_ENABLE(png,
3305   [  --enable-png            PNG support (default enabled)])
3306 if test "${enable_png}" != "no"; then
3307 AC_CHECK_HEADERS(png.h, [
3308   LDFLAGS="${LDFLAGS_save} -lz"
3309   AC_CHECK_LIB(png, png_set_rows, [
3310     VLC_ADD_LIBS([png],[-lpng -lz])
3311     VLC_ADD_PLUGIN([png])
3312     VLC_ADD_PLUGIN([osdmenu])
3313     VLC_ADD_PLUGIN([osd_parser])
3314     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3315     [],[-lz])
3316     LDFLAGS="${LDFLAGS_save}"
3317   ])
3318 fi
3319 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3320
3321 dnl
3322 dnl H264 encoder plugin (using libx264)
3323 dnl
3324 AC_ARG_ENABLE(x264,
3325   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3326 if test "${enable_x264}" != "no"; then
3327   AC_ARG_WITH(x264-tree,
3328     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3329   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3330   then
3331     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3332     if test -z "${real_x264_tree}"
3333     then
3334       dnl  The given directory can't be found
3335       AC_MSG_RESULT(no)
3336       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3337     fi
3338     dnl  Use a custom libx264
3339     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3340     if test -f ${real_x264_tree}/x264.h
3341     then
3342       AC_MSG_RESULT(yes)
3343       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3344       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3345       PKG_CHECK_MODULES(X264,x264, [
3346         VLC_ADD_PLUGIN([x264])
3347         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3348         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3349         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3350           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3351         fi
3352       ],[
3353         AC_MSG_ERROR([the specified tree hasn't been compiled])
3354       ])
3355       LDFLAGS="${LDFLAGS_save}"
3356     else
3357       AC_MSG_RESULT(no)
3358       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3359     fi
3360   else
3361       PKG_CHECK_MODULES(X264,x264 >= 0.76, [
3362         VLC_ADD_PLUGIN([x264])
3363         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3364
3365         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3366           [ac_cv_ld_bsymbolic],
3367           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3368             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3369             LDFLAGS="${LDFLAGS_save}"
3370           ])
3371         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3372           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3373         ])
3374
3375         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3376         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3377           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3378         fi
3379       ],[
3380         if test "${enable_x264}" = "yes"; then
3381             AC_MSG_ERROR([Could not find libx264 >= 0.76 on your system: you may get it from http://www.videolan.org/x264.html])
3382           fi
3383       ])
3384     LDFLAGS="${LDFLAGS_save}"
3385   fi
3386 fi
3387
3388 dnl
3389 dnl libfluidsynth (MIDI synthetizer) plugin
3390 dnl
3391 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3392
3393 dnl
3394 dnl Teletext Modules
3395 dnl vbi decoder plugin (using libzbvi)
3396 dnl telx module
3397 dnl uncompatible
3398 dnl
3399 AC_ARG_ENABLE(zvbi,
3400   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3401                   libzvbi (default enabled)]))
3402 AC_ARG_ENABLE(telx,
3403   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3404                   zvbi) (default enabled if zvbi is absent)]))
3405
3406 AS_IF( [test "${enable_zvbi}" != "no"],[
3407     PKG_CHECK_MODULES(ZVBI,
3408         zvbi-0.2 >= 0.2.25,
3409         [
3410           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3411           if test "${SYS}" = "mingw32"; then
3412               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3413           fi
3414           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3415           VLC_ADD_PLUGIN([zvbi])
3416           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3417           AS_IF( [test "${enable_telx}" = "yes"],[
3418                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3419                                Using zvbi.])
3420                   ])
3421         ],[
3422           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3423         ])
3424     ])
3425 AS_IF( [test "${enable_telx}" != "no" ],[
3426   VLC_ADD_PLUGIN([telx])
3427   ])
3428
3429 dnl
3430 dnl libass subtitle rendering module
3431 dnl
3432 AC_ARG_ENABLE(libass,
3433   [  --enable-libass         Subtitle support using libass (default disabled)])
3434 AS_IF( [test "${enable_libass}" = "yes"], [
3435   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3436       [
3437         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3438         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3439         VLC_ADD_PLUGIN([libass])
3440
3441         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3442           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3443         if test "${SYS}" = "mingw32"; then
3444            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz])
3445         else
3446            VLC_ADD_LIBS([libass],[-lfontconfig])
3447         fi
3448        ])
3449       ],[
3450         AC_MSG_WARN([LIBASS library not found])
3451       ])
3452   ])
3453
3454 dnl
3455 dnl asa demuxer
3456 dnl
3457 AC_ARG_ENABLE(asademux,
3458   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3459 AS_IF( [test "${enable_asademux}" = "yes"], [
3460   PKG_CHECK_MODULES(PCRE,
3461       libpcre >= 6.5,
3462       [
3463         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3464         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3465         if test "${SYS}" = "mingw32"; then
3466             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3467         fi
3468         VLC_ADD_PLUGIN([asademux])
3469       ],[
3470         AC_MSG_WARN([PCRE library not found (required for asademux)])
3471       ])
3472   ])
3473
3474 dnl
3475 dnl  CMML plugin
3476 dnl
3477 AC_ARG_ENABLE(cmml,
3478   [  --enable-cmml           CMML support (default enabled)])
3479 if test "${enable_cmml}" != "no"
3480 then
3481   VLC_ADD_PLUGIN([cmml])
3482 fi
3483
3484 dnl
3485 dnl  kate decoder plugin
3486 dnl
3487 AC_ARG_ENABLE(kate,
3488 [  --enable-kate           kate codec (default enabled)])
3489 AS_IF([test "${enable_kate}" != "no"], [
3490   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3491       VLC_ADD_PLUGIN([kate])
3492       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3493       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3494         AC_CHECK_HEADERS(kate/kate.h, [
3495           AC_CHECK_LIB(kate, kate_decode_init, [
3496             VLC_ADD_PLUGIN([kate])
3497             kate_libs="-lkate -logg"
3498             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3499             AS_IF([test "x${enable_kate}" != "x"], [
3500               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3501               You also need to check that you have a libogg posterior to the 1.0 release.])
3502             ])
3503           ], [-lkate -logg])
3504         ],[
3505           AS_IF([test "x${enable_kate}" != "x"], [
3506             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3507             You also need to check that you have a libogg posterior to the 1.0 release.])
3508           ])
3509         ])
3510   ])
3511 ])
3512
3513
3514 dnl
3515 dnl  tiger decoder plugin
3516 dnl
3517 PKG_ENABLE_MODULES_VLC([TIGER], [], [tiger >= 0.3.1], [Tiger rendering library for Kate streams],[auto])
3518
3519
3520 dnl
3521 dnl  Video plugins
3522 dnl
3523
3524 AC_ARG_WITH(,[Video plugins:])
3525
3526 dnl
3527 dnl  Xlib
3528 dnl
3529
3530 AC_PATH_XTRA()
3531 AC_ARG_ENABLE(x11,
3532   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3533   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3534     enable_x11="yes"
3535   ], [
3536     enable_x11="no"
3537   ])
3538 ])
3539
3540 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3541
3542 AS_IF([test "${enable_x11}" != "no"], [
3543   AC_CHECK_HEADERS(X11/Xlib.h)
3544
3545 dnl Check for DPMS
3546   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3547     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3548     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3549       AC_MSG_RESULT(yes)
3550       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3551                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3552     ],[
3553       AC_MSG_RESULT(no)
3554     ])
3555   ],,[
3556     #include <X11/Xlib.h>
3557   ])
3558 ])
3559
3560 dnl
3561 dnl  GLX module
3562 dnl  (enabled by default except on win32)
3563 dnl
3564 AC_ARG_ENABLE(glx,
3565   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3566   enable_glx="$enable_x11"
3567 ])
3568 AS_IF([test "${enable_glx}" != "no"], [
3569   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3570   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3571     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3572     choke me
3573     #endif]]),
3574     [
3575       VLC_ADD_PLUGIN([glx])
3576       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3577       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3578     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3579 ])
3580
3581 dnl
3582 dnl  XVMC module
3583 dnl  (disabled by default except on win32)
3584 dnl
3585 AC_ARG_ENABLE(xvmc,
3586   [  --enable-xvmc           XvMC support (default disabled)],, [
3587   enable_xvmc="no"
3588 ])
3589 AS_IF([test "${enable_xvmc}" != "no"], [
3590   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3591     AS_IF([test "${enable_libmpeg2}" = "yes"], [
3592       VLC_ADD_PLUGIN([xvmc])
3593       VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3594       VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3595     ], [
3596       AC_MSG_ERROR([XVideo-MotionCompensation needs libmpeg2 which isn't available])
3597     ])
3598   ], [
3599     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3600   ])
3601 ])
3602
3603 dnl End of Xlib tests
3604 CPPFLAGS="${CPPFLAGS_save}"
3605
3606
3607 dnl
3608 dnl  X C Bindings modules
3609 dnl
3610 AC_ARG_ENABLE(xcb,
3611   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3612   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3613     enable_xcb="yes"
3614   ], [
3615     enable_xcb="no"
3616   ])
3617 ])
3618 AC_ARG_ENABLE(xvideo,
3619   [  --enable-xvideo         XVideo support (default enabled)],, [
3620     enable_xvideo="$enable_xcb"
3621 ])
3622
3623 AS_IF([test "${enable_xcb}" != "no"], [
3624   PKG_CHECK_MODULES(XPROTO, [xproto])
3625
3626   dnl libxcb
3627   PKG_CHECK_MODULES(XCB, [xcb])
3628   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3629   VLC_ADD_PLUGIN([xcb_x11])
3630   VLC_ADD_PLUGIN([xcb_screen])
3631   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3632
3633   AS_IF([test "${enable_xvideo}" != "no"], [
3634     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3635       VLC_ADD_PLUGIN([xcb_xv])
3636     ], [
3637       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3638         VLC_ADD_PLUGIN([xcb_xv])
3639         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3640       ])
3641     ])
3642   ])
3643
3644   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3645     VLC_ADD_PLUGIN([panoramix])
3646     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3647     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3648   ], [true])
3649
3650   dnl xcb-utils
3651   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
3652
3653   VLC_ADD_PLUGIN([xcb_window])
3654   VLC_ADD_PLUGIN([globalhotkeys])
3655   VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
3656   VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
3657 ])
3658
3659
3660 dnl
3661 dnl  OpenGL module
3662 dnl  (enabled by default except on beos)
3663 dnl
3664 AC_ARG_ENABLE(opengl,
3665   [  --enable-opengl         OpenGL support (default enabled)])
3666 if test "${enable_opengl}" != "no" &&
3667    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3668   if test "${SYS}" != "darwin"; then
3669     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3670       VLC_ADD_PLUGIN([opengl])
3671       if test "${SYS}" != "mingw32"; then
3672         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3673       else
3674         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3675       fi
3676     ])
3677   else
3678     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3679     VLC_ADD_PLUGIN([opengl])
3680     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3681   fi
3682 fi
3683
3684 dnl
3685 dnl  SDL module
3686 dnl
3687 AC_ARG_ENABLE(sdl,
3688   [  --enable-sdl            SDL support (default enabled)])
3689 AC_ARG_ENABLE(sdl-image,
3690   [  --enable-sdl-image      SDL image support (default enabled)])
3691 if test "${enable_sdl}" != "no"
3692 then
3693   SDL_PATH="${PATH}"
3694   AC_ARG_WITH(sdl-config-path,
3695     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3696     [ if test "${with_sdl_config_path}" != "no"
3697       then
3698         SDL_PATH="${with_sdl_config_path}:${PATH}"
3699       fi ])
3700   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3701   SDL_HEADER="SDL/SDL.h"
3702   SDL_IMAGE="SDL/SDL_image.h"
3703
3704   if test "${SDL_CONFIG}" != "no";  then
3705      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3706         # SDL on Darwin is heavily patched and can only run SDL_image
3707         if test "${SYS}" != "darwin"; then
3708           VLC_ADD_PLUGIN([vout_sdl])
3709           VLC_ADD_PLUGIN([aout_sdl])
3710         fi
3711         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3712         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3713
3714         # SDL_image
3715         AS_IF([ test "${enable_sdl_image}" != "no"],[
3716           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3717             VLC_ADD_PLUGIN([sdl_image])
3718             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3719             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3720             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3721             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3722             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3723       You should install it alongside your SDL package.])
3724             ])
3725         ])
3726      ],[
3727        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3728                     Alternatively you can also configure with --disable-sdl.])
3729      ])
3730   else if test "${enable_sdl}" =  "yes"; then
3731     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3732 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3733     ])
3734       fi
3735   fi
3736 fi
3737
3738 dnl
3739 dnl  freetype module
3740 dnl
3741 AC_ARG_ENABLE(freetype,
3742   [  --enable-freetype       freetype support (default enabled)])
3743 AC_ARG_ENABLE(fribidi,
3744   [  --enable-fribidi        fribidi support (default enabled)])
3745 AC_ARG_ENABLE(fontconfig,
3746   [  --enable-fontconfig,    fontconfig support (default enabled)])
3747 if test "${enable_freetype}" != "no"
3748 then
3749    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3750       VLC_ADD_PLUGIN([freetype])
3751       have_freetype=yes
3752       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3753       if test "${SYS}" = "mingw32"; then
3754         VLC_ADD_LIBS([freetype],[-liconv -lz])
3755       fi
3756       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3757       if test "${enable_fontconfig}" != "no"
3758       then
3759         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3760           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3761            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3762         AC_CHECK_HEADERS(Carbon/Carbon.h,
3763           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3764       fi
3765
3766      dnl fribidi support
3767       if test "${enable_fribidi}" != "no"
3768       then
3769         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3770           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3771           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3772         ])
3773       fi
3774
3775   ],[
3776   have_freetype=no
3777   AS_IF([ test "${enable_freetype}" =  "yes"],[
3778     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3779 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3780       ])
3781     ])
3782   ])
3783
3784 fi
3785
3786 dnl
3787 dnl  libxml2 module
3788 dnl
3789 PKG_ENABLE_MODULES_VLC([libxml2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3790
3791 dnl
3792 dnl  SVG module
3793 dnl
3794 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3795
3796 dnl
3797 dnl Snapshot vout module (with cache)
3798 dnl
3799 AC_ARG_ENABLE(snapshot,
3800   [  --enable-snapshot       snapshot module (default disabled)])
3801 if test "${enable_snapshot}" = "yes"
3802 then
3803   VLC_ADD_PLUGIN([snapshot])
3804 fi
3805
3806 dnl
3807 dnl  Qt Embedded module
3808 dnl  (disabled by default)
3809 dnl
3810 AC_ARG_ENABLE(qte,
3811   [  --enable-qte            QT Embedded support (default disabled)])
3812 if test "${enable_qte}" = "yes"
3813 then
3814   AC_ARG_WITH(qte,
3815   [    --with-qte=PATH       Qt Embedded headers and libraries])
3816   if test "${with_qte}" != "no" -a -n "${with_qte}"
3817   then
3818     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3819     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])
3820   else
3821     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3822     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3823   fi
3824   VLC_ADD_PLUGIN([qte])
3825   NEED_QTE_MAIN=yes
3826   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3827   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3828     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3829   ] )
3830   CPPFLAGS="${CPPFLAGS_save}"
3831 fi
3832
3833 dnl
3834 dnl Roku HD1000 Video output module
3835 dnl
3836 AC_ARG_ENABLE(hd1000v,
3837   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3838 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3839   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3840    test "${enable_hd1000v}" = "yes"); then
3841   AC_LANG_PUSH([C++])
3842   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3843   [
3844     can_build_roku="yes"
3845   ],
3846   [
3847     can_build_roku="no"
3848     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3849   ])
3850   if test "$can_build_roku" = "yes"
3851   then
3852     VLC_ADD_PLUGIN([hd1000v])
3853     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3854   fi
3855   AC_LANG_POP([C++])
3856 fi
3857
3858 dnl
3859 dnl  Windows DirectX module
3860 dnl
3861
3862 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3863 then
3864   VLC_ADD_PLUGIN([panoramix])
3865 fi
3866
3867 AC_ARG_ENABLE(directx,
3868   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3869 if test "${enable_directx}" != "no"
3870 then
3871   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3872   then
3873       AC_CHECK_HEADERS(ddraw.h,
3874       [ VLC_ADD_PLUGIN([directx])
3875         VLC_ADD_PLUGIN([aout_directx])
3876         VLC_ADD_LIBS([directx],[-lgdi32])
3877       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3878       )
3879       AC_CHECK_HEADERS(GL/gl.h,
3880       [ VLC_ADD_PLUGIN([glwin32])
3881         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3882       ])
3883       AC_CHECK_HEADERS(d3d9.h,
3884       [ VLC_ADD_PLUGIN([direct3d])
3885         VLC_ADD_LIBS([direct3d],[-lgdi32])
3886       ])
3887       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3888   fi
3889 fi
3890
3891 dnl
3892 dnl  win32 GDI plugin
3893 dnl
3894 AC_ARG_ENABLE(wingdi,
3895   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3896 if test "${enable_wingdi}" != "no"; then
3897   if test "${SYS}" = "mingw32"; then
3898     VLC_ADD_PLUGIN([wingdi])
3899     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3900   fi
3901   if test "${SYS}" = "mingwce"; then
3902     VLC_ADD_PLUGIN([wingdi])
3903     VLC_ADD_PLUGIN([wingapi])
3904     VLC_ADD_LIBS([wingdi],[-laygshell])
3905     VLC_ADD_LIBS([wingapi],[-laygshell])
3906   fi
3907 fi
3908
3909
3910 dnl
3911 dnl  Linux framebuffer module
3912 dnl
3913 AC_ARG_ENABLE(fb,
3914   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3915     if test "${enable_fb}" != "no"
3916     then
3917       AC_CHECK_HEADERS(linux/fb.h, [
3918         VLC_ADD_PLUGIN([fb])
3919       ])
3920     fi
3921
3922 dnl
3923 dnl  Linux MGA module
3924 dnl
3925 AC_ARG_ENABLE(mga,
3926   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3927   [ if test "${enable_mga}" = "yes"
3928     then
3929       VLC_ADD_PLUGIN([mga])
3930     fi ])
3931
3932 dnl
3933 dnl  OMAP Framebuffer module
3934 dnl
3935 AC_ARG_ENABLE(omapfb,
3936   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3937     if test "${enable_omapfb}" = "yes"
3938     then
3939       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3940         VLC_ADD_PLUGIN([omapfb])
3941         AC_CHECK_HEADERS(X11/Xlib.h, [
3942           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
3943       ])
3944     fi
3945
3946 dnl
3947 dnl  SVGAlib module
3948 dnl
3949 AC_ARG_ENABLE(svgalib,
3950   [  --enable-svgalib        SVGAlib support (default disabled)])
3951 if test "${enable_svgalib}" = "yes"
3952 then
3953   VLC_ADD_PLUGIN([svgalib])
3954   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3955 fi
3956
3957 dnl
3958 dnl  DirectFB module
3959 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3960 dnl  TODO: support for static linking
3961 dnl
3962 AC_ARG_ENABLE(directfb,
3963   [  --enable-directfb       DirectFB support (default disabled)])
3964 AC_ARG_WITH(directfb,
3965   [    --with-directfb=PATH  path to DirectFB headers and libraries])
3966
3967 if test "${enable_directfb}" = "yes"; then
3968     have_directfb="false"
3969     CPPFLAGS_mydirectfb=
3970     LIBS_mydirectfb=
3971     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3972         dnl Trying the given location
3973         CPPFLAGS_save="${CPPFLAGS}"
3974         LIBS_save="${LIBS}"
3975
3976         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3977         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3978         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3979
3980         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3981         LIBS="${LIBS} ${LIBS_new}"
3982
3983         dnl FIXME: too obscure
3984         AC_CHECK_HEADER([directfb.h], [
3985             AC_CHECK_LIB([direct],[direct_initialize], [
3986                 AC_CHECK_LIB([fusion], [fusion_enter], [
3987                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3988                 ], have_directfb="false")
3989             ], have_directfb="false")
3990         ], have_directfb="false")
3991
3992         dnl Restore flags
3993         CPPFLAGS="${CPPFLAGS_save}"
3994         LIBS="${LIBS_save}"
3995
3996         if test "${have_directfb}" = "true"; then
3997             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
3998             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3999         fi
4000     else
4001         dnl Look for directfb-config
4002         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4003         if test "${DIRECTFB_CONFIG}" != "no"; then
4004             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4005             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4006             have_directfb="true"
4007         else
4008             dnl Trying with pkg-config
4009             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4010                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4011                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4012                 have_directfb="true"
4013                 ], [have_directfb="false"])
4014         fi
4015     fi
4016     if test "${have_directfb}" = "true"; then
4017         VLC_ADD_PLUGIN([directfb])
4018         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4019         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4020     else
4021         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4022     fi
4023 fi
4024
4025
4026
4027 dnl
4028 dnl  GGI module
4029 dnl
4030 AC_ARG_ENABLE(ggi,
4031   [  --enable-ggi            GGI support (default disabled)])
4032 if test "${enable_ggi}" = "yes"
4033 then
4034   AC_CHECK_HEADER([ggi/ggi.h],[
4035     VLC_ADD_PLUGIN([ggi])
4036     VLC_ADD_LIBS([ggi],[-lggi])
4037     AC_ARG_WITH(ggi,
4038       [    --with-ggi=PATH       path to libggi],
4039       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4040         then
4041           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4042           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4043         fi ])
4044     ],[
4045        AC_MSG_ERROR([LibGGI development files can't be found])
4046     ])
4047 fi
4048
4049 dnl
4050 dnl  AA plugin
4051 dnl
4052 AC_ARG_ENABLE(aa,
4053   [  --enable-aa             aalib output (default disabled)])
4054 if test "${enable_aa}" = "yes"
4055 then
4056   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4057   if test "${have_aa}" = "true"
4058   then
4059     VLC_ADD_PLUGIN([aa])
4060     VLC_ADD_LIBS([aa],[-laa])
4061   fi
4062 fi
4063
4064 dnl
4065 dnl  libcaca plugin
4066 dnl
4067 PKG_ENABLE_MODULES_VLC([caca], [], [caca >= 0.99.beta1], [libcaca output],[auto])
4068
4069 dnl
4070 dnl  Audio plugins
4071 dnl
4072
4073 AC_ARG_WITH(,[Audio plugins:])
4074
4075 dnl
4076 dnl  OSS /dev/dsp module (enabled by default except on win32)
4077 dnl
4078 AC_ARG_ENABLE(oss,
4079   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4080
4081 if test "${enable_oss}" != "no" &&
4082   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4083    test "${enable_oss}" = "yes")
4084 then
4085   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4086     VLC_ADD_PLUGIN([oss])
4087     VLC_ADD_PLUGIN([access_oss])
4088     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4089   ])
4090 fi
4091
4092 dnl
4093 dnl  Pulseaudio module
4094 dnl
4095 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4096
4097 dnl
4098 dnl  Portaudio module
4099 dnl
4100 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
4101
4102 dnl
4103 dnl  ALSA module
4104 dnl
4105 PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
4106 PKG_ENABLE_MODULES_VLC([ACCESS_ALSA], [access_alsa], [alsa >= 1.0.0], [Alsa access for linux], [auto])
4107
4108 dnl
4109 dnl  win32 waveOut plugin
4110 dnl
4111 AC_ARG_ENABLE(waveout,
4112   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4113 if test "${enable_waveout}" != "no"; then
4114   if test "${SYS}" = "mingw32"; then
4115     VLC_ADD_PLUGIN([waveout])
4116     VLC_ADD_LIBS([waveout],[-lwinmm])
4117   fi
4118   if test "${SYS}" = "mingwce"; then
4119     VLC_ADD_PLUGIN([waveout])
4120   fi
4121 fi
4122
4123 dnl
4124 dnl  CoreAudio plugin
4125 dnl
4126 AC_ARG_ENABLE(macosx-audio,
4127   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4128 if test "${enable_macosx-audio}" != "no" &&
4129   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4130 then
4131   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4132     [ VLC_ADD_PLUGIN([auhal])
4133       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4134     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4135 fi
4136
4137 dnl
4138 dnl  Roku HD1000 audio
4139 dnl
4140 AC_ARG_ENABLE(hd1000a,
4141   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4142 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4143   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4144    test "${enable_hd1000a}" = "yes")
4145 then
4146   AC_LANG_PUSH([C++])
4147   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4148     VLC_ADD_PLUGIN([hd1000a])
4149     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4150   AC_LANG_POP([C++])
4151 fi
4152
4153 dnl
4154 dnl  JACK modules
4155 dnl
4156 PKG_ENABLE_MODULES_VLC([JACK], [jack], [jack], [JACK audio I/O modules],[auto])
4157 PKG_ENABLE_MODULES_VLC([JACK], [access_jack], [jack], [JACK audio I/O modules],[auto])
4158
4159
4160 dnl
4161 dnl  CyberLink for C++ UPnP stack
4162 dnl
4163 AC_ARG_ENABLE(cyberlink,
4164   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4165   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4166   AC_ARG_WITH(cyberlink-tree,
4167     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4168
4169   dnl
4170   dnl test for --with-cyberlink-tree
4171   dnl
4172   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4173     AC_LANG_PUSH(C++)
4174     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4175     AS_IF([test -z "${real_cyberlink_tree}"], [
4176       dnl  The given directory can't be found
4177       AC_MSG_RESULT(no)
4178       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4179     ])
4180     CPPFLAGS_save="${CPPFLAGS}"
4181     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4182     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4183     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4184       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4185         VLC_ADD_PLUGIN([upnp_cc])
4186       ],[
4187         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4188       ])
4189     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4190     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4191       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4192       dnl The mere fact that we have to make such an ugly check sucks
4193       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4194       LIBS_save="$LIBS"
4195       LIBS_cclink="no"
4196       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4197         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4198         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4199 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4200 using namespace CyberLink;
4201
4202 class testclass : public SearchResponseListener, public MediaPlayer
4203 {
4204     virtual void deviceSearchResponseReceived( SSDPPacket *)
4205     {
4206     }
4207
4208     public:
4209       testclass (void)
4210       {
4211         addSearchResponseListener (this);
4212         start ();
4213       }
4214 };
4215 ],[testclass l;])],[LIBS_cclink="$l"])
4216       done
4217       LIBS="${LIBS_save}"
4218       dnl should not happen - otherwise this needs fixing - hence FAILURE
4219       AS_IF([test "${LIBS_cclink}" = "no"],
4220         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4221       AC_MSG_RESULT([${LIBS_cclink}])
4222       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4223     ], [
4224       AC_MSG_RESULT(no)
4225       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4226     ])
4227     CPPFLAGS="${CPPFLAGS_save}"
4228     AC_LANG_POP([C++])
4229   ])
4230 ])
4231
4232 dnl
4233 dnl UPnP Plugin (Intel SDK)
4234 dnl
4235 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
4236
4237
4238 dnl
4239 dnl  Interface plugins
4240 dnl
4241
4242 AC_ARG_WITH(,[Interface plugins:])
4243
4244 dnl special case for BeOS
4245 if test "${SYS}" = "beos"
4246 then
4247     VLC_ADD_PLUGIN([beos])
4248 fi
4249
4250 dnl
4251 dnl Skins2 module
4252 dnl
4253 AC_ARG_ENABLE(skins2,
4254   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4255    enabled except on MacOSX, BeOS and WinCE)])])
4256 if test "${enable_skins2}" = "yes" ||
4257   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4258    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4259
4260   dnl test for the required libraries
4261   skins2_missing_lib="no"
4262
4263   dnl freetype
4264   if test "${have_freetype}" != "yes"; then
4265     skins2_missing_lib="yes"
4266     if test "${enable_skins2}" = "yes"; then
4267       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4268     fi
4269   fi
4270
4271   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
4272     VLC_ADD_PLUGIN([skins2])
4273     ALIASES="${ALIASES} svlc"
4274     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4275     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4276     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4277
4278   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4279     VLC_ADD_PLUGIN([skins2])
4280     ALIASES="${ALIASES} svlc"
4281     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4282     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4283     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4284
4285   else if test "${skins2_missing_lib}" = "no"; then
4286     VLC_ADD_PLUGIN([skins2])
4287     ALIASES="${ALIASES} svlc"
4288     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4289     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4290     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4291   fi fi fi
4292 fi
4293 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4294          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4295           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4296
4297 dnl
4298 dnl Maemo
4299 dnl
4300 AC_ARG_ENABLE(maemo,
4301   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4302 if test "${enable_maemo}" = "yes"
4303 then
4304   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4305     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4306     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4307     VLC_ADD_PLUGIN([maemo])
4308     VLC_ADD_PLUGIN([swscale_maemo])
4309     AC_DEFINE([BUILD_MAEMO], 1, [Define if you are using Maemo interfaces])
4310     ALIASES="${ALIASES} mvlc"
4311   ], [
4312     AS_IF([test "${enable_maemo}" = "yes"],[
4313       AC_MSG_ERROR([Hildon libraries not found])
4314     ])
4315     enable_maemo="no"
4316   ])
4317 fi
4318 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4319
4320 dnl
4321 dnl QT 4
4322 dnl
4323 AC_ARG_ENABLE(qt4,
4324   [  --enable-qt4            QT 4 support (default enabled) ],, [
4325   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4326 ])
4327 AS_IF([test "${enable_qt4}" != "no"], [
4328   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4329     VLC_ADD_PLUGIN([qt4])
4330     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4331     ALIASES="${ALIASES} qvlc"
4332     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4333         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4334     ], [
4335         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4336     ])
4337     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4338     AC_SUBST(QT4LOCALEDIR)
4339     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4340     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4341     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4342     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4343   ], [
4344     AS_IF([test "${enable_qt4}" = "yes"],[
4345       AC_MSG_ERROR([Qt 4 library not found])
4346     ],[
4347       AC_MSG_WARN([Qt 4 library not found])
4348     ])
4349     enable_qt4="no"
4350   ])
4351 ])
4352 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4353
4354 dnl
4355 dnl  WinCE GUI module
4356 dnl
4357 AC_ARG_ENABLE(wince,
4358   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4359 if test "${enable_wince}" != "no"; then
4360   if test "${SYS}" = "mingwce"; then
4361     VLC_ADD_PLUGIN([wince])
4362     VLC_ADD_CXXFLAGS([wince],[])
4363     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4364     dnl Gross hack
4365     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4366   elif test "${SYS}" = "mingw32"; then
4367     VLC_ADD_CXXFLAGS([wince],[])
4368     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4369     dnl Gross hack
4370     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4371   fi
4372 fi
4373
4374 dnl
4375 dnl Simple test for skins2 dependency
4376 dnl
4377 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4378   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.])
4379 ])
4380
4381 dnl
4382 dnl  Opie QT embedded module
4383 dnl
4384 AC_ARG_ENABLE(opie,
4385   [  --enable-opie           Qt embedded interface support (default disabled)],
4386   [if test "${enable_opie}" = "yes"; then
4387      AC_ARG_WITH(qte,
4388      [    --with-qte=PATH       Qt Embedded headers and libraries])
4389      if test "${with_qte}" != "no" -a -n "${with_qte}"
4390      then
4391        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4392        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])
4393      else
4394        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4395        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4396      fi
4397      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4398      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4399        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4400      ] )
4401      CPPFLAGS="${CPPFLAGS_save}"
4402
4403      VLC_ADD_PLUGIN([opie])
4404      NEED_QTE_MAIN=yes
4405      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4406      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4407      if test "${with_qte}" != "no" -a -n "${with_qte}"
4408      then
4409        MOC=${with_qte}/bin/moc
4410      else
4411        MOC=${QTDIR}/bin/moc
4412      fi
4413    fi])
4414
4415 dnl
4416 dnl  MacOS X video output/gui modules
4417 dnl
4418 AC_ARG_ENABLE(macosx,
4419   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4420 if test "x${enable_macosx}" = "xyes"
4421 then
4422   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4423   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4424   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4425   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4426   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4427   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4428   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4429   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4430   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4431   dnl For bug report
4432   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4433   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,QTKit])
4434   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4435   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4436   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4437   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4438   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4439
4440   VLC_ADD_PLUGIN([access_eyetv])
4441   VLC_ADD_PLUGIN([qtcapture])
4442   VLC_ADD_PLUGIN([macosx])
4443   VLC_ADD_PLUGIN([minimal_macosx])
4444   VLC_ADD_PLUGIN([opengllayer])
4445 fi
4446
4447 dnl
4448 dnl  QNX RTOS module
4449 dnl
4450 AC_ARG_ENABLE(qnx,
4451   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4452     if test "${enable_qnx}" != "no"
4453     then
4454       AC_CHECK_HEADERS(Ph.h, [
4455         VLC_ADD_PLUGIN([qnx])
4456         VLC_ADD_LIBS([qnx],[-lasound -lph])
4457       ])
4458     fi
4459
4460 dnl
4461 dnl  ncurses module
4462 dnl
4463 AC_ARG_ENABLE(ncurses,
4464   [  --disable-ncurses       ncurses interface support (default enabled)],
4465   [if test "${enable_ncurses}" != "no"; then
4466     AC_CHECK_HEADER(ncurses.h,
4467       [AC_CHECK_LIB(ncursesw, mvprintw,
4468         [VLC_ADD_PLUGIN([ncurses])
4469         VLC_ADD_LIBS([ncurses],[-lncursesw])
4470         ALIASES="${ALIASES} nvlc"
4471         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4472         AC_CHECK_LIB(ncursesw, tgetent, [],
4473           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4474             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4475               [AS_IF([test "x${enable_ncurses}" != "x"],
4476                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4477                )])])
4478             ]
4479           )
4480         )
4481         ],
4482         [AC_CHECK_LIB( ncurses, mvprintw,
4483           [VLC_ADD_PLUGIN([ncurses])
4484           ALIASES="${ALIASES} nvlc"
4485           VLC_ADD_LIBS([ncurses],[-lncurses])
4486           AC_CHECK_LIB(ncurses, tgetent, [],
4487             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4488               [AS_IF([test "x${enable_ncurses}" != "x"],
4489                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4490             )]
4491           )],
4492           [AS_IF([test "x${enable_ncurses}" != "x"], [
4493             AC_MSG_ERROR([libncurses not found])])]
4494         )]
4495       )]
4496     )
4497   fi]
4498 )
4499
4500 dnl
4501 dnl  XOSD plugin
4502 dnl
4503 AC_ARG_ENABLE(xosd,
4504   [  --enable-xosd           xosd interface support (default disabled)])
4505 if test "${enable_xosd}" = "yes"
4506 then
4507   AC_CHECK_HEADERS(xosd.h,
4508     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4509       VLC_ADD_PLUGIN([xosd])
4510       VLC_ADD_LIBS([xosd],[-lxosd])
4511     ])
4512   )
4513 fi
4514
4515 dnl
4516 dnl Framebuffer (overlay) plugin
4517 dnl
4518 AC_ARG_ENABLE(fbosd,
4519   [  --enable-fbosd          fbosd interface support (default disabled)])
4520 if test "${enable_fbosd}" = "yes"
4521 then
4522   AC_CHECK_HEADERS(linux/fb.h, [
4523     VLC_ADD_PLUGIN([fbosd])
4524  ])
4525 fi
4526
4527 dnl
4528 dnl Visualisation plugin
4529 dnl
4530 AC_ARG_ENABLE(visual,
4531   [  --enable-visual         visualisation plugin (default enabled)])
4532 if test "${enable_visual}" != "no"
4533 then
4534     VLC_ADD_PLUGIN([visual])
4535 fi
4536
4537 dnl
4538 dnl  goom visualization plugin
4539 dnl
4540 PKG_ENABLE_MODULES_VLC([goom], [], [libgoom2], [goom visualization plugin], [auto])
4541
4542 dnl
4543 dnl libprojectM visualization plugin
4544 dnl
4545 PKG_ENABLE_MODULES_VLC([projectm], [], [libprojectM], [projectM visualization plugin], [auto])
4546
4547 dnl
4548 dnl  AtmoLight (homebrew AmbiLight)
4549 dnl
4550 AC_ARG_ENABLE(atmo,
4551 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew Philips ambilight)
4552                 (broken, default disabled)]),, [enable_atmo="no"])
4553 AS_IF([test "${enable_atmo}" != no], [
4554   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4555     AC_LANG_PUSH(C++)
4556     VLC_ADD_PLUGIN([atmo])
4557     AC_LANG_POP(C++)
4558   ])
4559 ])
4560
4561 dnl
4562 dnl  Bonjour services discovery
4563 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4564
4565 dnl
4566 dnl  HAL services discovery
4567 PKG_ENABLE_MODULES_VLC([HAL], [], [hal >= 0.5.0], [Linux HAL services discovery], [auto])
4568
4569 dnl
4570 dnl MTP devices services discovery
4571 PKG_ENABLE_MODULES_VLC([MTP], [], [libmtp >= 0.3.0],[MTP devices support],[auto])
4572
4573 dnl
4574 dnl  Lirc plugin
4575 dnl
4576 AC_ARG_ENABLE(lirc,
4577   [  --enable-lirc           lirc support (default disabled)])
4578 if test "${enable_lirc}" = "yes"
4579 then
4580   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4581   if test "${have_lirc}" = "true"
4582   then
4583     VLC_ADD_PLUGIN([lirc])
4584     VLC_ADD_LIBS([lirc],[-llirc_client])
4585   fi
4586 fi
4587
4588
4589 AC_ARG_WITH(,[Misc options:])
4590
4591 dnl
4592 dnl libgcrypt
4593 dnl
4594 AC_ARG_ENABLE(libgcrypt,
4595   [  --disable-libgcrypt      libgcrypts support (default enabled)])
4596 AS_IF([test "${enable_libgcrypt}" != "no"], [
4597   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
4598 ])
4599 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4600   AS_IF([test "${have_libgcrypt}" = "yes"],[
4601     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
4602   ])
4603 fi
4604 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
4605
4606 dnl
4607 dnl TLS/SSL
4608 dnl
4609 AC_ARG_ENABLE(gnutls,
4610   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4611
4612 AS_IF([test "${enable_gnutls}" != "no"], [
4613   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4614     VLC_ADD_PLUGIN([gnutls])
4615     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4616     AS_IF([test "${SYS}" = "mingw32"], [
4617       dnl pkg-config --libs gnutls omits these
4618       VLC_ADD_LIBS([gnutls], [-lz])
4619       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
4620     ])
4621     dnl The GnuTLS plugin invokes gcry_control directly.
4622     AS_IF([test "${have_libgcrypt}" = "yes"],[
4623       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
4624       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
4625     ])
4626     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4627   ], [
4628     AS_IF([test "${enable_gnutls}" = "yes"], [
4629       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4630     ])
4631   ])
4632 ])
4633
4634
4635 dnl
4636 dnl RemoteOSD plugin (VNC client as video filter)
4637 dnl
4638 AC_ARG_ENABLE(remoteosd,
4639   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4640
4641 AS_IF([test "${enable_remoteosd}" != "no"], [
4642   AS_IF([test "${have_libgcrypt}" = "yes"],[
4643     VLC_ADD_PLUGIN([remoteosd])
4644     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
4645     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
4646   ], [
4647     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4648   ])
4649 ])
4650
4651
4652 dnl
4653 dnl RAOP plugin
4654 dnl
4655 AC_MSG_CHECKING([whether to enable RAOP plugin])
4656 AS_IF([test "${have_libgcrypt}" = "yes"], [
4657   AC_MSG_RESULT(yes)
4658   VLC_ADD_PLUGIN([stream_out_raop])
4659   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS} -lgpg-error])
4660   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
4661 ], [
4662   AC_MSG_RESULT(no)
4663   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4664 ])
4665
4666
4667 dnl
4668 dnl update checking system
4669 dnl
4670 AC_ARG_ENABLE(update-check,
4671   [  --enable-update-check   update checking system (default disabled)])
4672 if test "${enable_update_check}" = "yes"
4673 then
4674   if test "${have_libgcrypt}" != "yes"
4675   then
4676     AC_MSG_ERROR([libgcrypt is required for update checking system])
4677   fi
4678   VLC_ADD_LIBS([libvlccore], [${LIBGCRYPT_LIBS}])
4679   VLC_ADD_CFLAGS([libvlccore], [${LIBGCRYPT_CFLAGS}])
4680   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4681 fi
4682
4683
4684 dnl
4685 dnl  Endianness check
4686 dnl
4687 AC_C_BIGENDIAN
4688 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4689   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4690 ], [
4691   DEFS_BIGENDIAN=""
4692 ])
4693 AC_SUBST(DEFS_BIGENDIAN)
4694
4695 dnl
4696 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4697 dnl
4698 loader=false
4699 AC_ARG_ENABLE(loader,
4700   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4701                   (default disabled)]))
4702 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4703 AS_IF([test "${enable_loader}" = "yes"],
4704   [ VLC_ADD_PLUGIN([dmo])
4705     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
4706     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4707     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
4708     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4709     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4710     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
4711     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4712     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4713   ])
4714
4715 AC_ARG_WITH(,[Components:])
4716
4717 dnl
4718 dnl  the VLC binary
4719 dnl
4720 AC_ARG_ENABLE(vlc,
4721   [  --enable-vlc            build the VLC media player (default enabled)])
4722 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4723
4724 dnl
4725 dnl  Microsoft ActiveX support
4726 dnl
4727 activex=false
4728 AC_ARG_ENABLE(activex,
4729   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4730                   (default enabled on Win32)]))
4731 AC_ARG_WITH(wine-sdk-path,
4732   [    --with-wine-sdk-path=PATH path to wine sdk])
4733 if test "${enable_activex}" != "no"
4734 then
4735   if test "${SYS}" = "mingw32"
4736   then
4737     AC_CHECK_PROGS(MIDL, [midl], no)
4738     if test "${with_wine_sdk_path}" != ""
4739     then
4740        WINE_SDK_PATH=${with_wine_sdk_path}
4741        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4742     else
4743        WIDL=no
4744     fi
4745     AC_LANG_PUSH(C++)
4746     AC_CHECK_HEADERS(ole2.h,
4747       [AC_CHECK_HEADERS(olectl.h,
4748         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4749           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4750           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4751           AC_CHECK_HEADERS(objsafe.h,
4752             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4753             [
4754              #if HAVE_OLE2_H
4755              #   include <ole2.h>
4756              #endif
4757             ]
4758           )
4759           activex=:
4760           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4761         ],
4762         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4763       )],
4764       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4765     )
4766     AC_LANG_POP(C++)
4767   fi
4768 fi
4769 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4770 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4771 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4772 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4773 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4774
4775 dnl
4776 dnl  Mozilla plugin
4777 dnl
4778 mozilla=false
4779 AC_ARG_ENABLE(mozilla,
4780   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4781                   (default disabled)]))
4782 AC_ARG_WITH(mozilla-sdk-path,
4783   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
4784 AC_ARG_WITH(mozilla-pkg,
4785   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4786 AC_LANG_PUSH(C++)
4787 if test "${enable_mozilla}" = "yes"
4788 then
4789   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4790     [
4791     dnl pkg-config
4792     dnl As we want to do a loop due to the number of name possible for the .pc
4793     dnl we can't use the pkg-config macros.
4794
4795     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4796     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4797     AC_MSG_NOTICE([Checking for Mozilla])
4798     found=0
4799     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4800     then
4801       found=1
4802     else
4803       if test -n "$PKG_CONFIG"; then
4804         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4805           echo "Trying to find $i.pc files" >&5
4806           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4807           then
4808             echo "Using $i.pc files." >&5
4809             echo "Using $i.pc files." >&6
4810             found=1
4811             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
4812             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
4813             break
4814           fi
4815         done
4816       fi
4817     fi
4818     AS_IF( [test $found = 1],[
4819         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4820         MOZILLA_REQUIRED_HEADERS=1
4821         AC_CHECK_HEADERS([npfunctions.h])
4822         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4823         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4824           [#if HAVE_NPAPI_H
4825            # include <npapi.h>
4826            #endif
4827           ])
4828         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4829             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
4830         fi
4831         MOZILLA_REQUIRED_HEADERS=
4832         mozilla=:
4833         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4834            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
4835            AS_IF([ test "${SYS}" != "darwin"],[
4836              PKG_CHECK_MODULES(XPM, [xpm xt],[
4837                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4838              ],[
4839                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4840              ])
4841           ])
4842         ])
4843         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4844         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4845         VLC_ADD_PLUGIN([mozilla])
4846         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4847         MOZILLA_CONFIG=
4848         CPPFLAGS="${CPPFLAGS_save}"
4849           ],
4850           [
4851             AC_PATH_PROGS(MOZILLA_CONFIG,
4852             [mozilla-config seamonkey-config xulrunner-config],
4853         [no])
4854             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
4855           ]
4856         )
4857     dnl pkg-config failed but we might have found a mozilla-config
4858     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
4859       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
4860         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4861         AC_CHECK_LIB(Xt,XtStrings,
4862          [
4863            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
4864            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
4865          ],
4866          [],
4867          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
4868         ])
4869         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
4870         LDFLAGS="${LDFLAGS_save}"
4871       fi
4872
4873       mozilla=:
4874       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4875       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
4876       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
4877       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4878       MOZILLA_REQUIRED_HEADERS=1
4879       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4880       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4881       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4882         [#if HAVE_NPAPI_H
4883          # include <npapi.h>
4884          #endif
4885         ])
4886       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4887       then
4888         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4889       fi
4890       MOZILLA_REQUIRED_HEADERS=
4891       CPPFLAGS="${CPPFLAGS_save}"
4892       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
4893     ])
4894     dnl End of moz_sdk = ""
4895   ],[
4896     dnl special case for mingw32
4897     if test "${SYS}" = "mingw32"
4898     then
4899       AC_CHECK_TOOL(CYGPATH, cygpath, "")
4900       dnl latest gecko sdk does not have an xpcom directory
4901       if test -d "${with_mozilla_sdk_path}/xpcom"; then
4902           mozilla_sdk_xpcom="/xpcom"
4903       fi
4904     fi
4905
4906     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4907     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
4908     MOZILLA_REQUIRED_HEADERS=1
4909     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4910     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4911     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4912         [#if HAVE_NPAPI_H
4913           #include <npapi.h>
4914           #endif
4915         ])
4916     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4917     then
4918         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4919     fi
4920     MOZILLA_REQUIRED_HEADERS=
4921     mozilla=:
4922     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4923     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])
4924     if ${need_xpcom_libs}; then
4925        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])
4926       if test "${SYS}" = "mingw32"; then
4927         dnl latest gecko sdk does not have embedstring
4928         if test -d "${real_mozilla_sdk}/embedstring/bin"
4929         then
4930           VLC_ADD_LIBS([mozilla],[-lembedstring])
4931         fi
4932       fi
4933     fi
4934     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
4935
4936     if test -n "${CYGPATH}"; then
4937       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4938     fi
4939     CPPFLAGS="${CPPFLAGS_save}"
4940  ])
4941 fi
4942 AC_LANG_POP(C++)
4943 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4944
4945 dnl Tests for Osso and Xsp
4946 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
4947   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
4948     VLC_ADD_CPPFLAGS([xvmc glx],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
4949     VLC_ADD_LIBS([xvmc glx],[-losso])
4950  ])
4951 ])
4952 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
4953   VLC_ADD_CPPFLAGS([xvmc glx],[-DHAVE_XSP])
4954   VLC_ADD_LIBS([xvmc glx],[-lXsp])
4955 ])
4956
4957 dnl
4958 dnl  test plugins
4959 dnl
4960 AC_ARG_ENABLE(testsuite,
4961   [  --enable-testsuite      build test modules (default disabled)])
4962 if test "${enable_testsuite}" = "yes"
4963 then
4964   TESTS="test1 test2 test3 test4"
4965
4966   dnl  we define those so that bootstrap sets the right linker
4967   VLC_ADD_CXXFLAGS([test2],[])
4968   VLC_ADD_OBJCFLAGS([test3],[])
4969   dnl  this one is needed until automake knows what to do
4970   VLC_ADD_LIBS([test3],[-lobjc])
4971
4972   VLC_ADD_PLUGIN([test1])
4973   VLC_ADD_PLUGIN([test2])
4974   VLC_ADD_PLUGIN([test3])
4975   VLC_ADD_PLUGIN([test4])
4976 fi
4977
4978 dnl
4979 dnl  qte_main plugin
4980 dnl
4981 if test "${NEED_QTE_MAIN}" != "no"
4982 then
4983     VLC_ADD_PLUGIN([qte_main])
4984     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
4985     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
4986     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
4987 fi
4988
4989 dnl
4990 dnl  Plugin and builtin checks
4991 dnl
4992 plugin_support=yes
4993
4994 dnl Automagically disable plugins if there is no system support for
4995 dnl dynamically loadable files (.so, .dll, .dylib).
4996 dnl don't forget vlc-win32 still can load .dll as plugins
4997 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
4998   AC_MSG_WARN([*** No plugin support! Building statically! ***])
4999   plugin_support=no
5000 ])
5001
5002 AS_IF([test "${plugin_support}" != "no"], [
5003   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5004 ])
5005
5006 dnl
5007 dnl Pic and shared libvlc stuff
5008 dnl
5009 AS_IF([test "${SYS}" = "mingw32"], [
5010   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5011   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5012 ])
5013
5014 dnl
5015 dnl  Stuff used by the program
5016 dnl
5017 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5018 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5019 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5020 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5021 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5022 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5023 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5024 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5025 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5026 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5027 AC_SUBST(COPYRIGHT_MESSAGE)
5028 AC_SUBST(VERSION_MESSAGE)
5029 AC_SUBST(VERSION_MAJOR)
5030 AC_SUBST(VERSION_MINOR)
5031 AC_SUBST(VERSION_REVISION)
5032 AC_SUBST(VERSION_EXTRA)
5033 AC_SUBST(COPYRIGHT_YEARS)
5034 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5035 if test "${build_os}" = "cygwin"
5036 then
5037     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5038 else
5039     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5040 fi
5041 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5042 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5043 dnl Win32 need s a numerical version_extra.
5044 case $( echo ${VERSION_EXTRA}|wc -m ) in
5045        "1") VERSION_EXTRA_RC="0";;
5046        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5047        *) VERSION_EXTRA_RC="99"
5048 esac
5049 AC_SUBST(VERSION_EXTRA_RC)
5050 dnl
5051 dnl  Handle substvars that use $(top_srcdir)
5052 dnl
5053 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5054 AC_SUBST(VLC_CONFIG)
5055 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5056
5057 dnl
5058 dnl  Restore *FLAGS
5059 dnl
5060 VLC_RESTORE_FLAGS
5061
5062 dnl
5063 dnl Sort the modules list
5064 dnl
5065 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5066
5067 dnl
5068 dnl  Create the vlc-config script
5069 dnl
5070 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5071
5072 dnl
5073 dnl  Configuration is finished
5074 dnl
5075 AC_SUBST(SYS)
5076 AC_SUBST(ARCH)
5077 AC_SUBST(ALIASES)
5078 AC_SUBST(ASM)
5079 AC_SUBST(MOC)
5080 AC_SUBST(RCC)
5081 AC_SUBST(UIC)
5082 AC_SUBST(WINDRES)
5083 AC_SUBST(MOZILLA_SDK_PATH)
5084 AC_SUBST(WINE_SDK_PATH)
5085 AC_SUBST(LIBEXT)
5086 AC_SUBST(AM_CPPFLAGS)
5087 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5088 AC_SUBST(FILE_LIBVLCCORE_DLL)
5089 AC_SUBST(FILE_LIBVLC_DLL)
5090
5091 dnl Create vlc-config.in
5092 VLC_OUTPUT_VLC_CONFIG_IN
5093
5094 AC_CONFIG_FILES([
5095   extras/package/win32/vlc.win32.nsi
5096   extras/package/macosx/Info.plist
5097   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5098   extras/package/macosx/plugin/Info.plist
5099   extras/package/macosx/plugin/InstallerInfo.plist
5100   Makefile
5101   projects/activex/Makefile
5102   projects/activex/axvlc.inf
5103   doc/Makefile
5104   extras/package/ipkg/Makefile
5105   libs/loader/Makefile
5106   libs/srtp/Makefile
5107   libs/unzip/Makefile
5108   modules/Makefile
5109   projects/mozilla/Makefile
5110   m4/Makefile
5111   po/Makefile.in
5112   projects/activex/axvlc_rc.rc
5113   projects/mozilla/npvlc_rc.rc
5114   projects/mozilla/vlc.r
5115   projects/mozilla/install.js
5116   share/Makefile
5117   share/vlc_win32_rc.rc
5118   share/libvlc_win32_rc.rc
5119   compat/Makefile
5120   src/Makefile
5121   src/test/Makefile
5122   bin/Makefile
5123   test/Makefile
5124   modules/access/Makefile
5125   modules/access/bd/Makefile
5126   modules/access/bda/Makefile
5127   modules/access/dshow/Makefile
5128   modules/access/dvb/Makefile
5129   modules/access/mms/Makefile
5130   modules/access/cdda/Makefile
5131   modules/access/rtp/Makefile
5132   modules/access/rtsp/Makefile
5133   modules/access/vcd/Makefile
5134   modules/access/vcdx/Makefile
5135   modules/access/screen/Makefile
5136   modules/access/zip/Makefile
5137   modules/access_output/Makefile
5138   modules/audio_filter/Makefile
5139   modules/audio_filter/channel_mixer/Makefile
5140   modules/audio_filter/converter/Makefile
5141   modules/audio_filter/resampler/Makefile
5142   modules/audio_filter/spatializer/Makefile
5143   modules/audio_mixer/Makefile
5144   modules/audio_output/Makefile
5145   modules/codec/Makefile
5146   modules/codec/avcodec/Makefile
5147   modules/codec/cmml/Makefile
5148   modules/codec/dmo/Makefile
5149   modules/codec/shine/Makefile
5150   modules/codec/subtitles/Makefile
5151   modules/codec/spudec/Makefile
5152   modules/codec/wmafixed/Makefile
5153   modules/codec/xvmc/Makefile
5154   modules/control/Makefile
5155   modules/control/http/Makefile
5156   modules/control/globalhotkeys/Makefile
5157   modules/demux/Makefile
5158   modules/demux/asf/Makefile
5159   modules/demux/avformat/Makefile
5160   modules/demux/avi/Makefile
5161   modules/demux/mkv/Makefile
5162   modules/demux/mp4/Makefile
5163   modules/demux/mpeg/Makefile
5164   modules/demux/playlist/Makefile
5165   modules/gui/Makefile
5166   modules/gui/beos/Makefile
5167   modules/gui/macosx/Makefile
5168   modules/gui/maemo/Makefile
5169   modules/gui/minimal_macosx/Makefile
5170   modules/gui/qnx/Makefile
5171   modules/gui/qt4/Makefile
5172   modules/gui/skins2/Makefile
5173   modules/gui/wince/Makefile
5174   modules/meta_engine/Makefile
5175   modules/misc/Makefile
5176   modules/misc/dummy/Makefile
5177   modules/misc/lua/Makefile
5178   modules/misc/memcpy/Makefile
5179   modules/misc/notify/Makefile
5180   modules/misc/testsuite/Makefile
5181   modules/misc/playlist/Makefile
5182   modules/misc/osd/Makefile
5183   modules/misc/stats/Makefile
5184   modules/misc/xml/Makefile
5185   modules/misc/probe/Makefile
5186   modules/mux/Makefile
5187   modules/mux/mpeg/Makefile
5188   modules/packetizer/Makefile
5189   modules/services_discovery/Makefile
5190   modules/stream_filter/Makefile
5191   modules/stream_out/Makefile
5192   modules/video_chroma/Makefile
5193   modules/video_filter/Makefile
5194   modules/video_filter/dynamicoverlay/Makefile
5195   modules/video_output/Makefile
5196   modules/video_output/msw/Makefile
5197   modules/video_output/qte/Makefile
5198   modules/video_output/x11/Makefile
5199   modules/visualization/Makefile
5200   modules/visualization/visual/Makefile
5201 ])
5202
5203 dnl Generate makefiles
5204 AC_OUTPUT
5205
5206 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5207 # not provided with the source
5208 ${SHELL} ./config.status --file=vlc-config
5209 chmod 0755 vlc-config
5210
5211 /bin/echo -n "Enabled modules: "
5212 ./vlc-config --list plugin
5213
5214 dnl Shortcut to nice compile message
5215 rm -f compile
5216 echo '#! /bin/sh' >compile
5217 echo rm -f .error\$\$ >>compile
5218 echo ERROR=0 >>compile
5219 echo export PATH=$PATH LANG=C >>compile
5220 echo "(make V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5221 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5222 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5223 echo rm -f .error\$\$ >>compile
5224 echo exit \$ERROR >>compile
5225 chmod a+x compile
5226
5227 printf "
5228 libvlc configuration
5229 --------------------
5230 version               : ${VERSION}
5231 system                : ${SYS}
5232 architecture          : ${ARCH}
5233 build flavour         : "
5234 test "${enable_debug}" = "yes" && printf "debug "
5235 test "${enable_cprof}" = "yes" && printf "cprof "
5236 test "${enable_gprof}" = "yes" && printf "gprof "
5237 test "${enable_optimizations}" = "yes" && printf "optim "
5238 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5239 echo ""
5240 if test "${enable_vlc}" != "no"; then
5241 echo "vlc aliases           :${ALIASES}"
5242 else
5243 echo "build vlc executable  : no"
5244 fi
5245 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5246
5247 You can tune the compiler flags in vlc-config.
5248 To build vlc and its plugins, type \`./compile' or \`make'.
5249 "
5250 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5251    echo ""
5252    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5253    echo "         turned off."
5254    echo "         FFmpeg will be REALLY slow."
5255    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5256    echo ""
5257 fi