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