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