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