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