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