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