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