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