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