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