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