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