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