]> git.sesse.net Git - vlc/blob - configure.ac
d4da3ca3553e59e8316020566b4d10df8889b2fb
[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([shout], [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([dv], [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])
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 PKG_ENABLE_MODULES_VLC([libxml2], [], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3890
3891 dnl
3892 dnl  SVG module
3893 dnl
3894 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3895
3896 dnl
3897 dnl Snapshot vout module (with cache)
3898 dnl
3899 AC_ARG_ENABLE(snapshot,
3900   [  --enable-snapshot       snapshot module (default disabled)])
3901 if test "${enable_snapshot}" = "yes"
3902 then
3903   VLC_ADD_PLUGIN([snapshot])
3904 fi
3905
3906 dnl
3907 dnl  Qt Embedded module
3908 dnl  (disabled by default)
3909 dnl
3910 AC_ARG_ENABLE(qte,
3911   [  --enable-qte            QT Embedded support (default disabled)])
3912 if test "${enable_qte}" = "yes"
3913 then
3914   AC_ARG_WITH(qte,
3915   [    --with-qte=PATH       Qt Embedded headers and libraries])
3916   if test "${with_qte}" != "no" -a -n "${with_qte}"
3917   then
3918     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3919     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])
3920   else
3921     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3922     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3923   fi
3924   VLC_ADD_PLUGIN([qte])
3925   NEED_QTE_MAIN=yes
3926   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3927   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3928     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3929   ] )
3930   CPPFLAGS="${CPPFLAGS_save}"
3931 fi
3932
3933 dnl
3934 dnl Roku HD1000 Video output module
3935 dnl
3936 AC_ARG_ENABLE(hd1000v,
3937   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3938 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3939   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3940    test "${enable_hd1000v}" = "yes"); then
3941   AC_LANG_PUSH([C++])
3942   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3943   [
3944     can_build_roku="yes"
3945   ],
3946   [
3947     can_build_roku="no"
3948     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3949   ])
3950   if test "$can_build_roku" = "yes"
3951   then
3952     VLC_ADD_PLUGIN([hd1000v])
3953     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3954   fi
3955   AC_LANG_POP([C++])
3956 fi
3957
3958 dnl
3959 dnl  Windows DirectX module
3960 dnl
3961
3962 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3963 then
3964   VLC_ADD_PLUGIN([panoramix])
3965 fi
3966
3967 AC_ARG_ENABLE(directx,
3968   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3969 if test "${enable_directx}" != "no"
3970 then
3971   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3972   then
3973     AC_ARG_WITH(directx,
3974     [    --with-directx=PATH   Win32 DirectX headers])
3975     if test -z "${with_directx}"
3976     then
3977       AC_CHECK_HEADERS(ddraw.h,
3978       [ VLC_ADD_PLUGIN([directx])
3979         VLC_ADD_PLUGIN([aout_directx])
3980         VLC_ADD_LIBS([directx],[-lgdi32])
3981       ])
3982       AC_CHECK_HEADERS(GL/gl.h,
3983       [ VLC_ADD_PLUGIN([glwin32])
3984         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3985       ])
3986       AC_CHECK_HEADERS(d3d9.h,
3987       [ VLC_ADD_PLUGIN([direct3d])
3988         VLC_ADD_LIBS([direct3d],[-lgdi32])
3989       ])
3990     else
3991       AC_MSG_CHECKING(for directX headers in ${with_directx})
3992       if test -f ${with_directx}/ddraw.h
3993       then
3994         VLC_ADD_PLUGIN([directx])
3995         VLC_ADD_PLUGIN([aout_directx])
3996         VLC_ADD_CPPFLAGS([directx aout_directx],[-I${with_directx}])
3997         VLC_ADD_LIBS([directx],[-lgdi32])
3998         AC_MSG_RESULT(yes)
3999       else
4000         AC_MSG_RESULT(no)
4001         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4002       fi
4003     fi
4004   fi
4005 fi
4006
4007 dnl
4008 dnl  Linux framebuffer module
4009 dnl
4010 AC_ARG_ENABLE(fb,
4011   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4012     if test "${enable_fb}" != "no"
4013     then
4014       AC_CHECK_HEADERS(linux/fb.h, [
4015         VLC_ADD_PLUGIN([fb])
4016       ])
4017     fi
4018
4019 dnl
4020 dnl  Linux MGA module
4021 dnl
4022 AC_ARG_ENABLE(mga,
4023   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4024   [ if test "${enable_mga}" = "yes"
4025     then
4026       VLC_ADD_PLUGIN([mga])
4027     fi ])
4028
4029 dnl
4030 dnl  OMAP Framebuffer module
4031 dnl
4032 AC_ARG_ENABLE(omapfb,
4033   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4034     if test "${enable_omapfb}" = "yes"
4035     then
4036       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4037         VLC_ADD_PLUGIN([omapfb])
4038         AC_CHECK_HEADERS(X11/Xlib.h, [
4039           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4040       ])
4041     fi
4042
4043 dnl
4044 dnl  SVGAlib module
4045 dnl
4046 AC_ARG_ENABLE(svgalib,
4047   [  --enable-svgalib        SVGAlib support (default disabled)])
4048 if test "${enable_svgalib}" = "yes"
4049 then
4050   VLC_ADD_PLUGIN([svgalib])
4051   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4052 fi
4053
4054 dnl
4055 dnl  DirectFB module
4056 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4057 dnl  TODO: support for static linking
4058 dnl
4059 AC_ARG_ENABLE(directfb,
4060   [  --enable-directfb       DirectFB support (default disabled)])
4061 AC_ARG_WITH(directfb,
4062   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4063
4064 if test "${enable_directfb}" = "yes"; then
4065     have_directfb="false"
4066     CPPFLAGS_mydirectfb=
4067     LIBS_mydirectfb=
4068     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4069         dnl Trying the given location
4070         CPPFLAGS_save="${CPPFLAGS}"
4071         LIBS_save="${LIBS}"
4072
4073         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4074         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4075         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4076
4077         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4078         LIBS="${LIBS} ${LIBS_new}"
4079
4080         dnl FIXME: too obscure
4081         AC_CHECK_HEADER([directfb.h], [
4082             AC_CHECK_LIB([direct],[direct_initialize], [
4083                 AC_CHECK_LIB([fusion], [fusion_enter], [
4084                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4085                 ], have_directfb="false")
4086             ], have_directfb="false")
4087         ], have_directfb="false")
4088
4089         dnl Restore flags
4090         CPPFLAGS="${CPPFLAGS_save}"
4091         LIBS="${LIBS_save}"
4092
4093         if test "${have_directfb}" = "true"; then
4094             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4095             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4096         fi
4097     else
4098         dnl Look for directfb-config
4099         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4100         if test "${DIRECTFB_CONFIG}" != "no"; then
4101             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4102             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4103             have_directfb="true"
4104         else
4105             dnl Trying with pkg-config
4106             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4107                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4108                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4109                 have_directfb="true"
4110                 ], [have_directfb="false"])
4111         fi
4112     fi
4113     if test "${have_directfb}" = "true"; then
4114         VLC_ADD_PLUGIN([directfb])
4115         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4116         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4117     else
4118         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4119     fi
4120 fi
4121
4122
4123
4124 dnl
4125 dnl  GGI module
4126 dnl
4127 AC_ARG_ENABLE(ggi,
4128   [  --enable-ggi            GGI support (default disabled)])
4129 if test "${enable_ggi}" = "yes"
4130 then
4131   AC_CHECK_HEADER([ggi/ggi.h],[
4132     VLC_ADD_PLUGIN([ggi])
4133     VLC_ADD_LIBS([ggi],[-lggi])
4134     AC_ARG_WITH(ggi,
4135       [    --with-ggi=PATH       path to libggi],
4136       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4137         then
4138           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4139           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4140         fi ])
4141     ],[
4142        AC_MSG_ERROR([LibGGI development files can't be found])
4143     ])
4144 fi
4145
4146 dnl
4147 dnl  AA plugin
4148 dnl
4149 AC_ARG_ENABLE(aa,
4150   [  --enable-aa             aalib output (default disabled)])
4151 if test "${enable_aa}" = "yes"
4152 then
4153   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4154   if test "${have_aa}" = "true"
4155   then
4156     VLC_ADD_PLUGIN([aa])
4157     VLC_ADD_LIBS([aa],[-laa])
4158   fi
4159 fi
4160
4161 dnl
4162 dnl  libcaca plugin
4163 dnl
4164 AC_ARG_ENABLE(caca,
4165   [  --enable-caca           libcaca output (default disabled)])
4166 if test "${enable_caca}" = "yes"
4167 then
4168   CACA_PATH="${PATH}"
4169   AC_ARG_WITH(caca-config-path,
4170     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4171     [ if test "${with_caca_config_path}" != "no"
4172       then
4173         CACA_PATH="${with_caca_config_path}:${PATH}"
4174       fi ])
4175   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4176   if test "${CACA_CONFIG}" != "no"
4177   then
4178     VLC_ADD_PLUGIN([caca])
4179     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4180     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4181     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4182                                         caca_event_t ev;]],
4183                                         [[ev.type = 0;]]
4184                        )],
4185                        [],
4186       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4187     )
4188   fi
4189 fi
4190
4191 dnl
4192 dnl  win32 GDI plugin
4193 dnl
4194 AC_ARG_ENABLE(wingdi,
4195   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4196 if test "${enable_wingdi}" != "no"; then
4197   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4198     VLC_ADD_PLUGIN([wingdi])
4199     VLC_ADD_LIBS([wingdi],[-lgdi32])
4200   fi
4201   if test "${SYS}" = "mingwce"; then
4202     VLC_ADD_PLUGIN([wingdi])
4203     VLC_ADD_PLUGIN([wingapi])
4204     VLC_ADD_LIBS([wingdi],[-laygshell])
4205     VLC_ADD_LIBS([wingapi],[-laygshell])
4206   fi
4207 fi
4208
4209 dnl
4210 dnl  Audio plugins
4211 dnl
4212
4213 AC_ARG_WITH(,[Audio plugins:])
4214
4215 dnl
4216 dnl  OSS /dev/dsp module (enabled by default except on win32)
4217 dnl
4218 AC_ARG_ENABLE(oss,
4219   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4220
4221 if test "${enable_oss}" != "no" &&
4222   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4223    test "${enable_oss}" = "yes")
4224 then
4225   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4226     VLC_ADD_PLUGIN([oss])
4227     VLC_ADD_PLUGIN([access_oss])
4228     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4229   ])
4230 fi
4231
4232 dnl
4233 dnl  Pulseaudio module
4234 dnl
4235 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4236
4237 dnl
4238 dnl  Portaudio module
4239 dnl
4240 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
4241
4242 dnl
4243 dnl  ALSA module
4244 dnl
4245 AC_ARG_ENABLE(alsa,
4246   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4247 if test "${enable_alsa}" != "no"
4248 then
4249   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4250   if test "${have_alsa}" = "true"
4251   then
4252     CFLAGS="${CFLAGS_save}"
4253     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4254                     #define ALSA_PCM_NEW_SW_PARAMS_API
4255                     #include <alsa/asoundlib.h>],
4256        [snd_pcm_hw_params_get_period_time(0,0,0);],
4257         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4258     VLC_ADD_PLUGIN([alsa])
4259     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4260     VLC_ADD_PLUGIN([access_alsa])
4261     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4262   else
4263     if test "${enable_alsa}" = "yes"; then
4264       AC_MSG_ERROR([Could not find ALSA development headers])
4265     fi
4266   fi
4267 fi
4268
4269 dnl
4270 dnl  win32 waveOut plugin
4271 dnl
4272 AC_ARG_ENABLE(waveout,
4273   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4274 if test "${enable_waveout}" != "no"; then
4275   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4276     VLC_ADD_PLUGIN([waveout])
4277     VLC_ADD_LIBS([waveout],[-lwinmm])
4278   fi
4279   if test "${SYS}" = "mingwce"; then
4280     VLC_ADD_PLUGIN([waveout])
4281   fi
4282 fi
4283
4284 dnl
4285 dnl  CoreAudio plugin
4286 dnl
4287 AC_ARG_ENABLE(macosx-audio,
4288   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4289 if test "${enable_macosx-audio}" != "no" &&
4290   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4291 then
4292   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4293     [ VLC_ADD_PLUGIN([auhal])
4294       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4295     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4296 fi
4297
4298 dnl
4299 dnl  Roku HD1000 audio
4300 dnl
4301 AC_ARG_ENABLE(hd1000a,
4302   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4303 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4304   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4305    test "${enable_hd1000a}" = "yes")
4306 then
4307   AC_LANG_PUSH([C++])
4308   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4309     VLC_ADD_PLUGIN([hd1000a])
4310     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4311   AC_LANG_POP([C++])
4312 fi
4313
4314 dnl
4315 dnl  JACK modules
4316 dnl
4317 AC_ARG_ENABLE(jack,
4318  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4319  [enable_jack="no"])
4320
4321 AS_IF([test "${enable_jack}" != "no"], [
4322   AC_CHECK_HEADERS(jack/jack.h, [
4323     VLC_ADD_PLUGIN([access_jack])
4324     VLC_ADD_PLUGIN([jack])
4325     VLC_ADD_LIBS([access_jack jack],[-ljack])
4326   ],[AC_MSG_ERROR([cannot find JACK headers])])
4327 ])
4328
4329 dnl
4330 dnl  CyberLink for C++ UPnP stack
4331 dnl
4332 AC_ARG_ENABLE(cyberlink,
4333   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4334   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4335   AC_ARG_WITH(cyberlink-tree,
4336     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4337
4338   dnl
4339   dnl test for --with-cyberlink-tree
4340   dnl
4341   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4342     AC_LANG_PUSH(C++)
4343     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4344     AS_IF([test -z "${real_cyberlink_tree}"], [
4345       dnl  The given directory can't be found
4346       AC_MSG_RESULT(no)
4347       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4348     ])
4349     CPPFLAGS_save="${CPPFLAGS}"
4350     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4351     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4352     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4353       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4354         VLC_ADD_PLUGIN([upnp_cc])
4355       ],[
4356         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4357       ])
4358     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4359     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4360       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4361       dnl The mere fact that we have to make such an ugly check sucks
4362       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4363       LIBS_save="$LIBS"
4364       LIBS_cclink="no"
4365       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4366         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4367         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4368 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4369 using namespace CyberLink;
4370
4371 class testclass : public SearchResponseListener, public MediaPlayer
4372 {
4373     virtual void deviceSearchResponseReceived( SSDPPacket *)
4374     {
4375     }
4376
4377     public:
4378       testclass (void)
4379       {
4380         addSearchResponseListener (this);
4381         start ();
4382       }
4383 };
4384 ],[testclass l;])],[LIBS_cclink="$l"])
4385       done
4386       LIBS="${LIBS_save}"
4387       dnl should not happen - otherwise this needs fixing - hence FAILURE
4388       AS_IF([test "${LIBS_cclink}" = "no"],
4389         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4390       AC_MSG_RESULT([${LIBS_cclink}])
4391       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4392     ], [
4393       AC_MSG_RESULT(no)
4394       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4395     ])
4396     CPPFLAGS="${CPPFLAGS_save}"
4397     AC_LANG_POP([C++])
4398   ])
4399 ])
4400
4401 dnl
4402 dnl UPnP Plugin (Intel SDK)
4403 dnl
4404 AC_ARG_ENABLE(upnp,
4405   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4406
4407 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4408 AS_IF([test "x${enable_upnp}" != "xno"], [
4409   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4410   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4411     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4412   ])
4413   AS_IF([test "${has_upnp}" = "yes"], [
4414     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4415   ])
4416 ], [
4417   has_upnp="no"
4418 ])
4419
4420 AS_IF([test "${has_upnp}" = "yes"], [
4421   VLC_ADD_PLUGIN([upnp_intel])
4422 ])
4423
4424
4425 dnl
4426 dnl  Interface plugins
4427 dnl
4428
4429 AC_ARG_WITH(,[Interface plugins:])
4430
4431 dnl special case for BeOS
4432 if test "${SYS}" = "beos"
4433 then
4434     VLC_ADD_PLUGIN([beos])
4435 fi
4436
4437 dnl
4438 dnl Skins2 module
4439 dnl
4440 AC_ARG_ENABLE(skins2,
4441   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4442    enabled except on MacOSX, BeOS and WinCE)])])
4443 if test "${enable_skins2}" = "yes" ||
4444   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4445    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4446
4447   dnl test for the required libraries
4448   skins2_missing_lib="no"
4449
4450   dnl freetype
4451   if test "${have_freetype}" != "yes"; then
4452     skins2_missing_lib="yes"
4453     if test "${enable_skins2}" = "yes"; then
4454       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4455     fi
4456   fi
4457
4458   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4459     VLC_ADD_PLUGIN([skins2])
4460     ALIASES="${ALIASES} svlc"
4461     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4462     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4463     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4464
4465   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4466     VLC_ADD_PLUGIN([skins2])
4467     ALIASES="${ALIASES} svlc"
4468     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4469     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4470     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4471
4472   else if test "${skins2_missing_lib}" = "no"; then
4473     VLC_ADD_PLUGIN([skins2])
4474     ALIASES="${ALIASES} svlc"
4475     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4476     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4477     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4478   fi fi fi
4479 fi
4480 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4481          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4482           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4483
4484 dnl
4485 dnl  PDA Gtk+2 module
4486 dnl
4487 AC_ARG_ENABLE(pda,
4488   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4489 if test "${enable_pda}" = "yes"
4490 then
4491   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4492   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4493   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4494   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4495   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4496   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4497   VLC_ADD_PLUGIN([pda])
4498   if test "${SYS}" != "mingw32"; then
4499     NEED_GTK2_MAIN=yes
4500     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4501     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4502   fi
4503 fi
4504 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4505
4506 dnl
4507 dnl Maemo
4508 dnl
4509 AC_ARG_ENABLE(maemo,
4510   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4511 if test "${enable_maemo}" = "yes"
4512 then
4513   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4514     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4515     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4516     VLC_ADD_PLUGIN([maemo])
4517     VLC_ADD_PLUGIN([swscale_maemo])
4518     AC_DEFINE([BUILD_MAEMO], 1, [Define if you are using Maemo interfaces])
4519     ALIASES="${ALIASES} mvlc"
4520   ], [
4521     AS_IF([test "${enable_maemo}" = "yes"],[
4522       AC_MSG_ERROR([Hildon libraries not found])
4523     ])
4524     enable_maemo="no"
4525   ])
4526 fi
4527 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4528
4529 dnl
4530 dnl QT 4
4531 dnl
4532 AC_ARG_ENABLE(qt4,
4533   [  --enable-qt4            QT 4 support (default enabled) ],, [
4534   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4535 ])
4536 AS_IF([test "${enable_qt4}" != "no"], [
4537   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4538     VLC_ADD_PLUGIN([qt4])
4539     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4540     ALIASES="${ALIASES} qvlc"
4541     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4542         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4543     ], [
4544         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4545     ])
4546     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4547     AC_SUBST(QT4LOCALEDIR)
4548     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4549     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4550     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4551     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4552   ], [
4553     AS_IF([test "${enable_qt4}" = "yes"],[
4554       AC_MSG_ERROR([Qt 4 library not found])
4555     ],[
4556       AC_MSG_WARN([Qt 4 library not found])
4557     ])
4558     enable_qt4="no"
4559   ])
4560 ])
4561 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4562
4563 dnl
4564 dnl  WinCE GUI module
4565 dnl
4566 AC_ARG_ENABLE(wince,
4567   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4568 if test "${enable_wince}" != "no"; then
4569   if test "${SYS}" = "mingwce"; then
4570     VLC_ADD_PLUGIN([wince])
4571     VLC_ADD_CXXFLAGS([wince],[])
4572     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4573     dnl Gross hack
4574     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4575   elif test "${SYS}" = "mingw32"; then
4576     VLC_ADD_CXXFLAGS([wince],[])
4577     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4578     dnl Gross hack
4579     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4580   fi
4581 fi
4582
4583 dnl
4584 dnl Simple test for skins2 dependency
4585 dnl
4586 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4587   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.])
4588 ])
4589
4590 dnl
4591 dnl  Opie QT embedded module
4592 dnl
4593 AC_ARG_ENABLE(opie,
4594   [  --enable-opie           Qt embedded interface support (default disabled)],
4595   [if test "${enable_opie}" = "yes"; then
4596      AC_ARG_WITH(qte,
4597      [    --with-qte=PATH       Qt Embedded headers and libraries])
4598      if test "${with_qte}" != "no" -a -n "${with_qte}"
4599      then
4600        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4601        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])
4602      else
4603        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4604        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4605      fi
4606      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4607      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4608        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4609      ] )
4610      CPPFLAGS="${CPPFLAGS_save}"
4611
4612      VLC_ADD_PLUGIN([opie])
4613      NEED_QTE_MAIN=yes
4614      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4615      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4616      if test "${with_qte}" != "no" -a -n "${with_qte}"
4617      then
4618        MOC=${with_qte}/bin/moc
4619      else
4620        MOC=${QTDIR}/bin/moc
4621      fi
4622    fi])
4623
4624 dnl
4625 dnl  MacOS X video output/gui modules
4626 dnl
4627 AC_ARG_ENABLE(macosx,
4628   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4629 if test "x${enable_macosx}" = "xyes"
4630 then
4631   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4632   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4633   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4634   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4635   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4636   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4637   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4638   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4639   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4640   dnl For bug report
4641   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4642   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
4643   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4644   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4645   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4646   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4647   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4648
4649   VLC_ADD_PLUGIN([access_eyetv])
4650   VLC_ADD_PLUGIN([qtcapture])
4651   VLC_ADD_PLUGIN([macosx])
4652   VLC_ADD_PLUGIN([minimal_macosx])
4653   VLC_ADD_PLUGIN([opengllayer])
4654 fi
4655
4656 dnl
4657 dnl  QNX RTOS module
4658 dnl
4659 AC_ARG_ENABLE(qnx,
4660   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4661     if test "${enable_qnx}" != "no"
4662     then
4663       AC_CHECK_HEADERS(Ph.h, [
4664         VLC_ADD_PLUGIN([qnx])
4665         VLC_ADD_LIBS([qnx],[-lasound -lph])
4666       ])
4667     fi
4668
4669 dnl
4670 dnl  ncurses module
4671 dnl
4672 AC_ARG_ENABLE(ncurses,
4673   [  --disable-ncurses       ncurses interface support (default enabled)],
4674   [if test "${enable_ncurses}" != "no"; then
4675     AC_CHECK_HEADER(ncurses.h,
4676       [AC_CHECK_LIB(ncursesw, mvprintw,
4677         [VLC_ADD_PLUGIN([ncurses])
4678         VLC_ADD_LIBS([ncurses],[-lncursesw])
4679         ALIASES="${ALIASES} nvlc"
4680         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4681         AC_CHECK_LIB(ncursesw, tgetent, [],
4682           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4683             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4684               [AS_IF([test "x${enable_ncurses}" != "x"],
4685                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4686                )])])
4687             ]
4688           )
4689         )
4690         ],
4691         [AC_CHECK_LIB( ncurses, mvprintw,
4692           [VLC_ADD_PLUGIN([ncurses])
4693           ALIASES="${ALIASES} nvlc"
4694           VLC_ADD_LIBS([ncurses],[-lncurses])
4695           AC_CHECK_LIB(ncurses, tgetent, [],
4696             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4697               [AS_IF([test "x${enable_ncurses}" != "x"],
4698                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4699             )]
4700           )],
4701           [AS_IF([test "x${enable_ncurses}" != "x"], [
4702             AC_MSG_ERROR([libncurses not found])])]
4703         )]
4704       )]
4705     )
4706   fi]
4707 )
4708
4709 dnl
4710 dnl  XOSD plugin
4711 dnl
4712 AC_ARG_ENABLE(xosd,
4713   [  --enable-xosd           xosd interface support (default disabled)])
4714 if test "${enable_xosd}" = "yes"
4715 then
4716   AC_CHECK_HEADERS(xosd.h,
4717     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4718       VLC_ADD_PLUGIN([xosd])
4719       VLC_ADD_LIBS([xosd],[-lxosd])
4720     ])
4721   )
4722 fi
4723
4724 dnl
4725 dnl Framebuffer (overlay) plugin
4726 dnl
4727 AC_ARG_ENABLE(fbosd,
4728   [  --enable-fbosd          fbosd interface support (default disabled)])
4729 if test "${enable_fbosd}" = "yes"
4730 then
4731   AC_CHECK_HEADERS(linux/fb.h, [
4732     VLC_ADD_PLUGIN([fbosd])
4733  ])
4734 fi
4735
4736 dnl
4737 dnl Visualisation plugin
4738 dnl
4739 AC_ARG_ENABLE(visual,
4740   [  --enable-visual         visualisation plugin (default enabled)])
4741 if test "${enable_visual}" != "no"
4742 then
4743     VLC_ADD_PLUGIN([visual])
4744 fi
4745
4746 dnl
4747 dnl OpenGL visualisation plugin
4748 dnl
4749 AC_ARG_ENABLE(galaktos,
4750   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
4751 if test "${enable_galaktos}" = "yes"
4752 then
4753   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4754     VLC_ADD_PLUGIN([galaktos])
4755     if test "${SYS}" != "mingw32"; then
4756       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
4757     else
4758       VLC_ADD_LIBS([galaktos],[-lopengl32])
4759     fi
4760   ])
4761 fi
4762
4763 dnl
4764 dnl  goom visualization plugin
4765 dnl
4766 AC_ARG_ENABLE(goom,
4767 [  --enable-goom           goom visualisation plugin (default disabled)])
4768 if test "${enable_goom}" = "yes"
4769 then
4770   AC_ARG_WITH(goom-tree,
4771     [    --with-goom-tree=PATH goom tree for static linking (required)])
4772
4773   dnl
4774   dnl test for --with-goom-tree
4775   dnl
4776   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
4777     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
4778     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
4779     if test -z "${real_goom_tree}"; then
4780       dnl  The given directory can't be found
4781       AC_MSG_RESULT(no)
4782       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
4783     fi
4784     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
4785       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
4786       VLC_ADD_PLUGIN([goom])
4787       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
4788       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
4789     else
4790       dnl  The given libgoom2 wasn't built, try to look for the old goom
4791       AC_MSG_RESULT(no)
4792       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
4793       if test -f "${real_goom_tree}/libgoom.a"; then
4794         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
4795         VLC_ADD_PLUGIN([goom])
4796         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
4797         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
4798       else
4799         dnl  The given libgoom wasn't built
4800         AC_MSG_RESULT(no)
4801         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
4802       fi
4803     fi
4804   else
4805     AC_CHECK_HEADERS(goom/goom.h, [
4806       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
4807       AC_CHECK_LIB(goom2, goom_init, [
4808         VLC_ADD_PLUGIN([goom])
4809         VLC_ADD_LIBS([goom],[-lgoom2])
4810       ],[
4811         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
4812       ])
4813       LDFLAGS="${LDFLAGS_save}"
4814     ])
4815   fi
4816 fi
4817
4818 dnl
4819 dnl libprojectM visualization plugin
4820 dnl
4821 PKG_ENABLE_MODULES_VLC([projectm], [], [libprojectM], [projectM visualization plugin], [auto])
4822
4823 dnl
4824 dnl  AtmoLight (homebrew AmbiLight)
4825 dnl
4826 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
4827    AC_ARG_ENABLE(atmo,
4828 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight)
4829                 (default enabled)]))
4830    if test "${enable_atmo}" != "no"; then
4831       AC_LANG_PUSH(C++)
4832       VLC_ADD_PLUGIN([atmo])
4833       AC_LANG_POP(C++)
4834    fi
4835 fi
4836
4837 dnl
4838 dnl  Bonjour services discovery
4839 dnl
4840 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4841
4842 dnl
4843 dnl  Lirc plugin
4844 dnl
4845 AC_ARG_ENABLE(lirc,
4846   [  --enable-lirc           lirc support (default disabled)])
4847 if test "${enable_lirc}" = "yes"
4848 then
4849   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4850   if test "${have_lirc}" = "true"
4851   then
4852     VLC_ADD_PLUGIN([lirc])
4853     VLC_ADD_LIBS([lirc],[-llirc_client])
4854   fi
4855 fi
4856
4857
4858 AC_ARG_WITH(,[Misc options:])
4859
4860 dnl
4861 dnl libgcrypt
4862 dnl
4863 AC_ARG_ENABLE(libgcrypt,
4864   [  --disable-libgcrypt      libgcrypts support (default enabled)])
4865 AS_IF([test "${enable_libgcrypt}" != "no"], [
4866   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
4867 ])
4868 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4869   AS_IF([test "${have_libgcrypt}" = "yes"],[
4870     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
4871   ])
4872 fi
4873 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
4874
4875 dnl
4876 dnl TLS/SSL
4877 dnl
4878 AC_ARG_ENABLE(gnutls,
4879   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4880
4881 AS_IF([test "${enable_gnutls}" != "no"], [
4882   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4883     VLC_ADD_PLUGIN([gnutls])
4884     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4885     AS_IF([test "${SYS}" = "mingw32"], [
4886       dnl pkg-config --libs gnutls omits these
4887       VLC_ADD_LIBS([gnutls], [-lz])
4888       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
4889     ])
4890     dnl The GnuTLS plugin invokes gcry_control directly.
4891     AS_IF([test "${have_libgcrypt}" = "yes"],[
4892       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
4893       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
4894     ])
4895     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4896   ], [
4897     AS_IF([test "${enable_gnutls}" = "yes"], [
4898       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
4899     ])
4900   ])
4901 ])
4902
4903
4904 dnl
4905 dnl RemoteOSD plugin (VNC client as video filter)
4906 dnl
4907 AC_ARG_ENABLE(remoteosd,
4908   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4909
4910 AS_IF([test "${enable_remoteosd}" != "no"], [
4911   AS_IF([test "${have_libgcrypt}" = "yes"],[
4912     VLC_ADD_PLUGIN([remoteosd])
4913     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
4914     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
4915   ], [
4916     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4917   ])
4918 ])
4919
4920
4921 dnl
4922 dnl RAOP plugin
4923 dnl
4924 AC_MSG_CHECKING([whether to enable RAOP plugin])
4925 AS_IF([test "${have_libgcrypt}" = "yes"], [
4926   AC_MSG_RESULT(yes)
4927   VLC_ADD_PLUGIN([stream_out_raop])
4928   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS} -lgpg-error])
4929   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
4930 ], [
4931   AC_MSG_RESULT(no)
4932   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4933 ])
4934
4935
4936 dnl
4937 dnl update checking system
4938 dnl
4939 AC_ARG_ENABLE(update-check,
4940   [  --enable-update-check   update checking system (default disabled)])
4941 if test "${enable_update_check}" = "yes"
4942 then
4943   if test "${have_libgcrypt}" != "yes"
4944   then
4945     AC_MSG_ERROR([libgcrypt is required for update checking system])
4946   fi
4947   VLC_ADD_LIBS([libvlccore], [${LIBGCRYPT_LIBS}])
4948   VLC_ADD_CFLAGS([libvlccore], [${LIBGCRYPT_CFLAGS}])
4949   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4950 fi
4951
4952
4953 dnl
4954 dnl  Endianness check
4955 dnl
4956 AC_C_BIGENDIAN
4957 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4958   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4959 ], [
4960   DEFS_BIGENDIAN=""
4961 ])
4962 AC_SUBST(DEFS_BIGENDIAN)
4963
4964 dnl
4965 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4966 dnl
4967 loader=false
4968 AC_ARG_ENABLE(loader,
4969   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4970                   (default disabled)]))
4971 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4972 AS_IF([test "${enable_loader}" = "yes"],
4973   [ VLC_ADD_PLUGIN([dmo])
4974     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
4975     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4976     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
4977     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4978     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4979     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
4980     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4981     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4982   ])
4983
4984 AC_ARG_WITH(,[Components:])
4985
4986 dnl
4987 dnl  the VLC binary
4988 dnl
4989 AC_ARG_ENABLE(vlc,
4990   [  --enable-vlc            build the VLC media player (default enabled)])
4991 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4992
4993 dnl
4994 dnl  Microsoft ActiveX support
4995 dnl
4996 activex=false
4997 AC_ARG_ENABLE(activex,
4998   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4999                   (default enabled on Win32)]))
5000 AC_ARG_WITH(wine-sdk-path,
5001   [    --with-wine-sdk-path=PATH path to wine sdk])
5002 if test "${enable_activex}" != "no"
5003 then
5004   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5005   then
5006     AC_CHECK_PROGS(MIDL, [midl], no)
5007     if test "${with_wine_sdk_path}" != ""
5008     then
5009        WINE_SDK_PATH=${with_wine_sdk_path}
5010        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5011     else
5012        WIDL=no
5013     fi
5014     AC_LANG_PUSH(C++)
5015     AC_CHECK_HEADERS(ole2.h,
5016       [AC_CHECK_HEADERS(olectl.h,
5017         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5018           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5019           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
5020           AC_CHECK_HEADERS(objsafe.h,
5021             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5022             [
5023              #if HAVE_OLE2_H
5024              #   include <ole2.h>
5025              #endif
5026             ]
5027           )
5028           activex=:
5029           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5030         ],
5031         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5032       )],
5033       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5034     )
5035     AC_LANG_POP(C++)
5036   fi
5037 fi
5038 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5039 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5040 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5041 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5042 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5043
5044 dnl
5045 dnl  Mozilla plugin
5046 dnl
5047 mozilla=false
5048 AC_ARG_ENABLE(mozilla,
5049   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5050                   (default disabled)]))
5051 AC_ARG_WITH(mozilla-sdk-path,
5052   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5053 AC_ARG_WITH(mozilla-pkg,
5054   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5055 AC_LANG_PUSH(C++)
5056 if test "${enable_mozilla}" = "yes"
5057 then
5058   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5059     [
5060     dnl pkg-config
5061     dnl As we want to do a loop due to the number of name possible for the .pc
5062     dnl we can't use the pkg-config macros.
5063
5064     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5065     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5066     AC_MSG_NOTICE([Checking for Mozilla])
5067     found=0
5068     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5069     then
5070       found=1
5071     else
5072       if test -n "$PKG_CONFIG"; then
5073         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5074           echo "Trying to find $i.pc files" >&5
5075           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5076           then
5077             echo "Using $i.pc files." >&5
5078             echo "Using $i.pc files." >&6
5079             found=1
5080             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5081             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5082             break
5083           fi
5084         done
5085       fi
5086     fi
5087     AS_IF( [test $found = 1],[
5088         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5089         MOZILLA_REQUIRED_HEADERS=1
5090         AC_CHECK_HEADERS([npfunctions.h])
5091         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5092         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5093           [#if HAVE_NPAPI_H
5094            # include <npapi.h>
5095            #endif
5096           ])
5097         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5098             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5099         fi
5100         MOZILLA_REQUIRED_HEADERS=
5101         mozilla=:
5102         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5103            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5104            AS_IF([ test "${SYS}" != "darwin"],[
5105              PKG_CHECK_MODULES(XPM, [xpm xt],[
5106                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5107              ],[
5108                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5109              ])
5110           ])
5111         ])
5112         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5113         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5114         VLC_ADD_PLUGIN([mozilla])
5115         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5116         MOZILLA_CONFIG=
5117         CPPFLAGS="${CPPFLAGS_save}"
5118           ],
5119           [
5120             AC_PATH_PROGS(MOZILLA_CONFIG,
5121             [mozilla-config seamonkey-config xulrunner-config],
5122         [no])
5123             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5124           ]
5125         )
5126     dnl pkg-config failed but we might have found a mozilla-config
5127     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5128       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5129         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5130         AC_CHECK_LIB(Xt,XtStrings,
5131          [
5132            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5133            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5134          ],
5135          [],
5136          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5137         ])
5138         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5139         LDFLAGS="${LDFLAGS_save}"
5140       fi
5141
5142       mozilla=:
5143       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5144       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5145       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5146       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5147       MOZILLA_REQUIRED_HEADERS=1
5148       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5149       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5150       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5151         [#if HAVE_NPAPI_H
5152          # include <npapi.h>
5153          #endif
5154         ])
5155       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5156       then
5157         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5158       fi
5159       MOZILLA_REQUIRED_HEADERS=
5160       CPPFLAGS="${CPPFLAGS_save}"
5161       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5162     ])
5163     dnl End of moz_sdk = ""
5164   ],[
5165     dnl special case for mingw32
5166     if test "${SYS}" = "mingw32"
5167     then
5168       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5169       dnl latest gecko sdk does not have an xpcom directory
5170       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5171           mozilla_sdk_xpcom="/xpcom"
5172       fi
5173     fi
5174
5175     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5176     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5177     MOZILLA_REQUIRED_HEADERS=1
5178     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5179     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5180     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5181         [#if HAVE_NPAPI_H
5182           #include <npapi.h>
5183           #endif
5184         ])
5185     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5186     then
5187         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5188     fi
5189     MOZILLA_REQUIRED_HEADERS=
5190     mozilla=:
5191     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5192     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])
5193     if ${need_xpcom_libs}; then
5194        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])
5195       if test "${SYS}" = "mingw32"; then
5196         dnl latest gecko sdk does not have embedstring
5197         if test -d "${real_mozilla_sdk}/embedstring/bin"
5198         then
5199           VLC_ADD_LIBS([mozilla],[-lembedstring])
5200         fi
5201       fi
5202     fi
5203     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5204
5205     if test -n "${CYGPATH}"; then
5206       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5207     fi
5208     CPPFLAGS="${CPPFLAGS_save}"
5209  ])
5210 fi
5211 AC_LANG_POP(C++)
5212 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5213
5214 dnl Tests for Osso and Xsp
5215 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5216   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5217     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5218     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5219  ])
5220 ])
5221 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5222   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5223   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5224 ])
5225
5226 dnl
5227 dnl  test plugins
5228 dnl
5229 AC_ARG_ENABLE(testsuite,
5230   [  --enable-testsuite      build test modules (default disabled)])
5231 if test "${enable_testsuite}" = "yes"
5232 then
5233   TESTS="test1 test2 test3 test4"
5234
5235   dnl  we define those so that bootstrap sets the right linker
5236   VLC_ADD_CXXFLAGS([test2],[])
5237   VLC_ADD_OBJCFLAGS([test3],[])
5238   dnl  this one is needed until automake knows what to do
5239   VLC_ADD_LIBS([test3],[-lobjc])
5240
5241   VLC_ADD_PLUGIN([test1])
5242   VLC_ADD_PLUGIN([test2])
5243   VLC_ADD_PLUGIN([test3])
5244   VLC_ADD_PLUGIN([test4])
5245 fi
5246
5247 dnl
5248 dnl  gtk_main plugin
5249 dnl
5250 if test "${NEED_GTK_MAIN}" != "no"
5251 then
5252     VLC_ADD_PLUGIN([gtk_main])
5253     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5254     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5255 fi
5256
5257 if test "${NEED_GNOME_MAIN}" != "no"
5258 then
5259     VLC_ADD_PLUGIN([gnome_main])
5260     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5261     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5262 fi
5263
5264 if test "${NEED_GTK2_MAIN}" != "no"
5265 then
5266     VLC_ADD_PLUGIN([gtk2_main])
5267     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5268     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5269     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5270     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5271 fi
5272
5273 if test "${NEED_GNOME2_MAIN}" != "no"
5274 then
5275     VLC_ADD_PLUGIN([gnome2_main])
5276     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5277     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5278 fi
5279
5280 dnl
5281 dnl  qte_main plugin
5282 dnl
5283 if test "${NEED_QTE_MAIN}" != "no"
5284 then
5285     VLC_ADD_PLUGIN([qte_main])
5286     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5287     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5288     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5289 fi
5290
5291 dnl
5292 dnl  Plugin and builtin checks
5293 dnl
5294 plugin_support=yes
5295
5296 dnl Automagically disable plugins if there is no system support for
5297 dnl dynamically loadable files (.so, .dll, .dylib).
5298 dnl don't forget vlc-win32 still can load .dll as plugins
5299 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5300   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5301   plugin_support=no
5302 ])
5303
5304 AS_IF([test "${plugin_support}" != "no"], [
5305   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5306 ])
5307
5308 dnl
5309 dnl Pic and shared libvlc stuff
5310 dnl
5311 AS_IF([test "${SYS}" = "mingw32"], [
5312   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5313   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5314 ])
5315
5316 dnl
5317 dnl  Stuff used by the program
5318 dnl
5319 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5320 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5321 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5322 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5323 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5324 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5325 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5326 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5327 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5328 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5329 AC_SUBST(COPYRIGHT_MESSAGE)
5330 AC_SUBST(VERSION_MESSAGE)
5331 AC_SUBST(VERSION_MAJOR)
5332 AC_SUBST(VERSION_MINOR)
5333 AC_SUBST(VERSION_REVISION)
5334 AC_SUBST(VERSION_EXTRA)
5335 AC_SUBST(COPYRIGHT_YEARS)
5336 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5337 if test "${build_os}" = "cygwin"
5338 then
5339     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5340 else
5341     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5342 fi
5343 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5344 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5345 dnl Win32 need s a numerical version_extra.
5346 case $( echo ${VERSION_EXTRA}|wc -m ) in
5347        "1") VERSION_EXTRA_RC="0";;
5348        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5349        *) VERSION_EXTRA_RC="99"
5350 esac
5351 AC_SUBST(VERSION_EXTRA_RC)
5352 dnl
5353 dnl  Handle substvars that use $(top_srcdir)
5354 dnl
5355 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5356 AC_SUBST(VLC_CONFIG)
5357 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5358
5359 dnl
5360 dnl  Restore *FLAGS
5361 dnl
5362 VLC_RESTORE_FLAGS
5363
5364 dnl
5365 dnl Sort the modules list
5366 dnl
5367 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5368
5369 dnl
5370 dnl  Create the vlc-config script
5371 dnl
5372 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5373
5374 dnl
5375 dnl  Configuration is finished
5376 dnl
5377 AC_SUBST(SYS)
5378 AC_SUBST(ARCH)
5379 AC_SUBST(ALIASES)
5380 AC_SUBST(ASM)
5381 AC_SUBST(MOC)
5382 AC_SUBST(RCC)
5383 AC_SUBST(UIC)
5384 AC_SUBST(WINDRES)
5385 AC_SUBST(MOZILLA_SDK_PATH)
5386 AC_SUBST(WINE_SDK_PATH)
5387 AC_SUBST(LIBEXT)
5388 AC_SUBST(AM_CPPFLAGS)
5389 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5390 AC_SUBST(FILE_LIBVLCCORE_DLL)
5391 AC_SUBST(FILE_LIBVLC_DLL)
5392
5393 dnl Create vlc-config.in
5394 VLC_OUTPUT_VLC_CONFIG_IN
5395
5396 AC_CONFIG_FILES([
5397   extras/package/win32/vlc.win32.nsi
5398   extras/package/macosx/Info.plist
5399   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5400   extras/package/macosx/plugin/Info.plist
5401   extras/package/macosx/plugin/InstallerInfo.plist
5402   Makefile
5403   projects/activex/Makefile
5404   projects/activex/axvlc.inf
5405   doc/Makefile
5406   extras/package/ipkg/Makefile
5407   libs/loader/Makefile
5408   libs/srtp/Makefile
5409   libs/unzip/Makefile
5410   modules/Makefile
5411   projects/mozilla/Makefile
5412   m4/Makefile
5413   po/Makefile.in
5414   projects/activex/axvlc_rc.rc
5415   projects/mozilla/npvlc_rc.rc
5416   projects/mozilla/vlc.r
5417   projects/mozilla/install.js
5418   share/Makefile
5419   share/vlc_win32_rc.rc
5420   share/libvlc_win32_rc.rc
5421   compat/Makefile
5422   src/Makefile
5423   src/test/Makefile
5424   bin/Makefile
5425   test/Makefile
5426   modules/access/Makefile
5427   modules/access/bd/Makefile
5428   modules/access/bda/Makefile
5429   modules/access/dshow/Makefile
5430   modules/access/dvb/Makefile
5431   modules/access/mms/Makefile
5432   modules/access/cdda/Makefile
5433   modules/access/rtp/Makefile
5434   modules/access/rtsp/Makefile
5435   modules/access/rtmp/Makefile
5436   modules/access/vcd/Makefile
5437   modules/access/vcdx/Makefile
5438   modules/access/screen/Makefile
5439   modules/access/zip/Makefile
5440   modules/access_output/Makefile
5441   modules/audio_filter/Makefile
5442   modules/audio_filter/channel_mixer/Makefile
5443   modules/audio_filter/converter/Makefile
5444   modules/audio_filter/resampler/Makefile
5445   modules/audio_filter/spatializer/Makefile
5446   modules/audio_mixer/Makefile
5447   modules/audio_output/Makefile
5448   modules/codec/Makefile
5449   modules/codec/avcodec/Makefile
5450   modules/codec/cmml/Makefile
5451   modules/codec/dmo/Makefile
5452   modules/codec/shine/Makefile
5453   modules/codec/subtitles/Makefile
5454   modules/codec/spudec/Makefile
5455   modules/codec/wmafixed/Makefile
5456   modules/codec/xvmc/Makefile
5457   modules/control/Makefile
5458   modules/control/http/Makefile
5459   modules/control/globalhotkeys/Makefile
5460   modules/demux/Makefile
5461   modules/demux/asf/Makefile
5462   modules/demux/avformat/Makefile
5463   modules/demux/avi/Makefile
5464   modules/demux/mkv/Makefile
5465   modules/demux/mp4/Makefile
5466   modules/demux/mpeg/Makefile
5467   modules/demux/playlist/Makefile
5468   modules/gui/Makefile
5469   modules/gui/beos/Makefile
5470   modules/gui/pda/Makefile
5471   modules/gui/macosx/Makefile
5472   modules/gui/maemo/Makefile
5473   modules/gui/minimal_macosx/Makefile
5474   modules/gui/qnx/Makefile
5475   modules/gui/qt4/Makefile
5476   modules/gui/skins2/Makefile
5477   modules/gui/wince/Makefile
5478   modules/meta_engine/Makefile
5479   modules/misc/Makefile
5480   modules/misc/dummy/Makefile
5481   modules/misc/lua/Makefile
5482   modules/misc/memcpy/Makefile
5483   modules/misc/notify/Makefile
5484   modules/misc/testsuite/Makefile
5485   modules/misc/playlist/Makefile
5486   modules/misc/osd/Makefile
5487   modules/misc/stats/Makefile
5488   modules/misc/xml/Makefile
5489   modules/misc/probe/Makefile
5490   modules/mux/Makefile
5491   modules/mux/mpeg/Makefile
5492   modules/packetizer/Makefile
5493   modules/services_discovery/Makefile
5494   modules/stream_filter/Makefile
5495   modules/stream_out/Makefile
5496   modules/stream_out/transrate/Makefile
5497   modules/video_chroma/Makefile
5498   modules/video_filter/Makefile
5499   modules/video_filter/atmo/Makefile
5500   modules/video_filter/dynamicoverlay/Makefile
5501   modules/video_output/Makefile
5502   modules/video_output/msw/Makefile
5503   modules/video_output/qte/Makefile
5504   modules/video_output/x11/Makefile
5505   modules/visualization/Makefile
5506   modules/visualization/visual/Makefile
5507   modules/visualization/galaktos/Makefile
5508 ])
5509
5510 dnl Generate makefiles
5511 AC_OUTPUT
5512
5513 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5514 # not provided with the source
5515 ${SHELL} ./config.status --file=vlc-config
5516 chmod 0755 vlc-config
5517
5518 /bin/echo -n "Enabled modules: "
5519 ./vlc-config --list plugin
5520
5521 dnl Shortcut to nice compile message
5522 rm -f compile
5523 echo '#! /bin/sh' >compile
5524 echo rm -f .error\$\$ >>compile
5525 echo ERROR=0 >>compile
5526 echo export PATH=$PATH LANG=C >>compile
5527 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5528 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5529 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5530 echo rm -f .error\$\$ >>compile
5531 echo exit \$ERROR >>compile
5532 chmod a+x compile
5533
5534 printf "
5535 libvlc configuration
5536 --------------------
5537 version               : ${VERSION}
5538 system                : ${SYS}
5539 architecture          : ${ARCH}
5540 build flavour         : "
5541 test "${enable_debug}" = "yes" && printf "debug "
5542 test "${enable_cprof}" = "yes" && printf "cprof "
5543 test "${enable_gprof}" = "yes" && printf "gprof "
5544 test "${enable_optimizations}" = "yes" && printf "optim "
5545 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5546 echo ""
5547 if test "${enable_vlc}" != "no"; then
5548 echo "vlc aliases           :${ALIASES}"
5549 else
5550 echo "build vlc executable  : no"
5551 fi
5552 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5553
5554 You can tune the compiler flags in vlc-config.
5555 To build vlc and its plugins, type \`./compile' or \`make'.
5556 "
5557 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5558    echo ""
5559    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5560    echo "         turned off."
5561    echo "         FFmpeg will be REALLY slow."
5562    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5563    echo ""
5564 fi