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