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