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