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