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