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