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