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