]> git.sesse.net Git - vlc/blob - configure.ac
Use pkg-config to detect libraw1394 and libavc1394
[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   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
2028     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
2029         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
2030 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
2031               VLC_ADD_PLUGIN([dc1394])
2032               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
2033 dnl         ],
2034 dnl         [
2035 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2036 dnl         ])
2037       ],
2038       [
2039         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2040       ])
2041     ],
2042     [
2043       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2044     ])
2045   ],
2046   [
2047     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
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_PLUGIN([access_dv])
2064       VLC_ADD_LIBS([access_dv],[`${PKG_CONFIG} --libs libraw1394`])
2065       VLC_ADD_CPPFLAGS([access_dv],[`${PKG_CONFIG} --cflags libraw1394`])
2066     ],
2067     [AC_MSG_ERROR([Couldn't find libraw1394 >= 2.0.1, install libraw1394 development package ?])]
2068   )
2069
2070   dnl
2071   dnl Check for libavc1394
2072   dnl
2073   PKG_CHECK_MODULES(LIBAVC1394, libavc1394 >= 0.5.3,
2074     [
2075       VLC_ADD_PLUGIN([access_dv])
2076       VLC_ADD_LIBS([access_dv],[`${PKG_CONFIG} --libs libavc1394`])
2077       VLC_ADD_CPPFLAGS([access_dv],[`${PKG_CONFIG} --cflags libavc1394`])
2078     ],
2079     [AC_MSG_ERROR([Couldn't find libavc1394 >= 0.5.1, install libavc1394 development package ?])]
2080   )
2081 fi
2082
2083 dnl
2084 dnl dvdread module: check for libdvdread
2085 dnl
2086 AC_ARG_ENABLE(dvdread,
2087 [  --enable-dvdread        dvdread input module (default disabled)])
2088 if test "${enable_dvdread}" != "no"
2089 then
2090   AC_ARG_WITH(dvdread,
2091   [    --with-dvdread=PATH   libdvdread headers and libraries])
2092   AC_ARG_WITH(dvdread-tree,
2093   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2094
2095   dnl Temporary hack (yeah, sure ;)
2096   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2097       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2098   fi
2099
2100   if test -z "${with_dvdread}"
2101   then
2102     if test -z "${with_dvdread_tree}"
2103     then
2104       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2105         [ VLC_ADD_PLUGIN([dvdread])
2106           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2107         ],[
2108           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2109             [ VLC_ADD_PLUGIN([dvdread])
2110               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2111             ],[
2112               if test -n "${enable_dvdread}"
2113               then
2114               AC_MSG_ERROR([cannot find libdvdread headers])
2115              fi
2116            ])
2117         ])
2118     else
2119       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2120       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2121       if test -z "${real_dvdread_tree}"
2122       then
2123         dnl  The given directory can't be found
2124         AC_MSG_RESULT(no)
2125         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2126       fi
2127       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2128       then
2129         dnl  Use a custom libdvdread
2130         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2131         VLC_ADD_PLUGIN([dvdread])
2132         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2133         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2134       else
2135         dnl  The given libdvdread wasn't built
2136         AC_MSG_RESULT(no)
2137         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2138       fi
2139     fi
2140   else
2141     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2142     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2143     then
2144       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2145       AC_MSG_RESULT(yes)
2146       VLC_ADD_PLUGIN([dvdread])
2147       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2148       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2149     else
2150       dnl  No libdvdread could be found, sorry
2151       AC_MSG_RESULT(no)
2152       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2153     fi
2154   fi
2155 fi
2156
2157 dnl
2158 dnl  libdvdnav plugin
2159 dnl
2160 AC_ARG_ENABLE(dvdnav,
2161   [  --enable-dvdnav         dvdnav input module (default enabled)])
2162 if test "${enable_dvdnav}" != "no"
2163 then
2164   dnl Same hack than dvdread
2165   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2166       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2167   fi
2168
2169   DVDNAV_PATH="${PATH}"
2170   AC_ARG_WITH(dvdnav-config-path,
2171     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2172     [ if test "${with_dvdnav_config_path}" != "no"
2173       then
2174         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2175       fi ])
2176   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2177   if test "${DVDNAV_CONFIG}" != "no"
2178   then
2179     VLC_ADD_PLUGIN([dvdnav])
2180     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2181     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2182   fi
2183 fi
2184
2185 dnl
2186 dnl  Windows DirectShow access module
2187 dnl
2188 AC_ARG_ENABLE(dshow,
2189   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2190 if test "${enable_dshow}" != "no"
2191 then
2192   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2193   then
2194     AC_LANG_PUSH(C++)
2195       AC_CHECK_HEADERS(dshow.h,
2196       [ VLC_ADD_PLUGIN([dshow])
2197         VLC_ADD_CXXFLAGS([dshow],[])
2198         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2199     AC_LANG_POP(C++)
2200   fi
2201 fi
2202
2203 dnl
2204 dnl  Windows DirectShow BDA access module
2205 dnl
2206 AC_ARG_ENABLE(bda,
2207   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2208                   enabled on Win32)]))
2209 if test "${enable_bda}" != "no"
2210 then
2211   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2212   then
2213       AC_CHECK_HEADERS(dshow.h,
2214       [ VLC_ADD_PLUGIN([bda])
2215         VLC_ADD_CXXFLAGS([bda],[])
2216         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2217   fi
2218 fi
2219
2220
2221 dnl
2222 dnl  OpenCV wrapper and example filters
2223 dnl
2224 AC_ARG_ENABLE(opencv,
2225   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2226 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2227 then
2228   AC_ARG_WITH(opencv-tree,
2229   [    --with-opencv-tree=PATH opencv tree for linking])
2230     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2231     then
2232       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2233       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2234       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2235         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2236       then
2237         AC_MSG_RESULT(yes)
2238         VLC_ADD_PLUGIN([opencv_wrapper])
2239         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2240         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])
2241         AC_LANG_PUSH(C++)
2242         VLC_ADD_PLUGIN([opencv_example])
2243         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2244         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])
2245         AC_LANG_POP(C++)
2246           else
2247         dnl  No opencv could be found, sorry
2248         AC_MSG_RESULT(no)
2249         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2250           fi
2251     else
2252       PKG_CHECK_MODULES(OPENCV, opencv,
2253         [
2254           VLC_ADD_PLUGIN([opencv_example])
2255           VLC_ADD_PLUGIN([opencv_wrapper])
2256           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2257           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2258           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2259         ],
2260         [AC_MSG_ERROR([libopencv not found!])]
2261       )
2262     fi
2263 fi
2264
2265
2266 dnl
2267 dnl  libsmbclient plugin
2268 dnl
2269 AC_ARG_ENABLE(smb,
2270   [  --enable-smb            smb input module (default enabled)])
2271 if test "${enable_smb}" != "no"; then
2272   AC_CHECK_HEADERS(libsmbclient.h,
2273     [ VLC_ADD_PLUGIN([access_smb])
2274       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2275     [ if test -n "${enable_smb}"; then
2276         AC_MSG_ERROR([cannot find libsmbclient headers])
2277      fi ])
2278   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2279     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2280     [#include <libsmbclient.h>])
2281 fi
2282
2283 dnl
2284 dnl  libdvbpsi ts demux/mux
2285 dnl
2286 AC_ARG_ENABLE(dvbpsi,
2287   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2288 have_dvbpsi=no
2289 if test "${enable_dvbpsi}" != "no"
2290 then
2291   AC_ARG_WITH(dvbpsi,
2292   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2293   AC_ARG_WITH(dvbpsi,
2294   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2295   case "${with_dvbpsi}" in
2296   ""|yes)
2297     if test -z "${with_dvbpsi_tree}"
2298     then
2299       AC_CHECK_HEADERS(dvbpsi/dr.h,
2300         [ VLC_ADD_PLUGIN([ts])
2301           if test "${enable_sout}" != "no"; then
2302             VLC_ADD_PLUGIN([mux_ts])
2303           fi
2304           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2305           have_dvbpsi=yes],
2306         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2307         [#if defined( HAVE_STDINT_H )
2308 #   include <stdint.h>
2309 #elif defined( HAVE_INTTYPES_H )
2310 #   include <inttypes.h>
2311 #endif
2312 #include <dvbpsi/dvbpsi.h>
2313 #include <dvbpsi/descriptor.h>
2314 #include <dvbpsi/pat.h>
2315 #include <dvbpsi/pmt.h>])
2316     else
2317       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2318       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2319       if test -z "${real_dvbpsi_tree}"
2320       then
2321         dnl  The given directory can't be found
2322         AC_MSG_RESULT(no)
2323         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2324       fi
2325       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2326       then
2327         dnl  Use a custom libdvbpsi
2328         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2329         VLC_ADD_PLUGIN([ts])
2330         if test "${enable_sout}" != "no"; then
2331           VLC_ADD_PLUGIN([mux_ts])
2332         fi
2333         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2334         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2335         have_dvbpsi=yes
2336       else
2337         dnl  The given libdvbpsi wasn't built
2338         AC_MSG_RESULT(no)
2339         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2340       fi
2341     fi
2342   ;;
2343   no)
2344     dnl  Compile without dvbpsi
2345   ;;
2346   *)
2347     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2348     if test -z "${with_dvbpsi}"
2349     then
2350       LDFLAGS_test=""
2351       CPPFLAGS_test=""
2352     else
2353       LDFLAGS_test="-L${with_dvbpsi}/lib"
2354       CPPFLAGS_test="-I${with_dvbpsi}/include"
2355     fi
2356     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2357     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2358       VLC_ADD_PLUGIN([ts])
2359       if test "${enable_sout}" != "no"; then
2360         VLC_ADD_PLUGIN([mux_ts])
2361       fi
2362       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2363       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2364       have_dvbpsi=yes
2365     ],[
2366       if test -n "${enable_dvbpsi}"
2367       then
2368         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])
2369       fi
2370     ])
2371     CPPFLAGS="${CPPFLAGS_save}"
2372   ;;
2373   esac
2374   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2375     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2376   ], [], [${LIBS_ts}])
2377
2378 fi
2379
2380 dnl
2381 dnl  Video4Linux plugin
2382 dnl
2383 AC_ARG_ENABLE(v4l,
2384   [  --enable-v4l            Video4Linux input support (default disabled)])
2385 if test "${enable_v4l}" = "yes"
2386 then
2387   AC_ARG_WITH(v4l,
2388     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2389   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2390   then
2391     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2392   fi
2393
2394   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2395   AC_CHECK_HEADERS(linux/videodev.h, [
2396     VLC_ADD_PLUGIN([v4l])
2397   ],[])
2398   CPPFLAGS="${CPPFLAGS_save}"
2399 fi
2400
2401 dnl
2402 dnl  Video4Linux2 plugin
2403 dnl
2404 AC_ARG_ENABLE(v4l2,
2405   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2406 if test "${enable_v4l2}" != "no"
2407 then
2408   AC_ARG_WITH(v4l2,
2409     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2410   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2411   then
2412     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2413   fi
2414
2415   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2416   AC_CHECK_HEADERS(linux/videodev2.h, [
2417     VLC_ADD_PLUGIN([v4l2])
2418   ],[])
2419   CPPFLAGS="${CPPFLAGS_save}"
2420 fi
2421
2422 dnl
2423 dnl libv4l2 support for video4linux.
2424 dnl
2425 AC_ARG_ENABLE( libv4l2,
2426   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2427 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2428 then
2429     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2430       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2431       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2432       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2433       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2434     )
2435 fi
2436
2437 dnl
2438 dnl  special access module for Hauppauge PVR cards
2439 dnl
2440 AC_ARG_ENABLE(pvr,
2441   [  --enable-pvr            PVR cards access module (default disabled)])
2442 if test "${enable_pvr}" = "yes"
2443 then
2444   VLC_ADD_PLUGIN([pvr])
2445   AC_ARG_WITH(videodev2,
2446     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2447   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2448   then
2449     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2450   fi
2451
2452   AC_CACHE_CHECK([for new linux/videodev2.h],
2453       [ac_cv_new_linux_videodev2_h],
2454       [AC_TRY_COMPILE([
2455           #include <sys/types.h>
2456           #   ifdef VIDEODEV2_H_FILE
2457           #   include VIDEODEV2_H_FILE
2458           #   else
2459           #   include <linux/videodev2.h>
2460           #   endif
2461           ],
2462           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2463           ac_cv_new_linux_videodev2_h=yes,
2464           ac_cv_new_linux_videodev2_h=no)])
2465   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2466     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2467   fi
2468 fi
2469
2470 dnl
2471 dnl  gnomeVFS access module
2472 dnl
2473 AC_ARG_ENABLE(gnomevfs,
2474   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2475 if test "${enable_gnomevfs}" = "yes"
2476 then
2477   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2478     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2479     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2480     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2481     VLC_ADD_PLUGIN([access_gnomevfs]),
2482     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2483 fi
2484
2485 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2486 AC_ARG_ENABLE(libcdio,
2487   [  --enable-libcdio        CD input and control library support (default enabled)])
2488
2489 AC_ARG_ENABLE(vcdinfo,
2490   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2491
2492 have_libcdio=no
2493 have_libvcdinfo=no
2494 if test "${enable_libcdio}" != "no"
2495 then
2496   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2497      have_libcdio=yes
2498      AC_DEFINE(HAVE_LIBCDIO, 1,
2499      [Define if you have libcdio 0.78.2 or greater installed]),
2500      [AC_MSG_WARN(CD Reading and information library not found)])
2501
2502   if test "${enable_vcdinfo}" != "no"
2503   then
2504     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2505        [have_libvcdinfo=yes
2506        AC_DEFINE(HAVE_VCDINFO, 1,
2507        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2508        [AC_MSG_WARN(VCD information library not found)])
2509   fi
2510 fi
2511
2512 dnl
2513 dnl  VCDX and CDDAX modules
2514 dnl
2515 AC_ARG_ENABLE(cddax,
2516   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2517                   via libcdio (default disabled)]))
2518
2519 AC_ARG_ENABLE(libcddb,
2520   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2521
2522 if test "${enable_cddax}" = "yes"
2523 then
2524   if test "$have_libcdio" = "yes"
2525   then
2526     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2527     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2528     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2529     VLC_ADD_PLUGIN([cddax])
2530     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2531     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2532     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2533   else
2534     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2535     HAVE_CDDAX=no
2536   fi
2537
2538   if test "$enable_libcddb" != "no"; then
2539     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2540       HAVE_LIBCDDB=yes
2541       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2542       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2543       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2544       ],
2545       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2546       HAVE_LIBCDDB=no])
2547   fi
2548
2549 fi
2550
2551 AC_ARG_ENABLE(vcdx,
2552   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2553
2554 if test "${enable_vcdx}" = "yes"
2555 then
2556   if test "${have_libvcdinfo}" = "yes"
2557   then
2558     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2559     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2560   else
2561     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2562     HAVE_VCDX=no
2563   fi
2564
2565   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2566    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2567     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2568     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2569     HAVE_VCDX=no])
2570
2571   if test "$have_libvcdinfo" = "yes"
2572   then
2573     AC_DEFINE(HAVE_VCDX, 1,
2574     [Define for the VCD plugin using libcdio/libvcdinfo])
2575     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2576     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2577     VLC_ADD_PLUGIN([vcdx])
2578   else
2579     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2580     HAVE_VCDX=no
2581   fi
2582 fi
2583
2584 dnl
2585 dnl  Built-in CD-DA and VCD module
2586 dnl
2587 AC_ARG_ENABLE(cdda,
2588   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2589
2590 AC_ARG_ENABLE(vcd,
2591   [  --enable-vcd            built-in VCD (default enabled)])
2592
2593 if test "${enable_vcd}" != "no"
2594 then
2595   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2596   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2597     AC_MSG_RESULT(yes)
2598     VLC_ADD_PLUGIN([vcd])
2599     VLC_ADD_PLUGIN([cdda])
2600   ],[
2601     AC_MSG_RESULT(no)
2602   ])
2603
2604   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2605   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2606     AC_MSG_RESULT(yes)
2607     VLC_ADD_PLUGIN([vcd])
2608     VLC_ADD_PLUGIN([cdda])
2609     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2610   ],[
2611     AC_MSG_RESULT(no)
2612   ])
2613
2614   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2615   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2616     AC_MSG_RESULT(yes)
2617     VLC_ADD_PLUGIN([vcd])
2618     VLC_ADD_PLUGIN([cdda])
2619     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2620   ],[
2621     AC_MSG_RESULT(no)
2622   ])
2623
2624   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2625   then
2626     VLC_ADD_PLUGIN([vcd])
2627     VLC_ADD_PLUGIN([cdda])
2628   fi
2629
2630   if test "${SYS}" = "darwin"
2631   then
2632     VLC_ADD_PLUGIN([vcd])
2633     VLC_ADD_PLUGIN([cdda])
2634     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2635     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2636   fi
2637
2638   if test "$enable_libcddb" != "no"; then
2639     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2640       HAVE_LIBCDDB=yes
2641       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2642       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2643       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2644       ],:
2645       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2646       HAVE_LIBCDDB=no])
2647   fi
2648 fi
2649
2650 dnl
2651 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2652 dnl
2653 AC_ARG_ENABLE(dvb,
2654   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2655
2656 if test "${enable_dvb}" != "no"
2657 then
2658     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2659     AC_ARG_WITH(dvb,
2660      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2661      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2662      then
2663        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2664      fi
2665      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2666      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2667      VLC_ADD_PLUGIN([dvb])
2668      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2669      CPPFLAGS="${CPPFLAGS_save}"
2670    ],[
2671      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2672     ])
2673 fi
2674
2675 dnl
2676 dnl  Screen capture module
2677 dnl
2678 AC_ARG_ENABLE(screen,
2679   [  --enable-screen         Screen capture support (default enabled)])
2680 if test "${enable_screen}" != "no"; then
2681   if test "${SYS}" = "darwin"; then
2682     AC_CHECK_HEADERS(OpenGL/gl.h, [
2683       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2684         VLC_ADD_PLUGIN([screen])
2685         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2686       ])
2687     ])
2688   elif test "${SYS}" = "mingw32"; then
2689     VLC_ADD_PLUGIN([screen])
2690     VLC_ADD_LIBS([screen],[-lgdi32])
2691   elif test "${SYS}" = "mingwce"; then
2692     CPPFLAGS="${CPPFLAGS_save}"
2693   elif test "${SYS}" = "beos"; then
2694     VLC_ADD_PLUGIN([screen])
2695     VLC_ADD_CXXFLAGS([screen],[])
2696     VLC_ADD_LIBS([screen],[-lbe])
2697   fi
2698 fi
2699
2700 dnl
2701 dnl  ipv6 plugin - not for QNX yet
2702 dnl
2703 have_ipv6=no
2704 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2705   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2706 ])
2707
2708 AS_IF([test "${have_ipv6}" = "yes"], [
2709   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2710
2711
2712 AC_CHECK_FUNCS(inet_ntop,[
2713   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2714
2715
2716 dnl
2717 dnl  ogg demux plugin
2718 dnl
2719 AC_ARG_ENABLE(ogg,
2720   [  --enable-ogg            Ogg demux support (default enabled)])
2721 if test "${enable_ogg}" != "no"
2722 then
2723   AC_ARG_WITH(ogg-tree,
2724   [    --with-ogg-tree=PATH  ogg tree for static linking])
2725   if test -n "${with_ogg_tree}"
2726   then
2727     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2728     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2729     if test -z "${real_ogg_tree}"
2730     then
2731       dnl  The given directory can't be found
2732       AC_MSG_RESULT(no)
2733       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2734     fi
2735     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2736     then
2737       dnl  Use a custom ogg
2738       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2739       VLC_ADD_PLUGIN([ogg])
2740       if test "${enable_sout}" != "no"; then
2741         VLC_ADD_PLUGIN([mux_ogg])
2742       fi
2743       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2744       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2745     else
2746       dnl  The given ogg wasn't built
2747       AC_MSG_RESULT(no)
2748       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2749     fi
2750   else
2751     AC_CHECK_HEADERS(ogg/ogg.h, [
2752       AC_CHECK_LIB( ogg, oggpack_read, [
2753         VLC_ADD_PLUGIN([ogg])
2754         if test "${enable_sout}" != "no"; then
2755           VLC_ADD_PLUGIN([mux_ogg])
2756         fi
2757         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2758      ],[])
2759   fi
2760 fi
2761
2762 dnl
2763 dnl  matroska demux plugin
2764 dnl
2765 AC_ARG_ENABLE(mkv,
2766   [  --enable-mkv            Matroska demux support (default enabled)])
2767 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2768   AC_LANG_PUSH(C++)
2769   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2770     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2771     AC_EGREP_CPP(yes,
2772       [#include <ebml/EbmlVersion.h>
2773        #ifdef LIBEBML_VERSION
2774        #if LIBEBML_VERSION >= 0x000706
2775        yes
2776        #endif
2777        #endif],
2778       [AC_MSG_RESULT([yes])
2779         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2780           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2781           AC_EGREP_CPP(yes,
2782             [#include <matroska/KaxVersion.h>
2783              #ifdef LIBMATROSKA_VERSION
2784              #if LIBMATROSKA_VERSION >= 0x000705
2785              yes
2786              #endif
2787              #endif],
2788             [AC_MSG_RESULT([yes])
2789               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2790               VLC_ADD_CXXFLAGS([mkv],[])
2791               if test "${SYS}" = "darwin"; then
2792                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2793               fi
2794               AC_CHECK_LIB(ebml_pic, main, [
2795                 VLC_ADD_PLUGIN([mkv])
2796                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2797               ],
2798                 AC_CHECK_LIB(ebml, main, [
2799                   VLC_ADD_PLUGIN([mkv])
2800                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2801                 ])
2802               )
2803             ],
2804             [AC_MSG_RESULT([no])
2805               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.])
2806           ])
2807         ])
2808       ],
2809       [AC_MSG_RESULT([no])
2810         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.])
2811     ])
2812   ])
2813   AC_LANG_POP(C++)
2814 fi
2815
2816 dnl
2817 dnl  modplug demux plugin
2818 dnl
2819 AC_ARG_ENABLE(mod,
2820   [  --enable-mod            Mod demux support (default enabled)])
2821 if test "${enable_mod}" != "no"
2822 then
2823   AC_ARG_WITH(mod-tree,
2824   [    --with-mod-tree=PATH mod tree for static linking])
2825   if test -n "${with_mod_tree}"
2826   then
2827     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2828     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2829     if test -z "${real_mod_tree}"
2830     then
2831       dnl  The given directory can't be found
2832       AC_MSG_RESULT(no)
2833       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2834     fi
2835     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2836     then
2837       dnl  Use a custom mod
2838       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2839       VLC_ADD_PLUGIN([mod])
2840       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2841       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2842     else
2843       dnl  The given mod wasn't built
2844       AC_MSG_RESULT(no)
2845       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2846     fi
2847   else
2848     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2849       VLC_ADD_PLUGIN([mod])
2850       VLC_ADD_CXXFLAGS([mod],[])
2851       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2852   fi
2853 fi
2854
2855 dnl
2856 dnl  mpc demux plugin
2857 dnl
2858 AC_ARG_ENABLE(mpc,
2859   [  --enable-mpc            Mpc demux support (default enabled)])
2860 if test "${enable_mpc}" != "no"
2861 then
2862   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2863     VLC_ADD_PLUGIN([mpc])
2864     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2865 fi
2866
2867 dnl
2868 dnl  game music emu demux plugin
2869 dnl
2870 AC_ARG_ENABLE(gme,
2871   [  --enable-gme            Game Music Emu demux support (default enabled)])
2872 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2873 then
2874   AC_LANG_PUSH(C++)
2875   AC_ARG_WITH(gme-tree,
2876   [    --with-gme-tree=PATH gme tree for static linking])
2877   if test -n "${with_gme_tree}"
2878   then
2879     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2880     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2881     if test -z "${real_gme_tree}"
2882     then
2883       dnl  The given directory can't be found
2884       AC_MSG_RESULT(no)
2885       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2886     fi
2887     if test -f "${real_gme_tree}/gme/libgme.a"
2888     then
2889       dnl  Use a custom gme
2890       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2891       VLC_ADD_PLUGIN([gme])
2892       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2893       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2894     else
2895       dnl  The given gme wasn't built
2896       AC_MSG_RESULT(no)
2897       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2898     fi
2899   else
2900       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2901   fi
2902   AC_LANG_POP(C++)
2903 fi
2904
2905 dnl
2906 dnl  Codec plugins
2907 dnl
2908
2909 AC_ARG_WITH(,[Codec plugins:])
2910
2911 dnl
2912 dnl wmafixed plugin
2913 dnl
2914 AC_ARG_ENABLE(wma-fixed,
2915   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2916 if test "${enable_wma_fixed}" = "yes"
2917 then
2918   VLC_ADD_PLUGIN([wma_fixed])
2919 fi
2920
2921 dnl
2922 dnl shine fixed point mp3 encoder
2923 dnl
2924 AC_ARG_ENABLE(shine,
2925   [  --enable-shine          shine mp3 encoding module (default disabled)])
2926 if test "${enable_shine}" = "yes"
2927 then
2928   VLC_ADD_PLUGIN([shine])
2929 fi
2930
2931 dnl
2932 dnl  mad plugin
2933 dnl
2934 AC_ARG_ENABLE(mad,
2935   [  --enable-mad            libmad module (default enabled)])
2936 if test "${enable_mad}" != "no"
2937 then
2938   AC_ARG_WITH(mad,
2939     [    --with-mad=PATH       path to libmad],[],[])
2940   if test "${with_mad}" != "no" -a -n "${with_mad}"
2941   then
2942     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2943     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2944   fi
2945
2946   AC_ARG_WITH(mad-tree,
2947     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2948   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2949   then
2950     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2951     if test -z "${real_mad_tree}"
2952     then
2953       dnl  The given directory can't be found
2954       AC_MSG_RESULT(no)
2955       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2956     fi
2957     dnl  Use a custom libmad
2958     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2959     if test -f ${real_mad_tree}/mad.h
2960     then
2961       AC_MSG_RESULT(yes)
2962       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2963       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2964       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2965       AC_CHECK_LIB(mad, mad_bit_init, [
2966         VLC_ADD_PLUGIN([mpgatofixed32])
2967         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2968         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2969       ],[])
2970       LDFLAGS="${LDFLAGS_save}"
2971     else
2972       AC_MSG_RESULT(no)
2973       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2974     fi
2975   else
2976     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2977     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2978     AC_CHECK_HEADERS(mad.h, ,
2979       [ 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.]) ])
2980     AC_CHECK_LIB(mad, mad_bit_init, [
2981       VLC_ADD_PLUGIN([mpgatofixed32])
2982       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2983       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2984     CPPFLAGS="${CPPFLAGS_save}"
2985     LDFLAGS="${LDFLAGS_save}"
2986   fi
2987 fi
2988
2989 dnl
2990 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2991 dnl
2992 AC_ARG_ENABLE( id3tag,
2993 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2994 AS_IF([test "${enable_id3tag}" = "yes"], [
2995   AC_CHECK_HEADERS(id3tag.h, [
2996       AS_IF([test "${have_zlib}" = "yes"],[
2997           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2998           VLC_ADD_PLUGIN([id3tag])
2999        ])
3000     ])
3001 ])
3002
3003 dnl
3004 dnl  avcodec decoder/encoder plugin
3005 dnl
3006
3007 if test "${with_ffmpeg_tree}"
3008 then
3009   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
3010 fi
3011
3012 AC_ARG_ENABLE(avcodec,
3013 [  --enable-avcodec        libavcodec codec (default enabled)])
3014 if test "${enable_avcodec}" != "no"
3015 then
3016   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
3017     [
3018       VLC_SAVE_FLAGS
3019       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
3020       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
3021       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3022       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3023       VLC_ADD_PLUGIN([avcodec])
3024       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
3025       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
3026       VLC_RESTORE_FLAGS
3027     ],[
3028       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
3029   ])
3030 fi
3031
3032 dnl
3033 dnl  avformat demuxer/muxer plugin
3034 dnl
3035
3036 AC_ARG_ENABLE(avformat,
3037 [  --enable-avformat       libavformat containers (default enabled)])
3038 if test "${enable_avformat}" != "no"
3039 then
3040   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3041     [
3042       VLC_SAVE_FLAGS
3043       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3044       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3045       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3046       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3047       VLC_ADD_PLUGIN([avformat])
3048       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3049       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3050       VLC_RESTORE_FLAGS
3051     ],[
3052       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3053   ])
3054 fi
3055
3056 dnl
3057 dnl  swscale image scaling and conversion plugin
3058 dnl
3059
3060 AC_ARG_ENABLE(swscale,
3061   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
3062                   (default enabled)]))
3063 if test "${enable_swscale}" != "no"
3064 then
3065   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3066     [
3067       VLC_SAVE_FLAGS
3068       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3069       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3070       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3071       VLC_ADD_PLUGIN([swscale])
3072       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3073       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3074       VLC_RESTORE_FLAGS
3075     ],[
3076       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.])
3077   ])
3078 fi
3079
3080 dnl
3081 dnl  postproc plugin
3082 dnl
3083
3084 AC_ARG_ENABLE(postproc,
3085 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3086 if test "${enable_postproc}" != "no"
3087 then
3088   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3089     [
3090       VLC_SAVE_FLAGS
3091       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3092       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3093       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3094       VLC_ADD_PLUGIN([postproc])
3095       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3096       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3097       VLC_RESTORE_FLAGS
3098     ],[
3099       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
3100   ])
3101 fi
3102
3103 dnl
3104 dnl  faad decoder plugin
3105 dnl
3106 AC_ARG_ENABLE(faad,
3107 [  --enable-faad           faad codec (default disabled)])
3108 if test "${enable_faad}" = "yes"
3109 then
3110   AC_ARG_WITH(faad-tree,
3111   [    --with-faad-tree=PATH faad tree for static linking])
3112   if test -n "${with_faad_tree}"
3113   then
3114     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3115     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3116     if test -z "${real_faad_tree}"
3117     then
3118       dnl  The given directory can't be found
3119       AC_MSG_RESULT(no)
3120       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3121     fi
3122     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3123     then
3124       dnl  Use a custom faad
3125       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3126       VLC_ADD_PLUGIN([faad])
3127       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3128       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3129     else
3130       dnl  The given libfaad wasn't built
3131       AC_MSG_RESULT(no)
3132       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3133     fi
3134   else
3135     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3136     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3137     AC_CHECK_HEADERS(faad.h, ,
3138       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3139     AC_CHECK_LIB(faad, faacDecOpen, [
3140       VLC_ADD_PLUGIN([faad])
3141       VLC_ADD_LIBS([faad],[-lfaad]) ],
3142       AC_CHECK_LIB(faad, NeAACDecOpen, [
3143         VLC_ADD_PLUGIN([faad])
3144         VLC_ADD_LIBS([faad],[-lfaad]) ],
3145         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3146     LDFLAGS="${LDFLAGS_save}"
3147     CPPFLAGS="${CPPFLAGS_save}"
3148   fi
3149 fi
3150
3151 dnl
3152 dnl twolame encoder plugin
3153 dnl
3154 AC_ARG_ENABLE(twolame,
3155 [  --enable-twolame        twolame codec (default disabled)])
3156 if test "${enable_twolame}" = "yes"
3157 then
3158   AC_ARG_WITH(twolame-tree,
3159   [    --with-twolame-tree=PATH twolame tree for static linking])
3160   if test -n "${with_twolame_tree}"
3161   then
3162     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3163     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3164     if test -z "${real_twolame_tree}"
3165     then
3166       dnl  The given directory can't be found
3167       AC_MSG_RESULT(no)
3168       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3169     fi
3170     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3171     then
3172       dnl  Use a custom twolame
3173       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3174       VLC_ADD_PLUGIN([twolame])
3175       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3176       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3177     else
3178       dnl  The given libtwolame wasn't built
3179       AC_MSG_RESULT(no)
3180       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3181     fi
3182   else
3183     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3184     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3185     AC_CHECK_HEADERS(twolame.h, ,
3186       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3187     AC_CHECK_LIB(twolame, twolame_init, [
3188       VLC_ADD_PLUGIN([twolame])
3189       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3190       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3191         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3192     LDFLAGS="${LDFLAGS_save}"
3193     CPPFLAGS="${CPPFLAGS_save}"
3194   fi
3195 fi
3196
3197 dnl
3198 dnl  QuickTime plugin
3199 dnl
3200 AC_ARG_ENABLE(quicktime,
3201   [  --enable-quicktime      QuickTime module (deprecated)])
3202 if test "${enable_quicktime}" = "yes"; then
3203   if test "${SYS}" = "mingw32"; then
3204     VLC_ADD_PLUGIN([quicktime])
3205   else
3206   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3207     [ VLC_ADD_PLUGIN([quicktime])
3208       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3209     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3210   fi
3211 fi
3212
3213 dnl
3214 dnl  Real plugin
3215 dnl
3216 AC_ARG_ENABLE(real,
3217   [  --enable-real           Real media module (default disabled)])
3218 if test "${enable_real}" = "yes"; then
3219   VLC_ADD_PLUGIN([realaudio])
3220   VLC_ADD_PLUGIN([realvideo])
3221 fi
3222
3223 dnl
3224 dnl  Real RTSP plugin
3225 dnl
3226 AC_ARG_ENABLE(realrtsp,
3227   [  --enable-realrtsp       Real RTSP module (default disabled)])
3228 if test "${enable_realrtsp}" = "yes"; then
3229   VLC_ADD_PLUGIN([access_realrtsp])
3230 fi
3231
3232 AC_ARG_ENABLE(libsysfs,
3233   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3234
3235 AS_IF([test "${enable_libsysfs}" != "no"],[
3236   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3237     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3238   ] )
3239 ])
3240
3241 dnl
3242 dnl skins2 module
3243 dnl
3244 AC_ARG_ENABLE(libtar,
3245   [  --enable-libtar         libtar support for skins2 (default enabled)])
3246
3247 AS_IF([test "${enable_libtar}" != "no"],[
3248   AC_CHECK_HEADERS(libtar.h, [
3249     VLC_ADD_LIBS([skins2],[-ltar])
3250   ] )
3251 ])
3252
3253 dnl
3254 dnl A52/AC3 decoder plugin
3255 dnl
3256 AC_ARG_ENABLE(a52,
3257   [  --enable-a52            A/52 support with liba52 (default enabled)])
3258 if test "${enable_a52}" != "no"
3259 then
3260   AC_ARG_WITH(a52,
3261     [    --with-a52=PATH       a52 headers and libraries])
3262   AC_ARG_WITH(a52-tree,
3263     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3264   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3265   then
3266     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3267     if test -z "${real_a52_tree}"
3268     then
3269       dnl  The given directory can't be found
3270       AC_MSG_RESULT(no)
3271       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3272     fi
3273     dnl  Use a custom a52dec
3274     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3275     if test -f ${real_a52_tree}/include/a52.h
3276     then
3277       AC_MSG_RESULT(yes)
3278       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3279       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3280       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3281       AC_CHECK_LIB(a52, a52_free, [
3282         VLC_ADD_PLUGIN([a52tofloat32])
3283         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3284         VLC_ADD_LIBS([a52tofloat32],[-la52])
3285         ],[
3286         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3287         then
3288           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3289         else
3290           AC_MSG_ERROR([the specified tree hasn't been compiled])
3291         fi
3292       ])
3293       LDFLAGS="${LDFLAGS_save}"
3294     else
3295       AC_MSG_RESULT(no)
3296       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3297     fi
3298   else
3299     if test -z "${with_a52}"
3300     then
3301       LDFLAGS_test=""
3302       CPPFLAGS_test=""
3303     else
3304       LDFLAGS_test="-L${with_a52}/lib"
3305       CPPFLAGS_test="-I${with_a52}/include"
3306     fi
3307     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3308     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3309     AC_CHECK_HEADERS(a52dec/a52.h, [
3310       AC_CHECK_LIB(a52, a52_free, [
3311         VLC_ADD_PLUGIN([a52tofloat32])
3312         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3313         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3314       ],[
3315         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.])
3316         ])
3317     ],[
3318       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.])
3319     ])
3320     CPPFLAGS="${CPPFLAGS_save}"
3321     LDFLAGS="${LDFLAGS_save}"
3322   fi
3323 fi
3324
3325 AC_ARG_WITH(a52-fixed,
3326       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3327       [
3328         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3329
3330 dnl
3331 dnl DTS Coherent Acoustics decoder plugin
3332 dnl
3333 AS_IF([test "x${enable_dts}" != "x"], [
3334   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3335 ])
3336 AS_IF([test "x${with_dts_tree}" != "x"], [
3337   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3338 ])
3339
3340 AC_ARG_ENABLE(dca,
3341   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca
3342                   (default enabled)]))
3343 AS_IF([test "${enable_dca}" != "no"], [
3344   AC_ARG_WITH(dca-tree,
3345     [    --with-dca-tree=PATH  libdca tree for static linking],,
3346     [with_dca_tree="no"])
3347   AS_IF([test "${with_dca_tree}" != "no"], [
3348     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3349     AS_IF([test -z "${real_dca_tree}"], [
3350       dnl  The given directory can't be found
3351       AC_MSG_RESULT(no)
3352       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3353     ])
3354     dnl  Use a custom libdca
3355     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3356     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3357       AC_MSG_RESULT(yes)
3358       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3359       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3360         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3361       ], [
3362         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3363       ])
3364     ], [
3365       AC_MSG_RESULT(no)
3366       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3367     ])
3368   ], [
3369     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3370       VLC_ADD_PLUGIN([dtstofloat32])
3371       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3372       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3373     ], [
3374       AS_IF([test "x${enable_dca}" != "x"], [
3375         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3376       ])
3377     ])
3378   ])
3379 ])
3380
3381 dnl
3382 dnl  Flac plugin
3383 dnl
3384 AC_ARG_ENABLE(flac,
3385   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3386 if test "${enable_flac}" = "yes"
3387 then
3388   AC_ARG_WITH(flac-tree,
3389   [    --with-flac-tree=PATH flac tree for static linking])
3390   if test -n "${with_flac_tree}"
3391   then
3392     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3393     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3394     if test -z "${real_flac_tree}"
3395     then
3396       dnl  The given directory can't be found
3397       AC_MSG_RESULT(no)
3398       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3399     fi
3400     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3401     then
3402       dnl  Use a custom flac
3403       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3404       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3405       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3406       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3407     else
3408       dnl  The given flac wasn't built
3409       AC_MSG_RESULT(no)
3410       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3411     fi
3412   else
3413     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3414       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3415      ],[])
3416   fi
3417 fi
3418
3419 dnl
3420 dnl  Libmpeg2 plugin
3421 dnl
3422 AC_ARG_ENABLE(libmpeg2,
3423   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3424 if test "${enable_libmpeg2}" != "no"
3425 then
3426   AC_ARG_WITH(libmpeg2-tree,
3427   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3428   AS_IF([test -n "${with_libmpeg2_tree}"],[
3429     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3430     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3431     if test -z "${real_libmpeg2_tree}"
3432     then
3433       dnl  The given directory can't be found
3434       AC_MSG_RESULT(no)
3435       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3436     fi
3437     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3438     then
3439       dnl  Use a custom libmpeg2
3440       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3441       VLC_ADD_PLUGIN([libmpeg2])
3442       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3443       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3444     else
3445       dnl  The given libmpeg2 wasn't built
3446       AC_MSG_RESULT(no)
3447       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3448     fi
3449   ],[
3450    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[
3451           VLC_ADD_PLUGIN([libmpeg2])
3452           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3453           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3454        ],
3455       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.]))
3456   ])
3457 fi
3458
3459 dnl
3460 dnl  Vorbis plugin
3461 dnl
3462 AC_ARG_ENABLE(vorbis,
3463   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3464 if test "${enable_vorbis}" != "no"
3465 then
3466   AC_ARG_WITH(vorbis-tree,
3467   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3468   if test -n "${with_vorbis_tree}"
3469   then
3470     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3471     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3472     if test -z "${real_vorbis_tree}"
3473     then
3474       dnl  The given directory can't be found
3475       AC_MSG_RESULT(no)
3476       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3477     fi
3478     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3479     then
3480       dnl  Use a custom vorbis
3481       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3482       VLC_ADD_PLUGIN([vorbis])
3483       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3484       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3485     else
3486       dnl  The given vorbis wasn't built
3487       AC_MSG_RESULT(no)
3488       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3489     fi
3490   else
3491     AC_CHECK_HEADERS(vorbis/codec.h, [
3492       VLC_ADD_PLUGIN([vorbis])
3493       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3494
3495     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3496       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3497   fi
3498 fi
3499
3500 dnl
3501 dnl  Tremor plugin
3502 dnl
3503 AC_ARG_ENABLE(tremor,
3504   [  --enable-tremor         Tremor decoder support (default disabled)])
3505 if test "${enable_tremor}" = "yes"
3506 then
3507   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3508     VLC_ADD_PLUGIN([tremor])
3509     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3510    ],[])
3511 fi
3512
3513 dnl
3514 dnl  Speex plugin
3515 dnl
3516 AC_ARG_ENABLE(speex,
3517   [  --enable-speex          Speex decoder support (default enabled)])
3518 if test "${enable_speex}" != "no"
3519 then
3520   AC_ARG_WITH(speex-tree,
3521   [    --with-speex-tree=PATH speex tree for static linking])
3522   if test -n "${with_speex_tree}"
3523   then
3524     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3525     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3526     if test -z "${real_speex_tree}"
3527     then
3528       dnl  The given directory can't be found
3529       AC_MSG_RESULT(no)
3530       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3531     fi
3532     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3533     then
3534       dnl  Use a custom speex
3535       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3536       VLC_ADD_PLUGIN([speex])
3537       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3538       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3539     else
3540       dnl  The given speex wasn't built
3541       AC_MSG_RESULT(no)
3542       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3543     fi
3544   else
3545     AC_CHECK_HEADERS(speex/speex.h, [
3546       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3547       AC_CHECK_LIB(speex, speex_decode_int, [
3548         VLC_ADD_PLUGIN([speex])
3549         VLC_ADD_LIBS([speex],[-lspeex]) ],
3550         [ AC_MSG_RESULT([no])
3551           AC_MSG_WARN([Your libspeex is too old, please get the development
3552                        version.]) ],[])
3553       LDFLAGS="${LDFLAGS_save}"
3554       ],[])
3555   fi
3556 fi
3557
3558 dnl
3559 dnl  tarkin decoder plugin
3560 dnl
3561 AC_ARG_ENABLE(tarkin,
3562 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3563 if test "${enable_tarkin}" = "yes"
3564 then
3565   AC_ARG_WITH(tarkin-tree,
3566   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3567   if test -n "${with_tarkin_tree}"
3568   then
3569     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3570     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3571     if test -f "${real_tarkin_tree}/tarkin.o"
3572     then
3573       VLC_ADD_PLUGIN([tarkin])
3574       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3575       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])
3576       AC_MSG_RESULT(yes)
3577     else
3578       dnl  The given tarkin tree wasn't built
3579       AC_MSG_RESULT(no)
3580       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3581                     make sure you compiled tarkin in ${with_tarkin_tree}])
3582     fi
3583   fi
3584 fi
3585
3586 dnl
3587 dnl  theora decoder plugin
3588 dnl
3589 AC_ARG_ENABLE(theora,
3590 [  --enable-theora         experimental theora codec (default disabled)])
3591 if test "${enable_theora}" = "yes"
3592 then
3593   AC_CHECK_HEADERS(theora/theora.h, [
3594     AC_CHECK_LIB(theora, theora_granule_time, [
3595       VLC_ADD_PLUGIN([theora])
3596       theora_libs="-ltheora -logg"
3597       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3598       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3599 You also need to check that you have a libogg posterior to the 1.0 release.])],
3600       [-logg])
3601   ])
3602 fi
3603
3604 dnl
3605 dnl  dirac decoder plugin
3606 dnl
3607 AC_ARG_ENABLE(dirac,
3608 [  --enable-dirac          experimental dirac codec (default disabled)])
3609 if test "${enable_dirac}" = "yes"; then
3610   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3611       VLC_ADD_PLUGIN([dirac])
3612       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3613       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3614       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3615   ])
3616 fi
3617
3618 dnl
3619 dnl  schroedinger decoder plugin (for dirac format video)
3620 dnl
3621 AC_ARG_ENABLE(schroedinger,
3622 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3623 if test "${enable_schroedinger}" != "no"; then
3624   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0.6], [
3625       VLC_ADD_PLUGIN([schroedinger])
3626       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3627       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3628         AS_IF([test "x${enable_schroedinger}" != "x"], [
3629           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3630         ])
3631 ])
3632 fi
3633
3634 dnl
3635 dnl  PNG decoder module
3636 dnl
3637 AC_ARG_ENABLE(png,
3638   [  --enable-png            PNG support (default enabled)])
3639 if test "${enable_png}" != "no"; then
3640 AC_CHECK_HEADERS(png.h, [
3641   LDFLAGS="${LDFLAGS_save} -lz"
3642   AC_CHECK_LIB(png, png_set_rows, [
3643     VLC_ADD_LIBS([png],[-lpng -lz])
3644     VLC_ADD_PLUGIN([png])
3645     VLC_ADD_PLUGIN([osdmenu])
3646     VLC_ADD_PLUGIN([osd_parser])
3647     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3648     [],[-lz])
3649     LDFLAGS="${LDFLAGS_save}"
3650   ])
3651 fi
3652 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3653
3654 dnl
3655 dnl H264 encoder plugin (using libx264)
3656 dnl
3657 AC_ARG_ENABLE(x264,
3658   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3659 if test "${enable_x264}" != "no"; then
3660   AC_ARG_WITH(x264-tree,
3661     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3662   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3663   then
3664     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3665     if test -z "${real_x264_tree}"
3666     then
3667       dnl  The given directory can't be found
3668       AC_MSG_RESULT(no)
3669       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3670     fi
3671     dnl  Use a custom libx264
3672     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3673     if test -f ${real_x264_tree}/x264.h
3674     then
3675       AC_MSG_RESULT(yes)
3676       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3677       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3678       PKG_CHECK_MODULES(X264,x264, [
3679         VLC_ADD_PLUGIN([x264])
3680         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3681         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3682         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3683           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3684         fi
3685       ],[
3686         AC_MSG_ERROR([the specified tree hasn't been compiled])
3687       ])
3688       LDFLAGS="${LDFLAGS_save}"
3689     else
3690       AC_MSG_RESULT(no)
3691       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3692     fi
3693   else
3694       PKG_CHECK_MODULES(X264,x264, [
3695         VLC_ADD_PLUGIN([x264])
3696         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3697
3698         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3699           [ac_cv_ld_bsymbolic],
3700           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3701             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3702             LDFLAGS="${LDFLAGS_save}"
3703           ])
3704         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3705           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3706         ])
3707
3708         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3709         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3710           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3711         fi
3712       ],[
3713         if test "${enable_x264}" = "yes"; then
3714             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3715           fi
3716       ])
3717     LDFLAGS="${LDFLAGS_save}"
3718   fi
3719 fi
3720
3721 dnl
3722 dnl libfluidsynth (MIDI synthetizer) plugin
3723 dnl
3724 AC_ARG_ENABLE(fluidsynth,
3725   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3726 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3727   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3728     VLC_ADD_PLUGIN(fluidsynth)
3729     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3730     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3731   ], [
3732     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3733       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3734     ])
3735   ])
3736 ])
3737
3738 dnl
3739 dnl Teletext Modules
3740 dnl vbi decoder plugin (using libzbvi)
3741 dnl telx module
3742 dnl uncompatible
3743 dnl
3744 AC_ARG_ENABLE(zvbi,
3745   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3746                   libzvbi (default enabled)]))
3747 AC_ARG_ENABLE(telx,
3748   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3749                   zvbi) (default enabled if zvbi is absent)]))
3750
3751 AS_IF( [test "${enable_zvbi}" != "no"],[
3752     PKG_CHECK_MODULES(ZVBI,
3753         zvbi-0.2 >= 0.2.25,
3754         [
3755           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3756           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3757           VLC_ADD_PLUGIN([zvbi])
3758           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3759           AS_IF( [test "${enable_telx}" = "yes"],[
3760                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3761                                Using zvbi.])
3762                   ])
3763         ],[
3764           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3765         ])
3766     ])
3767 AS_IF( [test "${enable_telx}" != "no" ],[
3768   VLC_ADD_PLUGIN([telx])
3769   ])
3770
3771 dnl
3772 dnl asa/csri subtitle rendering module
3773 dnl
3774 AC_ARG_ENABLE(csri,
3775   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3776 AS_IF( [test "${enable_csri}" = "yes"], [
3777   PKG_CHECK_MODULES(CSRI,
3778       csri >= 0.1.0,
3779       [
3780         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3781         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3782         VLC_ADD_PLUGIN([csri])
3783       ],[
3784         AC_MSG_WARN([CSRI helper library not found])
3785       ])
3786   ])
3787
3788 dnl
3789 dnl libass subtitle rendering module
3790 dnl
3791 AC_ARG_ENABLE(libass,
3792   [  --enable-libass         Subtitle support using libass (default disabled)])
3793 AS_IF( [test "${enable_libass}" = "yes"], [
3794   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3795       [
3796         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3797         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3798         VLC_ADD_PLUGIN([libass])
3799
3800         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3801           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3802         if test "${SYS}" = "mingw32"; then
3803            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz -lxml2])
3804         else
3805            VLC_ADD_LIBS([libass],[-lfontconfig])
3806         fi
3807        ])
3808       ],[
3809         AC_MSG_WARN([LIBASS library not found])
3810       ])
3811   ])
3812
3813 dnl
3814 dnl asa demuxer
3815 dnl
3816 AC_ARG_ENABLE(asademux,
3817   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3818 AS_IF( [test "${enable_asademux}" = "yes"], [
3819   PKG_CHECK_MODULES(PCRE,
3820       libpcre >= 6.5,
3821       [
3822         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3823         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3824         if test "${SYS}" = "mingw32"; then
3825                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3826         fi
3827         VLC_ADD_PLUGIN([asademux])
3828       ],[
3829         AC_MSG_WARN([PCRE library not found (required for asademux)])
3830       ])
3831   ])
3832
3833 dnl
3834 dnl  CMML plugin
3835 dnl
3836 AC_ARG_ENABLE(cmml,
3837   [  --enable-cmml           CMML support (default enabled)])
3838 if test "${enable_cmml}" != "no"
3839 then
3840   VLC_ADD_PLUGIN([cmml])
3841 fi
3842
3843 dnl
3844 dnl  kate decoder plugin
3845 dnl
3846 AC_ARG_ENABLE(kate,
3847 [  --enable-kate           kate codec (default enabled)])
3848 AS_IF([test "${enable_kate}" != "no"], [
3849   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3850       VLC_ADD_PLUGIN([kate])
3851       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3852       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3853         AC_CHECK_HEADERS(kate/kate.h, [
3854           AC_CHECK_LIB(kate, kate_decode_init, [
3855             VLC_ADD_PLUGIN([kate])
3856             kate_libs="-lkate -logg"
3857             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3858             AS_IF([test "x${enable_kate}" != "x"], [
3859               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3860               You also need to check that you have a libogg posterior to the 1.0 release.])
3861             ])
3862           ], [-lkate -logg])
3863         ],[
3864           AS_IF([test "x${enable_kate}" != "x"], [
3865             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3866             You also need to check that you have a libogg posterior to the 1.0 release.])
3867           ])
3868         ])
3869   ])
3870 ])
3871
3872
3873 dnl
3874 dnl  tiger decoder plugin
3875 dnl
3876 AC_ARG_ENABLE(tiger,
3877 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3878 AS_IF([test "${enable_tiger}" != "no"], [
3879   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3880       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3881       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3882       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3883         AS_IF([test "x${enable_tiger}" != "x"], [
3884           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3885         ])
3886   ])
3887 ])
3888
3889
3890 dnl
3891 dnl  Video plugins
3892 dnl
3893
3894 AC_ARG_WITH(,[Video plugins:])
3895
3896 dnl
3897 dnl  Xlib
3898 dnl
3899
3900 AC_PATH_XTRA()
3901 AC_ARG_ENABLE(x11,
3902   [  --enable-x11            X11 support (default enabled)],, [
3903   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3904     enable_x11="yes"
3905   ], [
3906     enable_x11="no"
3907   ])
3908 ])
3909
3910 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3911
3912 AS_IF([test "${enable_x11}" != "no"], [
3913   AC_CHECK_HEADERS(X11/Xlib.h, [
3914     VLC_ADD_PLUGIN([x11_screen])
3915     VLC_ADD_CPPFLAGS([x11_screen],[${X_CFLAGS}])
3916     VLC_ADD_LIBS([x11_screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3917
3918     VLC_ADD_PLUGIN([panoramix])
3919     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3920     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3921
3922     VLC_ADD_PLUGIN([x11])
3923     VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3924     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3925
3926     AC_CHECK_LIB(Xext, XShmAttach, [VLC_ADD_LIBS([x11],[-lXext])])
3927   ])
3928
3929 dnl Check for DPMS
3930   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3931     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3932     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3933       AC_MSG_RESULT(yes)
3934       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3935                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3936     ],[
3937       AC_MSG_RESULT(no)
3938     ])
3939   ],,[
3940     #include <X11/Xlib.h>
3941   ])
3942 ])
3943
3944 dnl
3945 dnl  XVideo module
3946 dnl  (enabled by default except on win32)
3947 dnl
3948 AC_ARG_ENABLE(xvideo,
3949   [  --enable-xvideo         XVideo support (default enabled)],, [
3950     enable_xvideo="$enable_x11"
3951 ])
3952 AS_IF([test "${enable_xvideo}" != "no"], [
3953   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3954     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3955     AC_CHECK_LIB(Xv,XvPutImage,[
3956         VLC_ADD_PLUGIN([xvideo])
3957         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3958         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3959     ])
3960     CFLAGS="${CFLAGS_save}"
3961   ])
3962 ])
3963
3964 dnl
3965 dnl  GLX module
3966 dnl  (enabled by default except on win32)
3967 dnl
3968 AC_ARG_ENABLE(glx,
3969   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3970   enable_glx="$enable_x11"
3971 ])
3972 AS_IF([test "${enable_glx}" != "no"], [
3973   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3974   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3975     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3976     choke me
3977     #endif]]),
3978     [
3979       VLC_ADD_PLUGIN([glx])
3980       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3981       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3982     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3983 ])
3984
3985 dnl
3986 dnl  XVMC module
3987 dnl  (disabled by default except on win32)
3988 dnl
3989 AC_ARG_ENABLE(xvmc,
3990   [  --enable-xvmc           XVMC support (default disabled)],, [
3991   enable_xvmc="no"
3992 ])
3993 AS_IF([test "${enable_xvmc}" != "no"], [
3994   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3995     VLC_ADD_PLUGIN([xvmc])
3996     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3997     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3998   ], [
3999     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
4000   ])
4001 ])
4002
4003 dnl
4004 dnl  Check for the Xinerama extension
4005 dnl
4006 AC_ARG_ENABLE(xinerama,
4007   [  --enable-xinerama       Xinerama support (default enabled)],, [
4008   enable_xinerama="$enable_xvideo"
4009 ])
4010 AS_IF([test "$enable_xinerama" != "no"], [
4011   ac_cv_have_xinerama="no"
4012   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4013   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4014     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4015       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4016       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4017       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4018       ac_cv_have_xinerama="yes"
4019     ],[
4020       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4021         VLC_ADD_LIBS([xvideo],[-lXinerama])
4022         VLC_ADD_LIBS([x11],[-lXinerama])
4023         VLC_ADD_LIBS([glx],[-lXinerama])
4024         ac_cv_have_xinerama="yes"
4025       ])
4026     ])
4027   ])
4028   if test "${ac_cv_have_xinerama}" = "yes"; then
4029     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4030   fi
4031
4032 dnl
4033 dnl  Check for XF86VidMode extension
4034 dnl
4035   ac_cv_have_xf86vidmode="no"
4036   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4037     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4038       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4039       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4040       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4041       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4042       ac_cv_have_xf86vidmode="yes"
4043     ],[
4044       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4045         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4046         VLC_ADD_LIBS([x11],[-lXxf86vm])
4047         VLC_ADD_LIBS([glx],[-lXxf86vm])
4048         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4049         ac_cv_have_xf86vidmode="yes"
4050       ])
4051     ])
4052   ],[true],
4053 [#ifdef HAVE_X11_XLIB_H
4054 # include <X11/Xlib.h>
4055 #endif]
4056    )
4057   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4058     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4059   ])
4060   CFLAGS="${CFLAGS_save}"
4061 ])
4062
4063 dnl End of Xlib tests
4064 CPPFLAGS="${CPPFLAGS_save}"
4065
4066
4067 dnl
4068 dnl  X C Bindings modules
4069 dnl  (work in progress)
4070 dnl
4071 AC_ARG_ENABLE(xcb,
4072   [  --enable-xcb            X C Bindings work-in-progress (default disabled)],
4073   ,[enable_xcb="no"])
4074 AS_IF([test "${enable_xcb}" != "no"], [
4075   PKG_CHECK_MODULES(XPROTO, [xproto])
4076
4077   dnl libxcb
4078   PKG_CHECK_MODULES(XCB, [xcb])
4079   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
4080
4081   AS_IF([test "${enable_xvideo}" != "no"], [
4082     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
4083       VLC_ADD_PLUGIN([xcb_xv])
4084     ])
4085   ])
4086
4087   dnl xcb-utils
4088   PKG_CHECK_MODULES(XCB_AUX, [xcb-aux])
4089   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
4090
4091   VLC_ADD_PLUGIN([xcb])
4092   VLC_ADD_PLUGIN([xcb_window])
4093 ])
4094
4095 dnl
4096 dnl  OpenGL module
4097 dnl  (enabled by default except on beos)
4098 dnl
4099 AC_ARG_ENABLE(opengl,
4100   [  --enable-opengl         OpenGL support (default enabled)])
4101 if test "${enable_opengl}" != "no" &&
4102    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4103   if test "${SYS}" != "darwin"; then
4104     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4105       VLC_ADD_PLUGIN([opengl])
4106       if test "${SYS}" != "mingw32"; then
4107         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4108       else
4109         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4110       fi
4111     ])
4112   else
4113     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4114     VLC_ADD_PLUGIN([opengl])
4115     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4116   fi
4117 fi
4118
4119 dnl
4120 dnl  SDL module
4121 dnl
4122 AC_ARG_ENABLE(sdl,
4123   [  --enable-sdl            SDL support (default enabled)])
4124 AC_ARG_ENABLE(sdl-image,
4125   [  --enable-sdl-image      SDL image support (default enabled)])
4126 if test "${enable_sdl}" != "no"
4127 then
4128   SDL_PATH="${PATH}"
4129   AC_ARG_WITH(sdl-config-path,
4130     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4131     [ if test "${with_sdl_config_path}" != "no"
4132       then
4133         SDL_PATH="${with_sdl_config_path}:${PATH}"
4134       fi ])
4135   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4136   SDL_CONFIG="${SDL12_CONFIG}"
4137   SDL_HEADER="SDL12/SDL.h"
4138   SDL_IMAGE="SDL12/SDL_image.h"
4139   if test "${SDL_CONFIG}" = "no"
4140   then
4141     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4142     SDL_CONFIG=${SDL11_CONFIG}
4143     SDL_HEADER="SDL11/SDL.h"
4144     SDL_IMAGE="SDL11/SDL_image.h"
4145   fi
4146   if test "${SDL_CONFIG}" = "no"
4147   then
4148     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4149     SDL_HEADER="SDL/SDL.h"
4150     SDL_IMAGE="SDL/SDL_image.h"
4151   fi
4152   # check for cross-compiling
4153   SDL_PREFIX=
4154   AC_ARG_WITH(sdl-prefix,
4155     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4156                                e.g use as:
4157                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4158   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4159   then
4160     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4161   fi
4162   if test "${SDL_CONFIG}" != "no"
4163   then
4164     # SDL on Darwin is heavily patched and can only run SDL_image
4165     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4166       VLC_ADD_PLUGIN([vout_sdl])
4167       VLC_ADD_PLUGIN([aout_sdl])
4168     fi
4169     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4170     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4171     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4172     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4173       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4174       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4175           As a last resort we also test for SDL.h presence),
4176       [ AC_MSG_ERROR([The development package for SDL is not installed.
4177 Please install it and try again. Alternatively you can also configure with
4178 --disable-sdl.])
4179       ])])
4180     AS_IF([ test "${enable_sdl_image}" != "no"],[
4181       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4182         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4183         VLC_ADD_PLUGIN([sdl_image])
4184         AC_CHECK_LIB(png, png_set_rows,
4185           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4186         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4187           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4188         AC_CHECK_LIB(tiff, TIFFClientOpen,
4189           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4190         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4191         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4192             As a last resort we also test for SDL_image.h presence),
4193         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4194   You should install it alongside your SDL package.])
4195         ])])
4196     ])
4197     CPPFLAGS="${CPPFLAGS_save}"
4198     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4199     then
4200       AC_MSG_ERROR([The development package for SDL is not installed.
4201 Please install it and try again. Alternatively you can also configure with
4202 --disable-sdl.])
4203     fi
4204
4205   elif test "${enable_sdl}" =  "yes"
4206   then
4207     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4208 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4209     ])
4210   fi
4211 fi
4212
4213 dnl
4214 dnl  freetype module
4215 dnl
4216 AC_ARG_ENABLE(freetype,
4217   [  --enable-freetype       freetype support (default enabled)])
4218 AC_ARG_ENABLE(fribidi,
4219   [  --enable-fribidi        fribidi support (default enabled)])
4220 AC_ARG_ENABLE(fontconfig,
4221   [  --enable-fontconfig,    fontconfig support (default enabled)])
4222 if test "${enable_freetype}" != "no"
4223 then
4224    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4225       VLC_ADD_PLUGIN([freetype])
4226       have_freetype=yes
4227       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4228       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4229       if test "${SYS}" = "mingw32"; then
4230         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4231         VLC_ADD_LIBS([freetype],[-liconv])
4232       fi
4233       if test "${enable_fontconfig}" != "no"
4234       then
4235         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4236           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4237            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4238         AC_CHECK_HEADERS(Carbon/Carbon.h,
4239           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4240       fi
4241   ],[
4242   have_freetype=no
4243   AS_IF([ test "${enable_freetype}" =  "yes"],[
4244     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4245 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4246       ])
4247     ])
4248   ])
4249
4250   dnl fribidi support
4251   if test "${enable_fribidi}" != "no"
4252   then
4253     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4254       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4255       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4256     ])
4257     fi
4258 fi
4259
4260 dnl
4261 dnl  libxml2 module
4262 dnl
4263 AC_ARG_ENABLE(libxml2,
4264   [  --enable-libxml2        libxml2 support (default enabled)])
4265 AS_IF([test "${enable_libxml2}" != "no"], [
4266   PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5], [
4267     VLC_ADD_CPPFLAGS([xml],[${XML2_CFLAGS}])
4268     VLC_ADD_LIBS([xml],[${XML2_LIBS}])
4269     VLC_ADD_PLUGIN([xml])
4270   ], [
4271     AS_IF([test "x${enable_xml2}" != "x"], [
4272       AC_MSG_ERROR([Could not find libxml version 2.5 or higher])
4273     ])
4274   ])
4275 ])
4276
4277 dnl
4278 dnl  SVG module
4279 dnl
4280 AC_ARG_ENABLE(svg,
4281   [  --enable-svg            SVG support (default disabled)])
4282 if test "${enable_svg}" = "yes"
4283 then
4284   PKG_CHECK_MODULES(SVG,
4285         librsvg-2.0 >= 2.9.0,
4286         [
4287           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4288           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4289           VLC_ADD_PLUGIN([svg]) ],
4290         [AC_MSG_WARN(SVG library not found)])
4291 fi
4292
4293 dnl
4294 dnl Snapshot vout module (with cache)
4295 dnl
4296 AC_ARG_ENABLE(snapshot,
4297   [  --enable-snapshot       snapshot module (default disabled)])
4298 if test "${enable_snapshot}" = "yes"
4299 then
4300   VLC_ADD_PLUGIN([snapshot])
4301 fi
4302
4303 dnl
4304 dnl  Qt Embedded module
4305 dnl  (disabled by default)
4306 dnl
4307 AC_ARG_ENABLE(qte,
4308   [  --enable-qte            QT Embedded support (default disabled)])
4309 if test "${enable_qte}" = "yes"
4310 then
4311   AC_ARG_WITH(qte,
4312   [    --with-qte=PATH       Qt Embedded headers and libraries])
4313   if test "${with_qte}" != "no" -a -n "${with_qte}"
4314   then
4315     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4316     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])
4317   else
4318     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4319     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4320   fi
4321   VLC_ADD_PLUGIN([qte])
4322   NEED_QTE_MAIN=yes
4323   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4324   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4325     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4326   ] )
4327   CPPFLAGS="${CPPFLAGS_save}"
4328 fi
4329
4330 dnl
4331 dnl Roku HD1000 Video output module
4332 dnl
4333 AC_ARG_ENABLE(hd1000v,
4334   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4335 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4336   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4337    test "${enable_hd1000v}" = "yes"); then
4338   AC_LANG_PUSH([C++])
4339   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4340   [
4341     can_build_roku="yes"
4342   ],
4343   [
4344     can_build_roku="no"
4345     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4346   ])
4347   if test "$can_build_roku" = "yes"
4348   then
4349     VLC_ADD_PLUGIN([hd1000v])
4350     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4351   fi
4352   AC_LANG_POP([C++])
4353 fi
4354
4355 dnl
4356 dnl  Windows DirectX module
4357 dnl
4358
4359 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4360 then
4361   VLC_ADD_PLUGIN([panoramix])
4362 fi
4363
4364 AC_ARG_ENABLE(directx,
4365   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4366 if test "${enable_directx}" != "no"
4367 then
4368   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4369   then
4370     AC_ARG_WITH(directx,
4371     [    --with-directx=PATH   Win32 DirectX headers])
4372     if test -z "${with_directx}"
4373     then
4374       AC_CHECK_HEADERS(ddraw.h,
4375       [ VLC_ADD_PLUGIN([vout_directx])
4376         VLC_ADD_PLUGIN([aout_directx])
4377         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4378       ])
4379       AC_CHECK_HEADERS(GL/gl.h,
4380       [ VLC_ADD_PLUGIN([glwin32])
4381         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4382       ])
4383       AC_CHECK_HEADERS(d3d9.h,
4384       [ VLC_ADD_PLUGIN([direct3d])
4385         VLC_ADD_LIBS([direct3d],[-lgdi32])
4386       ])
4387     else
4388       AC_MSG_CHECKING(for directX headers in ${with_directx})
4389       if test -f ${with_directx}/ddraw.h
4390       then
4391         VLC_ADD_PLUGIN([vout_directx])
4392         VLC_ADD_PLUGIN([aout_directx])
4393         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4394         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4395         AC_MSG_RESULT(yes)
4396       else
4397         AC_MSG_RESULT(no)
4398         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4399       fi
4400     fi
4401   fi
4402 fi
4403
4404 dnl
4405 dnl  Linux framebuffer module
4406 dnl
4407 AC_ARG_ENABLE(fb,
4408   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4409     if test "${enable_fb}" != "no"
4410     then
4411       AC_CHECK_HEADERS(linux/fb.h, [
4412         VLC_ADD_PLUGIN([fb])
4413       ])
4414     fi
4415
4416 dnl
4417 dnl  Linux MGA module
4418 dnl
4419 AC_ARG_ENABLE(mga,
4420   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4421   [ if test "${enable_mga}" = "yes"
4422     then
4423       VLC_ADD_PLUGIN([mga])
4424     fi ])
4425
4426 dnl
4427 dnl  OMAP Framebuffer module
4428 dnl
4429 AC_ARG_ENABLE(omapfb,
4430   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4431     if test "${enable_omapfb}" = "yes"
4432     then
4433       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4434         VLC_ADD_PLUGIN([omapfb])
4435         AC_CHECK_HEADERS(X11/Xlib.h, [
4436           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4437       ])
4438     fi
4439
4440 dnl
4441 dnl  SVGAlib module
4442 dnl
4443 AC_ARG_ENABLE(svgalib,
4444   [  --enable-svgalib        SVGAlib support (default disabled)])
4445 if test "${enable_svgalib}" = "yes"
4446 then
4447   VLC_ADD_PLUGIN([svgalib])
4448   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4449 fi
4450
4451 dnl
4452 dnl  DirectFB module
4453 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4454 dnl  TODO: support for static linking
4455 dnl
4456 AC_ARG_ENABLE(directfb,
4457   [  --enable-directfb       DirectFB support (default disabled)])
4458 AC_ARG_WITH(directfb,
4459   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4460
4461 if test "${enable_directfb}" = "yes"; then
4462     have_directfb="false"
4463     CPPFLAGS_mydirectfb=
4464     LIBS_mydirectfb=
4465     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4466         dnl Trying the given location
4467         CPPFLAGS_save="${CPPFLAGS}"
4468         LIBS_save="${LIBS}"
4469
4470         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4471         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4472         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4473
4474         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4475         LIBS="${LIBS} ${LIBS_new}"
4476
4477         dnl FIXME: too obscure
4478         AC_CHECK_HEADER([directfb.h], [
4479             AC_CHECK_LIB([direct],[direct_initialize], [
4480                 AC_CHECK_LIB([fusion], [fusion_enter], [
4481                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4482                 ], have_directfb="false")
4483             ], have_directfb="false")
4484         ], have_directfb="false")
4485
4486         dnl Restore flags
4487         CPPFLAGS="${CPPFLAGS_save}"
4488         LIBS="${LIBS_save}"
4489
4490         if test "${have_directfb}" = "true"; then
4491             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4492             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4493         fi
4494     else
4495         dnl Look for directfb-config
4496         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4497         if test "${DIRECTFB_CONFIG}" != "no"; then
4498             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4499             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4500             have_directfb="true"
4501         else
4502             dnl Trying with pkg-config
4503             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4504                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4505                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4506                 have_directfb="true"
4507                 ], [have_directfb="false"])
4508         fi
4509     fi
4510     if test "${have_directfb}" = "true"; then
4511         VLC_ADD_PLUGIN([directfb])
4512         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4513         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4514     else
4515         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4516     fi
4517 fi
4518
4519
4520
4521 dnl
4522 dnl  GGI module
4523 dnl
4524 AC_ARG_ENABLE(ggi,
4525   [  --enable-ggi            GGI support (default disabled)])
4526 if test "${enable_ggi}" = "yes"
4527 then
4528   AC_CHECK_HEADER([ggi/ggi.h],[
4529     VLC_ADD_PLUGIN([ggi])
4530     VLC_ADD_LIBS([ggi],[-lggi])
4531     AC_ARG_WITH(ggi,
4532       [    --with-ggi=PATH       path to libggi],
4533       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4534         then
4535           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4536           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4537         fi ])
4538     ],[
4539        AC_MSG_ERROR([LibGGI development files can't be found])
4540     ])
4541 fi
4542
4543 dnl
4544 dnl  AA plugin
4545 dnl
4546 AC_ARG_ENABLE(aa,
4547   [  --enable-aa             aalib output (default disabled)])
4548 if test "${enable_aa}" = "yes"
4549 then
4550   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4551   if test "${have_aa}" = "true"
4552   then
4553     VLC_ADD_PLUGIN([aa])
4554     VLC_ADD_LIBS([aa],[-laa])
4555   fi
4556 fi
4557
4558 dnl
4559 dnl  libcaca plugin
4560 dnl
4561 AC_ARG_ENABLE(caca,
4562   [  --enable-caca           libcaca output (default disabled)])
4563 if test "${enable_caca}" = "yes"
4564 then
4565   CACA_PATH="${PATH}"
4566   AC_ARG_WITH(caca-config-path,
4567     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4568     [ if test "${with_caca_config_path}" != "no"
4569       then
4570         CACA_PATH="${with_caca_config_path}:${PATH}"
4571       fi ])
4572   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4573   if test "${CACA_CONFIG}" != "no"
4574   then
4575     VLC_ADD_PLUGIN([caca])
4576     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4577     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4578     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4579                                         caca_event_t ev;]],
4580                                         [[ev.type = 0;]]
4581                        )],
4582                        [],
4583       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4584     )
4585   fi
4586 fi
4587
4588 dnl
4589 dnl  win32 GDI plugin
4590 dnl
4591 AC_ARG_ENABLE(wingdi,
4592   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4593 if test "${enable_wingdi}" != "no"; then
4594   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4595     VLC_ADD_PLUGIN([wingdi])
4596     VLC_ADD_LIBS([wingdi],[-lgdi32])
4597   fi
4598   if test "${SYS}" = "mingwce"; then
4599     VLC_ADD_PLUGIN([wingdi])
4600     VLC_ADD_PLUGIN([wingapi])
4601     VLC_ADD_LIBS([wingdi],[-laygshell])
4602     VLC_ADD_LIBS([wingapi],[-laygshell])
4603   fi
4604 fi
4605
4606 dnl
4607 dnl  Audio plugins
4608 dnl
4609
4610 AC_ARG_WITH(,[Audio plugins:])
4611
4612 dnl
4613 dnl  OSS /dev/dsp module (enabled by default except on win32)
4614 dnl
4615 AC_ARG_ENABLE(oss,
4616   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4617
4618 if test "${enable_oss}" != "no" &&
4619   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4620    test "${enable_oss}" = "yes")
4621 then
4622   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4623     VLC_ADD_PLUGIN([oss])
4624     VLC_ADD_PLUGIN([access_oss])
4625     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4626   ])
4627 fi
4628
4629 dnl
4630 dnl  Pulseaudio module
4631 dnl
4632 AC_ARG_ENABLE(pulse,
4633   [  --enable-pulse          Pulseaudio support (default enabled)])
4634   if test "${enable_pulse}" != "no"
4635    then
4636      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.11,
4637        [ VLC_ADD_PLUGIN([pulse])
4638         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4639         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4640        [AC_MSG_WARN(pulseaudio library not found)])
4641    fi
4642
4643 dnl
4644 dnl  Portaudio module
4645 dnl
4646 AC_ARG_ENABLE(portaudio,
4647   [  --enable-portaudio      Portaudio library support (default disabled)],
4648   [if test "${enable_portaudio}" = "yes"
4649    then
4650      VLC_ADD_PLUGIN([portaudio])
4651      VLC_ADD_CXXFLAGS([portaudio],[])
4652      if test "${SYS}" = "mingw32"; then
4653         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4654      else
4655         VLC_ADD_LIBS([portaudio],[-lportaudio])
4656      fi
4657    fi])
4658
4659 dnl
4660 dnl  ALSA module
4661 dnl
4662 AC_ARG_ENABLE(alsa,
4663   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4664 if test "${enable_alsa}" != "no"
4665 then
4666   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4667   if test "${have_alsa}" = "true"
4668   then
4669     CFLAGS="${CFLAGS_save}"
4670     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4671                     #define ALSA_PCM_NEW_SW_PARAMS_API
4672                     #include <alsa/asoundlib.h>],
4673        [snd_pcm_hw_params_get_period_time(0,0,0);],
4674         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4675     VLC_ADD_PLUGIN([alsa])
4676     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4677     VLC_ADD_PLUGIN([access_alsa])
4678     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4679   else
4680     if test "${enable_alsa}" = "yes"; then
4681       AC_MSG_ERROR([Could not find ALSA development headers])
4682     fi
4683   fi
4684 fi
4685
4686 dnl
4687 dnl  win32 waveOut plugin
4688 dnl
4689 AC_ARG_ENABLE(waveout,
4690   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4691 if test "${enable_waveout}" != "no"; then
4692   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4693     VLC_ADD_PLUGIN([waveout])
4694     VLC_ADD_LIBS([waveout],[-lwinmm])
4695   fi
4696   if test "${SYS}" = "mingwce"; then
4697     VLC_ADD_PLUGIN([waveout])
4698   fi
4699 fi
4700
4701 dnl
4702 dnl  CoreAudio plugin
4703 dnl
4704 AC_ARG_ENABLE(macosx-audio,
4705   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4706 if test "${enable_macosx-audio}" != "no" &&
4707   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4708 then
4709   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4710     [ VLC_ADD_PLUGIN([auhal])
4711       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4712     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4713 fi
4714
4715 dnl
4716 dnl  Roku HD1000 audio
4717 dnl
4718 AC_ARG_ENABLE(hd1000a,
4719   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4720 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4721   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4722    test "${enable_hd1000a}" = "yes")
4723 then
4724   AC_LANG_PUSH([C++])
4725   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4726     VLC_ADD_PLUGIN([hd1000a])
4727     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4728   AC_LANG_POP([C++])
4729 fi
4730
4731 dnl
4732 dnl  JACK modules
4733 dnl
4734 AC_ARG_ENABLE(jack,
4735  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4736  [enable_jack="no"])
4737
4738 AS_IF([test "${enable_jack}" != "no"], [
4739   AC_CHECK_HEADERS(jack/jack.h, [
4740     VLC_ADD_PLUGIN([access_jack])
4741     VLC_ADD_PLUGIN([jack])
4742     VLC_ADD_LIBS([access_jack jack],[-ljack])
4743   ],[AC_MSG_ERROR([cannot find JACK headers])])
4744 ])
4745
4746 dnl
4747 dnl  CyberLink for C++ UPnP stack
4748 dnl
4749 AC_ARG_ENABLE(cyberlink,
4750   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4751   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4752   AC_ARG_WITH(cyberlink-tree,
4753     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4754
4755   dnl
4756   dnl test for --with-cyberlink-tree
4757   dnl
4758   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4759     AC_LANG_PUSH(C++)
4760     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4761     AS_IF([test -z "${real_cyberlink_tree}"], [
4762       dnl  The given directory can't be found
4763       AC_MSG_RESULT(no)
4764       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4765     ])
4766     CPPFLAGS_save="${CPPFLAGS}"
4767     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4768     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4769     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4770       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4771         VLC_ADD_PLUGIN([upnp_cc])
4772       ],[
4773         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4774       ])
4775     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4776     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4777       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4778       dnl The mere fact that we have to make such an ugly check sucks
4779       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4780       LIBS_save="$LIBS"
4781       LIBS_cclink="no"
4782       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4783         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4784         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4785 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4786 using namespace CyberLink;
4787
4788 class testclass : public SearchResponseListener, public MediaPlayer
4789 {
4790     virtual void deviceSearchResponseReceived( SSDPPacket *)
4791     {
4792     }
4793
4794     public:
4795       testclass (void)
4796       {
4797         addSearchResponseListener (this);
4798         start ();
4799       }
4800 };
4801 ],[testclass l;])],[LIBS_cclink="$l"])
4802       done
4803       LIBS="${LIBS_save}"
4804       dnl should not happen - otherwise this needs fixing - hence FAILURE
4805       AS_IF([test "${LIBS_cclink}" = "no"],
4806         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4807       AC_MSG_RESULT([${LIBS_cclink}])
4808       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4809     ], [
4810       AC_MSG_RESULT(no)
4811       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4812     ])
4813     CPPFLAGS="${CPPFLAGS_save}"
4814     AC_LANG_POP([C++])
4815   ])
4816 ])
4817
4818 dnl
4819 dnl UPnP Plugin (Intel SDK)
4820 dnl
4821 AC_ARG_ENABLE(upnp,
4822   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4823
4824 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4825 AS_IF([test "x${enable_upnp}" != "xno"], [
4826   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4827   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4828     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4829   ])
4830   AS_IF([test "${has_upnp}" = "yes"], [
4831     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4832   ])
4833 ], [
4834   has_upnp="no"
4835 ])
4836
4837 AS_IF([test "${has_upnp}" = "yes"], [
4838   VLC_ADD_PLUGIN([upnp_intel])
4839 ])
4840
4841
4842 dnl
4843 dnl  Interface plugins
4844 dnl
4845
4846 AC_ARG_WITH(,[Interface plugins:])
4847
4848 dnl special case for BeOS
4849 if test "${SYS}" = "beos"
4850 then
4851     VLC_ADD_PLUGIN([beos])
4852 fi
4853
4854 dnl
4855 dnl Skins2 module
4856 dnl
4857 AC_ARG_ENABLE(skins2,
4858   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4859    enabled except on MacOSX, BeOS and WinCE)])])
4860 if test "${enable_skins2}" = "yes" ||
4861   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4862    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4863
4864   dnl test for the required libraries
4865   skins2_missing_lib="no"
4866
4867   dnl freetype
4868   if test "${have_freetype}" != "yes"; then
4869     skins2_missing_lib="yes"
4870     if test "${enable_skins2}" = "yes"; then
4871       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4872     fi
4873   fi
4874
4875   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4876     VLC_ADD_PLUGIN([skins2])
4877     ALIASES="${ALIASES} svlc"
4878     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4879     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4880     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4881
4882   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4883     VLC_ADD_PLUGIN([skins2])
4884     ALIASES="${ALIASES} svlc"
4885     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4886     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4887     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4888
4889   else if test "${skins2_missing_lib}" = "no"; then
4890     VLC_ADD_PLUGIN([skins2])
4891     ALIASES="${ALIASES} svlc"
4892     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4893     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4894     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4895   fi fi fi
4896 fi
4897 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4898          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4899           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4900
4901 dnl
4902 dnl  PDA Gtk+2 module
4903 dnl
4904 AC_ARG_ENABLE(pda,
4905   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4906 if test "${enable_pda}" = "yes"
4907 then
4908   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4909   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4910   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4911   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4912   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4913   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4914   VLC_ADD_PLUGIN([pda])
4915   if test "${SYS}" != "mingw32"; then
4916     NEED_GTK2_MAIN=yes
4917     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4918     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4919   fi
4920 fi
4921 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4922
4923 dnl
4924 dnl Maemo
4925 dnl
4926 AC_ARG_ENABLE(maemo,
4927   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4928 if test "${enable_maemo}" = "yes"
4929 then
4930   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4931     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4932     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4933     VLC_ADD_PLUGIN([maemo])
4934     VLC_ADD_PLUGIN([swscale_maemo])
4935     AC_DEFINE([BUILD_MAEMO], 1, [Define if you're using Maemo interfaces])
4936     ALIASES="${ALIASES} mvlc"
4937   ], [
4938     AS_IF([test "${enable_maemo}" = "yes"],[
4939       AC_MSG_ERROR([Hildon libraries not found])
4940     ])
4941     enable_maemo="no"
4942   ])
4943 fi
4944 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4945
4946 dnl
4947 dnl QT 4
4948 dnl
4949 AC_ARG_ENABLE(qt4,
4950   [  --enable-qt4            QT 4 support (default enabled) ],, [
4951   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4952 ])
4953 AS_IF([test "${enable_qt4}" != "no"], [
4954   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.3.0], [
4955     VLC_ADD_PLUGIN([qt4])
4956     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4957     ALIASES="${ALIASES} qvlc"
4958     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4959         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4960     ], [
4961         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
4962     ])
4963     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4964     AC_SUBST(QT4LOCALEDIR)
4965     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4966     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4967     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4968     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4969   ], [
4970     AS_IF([test "${enable_qt4}" = "yes"],[
4971       AC_MSG_ERROR([Qt 4 library not found])
4972     ],[
4973       AC_MSG_WARN([Qt 4 library not found])
4974     ])
4975     enable_qt4="no"
4976   ])
4977 ])
4978 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4979
4980 dnl
4981 dnl  WinCE GUI module
4982 dnl
4983 AC_ARG_ENABLE(wince,
4984   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4985 if test "${enable_wince}" != "no"; then
4986   if test "${SYS}" = "mingwce"; then
4987     VLC_ADD_PLUGIN([wince])
4988     VLC_ADD_CXXFLAGS([wince],[])
4989     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4990     dnl Gross hack
4991     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4992   elif test "${SYS}" = "mingw32"; then
4993     VLC_ADD_CXXFLAGS([wince],[])
4994     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4995     dnl Gross hack
4996     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4997   fi
4998 fi
4999
5000 dnl
5001 dnl Simple test for skins2 dependency
5002 dnl
5003 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
5004   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.])
5005 ])
5006
5007 dnl
5008 dnl  Opie QT embedded module
5009 dnl
5010 AC_ARG_ENABLE(opie,
5011   [  --enable-opie           Qt embedded interface support (default disabled)],
5012   [if test "${enable_opie}" = "yes"; then
5013      AC_ARG_WITH(qte,
5014      [    --with-qte=PATH       Qt Embedded headers and libraries])
5015      if test "${with_qte}" != "no" -a -n "${with_qte}"
5016      then
5017        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5018        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])
5019      else
5020        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5021        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5022      fi
5023      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5024      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5025        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5026      ] )
5027      CPPFLAGS="${CPPFLAGS_save}"
5028
5029      VLC_ADD_PLUGIN([opie])
5030      NEED_QTE_MAIN=yes
5031      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5032      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5033      if test "${with_qte}" != "no" -a -n "${with_qte}"
5034      then
5035        MOC=${with_qte}/bin/moc
5036      else
5037        MOC=${QTDIR}/bin/moc
5038      fi
5039    fi])
5040
5041 dnl
5042 dnl  MacOS X video output/gui modules
5043 dnl
5044 AC_ARG_ENABLE(macosx,
5045   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5046 if test "x${enable_macosx}" = "xyes"
5047 then
5048   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5049   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
5050   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5051   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5052   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
5053   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5054   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5055   dnl For bug report
5056   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
5057   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5058   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
5059   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5060   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5061   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5062   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5063
5064   VLC_ADD_PLUGIN([access_eyetv])
5065   VLC_ADD_PLUGIN([qtcapture])
5066   VLC_ADD_PLUGIN([macosx])
5067   VLC_ADD_PLUGIN([minimal_macosx])
5068
5069   ORIGCFLAGS=$CFLAGS
5070   CFLAGS="$CFLAGS -x objective-c"
5071   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>],,
5072   [VLC_ADD_PLUGIN([opengllayer])
5073   VLC_ADD_OBJCFLAGS([opengllayer])],[])
5074   CFLAGS=$ORIGCFLAGS
5075 fi
5076
5077 dnl
5078 dnl  QNX RTOS module
5079 dnl
5080 AC_ARG_ENABLE(qnx,
5081   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5082     if test "${enable_qnx}" != "no"
5083     then
5084       AC_CHECK_HEADERS(Ph.h, [
5085         VLC_ADD_PLUGIN([qnx])
5086         VLC_ADD_LIBS([qnx],[-lasound -lph])
5087       ])
5088     fi
5089
5090 dnl
5091 dnl  ncurses module
5092 dnl
5093 AC_ARG_ENABLE(ncurses,
5094   [  --disable-ncurses       ncurses interface support (default enabled)],
5095   [if test "${enable_ncurses}" != "no"; then
5096     AC_CHECK_HEADER(ncurses.h,
5097       [AC_CHECK_LIB(ncursesw, mvprintw,
5098         [VLC_ADD_PLUGIN([ncurses])
5099         VLC_ADD_LIBS([ncurses],[-lncursesw])
5100         ALIASES="${ALIASES} nvlc"
5101         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5102         AC_CHECK_LIB(ncursesw, tgetent, [],
5103           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5104             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5105               [AS_IF([test "x${enable_ncurses}" != "x"],
5106                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5107                )])])
5108             ]
5109           )
5110         )
5111         ],
5112         [AC_CHECK_LIB( ncurses, mvprintw,
5113           [VLC_ADD_PLUGIN([ncurses])
5114           ALIASES="${ALIASES} nvlc"
5115           VLC_ADD_LIBS([ncurses],[-lncurses])
5116           AC_CHECK_LIB(ncurses, tgetent, [],
5117             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5118               [AS_IF([test "x${enable_ncurses}" != "x"],
5119                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5120             )]
5121           )],
5122           [AS_IF([test "x${enable_ncurses}" != "x"], [
5123             AC_MSG_ERROR([libncurses not found])])]
5124         )]
5125       )]
5126     )
5127   fi]
5128 )
5129
5130 dnl
5131 dnl  XOSD plugin
5132 dnl
5133 AC_ARG_ENABLE(xosd,
5134   [  --enable-xosd           xosd interface support (default disabled)])
5135 if test "${enable_xosd}" = "yes"
5136 then
5137   AC_CHECK_HEADERS(xosd.h,
5138     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
5139       VLC_ADD_PLUGIN([xosd])
5140       VLC_ADD_LIBS([xosd],[-lxosd])
5141     ])
5142   )
5143 fi
5144
5145 dnl
5146 dnl Framebuffer (overlay) plugin
5147 dnl
5148 AC_ARG_ENABLE(fbosd,
5149   [  --enable-fbosd          fbosd interface support (default disabled)])
5150 if test "${enable_fbosd}" = "yes"
5151 then
5152   AC_CHECK_HEADERS(linux/fb.h, [
5153     VLC_ADD_PLUGIN([fbosd])
5154  ])
5155 fi
5156
5157 dnl
5158 dnl Visualisation plugin
5159 dnl
5160 AC_ARG_ENABLE(visual,
5161   [  --enable-visual         visualisation plugin (default enabled)])
5162 if test "${enable_visual}" != "no"
5163 then
5164     VLC_ADD_PLUGIN([visual])
5165 fi
5166
5167 dnl
5168 dnl OpenGL visualisation plugin
5169 dnl
5170 AC_ARG_ENABLE(galaktos,
5171   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5172 if test "${enable_galaktos}" = "yes"
5173 then
5174   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5175     VLC_ADD_PLUGIN([galaktos])
5176     if test "${SYS}" != "mingw32"; then
5177       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5178     else
5179       VLC_ADD_LIBS([galaktos],[-lopengl32])
5180     fi
5181   ])
5182 fi
5183
5184 dnl
5185 dnl  goom visualization plugin
5186 dnl
5187 AC_ARG_ENABLE(goom,
5188 [  --enable-goom           goom visualisation plugin (default disabled)])
5189 if test "${enable_goom}" = "yes"
5190 then
5191   AC_ARG_WITH(goom-tree,
5192     [    --with-goom-tree=PATH goom tree for static linking (required)])
5193
5194   dnl
5195   dnl test for --with-goom-tree
5196   dnl
5197   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5198     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5199     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5200     if test -z "${real_goom_tree}"; then
5201       dnl  The given directory can't be found
5202       AC_MSG_RESULT(no)
5203       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5204     fi
5205     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5206       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5207       VLC_ADD_PLUGIN([goom])
5208       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5209       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5210     else
5211       dnl  The given libgoom2 wasn't built, try to look for the old goom
5212       AC_MSG_RESULT(no)
5213       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5214       if test -f "${real_goom_tree}/libgoom.a"; then
5215         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5216         VLC_ADD_PLUGIN([goom])
5217         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5218         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5219       else
5220         dnl  The given libgoom wasn't built
5221         AC_MSG_RESULT(no)
5222         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5223       fi
5224     fi
5225   else
5226     AC_CHECK_HEADERS(goom/goom.h, [
5227       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5228       AC_CHECK_LIB(goom2, goom_init, [
5229         VLC_ADD_PLUGIN([goom])
5230         VLC_ADD_LIBS([goom],[-lgoom2])
5231       ],[
5232         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5233       ])
5234       LDFLAGS="${LDFLAGS_save}"
5235     ])
5236   fi
5237 fi
5238
5239 dnl
5240 dnl  AtmoLight (homebrew AmbiLight)
5241 dnl
5242 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5243    AC_ARG_ENABLE(atmo,
5244 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight)
5245                 (default enabled)]))
5246    if test "${enable_atmo}" != "no"; then
5247       AC_LANG_PUSH(C++)
5248       VLC_ADD_PLUGIN([atmo])
5249       AC_LANG_POP(C++)
5250    fi
5251 fi
5252
5253 dnl
5254 dnl  Bonjour services discovery
5255 dnl
5256 AC_ARG_ENABLE(bonjour,
5257   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5258 AS_IF([test "${enable_bonjour}" != "no"], [
5259   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5260     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5261     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5262     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5263     VLC_ADD_PLUGIN([bonjour])
5264   ], [
5265     AC_MSG_WARN(avahi-client library not found)
5266   ])
5267 ])
5268
5269 dnl
5270 dnl  Lirc plugin
5271 dnl
5272 AC_ARG_ENABLE(lirc,
5273   [  --enable-lirc           lirc support (default disabled)])
5274 if test "${enable_lirc}" = "yes"
5275 then
5276   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5277   if test "${have_lirc}" = "true"
5278   then
5279     VLC_ADD_PLUGIN([lirc])
5280     VLC_ADD_LIBS([lirc],[-llirc_client])
5281   fi
5282 fi
5283
5284 dnl
5285 dnl Global hotkeys using XCB
5286 dnl
5287 PKG_CHECK_MODULES(XCB, [xcb], [
5288   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
5289     PKG_CHECK_MODULES(XPROTO, [xproto], [
5290       VLC_ADD_PLUGIN([globalhotkeys])
5291       VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
5292       VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
5293     ], [ AC_MSG_WARN( [Xproto not found] ) ])
5294   ], [ AC_MSG_WARN( [XCB keysyms was not found]) ])
5295 ], [ AC_MSG_WARN( [XCB was not found]) ])
5296
5297 AC_ARG_WITH(,[Misc options:])
5298
5299 dnl
5300 dnl libgcrypt
5301 dnl
5302 AC_ARG_ENABLE(libgcrypt,
5303   [  --disable-libgcrypt      libgcrypts support (default enabled)])
5304 AS_IF([test "${enable_libgcrypt}" != "no"], [
5305   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5306 ])
5307 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5308   AS_IF([test "${have_libgcrypt}" = "yes"],[
5309     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5310   ])
5311 fi
5312 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5313
5314 dnl
5315 dnl TLS/SSL
5316 dnl
5317 AC_ARG_ENABLE(gnutls,
5318   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5319
5320 AS_IF([test "${enable_gnutls}" != "no"], [
5321   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
5322     VLC_ADD_PLUGIN([gnutls])
5323     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5324     AS_IF([test "${SYS}" = "mingw32"], [
5325       dnl pkg-config --libs gnutls omits these
5326       VLC_ADD_LIBS([gnutls], [-lz])
5327       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5328     ])
5329     dnl The GnuTLS plugin invokes gcry_control directly.
5330     AS_IF([test "${have_libgcrypt}" = "yes"],[
5331       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5332       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5333     ])
5334     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5335   ], [
5336     AS_IF([test "${enable_gnutls}" = "yes"], [
5337       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5338     ])
5339   ])
5340 ])
5341
5342
5343 dnl
5344 dnl RemoteOSD plugin (VNC client as video filter)
5345 dnl
5346 AC_ARG_ENABLE(remoteosd,
5347   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5348
5349 AS_IF([test "${enable_remoteosd}" != "no"], [
5350   AS_IF([test "${have_libgcrypt}" = "yes"],[
5351     VLC_ADD_PLUGIN([remoteosd])
5352     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5353     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5354   ], [
5355     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5356   ])
5357 ])
5358
5359
5360 dnl
5361 dnl RAOP plugin
5362 dnl
5363 AC_MSG_CHECKING([whether to enable RAOP plugin])
5364 AS_IF([test "${have_libgcrypt}" = "yes"], [
5365   AC_MSG_RESULT(yes)
5366   VLC_ADD_PLUGIN([stream_out_raop])
5367   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS} -lgpg-error])
5368   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5369 ], [
5370   AC_MSG_RESULT(no)
5371   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5372 ])
5373
5374
5375 dnl
5376 dnl update checking system
5377 dnl
5378 AC_ARG_ENABLE(update-check,
5379   [  --enable-update-check   update checking system (default disabled)])
5380 if test "${enable_update_check}" = "yes"
5381 then
5382   if test "${have_libgcrypt}" != "yes"
5383   then
5384     AC_MSG_ERROR([libgcrypt is required for update checking system])
5385   fi
5386   VLC_ADD_LIBS([libvlccore], [${LIBGCRYPT_LIBS}])
5387   VLC_ADD_CFLAGS([libvlccore], [${LIBGCRYPT_CFLAGS}])
5388   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5389 fi
5390
5391
5392 dnl
5393 dnl  Endianness check
5394 dnl
5395 AC_C_BIGENDIAN
5396 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5397   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5398 ], [
5399   DEFS_BIGENDIAN=""
5400 ])
5401 AC_SUBST(DEFS_BIGENDIAN)
5402
5403 dnl
5404 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5405 dnl
5406 loader=false
5407 AC_ARG_ENABLE(loader,
5408   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
5409                   (default disabled)]))
5410 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5411 AS_IF([test "${enable_loader}" = "yes"],
5412   [ VLC_ADD_PLUGIN([dmo])
5413     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
5414     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5415     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
5416     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5417     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5418     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
5419     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5420     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
5421   ])
5422
5423 AC_ARG_WITH(,[Components:])
5424
5425 dnl
5426 dnl  the VLC binary
5427 dnl
5428 AC_ARG_ENABLE(vlc,
5429   [  --enable-vlc            build the VLC media player (default enabled)])
5430 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5431
5432 dnl
5433 dnl  Microsoft ActiveX support
5434 dnl
5435 activex=false
5436 AC_ARG_ENABLE(activex,
5437   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
5438                   (default enabled on Win32)]))
5439 AC_ARG_WITH(wine-sdk-path,
5440   [    --with-wine-sdk-path=PATH path to wine sdk])
5441 if test "${enable_activex}" != "no"
5442 then
5443   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5444   then
5445     AC_CHECK_PROGS(MIDL, [midl], no)
5446     if test "${with_wine_sdk_path}" != ""
5447     then
5448        WINE_SDK_PATH=${with_wine_sdk_path}
5449        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5450     else
5451        WIDL=no
5452     fi
5453     AC_LANG_PUSH(C++)
5454     AC_CHECK_HEADERS(ole2.h,
5455       [AC_CHECK_HEADERS(olectl.h,
5456         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5457           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5458           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
5459           AC_CHECK_HEADERS(objsafe.h,
5460             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5461             [
5462              #if HAVE_OLE2_H
5463              #   include <ole2.h>
5464              #endif
5465             ]
5466           )
5467           activex=:
5468           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5469         ],
5470         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5471       )],
5472       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5473     )
5474     AC_LANG_POP(C++)
5475   fi
5476 fi
5477 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5478 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5479 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5480 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5481 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5482
5483 dnl
5484 dnl  Mozilla plugin
5485 dnl
5486 mozilla=false
5487 AC_ARG_ENABLE(mozilla,
5488   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5489                   (default disabled)]))
5490 AC_ARG_WITH(mozilla-sdk-path,
5491   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5492 AC_ARG_WITH(mozilla-pkg,
5493   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5494 AC_LANG_PUSH(C++)
5495 if test "${enable_mozilla}" = "yes"
5496 then
5497   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5498     [
5499     dnl pkg-config
5500     dnl As we want to do a loop due to the number of name possible for the .pc
5501     dnl we can't use the pkg-config macros.
5502
5503     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5504     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5505     AC_MSG_NOTICE([Checking for Mozilla])
5506     found=0
5507     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5508     then
5509       found=1
5510     else
5511       if test -n "$PKG_CONFIG"; then
5512         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5513           echo "Trying to find $i.pc files" >&5
5514           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5515           then
5516             echo "Using $i.pc files." >&5
5517             echo "Using $i.pc files." >&6
5518             found=1
5519             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5520             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5521             break
5522           fi
5523         done
5524       fi
5525     fi
5526     AS_IF( [test $found = 1],[
5527         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5528         MOZILLA_REQUIRED_HEADERS=1
5529         AC_CHECK_HEADERS([npfunctions.h])
5530         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5531         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5532           [#if HAVE_NPAPI_H
5533            # include <npapi.h>
5534            #endif
5535           ])
5536         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5537             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5538         fi
5539         MOZILLA_REQUIRED_HEADERS=
5540         mozilla=:
5541         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5542            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5543            AS_IF([ test "${SYS}" != "darwin"],[
5544              PKG_CHECK_MODULES(XPM, [xpm xt],[
5545                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5546              ],[
5547                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5548              ])
5549           ])
5550         ])
5551         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5552         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5553         VLC_ADD_PLUGIN([mozilla])
5554         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5555         MOZILLA_CONFIG=
5556         CPPFLAGS="${CPPFLAGS_save}"
5557           ],
5558           [
5559             AC_PATH_PROGS(MOZILLA_CONFIG,
5560             [mozilla-config seamonkey-config xulrunner-config],
5561             AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5562                   )
5563           ]
5564         )
5565     dnl pkg-config failed but we might have found a mozilla-config
5566     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5567       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5568         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5569         AC_CHECK_LIB(Xt,XtStrings,
5570          [
5571            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5572            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5573          ],
5574          [],
5575          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5576         ])
5577         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5578         LDFLAGS="${LDFLAGS_save}"
5579       fi
5580
5581       mozilla=:
5582       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5583       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5584       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5585       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5586       MOZILLA_REQUIRED_HEADERS=1
5587       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5588       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5589       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5590         [#if HAVE_NPAPI_H
5591          # include <npapi.h>
5592          #endif
5593         ])
5594       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5595       then
5596         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5597       fi
5598       MOZILLA_REQUIRED_HEADERS=
5599       CPPFLAGS="${CPPFLAGS_save}"
5600       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5601     ])
5602     dnl End of moz_sdk = ""
5603   ],[
5604     dnl special case for mingw32
5605     if test "${SYS}" = "mingw32"
5606     then
5607       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5608       dnl latest gecko sdk does not have an xpcom directory
5609       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5610           mozilla_sdk_xpcom="/xpcom"
5611       fi
5612     fi
5613
5614     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5615     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5616     MOZILLA_REQUIRED_HEADERS=1
5617     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5618     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5619     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5620         [#if HAVE_NPAPI_H
5621           #include <npapi.h>
5622           #endif
5623         ])
5624     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5625     then
5626         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5627     fi
5628     MOZILLA_REQUIRED_HEADERS=
5629     mozilla=:
5630     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5631     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])
5632     if ${need_xpcom_libs}; then
5633        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])
5634       if test "${SYS}" = "mingw32"; then
5635         dnl latest gecko sdk does not have embedstring
5636         if test -d "${real_mozilla_sdk}/embedstring/bin"
5637         then
5638           VLC_ADD_LIBS([mozilla],[-lembedstring])
5639         fi
5640       fi
5641     fi
5642     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5643
5644     if test -n "${CYGPATH}"; then
5645       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5646     fi
5647     CPPFLAGS="${CPPFLAGS_save}"
5648  ])
5649 fi
5650 AC_LANG_POP(C++)
5651 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5652
5653 dnl Tests for Osso and Xsp
5654 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5655   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5656     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5657     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5658  ])
5659 ])
5660 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5661   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5662   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5663 ])
5664
5665 dnl
5666 dnl  test plugins
5667 dnl
5668 AC_ARG_ENABLE(testsuite,
5669   [  --enable-testsuite      build test modules (default disabled)])
5670 if test "${enable_testsuite}" = "yes"
5671 then
5672   TESTS="test1 test2 test3 test4"
5673
5674   dnl  we define those so that bootstrap sets the right linker
5675   VLC_ADD_CXXFLAGS([test2],[])
5676   VLC_ADD_OBJCFLAGS([test3],[])
5677   dnl  this one is needed until automake knows what to do
5678   VLC_ADD_LIBS([test3],[-lobjc])
5679
5680   VLC_ADD_PLUGIN([test1])
5681   VLC_ADD_PLUGIN([test2])
5682   VLC_ADD_PLUGIN([test3])
5683   VLC_ADD_PLUGIN([test4])
5684 fi
5685
5686 dnl
5687 dnl  gtk_main plugin
5688 dnl
5689 if test "${NEED_GTK_MAIN}" != "no"
5690 then
5691     VLC_ADD_PLUGIN([gtk_main])
5692     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5693     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5694 fi
5695
5696 if test "${NEED_GNOME_MAIN}" != "no"
5697 then
5698     VLC_ADD_PLUGIN([gnome_main])
5699     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5700     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5701 fi
5702
5703 if test "${NEED_GTK2_MAIN}" != "no"
5704 then
5705     VLC_ADD_PLUGIN([gtk2_main])
5706     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5707     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5708     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5709     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5710 fi
5711
5712 if test "${NEED_GNOME2_MAIN}" != "no"
5713 then
5714     VLC_ADD_PLUGIN([gnome2_main])
5715     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5716     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5717 fi
5718
5719 dnl
5720 dnl  qte_main plugin
5721 dnl
5722 if test "${NEED_QTE_MAIN}" != "no"
5723 then
5724     VLC_ADD_PLUGIN([qte_main])
5725     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5726     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5727     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5728 fi
5729
5730 dnl
5731 dnl  Plugin and builtin checks
5732 dnl
5733 plugin_support=yes
5734
5735 dnl Automagically disable plugins if there is no system support for
5736 dnl dynamically loadable files (.so, .dll, .dylib).
5737 dnl don't forget vlc-win32 still can load .dll as plugins
5738 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5739   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5740   plugin_support=no
5741 ])
5742
5743 AS_IF([test "${plugin_support}" != "no"], [
5744   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5745 ])
5746
5747 dnl
5748 dnl Pic and shared libvlc stuff
5749 dnl
5750 AS_IF([test "${SYS}" = "mingw32"], [
5751   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5752   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5753 ])
5754
5755 dnl
5756 dnl  Stuff used by the program
5757 dnl
5758 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5759 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5760 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5761 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5762 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5763 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5764 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5765 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5766 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5767 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5768 AC_SUBST(COPYRIGHT_MESSAGE)
5769 AC_SUBST(VERSION_MESSAGE)
5770 AC_SUBST(VERSION_MAJOR)
5771 AC_SUBST(VERSION_MINOR)
5772 AC_SUBST(VERSION_REVISION)
5773 AC_SUBST(VERSION_EXTRA)
5774 AC_SUBST(COPYRIGHT_YEARS)
5775 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5776 if test "${build_os}" = "cygwin"
5777 then
5778     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5779 else
5780     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5781 fi
5782 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5783 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5784 dnl Win32 need s a numerical version_extra.
5785 case $( echo ${VERSION_EXTRA}|wc -m ) in
5786        "1") VERSION_EXTRA_RC="0";;
5787        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5788        *) VERSION_EXTRA_RC="99"
5789 esac
5790 AC_SUBST(VERSION_EXTRA_RC)
5791 dnl
5792 dnl  Handle substvars that use $(top_srcdir)
5793 dnl
5794 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5795 AC_SUBST(VLC_CONFIG)
5796 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5797
5798 dnl
5799 dnl  Restore *FLAGS
5800 dnl
5801 VLC_RESTORE_FLAGS
5802
5803 dnl
5804 dnl Sort the modules list
5805 dnl
5806 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5807
5808 dnl
5809 dnl  Create the vlc-config script
5810 dnl
5811 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5812
5813 dnl
5814 dnl  Configuration is finished
5815 dnl
5816 AC_SUBST(SYS)
5817 AC_SUBST(ARCH)
5818 AC_SUBST(ALIASES)
5819 AC_SUBST(ASM)
5820 AC_SUBST(MOC)
5821 AC_SUBST(RCC)
5822 AC_SUBST(UIC)
5823 AC_SUBST(WINDRES)
5824 AC_SUBST(MOZILLA_SDK_PATH)
5825 AC_SUBST(WINE_SDK_PATH)
5826 AC_SUBST(LIBEXT)
5827 AC_SUBST(AM_CPPFLAGS)
5828 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5829 AC_SUBST(FILE_LIBVLCCORE_DLL)
5830 AC_SUBST(FILE_LIBVLC_DLL)
5831
5832 dnl Create vlc-config.in
5833 VLC_OUTPUT_VLC_CONFIG_IN
5834
5835 AC_CONFIG_FILES([
5836   extras/package/win32/vlc.win32.nsi
5837   extras/package/macosx/Info.plist
5838   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5839   extras/package/macosx/plugin/Info.plist
5840   extras/package/macosx/plugin/InstallerInfo.plist
5841   Makefile
5842   projects/activex/Makefile
5843   projects/activex/axvlc.inf
5844   doc/Makefile
5845   extras/package/ipkg/Makefile
5846   libs/loader/Makefile
5847   libs/srtp/Makefile
5848   libs/unzip/Makefile
5849   modules/Makefile
5850   projects/mozilla/Makefile
5851   m4/Makefile
5852   po/Makefile.in
5853   projects/activex/axvlc_rc.rc
5854   projects/mozilla/npvlc_rc.rc
5855   projects/mozilla/vlc.r
5856   projects/mozilla/install.js
5857   share/Makefile
5858   share/vlc_win32_rc.rc
5859   share/libvlc_win32_rc.rc
5860   compat/Makefile
5861   src/Makefile
5862   src/test/Makefile
5863   bin/Makefile
5864   test/Makefile
5865   modules/access/Makefile
5866   modules/access/bd/Makefile
5867   modules/access/bda/Makefile
5868   modules/access/dshow/Makefile
5869   modules/access/dvb/Makefile
5870   modules/access/mms/Makefile
5871   modules/access/cdda/Makefile
5872   modules/access/rtp/Makefile
5873   modules/access/rtsp/Makefile
5874   modules/access/rtmp/Makefile
5875   modules/access/vcd/Makefile
5876   modules/access/vcdx/Makefile
5877   modules/access/screen/Makefile
5878   modules/access/zip/Makefile
5879   modules/access_output/Makefile
5880   modules/audio_filter/Makefile
5881   modules/audio_filter/channel_mixer/Makefile
5882   modules/audio_filter/converter/Makefile
5883   modules/audio_filter/resampler/Makefile
5884   modules/audio_filter/spatializer/Makefile
5885   modules/audio_mixer/Makefile
5886   modules/audio_output/Makefile
5887   modules/codec/Makefile
5888   modules/codec/avcodec/Makefile
5889   modules/codec/cmml/Makefile
5890   modules/codec/dmo/Makefile
5891   modules/codec/shine/Makefile
5892   modules/codec/subtitles/Makefile
5893   modules/codec/spudec/Makefile
5894   modules/codec/wmafixed/Makefile
5895   modules/codec/xvmc/Makefile
5896   modules/control/Makefile
5897   modules/control/http/Makefile
5898   modules/control/globalhotkeys/Makefile
5899   modules/demux/Makefile
5900   modules/demux/asf/Makefile
5901   modules/demux/avformat/Makefile
5902   modules/demux/avi/Makefile
5903   modules/demux/mkv/Makefile
5904   modules/demux/mp4/Makefile
5905   modules/demux/mpeg/Makefile
5906   modules/demux/playlist/Makefile
5907   modules/gui/Makefile
5908   modules/gui/beos/Makefile
5909   modules/gui/pda/Makefile
5910   modules/gui/macosx/Makefile
5911   modules/gui/maemo/Makefile
5912   modules/gui/minimal_macosx/Makefile
5913   modules/gui/qnx/Makefile
5914   modules/gui/qt4/Makefile
5915   modules/gui/skins2/Makefile
5916   modules/gui/wince/Makefile
5917   modules/meta_engine/Makefile
5918   modules/misc/Makefile
5919   modules/misc/dummy/Makefile
5920   modules/misc/lua/Makefile
5921   modules/misc/memcpy/Makefile
5922   modules/misc/notify/Makefile
5923   modules/misc/testsuite/Makefile
5924   modules/misc/playlist/Makefile
5925   modules/misc/osd/Makefile
5926   modules/misc/stats/Makefile
5927   modules/misc/xml/Makefile
5928   modules/misc/probe/Makefile
5929   modules/mux/Makefile
5930   modules/mux/mpeg/Makefile
5931   modules/packetizer/Makefile
5932   modules/services_discovery/Makefile
5933   modules/stream_filter/Makefile
5934   modules/stream_out/Makefile
5935   modules/stream_out/transrate/Makefile
5936   modules/video_chroma/Makefile
5937   modules/video_filter/Makefile
5938   modules/video_filter/atmo/Makefile
5939   modules/video_filter/dynamicoverlay/Makefile
5940   modules/video_output/Makefile
5941   modules/video_output/msw/Makefile
5942   modules/video_output/qte/Makefile
5943   modules/video_output/x11/Makefile
5944   modules/visualization/Makefile
5945   modules/visualization/visual/Makefile
5946   modules/visualization/galaktos/Makefile
5947 ])
5948
5949 dnl Generate makefiles
5950 AC_OUTPUT
5951
5952 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5953 # not provided with the source
5954 ${SHELL} ./config.status --file=vlc-config
5955 chmod 0755 vlc-config
5956
5957 /bin/echo -n "Enabled modules: "
5958 ./vlc-config --list plugin
5959
5960 dnl Shortcut to nice compile message
5961 rm -f compile
5962 echo '#! /bin/sh' >compile
5963 echo rm -f .error\$\$ >>compile
5964 echo ERROR=0 >>compile
5965 echo export PATH=$PATH LANG=C >>compile
5966 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5967 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5968 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5969 echo rm -f .error\$\$ >>compile
5970 echo exit \$ERROR >>compile
5971 chmod a+x compile
5972
5973 printf "
5974 libvlc configuration
5975 --------------------
5976 version               : ${VERSION}
5977 system                : ${SYS}
5978 architecture          : ${ARCH}
5979 build flavour         : "
5980 test "${enable_debug}" = "yes" && printf "debug "
5981 test "${enable_cprof}" = "yes" && printf "cprof "
5982 test "${enable_gprof}" = "yes" && printf "gprof "
5983 test "${enable_optimizations}" = "yes" && printf "optim "
5984 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5985 echo ""
5986 if test "${enable_vlc}" != "no"; then
5987 echo "vlc aliases           :${ALIASES}"
5988 else
5989 echo "build vlc executable  : no"
5990 fi
5991 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5992
5993 You can tune the compiler flags in vlc-config.
5994 To build vlc and its plugins, type \`./compile' or \`make'.
5995 "
5996 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5997    echo ""
5998    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5999    echo "         turned off."
6000    echo "         FFmpeg will be REALLY slow."
6001    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6002    echo ""
6003 fi