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