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