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