]> git.sesse.net Git - vlc/blob - configure.ac
Remove deprecated and unused AC_TYPE_SIGNAL
[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_CHECK_LIB(m,cos,[
665   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger],[-lm])
666 ])
667 AC_CHECK_LIB(m,pow,[
668   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])
669 ])
670 AC_CHECK_LIB(m,sqrt,[
671   VLC_ADD_LIBS([headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm])
672 ])
673 AC_CHECK_LIB(m,ceil,[
674   VLC_ADD_LIBS([access_imem hotkeys mosaic swscale_omap],[-lm])
675 ])
676 AC_CHECK_LIB(m,exp,[
677   VLC_ADD_LIBS([gaussianblur],[-lm])
678 ])
679 AC_CHECK_LIB(m,round,[
680   VLC_ADD_LIBS([dbus],[-lm])
681 ])
682 AC_CHECK_LIB(m,sqrtf,[
683   VLC_ADD_LIBS([x264],[-lm])
684 ])
685 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
686
687 AC_CHECK_LIB(m,lrintf, [
688   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
689   VLC_ADD_LIBS([skins2],[-lm])
690 ])
691
692 dnl Check for dynamic plugins
693 ac_cv_have_plugins=no
694
695 # HP-UX style
696 if test "${ac_cv_have_plugins}" = "no"; then
697   AC_CHECK_HEADERS(dl.h)
698   ac_cv_my_have_shl_load=no
699   AC_CHECK_FUNC(shl_load,
700    [ac_cv_my_have_shl_load=yes,
701     AC_CHECK_LIB(dld, shl_load,
702      [ac_cv_my_have_shl_load=yes
703       VLC_ADD_LIBS([libvlccore],[-ldld])])])
704   if test "${ac_cv_my_have_shl_load}" = "yes"; then
705     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
706     ac_cv_have_plugins=yes
707   fi
708 fi
709
710 # Win32 style
711 if test "${ac_cv_have_plugins}" = "no"; then
712   if test "${SYS}" = "mingw32" ; then
713     AC_CHECK_LIB(kernel32, main,
714      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
715       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
716       ac_cv_have_plugins=yes])
717   fi
718 fi
719
720 # WinCE style
721 if test "${ac_cv_have_plugins}" = "no"; then
722   if test "${SYS}" = "mingwce"; then
723     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
724     ac_cv_have_plugins=yes
725   fi
726 fi
727
728 # BeOS style
729 if test "${ac_cv_have_plugins}" = "no"; then
730   AC_CHECK_HEADERS(image.h)
731   AC_CHECK_FUNCS(load_add_on,
732    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
733     ac_cv_have_plugins=yes])
734 fi
735
736 # Only test for dlopen() if the others didn't work
737 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
738   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
739   ac_cv_my_have_dlopen=no
740   AC_CHECK_FUNC(dlopen,
741     ac_cv_my_have_dlopen=yes,
742     AC_CHECK_LIB(dl, dlopen,
743       ac_cv_my_have_dlopen=yes
744       VLC_ADD_LIBS([libvlccore realvideo lua],[-ldl]),
745       AC_CHECK_LIB(svld, dlopen,
746         ac_cv_my_have_dlopen=yes
747         VLC_ADD_LIBS([libvlccore],[-lsvld]))))
748   if test "${ac_cv_my_have_dlopen}" = "yes"; then
749     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
750     ac_cv_have_plugins=yes
751   fi
752 fi
753
754 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
755 dnl Check for pthreads - borrowed from XMMS
756 THREAD_LIB=error
757 if test "${THREAD_LIB}" = "error"; then
758   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
759 fi
760 if test "${THREAD_LIB}" = "error"; then
761   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
762 fi
763 if test "${THREAD_LIB}" = "error"; then
764   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
765 fi
766 if test "${THREAD_LIB}" = "error"; then
767   AC_CHECK_FUNCS(pthread_mutex_lock)
768   THREAD_LIB=""
769 fi
770
771 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
772
773 AC_CHECK_LIB(rt, clock_nanosleep, [
774   VLC_ADD_LIBS([libvlccore],[-lrt])
775   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
776 ], [
777   dnl HP/UX port
778   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
779 ])
780
781 have_nanosleep=false
782 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
783   AC_CHECK_LIB(rt,nanosleep,
784     [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
785     [AC_CHECK_LIB(posix4,nanosleep,
786         [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
787   )
788 ])
789 if ${have_nanosleep}; then
790   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
791 fi
792 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
793
794 dnl Check for misc headers
795 AC_MSG_CHECKING(for strncasecmp in strings.h)
796 AC_EGREP_HEADER(strncasecmp,strings.h,[
797   AC_MSG_RESULT(yes)
798   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
799             Define if <strings.h> defines strncasecmp.)],[
800   AC_MSG_RESULT(no)])
801
802 dnl Check for headers
803 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
804 AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h sys/mount.h)
805 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
806 AC_CHECK_HEADERS([net/if.h], [], [],
807   [
808     #include <sys/types.h>
809     #include <sys/socket.h>
810   ])
811 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
812 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
813 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
814 AC_CHECK_HEADERS(syslog.h)
815 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
816
817 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
818 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
819 AC_CHECK_TYPE(ssize_t,, [
820   AC_DEFINE(ssize_t, int)
821 ])
822
823 dnl Check for poll
824 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
825 if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
826 then
827     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])
828 fi
829 ])
830
831 dnl Check for dirent
832 need_dirent=false
833 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
834 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
835
836 dnl Mac OS X and other OSes don't have declaration for nanosleep
837 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
838 AC_MSG_CHECKING(for nanosleep in time.h)
839 AC_EGREP_HEADER(nanosleep,time.h,[
840   AC_MSG_RESULT(yes)
841   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
842             Define if <time.h> defines nanosleep.)
843 ],[
844   AC_MSG_RESULT(no)
845 ])
846 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
847
848 dnl Make sure we have timespecs
849 AC_MSG_CHECKING(for timespec in sys/time.h)
850 AC_EGREP_HEADER(timespec,sys/time.h,[
851   AC_MSG_RESULT(yes)
852   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
853             Define if <sys/time.h> defines struct timespec.)
854 ],[
855   AC_MSG_RESULT(no)
856 ])
857
858 dnl Check for threads library
859 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
860 AC_CHECK_HEADERS(pthread.h)
861 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
862
863 dnl It seems that autoconf detects pkg-config only during the first
864 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
865 dnl it is nested within a conditional block, so it was not working right.
866 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
867 AC_ARG_VAR(PKG_CONFIG_PATH,
868            [Paths where to find .pc not at the default location])
869 PKG_PROG_PKG_CONFIG()
870
871 dnl On some OS we need static linking 
872        AS_IF([test -n "${PKG_CONFIG}" ],[
873               AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" ],[
874                   PKG_CONFIG="${PKG_CONFIG} --static"
875               ])
876        ])
877
878
879 dnl
880 dnl Check for zlib.h and -lz along with system -lminizip if available
881 dnl 
882 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
883 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
884 if test "${have_zlib}" = "yes"
885 then
886   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
887   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
888     AC_CHECK_HEADERS([unzip.h], [ 
889       have_minizip=yes
890       MINIZIP_LIBS="-lminizip -lz"
891     ], [
892       have_minizip=no
893       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
894       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
895     ])
896   ])
897   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
898   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
899   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
900   VLC_ADD_PLUGIN([unzip zip])
901 fi
902 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
903
904
905 dnl Check for dbus
906 AC_ARG_ENABLE(dbus,
907   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
908 case "${SYS}" in
909     linux*|*bsd*)
910 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
911 then
912   dnl api stable dbus
913   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
914     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
915       VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
916       VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
917       dnl Check for dbus control interface
918         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
919         if test "${enable_dbus_control}" != "no"
920         then
921           VLC_ADD_PLUGIN([dbus])
922           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
923           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
924         fi
925       dnl Check for Telepathy
926         AC_ARG_ENABLE(telepathy,
927           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
928         if test "${enable_telepathy}" != "no"; then
929           VLC_ADD_PLUGIN([telepathy])
930           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
931           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
932         fi
933         dnl Power Management Inhibiter
934         VLC_ADD_PLUGIN([inhibit])
935         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
936         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
937     ],
938     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
939   )
940 fi
941 ;;
942 esac
943
944 dnl Check for ntohl, etc.
945 AC_CACHE_CHECK([for ntohl in sys/param.h],
946     [ac_cv_c_ntohl_sys_param_h],
947     [CFLAGS="${CFLAGS_save} -Wall -Werror"
948      AC_TRY_COMPILE([#include <sys/param.h>],
949         [int meuh; ntohl(meuh);],
950         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
951 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
952     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
953 fi
954 CFLAGS="${CFLAGS_save}"
955
956 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])
957 RDC_PROG_CC_FLAGS([-pipe])
958
959 AC_ARG_ENABLE(warnings-as-error,
960       AS_HELP_STRING([--enable-warnings-as-error],[Treat acceptable warnings as error (default disabled)]),, [enable_warnings_as_error="no"])
961 AS_IF([test "${enable_warnings_as_error}" = "yes"], [
962     RDC_PROG_CC_WERRORFLAGS([unused-function unused-label unused-value unused-parameter unused-variable unused \
963      missing-braces nonnull parentheses uninitialized address enum-compare undef comment switch \
964      bad-function-cast implicit sequence-point strict-aliasing array-bounds missing-parameter-type \
965      overflow int-to-pointer-cast pointer-to-int-cast div-by-zero overflow ignored])
966 ])
967 AC_SUBST(CFLAGS_WERROR)
968
969 dnl Check for various optimization flags
970 AC_CACHE_CHECK([if \$CC accepts -Os],
971     [ac_cv_c_os],
972     [CFLAGS="${CFLAGS_save} -Os"
973      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
974 if test "${ac_cv_c_os}" != "no"; then
975     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
976 else
977     AC_CACHE_CHECK([if \$CC accepts -O],
978         [ac_cv_c_o],
979         [CFLAGS="${CFLAGS_save} -O"
980          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
981     if test "${ac_cv_c_o}" != "no"; then
982         if test "${ac_cv_c_o3}" = "no"; then
983             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
984         fi
985     fi
986 fi
987
988 AC_CACHE_CHECK([if \$CC accepts -O4],
989     [ac_cv_c_o4],
990     [CFLAGS="${CFLAGS_save} -O4"
991      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
992 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
993     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
994 else
995     AC_CACHE_CHECK([if \$CC accepts -O3],
996         [ac_cv_c_o3],
997         [CFLAGS="${CFLAGS_save} -O3"
998          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
999     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1000         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1001     else
1002         AC_CACHE_CHECK([if \$CC accepts -O2],
1003             [ac_cv_c_o2],
1004             [CFLAGS="${CFLAGS_save} -O2"
1005              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1006         if test "${ac_cv_c_o2}" != "no"; then
1007             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1008         else
1009             AC_CACHE_CHECK([if \$CC accepts -O],
1010                 [ac_cv_c_o],
1011                 [CFLAGS="${CFLAGS_save} -O"
1012                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1013             if test "${ac_cv_c_o}" != "no"; then
1014                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1015             fi
1016         fi
1017     fi
1018 fi
1019
1020 AC_CACHE_CHECK([if \$CC accepts -O0],
1021     [ac_cv_c_o0],
1022     [CFLAGS="${CFLAGS_save} -O0"
1023      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1024 if test "${ac_cv_c_o0}" != "no"; then
1025     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1026 fi
1027
1028 dnl Check for -ffast-math
1029 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1030     [ac_cv_c_fast_math],
1031     [CFLAGS="${CFLAGS_save} -ffast-math"
1032      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1033 if test "${ac_cv_c_fast_math}" != "no"; then
1034     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1035 fi
1036
1037 dnl Check for -funroll-loops
1038 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1039 if test "${SYS}" != "beos"
1040 then
1041   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1042       [ac_cv_c_unroll_loops],
1043       [CFLAGS="${CFLAGS_save} -funroll-loops"
1044        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1045   if test "${ac_cv_c_unroll_loops}" != "no"; then
1046       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1047   fi
1048 fi
1049
1050 dnl Check for -fomit-frame-pointer
1051 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1052     [ac_cv_c_omit_frame_pointer],
1053     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1054      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1055 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1056  if test "${SYS}" != "darwin"; then
1057     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1058  else
1059     dnl On darwin we explicitely disable it.
1060     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1061  fi
1062 fi
1063
1064 dnl Check for Darwin plugin linking flags
1065 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1066     [ac_cv_ld_darwin],
1067     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1068      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1069 if test "${ac_cv_ld_darwin}" != "no"; then
1070     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1071 fi
1072
1073 dnl Checks for __attribute__(aligned()) directive
1074 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1075     [ac_cv_c_attribute_aligned],
1076     [ac_cv_c_attribute_aligned=0
1077         CFLAGS="${CFLAGS_save} -Werror"
1078     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1079         AC_TRY_COMPILE([],
1080         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1081         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1082     done
1083         CFLAGS="${CFLAGS_save}"])
1084 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1085     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1086         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1087 fi
1088
1089 dnl Check for __attribute__((packed))
1090 AC_CACHE_CHECK([for __attribute__((packed))],
1091   [ac_cv_c_attribute_packed],
1092   [ac_cv_c_attribute_packed=no
1093    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1094                     [ac_cv_c_attribute_packed=yes])])
1095 if test "${ac_cv_c_attribute_packed}" != "no"; then
1096   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1097 fi
1098
1099 dnl
1100 dnl  Check the CPU
1101 dnl
1102 case "${host_cpu}" in
1103   "")
1104     ARCH=unknown
1105     ;;
1106   *)
1107     ARCH="${host_cpu}"
1108     ;;
1109 esac
1110
1111 dnl Check for backtrace() support
1112 AC_CHECK_HEADERS(execinfo.h)
1113 AC_CHECK_FUNCS(backtrace)
1114
1115 dnl
1116 dnl  Enable profiling
1117 dnl
1118 AC_ARG_ENABLE(gprof,
1119 [  --enable-gprof          gprof profiling (default disabled)])
1120 AC_ARG_ENABLE(cprof,
1121 [  --enable-cprof          cprof profiling (default disabled)])
1122 test "${enable_gprof}" != "yes" && enable_gprof="no"
1123 test "${enable_cprof}" != "yes" && enable_cprof="no"
1124
1125 dnl
1126 dnl  default modules
1127 dnl
1128 ALIASES="${ALIASES} cvlc rvlc"
1129
1130 dnl
1131 dnl Some plugins aren't useful on some platforms
1132 dnl
1133 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1134     VLC_ADD_PLUGIN([dynamicoverlay])
1135 elif test "${SYS}" != "mingwce"; then
1136     VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1137     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1138 fi
1139 if test "${SYS}" = "darwin"; then
1140     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
1141 fi
1142
1143 dnl
1144 dnl  Accelerated modules
1145 dnl
1146 EXTEND_HELP_STRING([Optimization options:])
1147
1148 dnl  Check for fully working MMX intrinsics
1149 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1150 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1151 AC_ARG_ENABLE(mmx,
1152 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1153   case "${host_cpu}" in
1154     i?86|x86_64)
1155       enable_mmx="yes"
1156       ;;
1157     *)
1158       enable_mmx="no"
1159       ;;
1160   esac
1161 ])
1162 have_mmx="no"
1163 have_mmxext="no"
1164 AS_IF([test "${enable_mmx}" != "no"], [
1165   ARCH="${ARCH} mmx"
1166
1167   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1168     [ac_cv_c_mmx_intrinsics],
1169     [CFLAGS="${CFLAGS_save} -O -mmmx"
1170      AC_TRY_COMPILE([#include <mmintrin.h>
1171                      #include <stdint.h>
1172                      uint64_t frobzor;],
1173                     [__m64 a, b, c;
1174                      a = b = c = (__m64)frobzor;
1175                      a = _mm_slli_pi16(a, 3);
1176                      a = _mm_adds_pi16(a, b);
1177                      c = _mm_srli_pi16(c, 8);
1178                      c = _mm_slli_pi16(c, 3);
1179                      b = _mm_adds_pi16(b, c);
1180                      a = _mm_unpacklo_pi8(a, b);
1181                      frobzor = (uint64_t)a;],
1182                     [ac_cv_c_mmx_intrinsics=yes],
1183                     [ac_cv_c_mmx_intrinsics=no])])
1184   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1185     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1186               [Define to 1 if MMX intrinsics are available.])
1187     MMX_CFLAGS="-mmmx"
1188   ])
1189
1190   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1191     [ac_cv_mmx_inline],
1192     [CFLAGS="${CFLAGS_save}"
1193      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1194                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1195   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1196     AC_DEFINE(CAN_COMPILE_MMX, 1,
1197               [Define to 1 inline MMX assembly is available.])
1198     have_mmx="yes"
1199   ])
1200
1201   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1202     [ac_cv_mmxext_inline],
1203     [CFLAGS="${CFLAGS_save}"
1204      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1205                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1206   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1207     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1208               [Define to 1 if MMX EXT inline assembly is available.])
1209     have_mmxext="yes"
1210   ])
1211 ])
1212 AC_SUBST(MMX_CFLAGS)
1213 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1214 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1215
1216 dnl  Check for fully workin SSE2 intrinsics
1217 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1218 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1219 AC_ARG_ENABLE(sse,
1220 [  --disable-sse           disable SSE (1, 2, 3 and 4) optimizations (default auto)],
1221 , [
1222   case "${host_cpu}" in
1223     i686|x86_64)
1224       enable_sse=yes
1225       ;;
1226     *)
1227       enable_sse=no
1228       ;;
1229   esac
1230 ])
1231 have_sse2="no"
1232 AS_IF([test "${enable_sse}" != "no"], [
1233   ARCH="${ARCH} sse sse2"
1234
1235   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1236     [ac_cv_c_sse2_intrinsics],
1237     [CFLAGS="${CFLAGS_save} -O -msse2"
1238      AC_TRY_COMPILE([#include <emmintrin.h>
1239                      #include <stdint.h>
1240                      uint64_t frobzor;],
1241                     [__m128i a, b, c;
1242                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1243                      a = _mm_slli_epi16(a, 3);
1244                      a = _mm_adds_epi16(a, b);
1245                      c = _mm_srli_epi16(c, 8);
1246                      c = _mm_slli_epi16(c, 3);
1247                      b = _mm_adds_epi16(b, c);
1248                      a = _mm_unpacklo_epi8(a, b);
1249                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1250                     [ac_cv_c_sse2_intrinsics=yes],
1251                     [ac_cv_c_sse2_intrinsics=no])])
1252   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1253     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1254               [Define to 1 if SSE2 intrinsics are available.])
1255     SSE2_CFLAGS="-msse2"
1256   ])
1257
1258   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1259     [ac_cv_sse_inline],
1260     [CFLAGS="${CFLAGS_save}"
1261      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1262                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1263   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1264     AC_DEFINE(CAN_COMPILE_SSE, 1,
1265               [Define to 1 if SSE inline assembly is available.])
1266   ])
1267
1268   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1269     [ac_cv_sse2_inline],
1270     [CFLAGS="${CFLAGS_save}"
1271      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1272                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1273   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1274     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1275               [Define to 1 if SSE2 inline assembly is available.])
1276     have_sse2="yes"
1277   ])
1278
1279   # SSE3
1280   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly],
1281     [ac_cv_sse3_inline],
1282     [CFLAGS="${CFLAGS_save}"
1283      AC_TRY_COMPILE(,[void *p;asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p));],
1284                     ac_cv_sse3_inline=yes, ac_cv_sse3_inline=no)])
1285   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1286     AC_DEFINE(CAN_COMPILE_SSE3, 1,
1287               [Define to 1 if SSE3 inline assembly is available.]) ])
1288   # SSSE3
1289   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly],
1290     [ac_cv_ssse3_inline],
1291     [CFLAGS="${CFLAGS_save}"
1292      AC_TRY_COMPILE(,[void *p;asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p));],
1293                     ac_cv_ssse3_inline=yes, ac_cv_ssse3_inline=no)])
1294   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1295     AC_DEFINE(CAN_COMPILE_SSSE3, 1,
1296               [Define to 1 if SSSE3 inline assembly is available.]) ])
1297
1298   # SSE4.1
1299   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1300     [ac_cv_sse4_1_inline],
1301     [CFLAGS="${CFLAGS_save}"
1302      AC_TRY_COMPILE(,[void *p;asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p));],
1303                     ac_cv_sse4_1_inline=yes, ac_cv_sse4_1_inline=no)])
1304   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1305     AC_DEFINE(CAN_COMPILE_SSE4_1, 1,
1306               [Define to 1 if SSE4_1 inline assembly is available.]) ])
1307
1308   # SSE4.2
1309   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1310     [ac_cv_sse4_2_inline],
1311     [CFLAGS="${CFLAGS_save}"
1312      AC_TRY_COMPILE(,[void *p;asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p));],
1313                     ac_cv_sse4_2_inline=yes, ac_cv_sse4_2_inline=no)])
1314   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1315     AC_DEFINE(CAN_COMPILE_SSE4_2, 1,
1316               [Define to 1 if SSE4_2 inline assembly is available.]) ])
1317
1318   # SSE4A
1319   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly],
1320     [ac_cv_sse4a_inline],
1321     [CFLAGS="${CFLAGS_save}"
1322      AC_TRY_COMPILE(,[void *p;asm volatile("insertq %%xmm1,%%xmm0"::"r"(p));],
1323                     ac_cv_sse4a_inline=yes, ac_cv_sse4a_inline=no)])
1324   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1325     AC_DEFINE(CAN_COMPILE_SSE4A, 1,
1326               [Define to 1 if SSE4A inline assembly is available.]) ])
1327 ])
1328 AC_SUBST(SSE2_CFLAGS)
1329 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1330
1331 have_3dnow="no"
1332 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1333     [ac_cv_3dnow_inline],
1334     [CFLAGS="${CFLAGS_save}"
1335      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1336                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1337 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1338   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1339             [Define to 1 if 3D Now! inline assembly is available.])
1340   have_3dnow="yes"
1341 ])
1342 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1343
1344
1345 AC_ARG_ENABLE(neon,
1346 [  --disable-neon          disable NEON optimizations (default auto)],, [
1347   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1348 ])
1349 AS_IF([test "${enable_neon}" != "no"], [
1350   AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1351     CFLAGS="${CFLAGS_save} -mfpu=neon"
1352     AC_COMPILE_IFELSE([
1353       AC_LANG_PROGRAM(,[[asm volatile("vqmovun.s64 d0, q1":::"d0");]])
1354     ], [
1355       ac_cv_neon_inline="-mfpu=neon"
1356     ], [
1357       ac_cv_neon_inline="no"
1358     ])
1359     CFLAGS="${CFLAGS_save}"
1360   ])
1361   ARM_NEON_CFLAGS="$ac_cv_neon_inline"
1362 ], [
1363   ac_cv_neon_inline="no"
1364 ])
1365 AC_SUBST(ARM_NEON_CFLAGS)
1366 AM_CONDITIONAL(HAVE_ARM_NEON, [test "${ac_cv_neon_inline}" != "no"])
1367
1368
1369 AC_ARG_ENABLE(altivec,
1370 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1371   AS_IF([test "${host_cpu}" = "powerpc"],
1372         [enable_altivec=yes], [enable_altivec=no])
1373 ])
1374 have_altivec="no"
1375 AS_IF([test "${enable_altivec}" = "yes"], [
1376   ARCH="${ARCH} altivec";
1377   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1378     [ac_cv_altivec_inline],
1379     [CFLAGS="${CFLAGS_save}"
1380      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1381          ac_cv_altivec_inline="yes",
1382          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1383           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1384             [ac_cv_altivec_inline="-Wa,-m7400"],
1385             ac_cv_altivec_inline=no)
1386          ])])
1387   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1388     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1389               [Define to 1 if AltiVec inline assembly is available.])
1390     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1391       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1392       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1393       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1394       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1395       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1396     ])
1397     have_altivec="yes"
1398   ])
1399
1400 dnl The AltiVec C extensions
1401 dnl
1402 dnl There are several possible cases:
1403 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1404 dnl                      need <altivec.h>
1405 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1406 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1407 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1408 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1409 dnl - Others: test should fail
1410   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1411   [ac_cv_c_altivec],
1412   [# OS X/PPC test (gcc 4.x)
1413    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1414    AC_TRY_COMPILE([vector unsigned char foo;],
1415      [vec_ld(0, (unsigned char *)0);],
1416      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1417      [# OS X/PPC test (gcc 3.x)
1418       CFLAGS="${CFLAGS_save} -faltivec"
1419       AC_TRY_COMPILE([vector unsigned char foo;],
1420         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1421         [ac_cv_c_altivec="-faltivec"],
1422         dnl Below this are the Linux tests
1423         [# Linux/PPC test (gcc 4.x)
1424          CFLAGS="${CFLAGS_save} -maltivec"
1425          AC_TRY_COMPILE([#include <altivec.h>],
1426            [vec_ld(0, (unsigned char *)0);],
1427            [ac_cv_c_altivec="-maltivec"],
1428            [# Linux/PPC test (gcc 3.3)
1429             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1430             AC_TRY_COMPILE([#include <altivec.h>],
1431               [vec_ld(0, (unsigned char *)0);],
1432               [ac_cv_c_altivec=""
1433                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1434               [# Linux/PPC test (gcc 3.3)
1435                CFLAGS="${CFLAGS_save} -fvec"
1436                AC_TRY_COMPILE([#include <altivec.h>],
1437                  [vec_ld(0, (unsigned char *)0);],
1438                  [ac_cv_c_altivec="-fvec"],
1439                  [ac_cv_c_altivec=no])
1440               ])
1441            ])
1442         ])
1443      ])
1444    CFLAGS="${CFLAGS_save}"
1445   ])
1446   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1447     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1448   ])
1449
1450   AC_CHECK_HEADERS(altivec.h)
1451   CPPFLAGS="${CPPFLAGS_save}"
1452
1453   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1454     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1455               [Define to 1 if C AltiVec extensions are available.])
1456     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1457     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1458     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1459     have_altivec="yes"
1460   ])
1461
1462   AC_CACHE_CHECK([if linker needs -framework vecLib],
1463     [ac_cv_ld_altivec],
1464     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1465      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1466      LDFLAGS="${LDFLAGS_save}"
1467     ])
1468   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1469     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1470   ])
1471 ])
1472 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1473
1474 dnl
1475 dnl  Special arch tuning
1476 dnl
1477 AC_ARG_WITH(tuning,
1478 [  --with-tuning=ARCH      enable special tuning for an architecture
1479                           (default Pentium 2 on IA-32 and G4 on PPC)])
1480 if test -n "${with_tuning}"; then
1481     if test "${with_tuning}" != "no"; then
1482         CFLAGS_TUNING="-mtune=${with_tuning}"
1483     fi
1484 else
1485     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1486         CFLAGS_TUNING="-march=prescott -mtune=generic"
1487     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1488         CFLAGS_TUNING="-mtune=pentium2"
1489     elif test "${host_cpu}" = "x86_64"; then
1490         CFLAGS_TUNING="-mtune=athlon64"
1491     elif test "${host_cpu}" = "powerpc"; then
1492         CFLAGS_TUNING="-mtune=G4";
1493     fi
1494 fi
1495
1496 dnl NOTE: this can't be cached cleanly
1497 AS_IF([test "${CFLAGS_TUNING}"],
1498    [CFLAGS_save="${CFLAGS}"
1499     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1500
1501     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1502     AC_COMPILE_IFELSE([ ],
1503                       [tuning="yes"],
1504                       [CFLAGS_TUNING=""; tuning="no"
1505                        AS_IF([test "${with_tuning}"],
1506                              [AC_MSG_ERROR([requested tuning not supported])])])
1507
1508     AC_MSG_RESULT([$tuning])
1509     CFLAGS="${CFLAGS_save}"
1510 ])
1511
1512 dnl
1513 dnl  Memory usage
1514 dnl
1515 AC_ARG_ENABLE(optimize-memory,
1516 [  --enable-optimize-memory optimize memory usage over performance])
1517 if test "${enable_optimize_memory}" = "yes"; then
1518   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1519 fi
1520
1521 dnl
1522 dnl  Enable/disable optimizations
1523 dnl
1524 AC_ARG_ENABLE(optimizations,
1525 [  --disable-optimizations disable compiler optimizations (default enabled)])
1526 if test "${enable_optimizations}" != "no"; then
1527    if test "${enable_optimize_memory}" = "yes"; then
1528       enable_optimizations="size"
1529    else
1530       enable_optimizations="speed"
1531    fi
1532 fi
1533
1534 dnl
1535 dnl  Debugging mode
1536 dnl
1537 AC_ARG_ENABLE(debug,
1538 [  --enable-debug          debug mode (default disabled)])
1539 test "${enable_debug}" != "yes" && enable_debug="no"
1540 AH_TEMPLATE(NDEBUG,
1541             [Define to 1 if debug code should NOT be compiled])
1542 AS_IF([test "x${enable_debug}" = "xno"], [
1543   AC_DEFINE(NDEBUG)
1544 ], [
1545   AC_CHECK_HEADERS([valgrind/valgrind.h])
1546 ])
1547
1548 dnl
1549 dnl Allow runing as root (usefull for people runing on embedded platforms)
1550 dnl
1551 AC_ARG_ENABLE(run-as-root,
1552 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1553 AS_IF([test "${enable_run_as_root}" = "yes"],[
1554     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1555               [Define to 1 to allow runing VLC as root (uid 0).])
1556 ])
1557
1558 dnl
1559 dnl  Test coverage
1560 dnl
1561 AC_ARG_ENABLE(coverage,
1562         [  --enable-coverage       build for test coverage (default disabled)],,
1563         [enable_coverage="no"])
1564 AS_IF([test "${enable_coverage}" != "no"], [
1565         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1566         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1567         LDFLAGS="-lgcov ${LDFLAGS}"
1568         dnl ugly...
1569         CFLAGS_save="${CFLAGS}"
1570         CXXFLAGS_save="${CXXFLAGS}"
1571         LDFLAGS_save="${LDFLAGS}"
1572 ])
1573
1574 dnl
1575 dnl Stream output
1576 dnl
1577 AC_ARG_ENABLE(sout,
1578   [  --enable-sout           Stream output modules (default enabled)])
1579 AS_IF([test "${enable_sout}" != "no"], [
1580   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1581 ])
1582 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1583
1584 dnl Lua modules
1585 AC_ARG_ENABLE(lua,
1586   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1587                   plugins (default enabled)]))
1588 if test "${enable_lua}" != "no"
1589 then
1590   PKG_CHECK_MODULES(LUA, lua5.1,
1591     [ have_lua=yes ],
1592     [
1593     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1594     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1595       [ have_lua=yes ],
1596       [
1597         have_lua=yes
1598         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1599           [],
1600           [ have_lua=no ] )
1601         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1602           [LUA_LIBS="-llua5.1"],
1603           AC_CHECK_LIB( lua51 , luaL_newstate,
1604             [LUA_LIBS="-llua51"],
1605             AC_CHECK_LIB( lua , luaL_newstate,
1606               [LUA_LIBS="-llua"],
1607               [ have_lua=no
1608               ], [-lm])
1609           )
1610         )
1611       ])
1612     ])
1613   if test "x${have_lua}" = "xyes" ;  then
1614      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1615      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1616   else
1617       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.])
1618   fi
1619   AC_PATH_PROG(LUAC, luac)
1620 fi
1621 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1622
1623 dnl
1624 dnl HTTP daemon
1625 dnl
1626 AC_ARG_ENABLE(httpd,
1627   [  --enable-httpd          HTTP daemon (default enabled)])
1628 if test "${enable_httpd}" != "no"
1629 then
1630   VLC_ADD_PLUGIN([oldhttp])
1631   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1632 fi
1633 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1634
1635 dnl
1636 dnl libproxy support
1637 dnl
1638 AC_ARG_ENABLE(libproxy,
1639   [  --enable-libproxy       libproxy support (default auto)])
1640 AS_IF([test "${enable_libproxy}" != "no"], [
1641   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1642     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1643     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1644     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1645   ], [
1646     AS_IF([test "x${enable_libproxy}" != "x"], [
1647       AC_MSG_ERROR([libproxy could not be found on your system])
1648     ])
1649   ])
1650 ])
1651
1652
1653 dnl
1654 dnl VideoLAN manager
1655 dnl
1656 AC_ARG_ENABLE(vlm,
1657   [  --enable-vlm            VideoLAN manager (default enabled)],,
1658   [enable_vlm="${enable_sout}"])
1659 AS_IF([test "${enable_vlm}" != "no"], [
1660   AS_IF([test "${enable_sout}" = "no"], [
1661     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1662   ])
1663   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1664   VLC_ADD_PLUGIN([oldtelnet])
1665 ])
1666 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1667
1668 dnl
1669 dnl Growl notification plugin
1670 dnl
1671 AC_ARG_ENABLE(growl,
1672   [  --enable-growl          growl notification plugin (default disabled)],,
1673   [enable_growl=no])
1674 AS_IF([test "${enable_growl}" != "no"], [
1675     VLC_ADD_PLUGIN([growl_udp])
1676     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1677       VLC_ADD_PLUGIN([growl])
1678       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1679       VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
1680     ])
1681   ]
1682 )
1683
1684 dnl
1685 dnl Libnotify notification plugin
1686 dnl
1687 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1688
1689 dnl
1690 dnl Taglibplugin
1691 dnl
1692 AC_ARG_ENABLE(taglib,
1693   [  --disable-taglib        Taglib support (default enabled) ])
1694   AS_IF([test "${enable_taglib}" != "no"],[
1695     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1696       [ VLC_ADD_PLUGIN([taglib])
1697         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1698        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1699       [AC_MSG_WARN(TagLib library not found)])
1700   ])
1701
1702 dnl
1703 dnl  Input plugins
1704 dnl
1705
1706 EXTEND_HELP_STRING([Input plugins:])
1707
1708 dnl  live555 input
1709 dnl
1710 AC_ARG_ENABLE(live555,
1711 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1712 if test "${enable_live555}" != "no"; then
1713   AC_ARG_WITH(live555-tree,
1714     [  --with-live555-tree=PATH live.com tree for static linking])
1715
1716   dnl
1717   dnl test for --with-live555-tree
1718   dnl
1719   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1720     AC_LANG_PUSH(C++)
1721     CPPFLAGS_save="${CPPFLAGS}"
1722     if test -z "${CONTRIB_DIR}"; then
1723         CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1724     else
1725         CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1726     fi
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 dnl
2957 dnl skins2 module
2958 dnl
2959 AC_ARG_ENABLE(libtar,
2960   [  --enable-libtar         libtar support for skins2 (default enabled)])
2961
2962 AS_IF([test "${enable_libtar}" != "no"],[
2963   AC_CHECK_HEADERS(libtar.h, [
2964     VLC_ADD_LIBS([skins2],[-ltar])
2965   ] )
2966 ])
2967
2968 dnl
2969 dnl A52/AC3 decoder plugin
2970 dnl
2971 AC_ARG_ENABLE(a52,
2972   [  --enable-a52            A/52 support with liba52 (default enabled)])
2973 if test "${enable_a52}" != "no"
2974 then
2975   AC_ARG_WITH(a52,
2976     [  --with-a52=PATH         a52 headers and libraries])
2977   AC_ARG_WITH(a52-tree,
2978     [  --with-a52-tree=PATH    a52dec tree for static linking ],[],[])
2979   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2980   then
2981     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2982     if test -z "${real_a52_tree}"
2983     then
2984       dnl  The given directory can't be found
2985       AC_MSG_RESULT(no)
2986       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2987     fi
2988     dnl  Use a custom a52dec
2989     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2990     if test -f ${real_a52_tree}/include/a52.h
2991     then
2992       AC_MSG_RESULT(yes)
2993       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2994       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2995       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
2996       AC_CHECK_LIB(a52, a52_free, [
2997         VLC_ADD_PLUGIN([a52tofloat32])
2998         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2999         VLC_ADD_LIBS([a52tofloat32],[-la52])
3000         ],[
3001         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3002         then
3003           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3004         else
3005           AC_MSG_ERROR([the specified tree hasn't been compiled])
3006         fi
3007       ])
3008       LDFLAGS="${LDFLAGS_save}"
3009     else
3010       AC_MSG_RESULT(no)
3011       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3012     fi
3013   else
3014     if test -z "${with_a52}"
3015     then
3016       LDFLAGS_test=""
3017       CPPFLAGS_test=""
3018     else
3019       LDFLAGS_test="-L${with_a52}/lib"
3020       CPPFLAGS_test="-I${with_a52}/include"
3021     fi
3022     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3023     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3024     AC_CHECK_HEADERS(a52dec/a52.h, [
3025       AC_CHECK_LIB(a52, a52_free, [
3026         VLC_ADD_PLUGIN([a52tofloat32])
3027         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3028         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3029       ],[
3030         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.])
3031         ])
3032     ],[
3033       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.])
3034     ])
3035     CPPFLAGS="${CPPFLAGS_save}"
3036     LDFLAGS="${LDFLAGS_save}"
3037   fi
3038 fi
3039
3040 AC_ARG_WITH(a52-fixed,
3041       [  --with-a52-fixed        specify if liba52 has been compiled with fixed point support],
3042       [
3043         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3044
3045 dnl
3046 dnl DTS Coherent Acoustics decoder plugin
3047 dnl
3048 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3049
3050 dnl
3051 dnl  Flac plugin
3052 dnl
3053 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3054
3055 dnl
3056 dnl  Libmpeg2 plugin
3057 dnl
3058 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3059
3060 dnl
3061 dnl  Vorbis plugin
3062 dnl
3063 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3064
3065 dnl
3066 dnl  Tremor plugin
3067 dnl
3068 AC_ARG_ENABLE(tremor,
3069   [  --enable-tremor         Tremor decoder support (default disabled)])
3070 if test "${enable_tremor}" = "yes"
3071 then
3072   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3073     VLC_ADD_PLUGIN([tremor])
3074     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3075    ],[])
3076 fi
3077
3078 dnl
3079 dnl  Speex plugin
3080 dnl
3081 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3082
3083 dnl
3084 dnl  theora decoder plugin
3085 dnl
3086 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3087
3088 dnl
3089 dnl  dirac encoder plugin
3090 dnl
3091 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3092
3093 dnl
3094 dnl  schroedinger decoder plugin (for dirac format video)
3095 dnl
3096 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3097
3098 dnl
3099 dnl  PNG decoder module
3100 dnl
3101 AC_ARG_ENABLE(png,
3102   [  --enable-png            PNG support (default enabled)])
3103 if test "${enable_png}" != "no"; then
3104 AC_CHECK_HEADERS(png.h, [
3105   LDFLAGS="${LDFLAGS_save} -lz"
3106   AC_CHECK_LIB(png, png_set_rows, [
3107     VLC_ADD_LIBS([png],[-lpng -lz])
3108     VLC_ADD_PLUGIN([png osdmenu osd_parser])],
3109     [],[-lz])
3110     LDFLAGS="${LDFLAGS_save}"
3111   ])
3112 fi
3113 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3114
3115 dnl
3116 dnl H264 encoder plugin (using libx264)
3117 dnl
3118 AC_ARG_ENABLE(x264,
3119   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3120 if test "${enable_x264}" != "no"; then
3121   AC_ARG_WITH(x264-tree,
3122     [  --with-x264-tree=PATH   x264 tree for static linking ],[],[])
3123   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3124   then
3125     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3126     if test -z "${real_x264_tree}"
3127     then
3128       dnl  The given directory can't be found
3129       AC_MSG_RESULT(no)
3130       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3131     fi
3132     dnl  Use a custom libx264
3133     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3134     if test -f ${real_x264_tree}/x264.h
3135     then
3136       AC_MSG_RESULT(yes)
3137       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3138       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3139       PKG_CHECK_MODULES(X264,x264, [
3140         VLC_ADD_PLUGIN([x264])
3141         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3142         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3143         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3144           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3145         fi
3146       ],[
3147         AC_MSG_ERROR([the specified tree hasn't been compiled])
3148       ])
3149       LDFLAGS="${LDFLAGS_save}"
3150     else
3151       AC_MSG_RESULT(no)
3152       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3153     fi
3154   else
3155       PKG_CHECK_MODULES(X264,x264 >= 0.76, [
3156         VLC_ADD_PLUGIN([x264])
3157         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3158
3159         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3160           [ac_cv_ld_bsymbolic],
3161           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3162             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3163             LDFLAGS="${LDFLAGS_save}"
3164           ])
3165         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3166           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3167         ])
3168
3169         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3170         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3171           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3172         fi
3173       ],[
3174         if test "${enable_x264}" = "yes"; then
3175             AC_MSG_ERROR([Could not find libx264 >= 0.76 on your system: you may get it from http://www.videolan.org/x264.html])
3176           fi
3177       ])
3178     LDFLAGS="${LDFLAGS_save}"
3179   fi
3180 fi
3181
3182 dnl
3183 dnl libfluidsynth (MIDI synthetizer) plugin
3184 dnl
3185 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3186
3187 dnl
3188 dnl Teletext Modules
3189 dnl vbi decoder plugin (using libzbvi)
3190 dnl telx module
3191 dnl uncompatible
3192 dnl
3193 AC_ARG_ENABLE(zvbi,
3194   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3195                   libzvbi (default enabled)]))
3196 AC_ARG_ENABLE(telx,
3197   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3198                   zvbi) (default enabled if zvbi is absent)]))
3199
3200 AS_IF( [test "${enable_zvbi}" != "no"],[
3201     PKG_CHECK_MODULES(ZVBI,
3202         zvbi-0.2 >= 0.2.28,
3203         [
3204           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3205           if test "${SYS}" = "mingw32"; then
3206               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3207           fi
3208           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3209           VLC_ADD_PLUGIN([zvbi])
3210           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3211           AS_IF( [test "${enable_telx}" = "yes"],[
3212                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3213                                Using zvbi.])
3214                   ])
3215         ],[
3216           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3217         ])
3218     ])
3219 AS_IF( [test "${enable_telx}" != "no" ],[
3220   VLC_ADD_PLUGIN([telx])
3221   ])
3222
3223 dnl
3224 dnl libass subtitle rendering module
3225 dnl
3226 AC_ARG_ENABLE(libass,
3227   [  --enable-libass         Subtitle support using libass (default enabled)])
3228 AS_IF( [test "${enable_libass}" != "no"], [
3229   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3230       [
3231         VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
3232         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3233         VLC_ADD_PLUGIN([libass])
3234
3235         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3236           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3237            VLC_ADD_LIBS([libass],[-lfontconfig])
3238        ])
3239       ],[
3240         AC_MSG_WARN([LIBASS library not found])
3241       ])
3242   ])
3243
3244 dnl
3245 dnl asa demuxer
3246 dnl
3247 AC_ARG_ENABLE(asademux,
3248   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3249 AS_IF( [test "${enable_asademux}" = "yes"], [
3250   PKG_CHECK_MODULES(PCRE,
3251       libpcre >= 6.5,
3252       [
3253         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3254         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3255         if test "${SYS}" = "mingw32"; then
3256             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3257         fi
3258         VLC_ADD_PLUGIN([asademux])
3259       ],[
3260         AC_MSG_WARN([PCRE library not found (required for asademux)])
3261       ])
3262   ])
3263
3264 dnl
3265 dnl  kate decoder plugin
3266 dnl
3267 AC_ARG_ENABLE(kate,
3268 [  --enable-kate           kate codec (default enabled)])
3269 AS_IF([test "${enable_kate}" != "no"], [
3270   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3271       VLC_ADD_PLUGIN([kate])
3272       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3273       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3274         AC_CHECK_HEADERS(kate/kate.h, [
3275           AC_CHECK_LIB(kate, kate_decode_init, [
3276             VLC_ADD_PLUGIN([kate])
3277             kate_libs="-lkate -logg"
3278             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3279             AS_IF([test "x${enable_kate}" != "x"], [
3280               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3281               You also need to check that you have a libogg posterior to the 1.0 release.])
3282             ])
3283           ], [-lkate -logg])
3284         ],[
3285           AS_IF([test "x${enable_kate}" != "x"], [
3286             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3287             You also need to check that you have a libogg posterior to the 1.0 release.])
3288           ])
3289         ])
3290   ])
3291 ])
3292
3293
3294 dnl
3295 dnl  tiger rendering for kate decoder plugin
3296 dnl
3297 AC_ARG_ENABLE(tiger,
3298 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3299 AS_IF([test "${enable_tiger}" != "no"], [
3300   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3301       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3302       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3303       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3304         AS_IF([test "x${enable_tiger}" != "x"], [
3305           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3306         ])
3307   ])
3308 ])
3309
3310
3311
3312 dnl
3313 dnl  Video plugins
3314 dnl
3315
3316 EXTEND_HELP_STRING([Video plugins:])
3317
3318 dnl
3319 dnl  Xlib
3320 dnl
3321
3322 AC_PATH_XTRA()
3323
3324 dnl
3325 dnl  X C Bindings modules
3326 dnl
3327 AC_ARG_ENABLE(xcb,
3328   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3329   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
3330     enable_xcb="yes"
3331   ], [
3332     enable_xcb="no"
3333   ])
3334 ])
3335 AC_ARG_ENABLE(xvideo,
3336   [  --enable-xvideo         XVideo support (default enabled)],, [
3337     enable_xvideo="$enable_xcb"
3338 ])
3339
3340 need_xid_provider="no"
3341 AS_IF([test "${enable_xcb}" != "no"], [
3342   dnl libxcb
3343   PKG_CHECK_MODULES(XCB, [xcb])
3344   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3345   VLC_ADD_PLUGIN([screensaver xcb_x11 xcb_screen xcb_apps])
3346   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3347
3348   AS_IF([test "${enable_xvideo}" != "no"], [
3349     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3350       VLC_ADD_PLUGIN([xcb_xv])
3351     ], [
3352       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3353         VLC_ADD_PLUGIN([xcb_xv])
3354         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3355       ])
3356     ])
3357   ])
3358
3359   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3360     VLC_ADD_PLUGIN([panoramix])
3361     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3362     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3363   ], [true])
3364
3365   dnl xcb-utils
3366   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3367     have_xcb_keysyms="yes"
3368   ], [
3369     PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
3370       have_xcb_keysyms="yes"
3371       VLC_ADD_CFLAGS([globalhotkeys], [-DXCB_KEYSYM_OLD_API])
3372     ], [
3373       have_xcb_keysyms="no"
3374       need_xid_provider="yes"
3375     ])
3376   ])
3377
3378   AS_IF([test "${have_xcb_keysyms}" = "yes"], [
3379     PKG_CHECK_MODULES(XPROTO, [xproto])
3380     VLC_ADD_PLUGIN([xcb_window globalhotkeys])
3381     VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3382     VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3383   ])
3384   VLC_ADD_PLUGIN([xdg_screensaver])
3385 ])
3386
3387 AC_ARG_ENABLE(glx,
3388   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3389   enable_glx="$enable_xcb"
3390 ])
3391 AS_IF([test "${enable_glx}" != "no"], [
3392   PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb])
3393   PKG_CHECK_MODULES(GL, [gl],, [
3394     AC_CHECK_HEADER([GL/gl.h], [
3395       GL_CFLAGS=""
3396       GL_LIBS="-lGL"
3397     ], [
3398       AC_MSG_ERROR([GLX (libGL) cannot be found. If you do not need OpenGL with X11, use --disable-glx.])
3399     ])
3400   ])
3401   VLC_ADD_PLUGIN([xcb_glx])
3402 ])
3403 AC_SUBST([GL_CFLAGS])
3404 AC_SUBST([GL_LIBS])
3405
3406
3407 dnl
3408 dnl  OpenGL module
3409 dnl  (enabled by default except on beos)
3410 dnl
3411 AC_ARG_ENABLE(opengl,
3412   [  --enable-opengl         OpenGL support (default enabled)])
3413 if test "${enable_opengl}" != "no" &&
3414    test "${SYS}" = "darwin"; then
3415     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3416     VLC_ADD_PLUGIN([opengl])
3417     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3418 fi
3419
3420 dnl
3421 dnl  SDL module
3422 dnl
3423 AC_ARG_ENABLE(sdl,
3424   [  --enable-sdl            SDL support (default enabled)])
3425 AC_ARG_ENABLE(sdl-image,
3426   [  --enable-sdl-image      SDL image support (default enabled)])
3427 if test "${enable_sdl}" != "no"
3428 then
3429   SDL_PATH="${PATH}"
3430   AC_ARG_WITH(sdl-config-path,
3431     [  --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3432     [ if test "${with_sdl_config_path}" != "no"
3433       then
3434         SDL_PATH="${with_sdl_config_path}:${PATH}"
3435       fi ])
3436   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3437   SDL_HEADER="SDL/SDL.h"
3438   SDL_IMAGE="SDL/SDL_image.h"
3439
3440   if test "${SDL_CONFIG}" != "no";  then
3441      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3442         # SDL on Darwin is heavily patched and can only run SDL_image
3443         if test "${SYS}" != "darwin"; then
3444           VLC_ADD_PLUGIN([vout_sdl aout_sdl])
3445         fi
3446         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3447         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3448
3449         # SDL_image
3450         AS_IF([ test "${enable_sdl_image}" != "no"],[
3451           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3452             VLC_ADD_PLUGIN([sdl_image])
3453             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3454             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3455             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3456             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3457             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3458       You should install it alongside your SDL package.])
3459             ])
3460         ])
3461      ],[
3462        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3463                     Alternatively you can also configure with --disable-sdl.])
3464      ])
3465   else if test "${enable_sdl}" =  "yes"; then
3466     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3467 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3468     ])
3469       fi
3470   fi
3471 fi
3472
3473 dnl
3474 dnl  freetype module
3475 dnl
3476 AC_ARG_ENABLE(freetype,
3477   [  --enable-freetype       freetype support (default enabled)])
3478 AC_ARG_ENABLE(fribidi,
3479   [  --enable-fribidi        fribidi support (default enabled)])
3480 AC_ARG_ENABLE(fontconfig,
3481   [  --enable-fontconfig     fontconfig support (default enabled)])
3482 if test "${enable_freetype}" != "no"
3483 then
3484    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3485       VLC_ADD_PLUGIN([freetype])
3486       have_freetype=yes
3487       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3488       if test "${SYS}" = "mingw32"; then
3489         VLC_ADD_LIBS([freetype],[-liconv -lz])
3490       fi
3491       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3492       if test "${enable_fontconfig}" != "no"
3493       then
3494         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3495           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3496            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3497         AC_CHECK_HEADERS(Carbon/Carbon.h,
3498           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3499       fi
3500
3501      dnl fribidi support
3502       if test "${enable_fribidi}" != "no"
3503       then
3504         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3505           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3506           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3507         ])
3508       fi
3509
3510   ],[
3511   have_freetype=no
3512   AS_IF([ test "${enable_freetype}" =  "yes"],[
3513     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3514 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3515       ])
3516     ])
3517   ])
3518
3519 fi
3520
3521 dnl
3522 dnl  libxml2 module
3523 dnl
3524 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3525
3526 dnl
3527 dnl  SVG module
3528 dnl
3529 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3530
3531 dnl
3532 dnl Snapshot vout module (with cache)
3533 dnl
3534 AC_ARG_ENABLE(snapshot,
3535   [  --enable-snapshot       snapshot module (default disabled)])
3536 if test "${enable_snapshot}" = "yes"
3537 then
3538   VLC_ADD_PLUGIN([snapshot])
3539 fi
3540
3541 dnl
3542 dnl Roku HD1000 Video output module
3543 dnl
3544 AC_ARG_ENABLE(hd1000v,
3545   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3546 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3547   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3548    test "${enable_hd1000v}" = "yes"); then
3549   AC_LANG_PUSH([C++])
3550   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3551   [
3552     can_build_roku="yes"
3553   ],
3554   [
3555     can_build_roku="no"
3556     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3557   ])
3558   if test "$can_build_roku" = "yes"
3559   then
3560     VLC_ADD_PLUGIN([hd1000v])
3561     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3562   fi
3563   AC_LANG_POP([C++])
3564 fi
3565
3566 dnl
3567 dnl  Windows DirectX module
3568 dnl
3569
3570 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3571 then
3572   VLC_ADD_PLUGIN([panoramix])
3573 fi
3574
3575 AC_ARG_ENABLE(directx,
3576   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3577 if test "${enable_directx}" != "no"
3578 then
3579   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3580   then
3581       AC_CHECK_HEADERS(ddraw.h,
3582       [ VLC_ADD_PLUGIN([directx aout_directx])
3583         VLC_ADD_LIBS([directx],[-lgdi32])
3584       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3585       )
3586       AC_CHECK_HEADERS(GL/gl.h,
3587       [ VLC_ADD_PLUGIN([glwin32])
3588         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3589       ])
3590       AC_CHECK_HEADERS(d3d9.h,
3591       [ VLC_ADD_PLUGIN([direct3d])
3592         VLC_ADD_LIBS([direct3d],[-lgdi32])
3593       ])
3594       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3595   fi
3596 fi
3597
3598 dnl
3599 dnl  win32 GDI plugin
3600 dnl
3601 AC_ARG_ENABLE(wingdi,
3602   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3603 if test "${enable_wingdi}" != "no"; then
3604   if test "${SYS}" = "mingw32"; then
3605     VLC_ADD_PLUGIN([wingdi])
3606     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3607   fi
3608   if test "${SYS}" = "mingwce"; then
3609     VLC_ADD_PLUGIN([wingdi wingapi])
3610     VLC_ADD_LIBS([wingdi],[-laygshell])
3611     VLC_ADD_LIBS([wingapi],[-laygshell])
3612   fi
3613 fi
3614
3615
3616 dnl
3617 dnl  Linux framebuffer module
3618 dnl
3619 AC_ARG_ENABLE(fb,
3620   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3621     if test "${enable_fb}" != "no"
3622     then
3623       AC_CHECK_HEADERS(linux/fb.h, [
3624         VLC_ADD_PLUGIN([fb])
3625       ])
3626     fi
3627
3628 dnl
3629 dnl  OMAP Framebuffer module
3630 dnl
3631 AC_ARG_ENABLE(omapfb,
3632   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3633     if test "${enable_omapfb}" = "yes"
3634     then
3635       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3636         VLC_ADD_PLUGIN([omapfb])
3637         AC_CHECK_HEADERS(X11/Xlib.h, [
3638           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
3639       ])
3640       VLC_ADD_PLUGIN([swscale_omap])
3641     fi
3642
3643 dnl
3644 dnl  SVGAlib module
3645 dnl
3646 AC_ARG_ENABLE(svgalib,
3647   [  --enable-svgalib        SVGAlib support (default disabled)])
3648 if test "${enable_svgalib}" = "yes"
3649 then
3650   VLC_ADD_PLUGIN([svgalib])
3651   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3652 fi
3653
3654 dnl
3655 dnl  DirectFB module
3656 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3657 dnl  TODO: support for static linking
3658 dnl
3659 AC_ARG_ENABLE(directfb,
3660   [  --enable-directfb       DirectFB support (default disabled)])
3661 AC_ARG_WITH(directfb,
3662   [  --with-directfb=PATH    path to DirectFB headers and libraries])
3663
3664 if test "${enable_directfb}" = "yes"; then
3665     have_directfb="false"
3666     CPPFLAGS_mydirectfb=
3667     LIBS_mydirectfb=
3668     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3669         dnl Trying the given location
3670         CPPFLAGS_save="${CPPFLAGS}"
3671         LIBS_save="${LIBS}"
3672
3673         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3674         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3675         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3676
3677         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3678         LIBS="${LIBS} ${LIBS_new}"
3679
3680         dnl FIXME: too obscure
3681         AC_CHECK_HEADER([directfb.h], [
3682             AC_CHECK_LIB([direct],[direct_initialize], [
3683                 AC_CHECK_LIB([fusion], [fusion_enter], [
3684                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3685                 ], have_directfb="false")
3686             ], have_directfb="false")
3687         ], have_directfb="false")
3688
3689         dnl Restore flags
3690         CPPFLAGS="${CPPFLAGS_save}"
3691         LIBS="${LIBS_save}"
3692
3693         if test "${have_directfb}" = "true"; then
3694             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
3695             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3696         fi
3697     else
3698         dnl Look for directfb-config
3699         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3700         if test "${DIRECTFB_CONFIG}" != "no"; then
3701             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3702             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3703             have_directfb="true"
3704         else
3705             dnl Trying with pkg-config
3706             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3707                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3708                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3709                 have_directfb="true"
3710                 ], [have_directfb="false"])
3711         fi
3712     fi
3713     if test "${have_directfb}" = "true"; then
3714         VLC_ADD_PLUGIN([directfb])
3715         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3716         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3717     else
3718         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3719     fi
3720 fi
3721
3722
3723
3724 dnl
3725 dnl  GGI module
3726 dnl
3727 AC_ARG_ENABLE(ggi,
3728   [  --enable-ggi            GGI support (default disabled)])
3729 if test "${enable_ggi}" = "yes"
3730 then
3731   AC_CHECK_HEADER([ggi/ggi.h],[
3732     VLC_ADD_PLUGIN([ggi])
3733     VLC_ADD_LIBS([ggi],[-lggi])
3734     AC_ARG_WITH(ggi,
3735       [  --with-ggi=PATH         path to libggi],
3736       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3737         then
3738           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3739           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
3740         fi ])
3741     ],[
3742        AC_MSG_ERROR([LibGGI development files can't be found])
3743     ])
3744 fi
3745
3746 dnl
3747 dnl  AA plugin
3748 dnl
3749 AC_ARG_ENABLE(aa,
3750   [  --enable-aa             aalib output (default disabled)])
3751 if test "${enable_aa}" = "yes"
3752 then
3753   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3754   if test "${have_aa}" = "true"
3755   then
3756     VLC_ADD_PLUGIN([aa])
3757     VLC_ADD_LIBS([aa],[-laa])
3758   fi
3759 fi
3760
3761 dnl
3762 dnl  libcaca plugin
3763 dnl
3764 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3765
3766 dnl
3767 dnl  Audio plugins
3768 dnl
3769
3770 EXTEND_HELP_STRING([Audio plugins:])
3771
3772 dnl
3773 dnl  OSS /dev/dsp module (enabled by default except on win32)
3774 dnl
3775 AC_ARG_ENABLE(oss,
3776   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3777
3778 if test "${enable_oss}" != "no" &&
3779   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3780    test "${enable_oss}" = "yes")
3781 then
3782   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3783     VLC_ADD_PLUGIN([oss access_oss])
3784     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss access_oss],[-lossaudio])])
3785   ])
3786 fi
3787
3788 dnl
3789 dnl  Pulseaudio module
3790 dnl
3791 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
3792
3793 dnl
3794 dnl  Portaudio module
3795 dnl
3796 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3797
3798 dnl
3799 dnl  ALSA module
3800 dnl
3801 PKG_ENABLE_MODULES_VLC([ALSA], [alsa access_alsa], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
3802
3803 dnl
3804 dnl  win32 waveOut plugin
3805 dnl
3806 AC_ARG_ENABLE(waveout,
3807   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3808 if test "${enable_waveout}" != "no"; then
3809   if test "${SYS}" = "mingw32"; then
3810     VLC_ADD_PLUGIN([waveout])
3811     VLC_ADD_LIBS([waveout],[-lwinmm])
3812   fi
3813   if test "${SYS}" = "mingwce"; then
3814     VLC_ADD_PLUGIN([waveout])
3815   fi
3816 fi
3817
3818 dnl
3819 dnl  CoreAudio plugin
3820 dnl
3821 AC_ARG_ENABLE(macosx-audio,
3822   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
3823 if test "x${enable_macosx_audio}" != "xno" &&
3824   (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3825 then
3826   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3827     [ VLC_ADD_PLUGIN([auhal])
3828       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3829     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3830 fi
3831
3832 dnl
3833 dnl  Roku HD1000 audio
3834 dnl
3835 AC_ARG_ENABLE(hd1000a,
3836   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3837 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3838   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3839    test "${enable_hd1000a}" = "yes")
3840 then
3841   AC_LANG_PUSH([C++])
3842   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3843     VLC_ADD_PLUGIN([hd1000a])
3844     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
3845   AC_LANG_POP([C++])
3846 fi
3847
3848 dnl
3849 dnl  JACK modules
3850 dnl
3851 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3852
3853
3854 dnl
3855 dnl  CyberLink for C++ UPnP stack
3856 dnl
3857 AC_ARG_ENABLE(cyberlink,
3858   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
3859   AS_IF([test "${enable_cyberlink}" = "yes" ], [
3860   AC_ARG_WITH(cyberlink-tree,
3861     [  --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
3862
3863   dnl
3864   dnl test for --with-cyberlink-tree
3865   dnl
3866   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
3867     AC_LANG_PUSH(C++)
3868     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
3869     AS_IF([test -z "${real_cyberlink_tree}"], [
3870       dnl  The given directory can't be found
3871       AC_MSG_RESULT(no)
3872       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
3873     ])
3874     CPPFLAGS_save="${CPPFLAGS}"
3875     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
3876     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
3877     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
3878       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
3879         VLC_ADD_PLUGIN([upnp_cc])
3880       ],[
3881         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
3882       ])
3883     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
3884     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
3885       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
3886       dnl The mere fact that we have to make such an ugly check sucks
3887       AC_MSG_CHECKING(for XML parser to link CyberLink with)
3888       LIBS_save="$LIBS"
3889       LIBS_cclink="no"
3890       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
3891         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
3892         AC_LINK_IFELSE([AC_LANG_PROGRAM([
3893 #include <cybergarage/upnp/media/player/MediaPlayer.h>
3894 using namespace CyberLink;
3895
3896 class testclass : public SearchResponseListener, public MediaPlayer
3897 {
3898     virtual void deviceSearchResponseReceived( SSDPPacket *)
3899     {
3900     }
3901
3902     public:
3903       testclass (void)
3904       {
3905         addSearchResponseListener (this);
3906         start ();
3907       }
3908 };
3909 ],[testclass l;])],[LIBS_cclink="$l"])
3910       done
3911       LIBS="${LIBS_save}"
3912       dnl should not happen - otherwise this needs fixing - hence FAILURE
3913       AS_IF([test "${LIBS_cclink}" = "no"],
3914         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
3915       AC_MSG_RESULT([${LIBS_cclink}])
3916       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
3917     ], [
3918       AC_MSG_RESULT(no)
3919       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
3920     ])
3921     CPPFLAGS="${CPPFLAGS_save}"
3922     AC_LANG_POP([C++])
3923   ])
3924 ])
3925
3926 dnl
3927 dnl UPnP Plugin (Intel SDK)
3928 dnl
3929 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
3930
3931
3932 dnl
3933 dnl  Interface plugins
3934 dnl
3935
3936 EXTEND_HELP_STRING([Interface plugins:])
3937
3938 dnl
3939 dnl Skins2 module
3940 dnl
3941 AC_ARG_ENABLE(skins2,
3942   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
3943    enabled except on MacOSX, BeOS and WinCE)])])
3944 if test "${enable_skins2}" = "yes" ||
3945   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3946    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3947
3948   dnl test for the required libraries
3949   skins2_missing_lib="no"
3950
3951   dnl freetype
3952   if test "${have_freetype}" != "yes"; then
3953     skins2_missing_lib="yes"
3954     if test "${enable_skins2}" = "yes"; then
3955       AC_MSG_ERROR([Could not find freetype (required for skins2)])
3956     fi
3957   fi
3958
3959   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
3960     VLC_ADD_PLUGIN([skins2])
3961     ALIASES="${ALIASES} svlc"
3962     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3963     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3964     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
3965
3966   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
3967     VLC_ADD_PLUGIN([skins2])
3968     ALIASES="${ALIASES} svlc"
3969     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3970     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3971     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
3972
3973   else if test "${skins2_missing_lib}" = "no"; then
3974     VLC_ADD_PLUGIN([skins2])
3975     ALIASES="${ALIASES} svlc"
3976     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
3977     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3978     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
3979     need_xid_provider="no"
3980   fi fi fi
3981 fi
3982 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
3983          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3984           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
3985
3986 dnl
3987 dnl Hildon UI
3988 dnl
3989 AC_ARG_ENABLE(hildon,
3990   [  --enable-hildon         Hildon touchscreen UI (default disabled)])
3991 AS_IF([test "${enable_hildon}" = "yes"], [
3992   PKG_CHECK_MODULES(HILDON, [hildon-1], [
3993     PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3994       VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3995       VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3996     ], [
3997       AC_MSG_WARN(hildon-fm-2 not found)
3998     ])
3999     VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
4000     VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
4001     VLC_ADD_PLUGIN([hildon])
4002     ALIASES="${ALIASES} mvlc"
4003     need_xid_provider="no"
4004   ], [
4005     AS_IF([test "${enable_hildon}" = "yes"],[
4006       AC_MSG_ERROR([Hildon libraries not found])
4007     ])
4008     enable_hildon="no"
4009   ])
4010 ])
4011 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
4012
4013 dnl
4014 dnl QT 4
4015 dnl
4016 AC_ARG_ENABLE(qt4,
4017   [  --enable-qt4            Qt 4 support (default enabled) ],, [
4018   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4019 ])
4020 AS_IF([test "${enable_qt4}" != "no"], [
4021   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4022     VLC_ADD_PLUGIN([qt4])
4023     ALIASES="${ALIASES} qvlc"
4024     QT4LOCALEDIR="$(eval $PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4025     AC_SUBST(QT4LOCALEDIR)
4026     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4027         VLC_ADD_LIBS([qt4],[$QT4_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
4028         need_xid_provider="no"
4029         VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS ${X_CFLAGS} -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4030     ], [
4031         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4032         VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4033     ])
4034     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4035     AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4036     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4037   ], [
4038     AS_IF([test "${enable_qt4}" = "yes"],[
4039       AC_MSG_ERROR([Qt 4 library not found])
4040     ],[
4041       AC_MSG_WARN([Qt 4 library not found])
4042     ])
4043     enable_qt4="no"
4044   ])
4045 ])
4046 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4047
4048 dnl
4049 dnl Simple test for skins2 dependency
4050 dnl
4051 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4052   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.])
4053 ])
4054
4055 dnl
4056 dnl  MacOS X video output/gui modules
4057 dnl
4058 AC_ARG_ENABLE(macosx,
4059   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
4060 if test "x${enable_macosx}" = "xyes"
4061 then
4062   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,Cocoa])
4063   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,OpenGL])
4064   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4065   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4066   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4067   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4068   VLC_ADD_LDFLAGS([macosx],                           [-F${CONTRIB_DIR}/Sparkle -Wl,-framework,Sparkle])
4069   VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/Sparkle])
4070   dnl For bug report
4071   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4072   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4073   VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
4074
4075   VLC_ADD_PLUGIN([macosx minimal_macosx])
4076 fi
4077
4078 dnl
4079 dnl  MacOS X related modules
4080 dnl
4081
4082 AC_ARG_ENABLE(macosx-vout,
4083   [  --enable-macosx-vout    Mac OS X video output module (default enabled on Mac OS X)])
4084 if test "x${enable_macosx_vout}" != "xno" &&
4085   (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
4086 then
4087   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,Cocoa])
4088   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,OpenGL])
4089   VLC_ADD_PLUGIN([vout_macosx])
4090 fi
4091
4092 AC_ARG_ENABLE(macosx-dialog-provider,
4093   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
4094 if test "x${enable_macosx_dialog_provider}" != "xno" &&
4095   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
4096 then
4097   VLC_ADD_LDFLAGS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
4098   VLC_ADD_PLUGIN([macosx_dialog_provider])
4099 fi
4100
4101 AC_ARG_ENABLE(macosx-qtcapture,
4102   [  --enable-macosx-qtcapture Mac OS X qtcapture (iSight) module (default enabled on Mac OS X)])
4103 if test "x${enable_macosx_qtcapture}" != "xno" &&
4104   (test "${SYS}" = "darwin" || test "${enable_macosx_qtcapture}" = "yes")
4105 then
4106   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,Cocoa])
4107   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QTKit])
4108   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreAudio])
4109   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QuartzCore])
4110   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreVideo])
4111   VLC_ADD_PLUGIN([qtcapture])
4112 fi
4113
4114 AC_ARG_ENABLE(macosx-eyetv,
4115   [  --enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
4116 if test "x${enable_macosx_eyetv}" != "xno" &&
4117   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
4118 then
4119   VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,Foundation])
4120   VLC_ADD_PLUGIN([access_eyetv])
4121 fi
4122
4123 AC_ARG_ENABLE(macosx-vlc-app,
4124   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4125 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4126     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4127
4128
4129 dnl
4130 dnl  ncurses module
4131 dnl
4132 AC_ARG_ENABLE(ncurses,
4133   [  --disable-ncurses       ncurses interface support (default disabled)],
4134   [if test "${enable_ncurses}" != "no"; then
4135     AC_CHECK_HEADER(ncurses.h,
4136       [AC_CHECK_LIB(ncursesw, mvprintw,
4137         [VLC_ADD_PLUGIN([ncurses])
4138         VLC_ADD_LIBS([ncurses],[-lncursesw])
4139         ALIASES="${ALIASES} nvlc"
4140         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4141         AC_CHECK_LIB(ncursesw, tgetent, [],
4142           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4143             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4144               [AS_IF([test "x${enable_ncurses}" != "x"],
4145                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4146                )])])
4147             ]
4148           )
4149         )
4150         ],
4151         [AC_CHECK_LIB( ncurses, mvprintw,
4152           [VLC_ADD_PLUGIN([ncurses])
4153           ALIASES="${ALIASES} nvlc"
4154           VLC_ADD_LIBS([ncurses],[-lncurses])
4155           AC_CHECK_LIB(ncurses, tgetent, [],
4156             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4157               [AS_IF([test "x${enable_ncurses}" != "x"],
4158                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4159             )]
4160           )],
4161           [AS_IF([test "x${enable_ncurses}" != "x"], [
4162             AC_MSG_ERROR([libncurses not found])])]
4163         )]
4164       )]
4165     )
4166   fi]
4167 )
4168
4169 dnl
4170 dnl  XOSD plugin
4171 dnl
4172 AC_ARG_ENABLE(xosd,
4173   [  --enable-xosd           xosd interface support (default disabled)])
4174 if test "${enable_xosd}" = "yes"
4175 then
4176   AC_CHECK_HEADERS(xosd.h,
4177     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4178       VLC_ADD_PLUGIN([xosd])
4179       VLC_ADD_LIBS([xosd],[-lxosd])
4180     ])
4181   )
4182 fi
4183
4184 dnl
4185 dnl Framebuffer (overlay) plugin
4186 dnl
4187 AC_ARG_ENABLE(fbosd,
4188   [  --enable-fbosd          fbosd interface support (default disabled)])
4189 if test "${enable_fbosd}" = "yes"
4190 then
4191   AC_CHECK_HEADERS(linux/fb.h, [
4192     VLC_ADD_PLUGIN([fbosd])
4193  ])
4194 fi
4195
4196 dnl
4197 dnl Post-interface configuration checks
4198 dnl
4199 AS_IF([test "$need_xid_provider" = "yes"], [
4200   AC_MSG_ERROR([X11 video outputs need a window provider (Qt4, Skins2, Hildon or xcb-utils), but none were found. Please install xcb-keysyms.])
4201 ])
4202
4203 dnl
4204 dnl Visualisation plugin
4205 dnl
4206 AC_ARG_ENABLE(visual,
4207   [  --enable-visual         visualisation plugin (default enabled)])
4208 if test "${enable_visual}" != "no"
4209 then
4210     VLC_ADD_PLUGIN([visual])
4211 fi
4212
4213 dnl
4214 dnl  goom visualization plugin
4215 dnl
4216 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4217
4218 dnl
4219 dnl libprojectM visualization plugin
4220 dnl
4221 AC_ARG_ENABLE(projectm,
4222   [  --enable-projectm          projectM visualization plugin (default enabled)])
4223 AS_IF([test "${enable_projectm}" != "no"],
4224   [
4225     PKG_CHECK_MODULES(PROJECTM, libprojectM,
4226     [
4227       VLC_ADD_PLUGIN([projectm])
4228       VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
4229       VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
4230       PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
4231         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4232         [ AC_MSG_WARN( [Using libprojectM version 1] )
4233       ])
4234     ],[
4235       AC_MSG_WARN([libprojectM library not found])
4236     ])
4237   ])
4238
4239 dnl
4240 dnl  AtmoLight (homemade Philips Ambilight clone)
4241 dnl
4242 AC_ARG_ENABLE(atmo,
4243 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
4244                 (default enabled)]),, [enable_atmo="yes"])
4245 AS_IF([test "${enable_atmo}" != no], [
4246   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4247     AC_LANG_PUSH(C++)
4248     VLC_ADD_PLUGIN([atmo])
4249     AC_LANG_POP(C++)
4250   ])
4251 ])
4252
4253 dnl
4254 dnl  Bonjour services discovery
4255 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4256
4257 dnl
4258 dnl  libudev services discovery
4259 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4260
4261 dnl
4262 dnl MTP devices services discovery
4263 PKG_ENABLE_MODULES_VLC([MTP], [], [libmtp >= 0.3.0],[MTP devices support],[auto])
4264
4265 dnl
4266 dnl  Lirc plugin
4267 dnl
4268 AC_ARG_ENABLE(lirc,
4269   [  --enable-lirc           lirc support (default disabled)])
4270 if test "${enable_lirc}" = "yes"
4271 then
4272   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4273   if test "${have_lirc}" = "true"
4274   then
4275     VLC_ADD_PLUGIN([lirc])
4276     VLC_ADD_LIBS([lirc],[-llirc_client])
4277   fi
4278 fi
4279
4280 EXTEND_HELP_STRING([Misc options:])
4281
4282 dnl
4283 dnl libgcrypt
4284 dnl
4285 AC_ARG_ENABLE(libgcrypt,
4286   [  --disable-libgcrypt     gcrypt support (default enabled)])
4287 AS_IF([test "${enable_libgcrypt}" != "no"], [
4288   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4289     libgcrypt-config --version >/dev/null || \
4290         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4291     AC_CHECK_LIB(gcrypt, gcry_control, [
4292       have_libgcrypt="yes"
4293       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4294       GCRYPT_LIBS="`libgcrypt-config --libs`"
4295     ], [
4296       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4297     ], [`libgcrypt-config --libs`])
4298   ], [
4299     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4300   ], [#include <gcrypt.h>]
4301   )
4302 ])
4303
4304 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4305   AS_IF([test "${have_libgcrypt}" = "yes"],[
4306     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4307   ])
4308 fi
4309 AC_SUBST(GCRYPT_CFLAGS)
4310 AC_SUBST(GCRYPT_LIBS)
4311 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4312
4313 dnl
4314 dnl TLS/SSL
4315 dnl
4316 AC_ARG_ENABLE(gnutls,
4317   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4318
4319 AS_IF([test "${have_libgcrypt}" != "yes"], [
4320   AS_IF([test "${enable_gnutls}" = "yes"], [
4321     AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
4322   ])
4323   enable_gnutls="no"
4324 ])
4325 AS_IF([test "${enable_gnutls}" != "no"], [
4326   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4327     VLC_ADD_PLUGIN([gnutls])
4328     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4329     AS_IF([test "${SYS}" = "mingw32"], [
4330       dnl pkg-config --libs gnutls omits these
4331       VLC_ADD_LIBS([gnutls], [-lz ${LTLIBINTL}])
4332     ])
4333     dnl The GnuTLS plugin invokes gcry_control directly.
4334     AS_IF([test "${have_libgcrypt}" = "yes"],[
4335       VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4336       VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4337     ])
4338     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4339   ], [
4340     AS_IF([test "${enable_gnutls}" = "yes"], [
4341       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4342     ])
4343   ])
4344 ])
4345
4346
4347 dnl
4348 dnl RemoteOSD plugin (VNC client as video filter)
4349 dnl
4350 AC_ARG_ENABLE(remoteosd,
4351   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4352
4353 AS_IF([test "${enable_remoteosd}" != "no"], [
4354   AS_IF([test "${have_libgcrypt}" = "yes"],[
4355     VLC_ADD_PLUGIN([remoteosd])
4356     VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4357     VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4358   ], [
4359     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4360   ])
4361 ])
4362
4363
4364 dnl
4365 dnl RAOP plugin
4366 dnl
4367 AC_MSG_CHECKING([whether to enable RAOP plugin])
4368 AS_IF([test "${have_libgcrypt}" = "yes"], [
4369   AC_MSG_RESULT(yes)
4370   VLC_ADD_PLUGIN([stream_out_raop])
4371   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4372   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4373 ], [
4374   AC_MSG_RESULT(no)
4375   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4376 ])
4377
4378
4379 dnl
4380 dnl OSSO (Maemo screen blanking) plugin
4381 dnl
4382 PKG_ENABLE_MODULES_VLC([OSSO_SCREENSAVER], [], [libosso], [Maemo support], [auto])
4383
4384 AS_IF([test -f "/etc/maemo_version"], [
4385   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4386 ])
4387
4388
4389 dnl
4390 dnl update checking system
4391 dnl
4392 AC_ARG_ENABLE(update-check,
4393   [  --enable-update-check   update checking system (default disabled)])
4394 if test "${enable_update_check}" = "yes"
4395 then
4396   if test "${have_libgcrypt}" != "yes"
4397   then
4398     AC_MSG_ERROR([libgcrypt is required for update checking system])
4399   fi
4400   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4401   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4402   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4403 fi
4404
4405 dnl
4406 dnl SQLite
4407 dnl
4408 AC_ARG_WITH(sqlite,
4409   [  --with-sqlite=PATH      sqlite path linking])
4410 if test "${SYS}" != "darwin"; then
4411   PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4412 else
4413   if test "${enable_sqlite}" != "no"
4414   then
4415     AC_CHECK_HEADERS(sqlite3.h, [
4416         VLC_ADD_PLUGIN([sqlite])
4417         if test "${with_sqlite}" != "no" -a -n "${with_sqlite}"; then
4418           AC_MSG_CHECKING(existence of sqlite directory in ${with_sqlite})
4419           real_sqlite="`cd ${with_sqlite} 2>/dev/null && pwd`"
4420           if test -z "${real_sqlite}"
4421           then
4422             dnl  The given directory can't be found
4423             AC_MSG_RESULT(no)
4424             AC_MSG_ERROR([cannot cd to ${with_sqlite}])
4425           fi
4426           VLC_ADD_CFLAGS([sqlite],[-I${with_sqlite}/include])
4427           VLC_ADD_LIBS([sqlite], [-L${with_sqlite}/lib -lsqlite3])
4428           AC_MSG_RESULT(yes)
4429         else
4430           VLC_ADD_LIBS([sqlite], [-lsqlite3])
4431         fi
4432         AC_DEFINE([SQLITE_MODULE], 1, [Define if you want to use SQLite module]) ],
4433         AC_MSG_ERROR([sqlite3 is required for sqlite module]) )
4434   fi
4435 fi
4436 AM_CONDITIONAL([HAVE_SQLITE], [test "${enable_sqlite}" != "no"])
4437
4438
4439 dnl
4440 dnl  Endianness check
4441 dnl
4442 AC_C_BIGENDIAN
4443 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4444   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4445 ], [
4446   DEFS_BIGENDIAN=""
4447 ])
4448 AC_SUBST(DEFS_BIGENDIAN)
4449
4450 dnl
4451 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4452 dnl
4453 loader=false
4454 AC_ARG_ENABLE(loader,
4455   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4456                   (default disabled)]))
4457 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4458 AS_IF([test "${enable_loader}" = "yes"],
4459   [ VLC_ADD_PLUGIN([dmo])
4460     VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/libs/loader])
4461     VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4462     VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4463     VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4464   ])
4465
4466 EXTEND_HELP_STRING([Components:])
4467
4468 dnl
4469 dnl  the VLC binary
4470 dnl
4471 AC_ARG_ENABLE(vlc,
4472   [  --enable-vlc            build the VLC media player (default enabled)])
4473 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4474
4475 dnl
4476 dnl  Microsoft ActiveX support
4477 dnl
4478 activex=false
4479 AC_ARG_ENABLE(activex,
4480   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4481                   (default enabled on Win32)]))
4482 AC_ARG_WITH(wine-sdk-path,
4483   [  --with-wine-sdk-path=PATH path to wine sdk])
4484 if test "${enable_activex}" != "no"
4485 then
4486   if test "${SYS}" = "mingw32"
4487   then
4488     AC_CHECK_PROGS(MIDL, [midl], no)
4489     if test "${with_wine_sdk_path}" != ""
4490     then
4491        WINE_SDK_PATH=${with_wine_sdk_path}
4492        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4493     else
4494        WIDL=no
4495     fi
4496     AC_LANG_PUSH(C++)
4497     AC_CHECK_HEADERS(ole2.h,
4498       [AC_CHECK_HEADERS(olectl.h,
4499         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4500           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4501           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4502           AC_CHECK_HEADERS(objsafe.h,
4503             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4504             [
4505              #if HAVE_OLE2_H
4506              #   include <ole2.h>
4507              #endif
4508             ]
4509           )
4510           activex=:
4511           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4512         ],
4513         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4514       )],
4515       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4516     )
4517     AC_LANG_POP(C++)
4518   fi
4519 fi
4520 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4521 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4522 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4523 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4524 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4525
4526 dnl
4527 dnl  Mozilla plugin
4528 dnl
4529 mozilla=false
4530 AC_ARG_ENABLE(mozilla,
4531   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4532                   (default disabled)]))
4533 AC_ARG_WITH(mozilla-sdk-path,
4534   [  --with-mozilla-sdk-path=PATH path to mozilla sdk])
4535 AC_ARG_WITH(mozilla-pkg,
4536   [  --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4537 AC_LANG_PUSH(C++)
4538 if test "${enable_mozilla}" = "yes"
4539 then
4540   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4541     [
4542     dnl pkg-config
4543     dnl As we want to do a loop due to the number of name possible for the .pc
4544     dnl we can't use the pkg-config macros.
4545
4546     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4547     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4548     AC_MSG_NOTICE([Checking for Mozilla])
4549     found=0
4550     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4551     then
4552       found=1
4553     else
4554       if test -n "$PKG_CONFIG"; then
4555         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4556           echo "Trying to find $i.pc files" >&5
4557           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4558           then
4559             echo "Using $i.pc files." >&5
4560             echo "Using $i.pc files." >&6
4561             found=1
4562             MOZILLA_CFLAGS=$(eval $PKG_CONFIG --cflags "$i" )
4563             MOZILLA_LIBS=$(eval $PKG_CONFIG --libs "$i" )
4564             break
4565           fi
4566         done
4567       fi
4568     fi
4569     AS_IF( [test $found = 1],[
4570         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4571         MOZILLA_REQUIRED_HEADERS=1
4572         AC_CHECK_HEADERS([npfunctions.h])
4573         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4574         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4575           [#if HAVE_NPAPI_H
4576            # include <npapi.h>
4577            #endif
4578           ])
4579         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4580             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
4581         fi
4582         MOZILLA_REQUIRED_HEADERS=
4583         mozilla=:
4584         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4585            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
4586            AS_IF([ test "${SYS}" != "darwin"],[
4587              PKG_CHECK_MODULES(XPM, [xpm xt],[
4588                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4589              ],[
4590                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4591              ])
4592           ])
4593         ])
4594         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4595         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4596         VLC_ADD_PLUGIN([mozilla])
4597         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4598         MOZILLA_CONFIG=
4599         CPPFLAGS="${CPPFLAGS_save}"
4600           ],
4601           [
4602             AC_PATH_PROGS(MOZILLA_CONFIG,
4603             [mozilla-config seamonkey-config xulrunner-config],
4604         [no])
4605             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
4606           ]
4607         )
4608     dnl pkg-config failed but we might have found a mozilla-config
4609     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
4610       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
4611         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4612         AC_CHECK_LIB(Xt,XtStrings,
4613          [
4614            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
4615            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
4616          ],
4617          [],
4618          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
4619         ])
4620         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
4621         LDFLAGS="${LDFLAGS_save}"
4622       fi
4623
4624       mozilla=:
4625       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4626       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
4627       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
4628       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4629       MOZILLA_REQUIRED_HEADERS=1
4630       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4631       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4632       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4633         [#if HAVE_NPAPI_H
4634          # include <npapi.h>
4635          #endif
4636         ])
4637       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4638       then
4639         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4640       fi
4641       MOZILLA_REQUIRED_HEADERS=
4642       CPPFLAGS="${CPPFLAGS_save}"
4643       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
4644     ])
4645     dnl End of moz_sdk = ""
4646   ],[
4647     dnl special case for mingw32
4648     if test "${SYS}" = "mingw32"
4649     then
4650       AC_CHECK_TOOL(CYGPATH, cygpath, "")
4651       dnl latest gecko sdk does not have an xpcom directory
4652       if test -d "${with_mozilla_sdk_path}/xpcom"; then
4653           mozilla_sdk_xpcom="/xpcom"
4654       fi
4655     fi
4656
4657     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4658     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
4659     MOZILLA_REQUIRED_HEADERS=1
4660     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4661     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4662     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4663         [#if HAVE_NPAPI_H
4664           #include <npapi.h>
4665           #endif
4666         ])
4667     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4668     then
4669         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4670     fi
4671     MOZILLA_REQUIRED_HEADERS=
4672     mozilla=:
4673     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4674     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])
4675     if ${need_xpcom_libs}; then
4676        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])
4677       if test "${SYS}" = "mingw32"; then
4678         dnl latest gecko sdk does not have embedstring
4679         if test -d "${real_mozilla_sdk}/embedstring/bin"
4680         then
4681           VLC_ADD_LIBS([mozilla],[-lembedstring])
4682         fi
4683       fi
4684     fi
4685     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
4686
4687     if test -n "${CYGPATH}"; then
4688       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4689     fi
4690     CPPFLAGS="${CPPFLAGS_save}"
4691  ])
4692 fi
4693 AC_LANG_POP(C++)
4694 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4695
4696 dnl
4697 dnl  Plugin and builtin checks
4698 dnl
4699 plugin_support=yes
4700
4701 dnl Automagically disable plugins if there is no system support for
4702 dnl dynamically loadable files (.so, .dll, .dylib).
4703 dnl don't forget vlc-win32 still can load .dll as plugins
4704 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
4705   AC_MSG_WARN([*** No plugin support! Building statically! ***])
4706   plugin_support=no
4707 ])
4708
4709 AS_IF([test "${plugin_support}" != "no"], [
4710   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
4711 ])
4712
4713 dnl
4714 dnl Pic and shared libvlc stuff
4715 dnl
4716 AS_IF([test "${SYS}" = "mingw32"], [
4717   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
4718   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
4719 ])
4720
4721 dnl
4722 dnl  Stuff used by the program
4723 dnl
4724 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4725 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
4726 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4727 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4728 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4729 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4730 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
4731 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
4732 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
4733 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
4734 AC_SUBST(COPYRIGHT_MESSAGE)
4735 AC_SUBST(VERSION_MESSAGE)
4736 AC_SUBST(VERSION_MAJOR)
4737 AC_SUBST(VERSION_MINOR)
4738 AC_SUBST(VERSION_REVISION)
4739 AC_SUBST(VERSION_EXTRA)
4740 AC_SUBST(COPYRIGHT_YEARS)
4741 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4742 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4743 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4744 dnl Win32 need s a numerical version_extra.
4745 case $( echo ${VERSION_EXTRA}|wc -m ) in
4746        "1") VERSION_EXTRA_RC="0";;
4747        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
4748        *) VERSION_EXTRA_RC="99"
4749 esac
4750 AC_SUBST(VERSION_EXTRA_RC)
4751 dnl
4752 dnl  Handle substvars that use $(top_srcdir)
4753 dnl
4754 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4755 AC_SUBST(VLC_CONFIG)
4756 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
4757
4758 dnl
4759 dnl  Restore *FLAGS
4760 dnl
4761 VLC_RESTORE_FLAGS
4762
4763 dnl
4764 dnl Sort the modules list
4765 dnl
4766 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4767
4768 dnl
4769 dnl  Create the vlc-config script
4770 dnl
4771 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
4772
4773 dnl
4774 dnl  Configuration is finished
4775 dnl
4776 AC_SUBST(SYS)
4777 AC_SUBST(ARCH)
4778 AC_SUBST(ALIASES)
4779 AC_SUBST(ASM)
4780 AC_SUBST(MOC)
4781 AC_SUBST(RCC)
4782 AC_SUBST(UIC)
4783 AC_SUBST(WINDRES)
4784 AC_SUBST(MOZILLA_SDK_PATH)
4785 AC_SUBST(WINE_SDK_PATH)
4786 AC_SUBST(LIBEXT)
4787 AC_SUBST(AM_CPPFLAGS)
4788 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4789 AC_SUBST(FILE_LIBVLCCORE_DLL)
4790 AC_SUBST(FILE_LIBVLC_DLL)
4791
4792 dnl Create vlc-config.in
4793 VLC_OUTPUT_VLC_CONFIG_IN
4794
4795 AC_CONFIG_FILES([
4796   extras/package/win32/spad.nsi
4797   extras/package/win32/vlc.win32.nsi
4798   extras/package/macosx/Info.plist
4799   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4800   extras/package/macosx/plugin/Info.plist
4801   extras/package/macosx/plugin/InstallerInfo.plist
4802   Makefile
4803   projects/activex/Makefile
4804   projects/activex/axvlc.inf
4805   doc/Makefile
4806   extras/package/ipkg/Makefile
4807   libs/loader/Makefile
4808   libs/srtp/Makefile
4809   libs/unzip/Makefile
4810   modules/Makefile
4811   projects/mozilla/Makefile
4812   m4/Makefile
4813   po/Makefile.in
4814   projects/activex/axvlc_rc.rc
4815   projects/mozilla/npvlc_rc.rc
4816   projects/mozilla/vlc.r
4817   projects/mozilla/install.js
4818   projects/mozilla/install.rdf
4819   share/Makefile
4820   compat/Makefile
4821   src/Makefile
4822   src/test/Makefile
4823   bin/Makefile
4824   test/Makefile
4825   modules/access/Makefile
4826   modules/access/bd/Makefile
4827   modules/access/bda/Makefile
4828   modules/access/dshow/Makefile
4829   modules/access/dvb/Makefile
4830   modules/access/mms/Makefile
4831   modules/access/rtp/Makefile
4832   modules/access/rtsp/Makefile
4833   modules/access/vcd/Makefile
4834   modules/access/vcdx/Makefile
4835   modules/access/screen/Makefile
4836   modules/access/zip/Makefile
4837   modules/access_output/Makefile
4838   modules/audio_filter/Makefile
4839   modules/audio_filter/channel_mixer/Makefile
4840   modules/audio_filter/converter/Makefile
4841   modules/audio_filter/resampler/Makefile
4842   modules/audio_filter/spatializer/Makefile
4843   modules/audio_mixer/Makefile
4844   modules/audio_output/Makefile
4845   modules/codec/Makefile
4846   modules/codec/avcodec/Makefile
4847   modules/codec/dmo/Makefile
4848   modules/codec/omxil/Makefile
4849   modules/codec/shine/Makefile
4850   modules/codec/subtitles/Makefile
4851   modules/codec/spudec/Makefile
4852   modules/codec/wmafixed/Makefile
4853   modules/control/Makefile
4854   modules/control/http/Makefile
4855   modules/control/globalhotkeys/Makefile
4856   modules/demux/Makefile
4857   modules/demux/asf/Makefile
4858   modules/demux/avformat/Makefile
4859   modules/demux/avi/Makefile
4860   modules/demux/mkv/Makefile
4861   modules/demux/mp4/Makefile
4862   modules/demux/mpeg/Makefile
4863   modules/demux/playlist/Makefile
4864   modules/gui/Makefile
4865   modules/gui/macosx/Makefile
4866   modules/gui/hildon/Makefile
4867   modules/gui/minimal_macosx/Makefile
4868   modules/gui/macosx_dialog_provider/Makefile
4869   modules/gui/qt4/Makefile
4870   modules/gui/skins2/Makefile
4871   modules/meta_engine/Makefile
4872   modules/misc/Makefile
4873   modules/misc/dummy/Makefile
4874   modules/misc/lua/Makefile
4875   modules/misc/notify/Makefile
4876   modules/misc/playlist/Makefile
4877   modules/misc/osd/Makefile
4878   modules/misc/stats/Makefile
4879   modules/misc/xml/Makefile
4880   modules/mux/Makefile
4881   modules/mux/mpeg/Makefile
4882   modules/packetizer/Makefile
4883   modules/services_discovery/Makefile
4884   modules/stream_filter/Makefile
4885   modules/stream_out/Makefile
4886   modules/stream_out/transcode/Makefile
4887   modules/video_chroma/Makefile
4888   modules/video_filter/Makefile
4889   modules/video_filter/dynamicoverlay/Makefile
4890   modules/video_output/Makefile
4891   modules/video_output/msw/Makefile
4892   modules/visualization/Makefile
4893   modules/visualization/visual/Makefile
4894   modules/mmx/Makefile
4895   modules/mmxext/Makefile
4896   modules/3dnow/Makefile
4897   modules/sse2/Makefile
4898   modules/altivec/Makefile
4899   modules/arm_neon/Makefile
4900 ])
4901
4902 dnl Generate makefiles
4903 AC_OUTPUT
4904
4905 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4906 # not provided with the source
4907 ${SHELL} ./config.status --file=vlc-config
4908 chmod 0755 vlc-config
4909
4910 /bin/echo -n "Enabled modules: "
4911 ./vlc-config --list plugin
4912
4913 dnl Do we have to use make or gmake ?
4914 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4915 dnl Shortcut to nice compile message
4916 rm -f compile
4917 if test -n $SHELL; then
4918   SHELL=${CONFIG_SHELL-/bin/sh}
4919 fi
4920 echo '#! '$SHELL >compile
4921 echo rm -f .error\$\$ >>compile
4922 echo ERROR=0 >>compile
4923 echo export PATH=$PATH LANG=C >>compile
4924 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4925 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4926 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4927 echo rm -f .error\$\$ >>compile
4928 echo exit \$ERROR >>compile
4929 chmod a+x compile
4930
4931 printf "
4932 libvlc configuration
4933 --------------------
4934 version               : ${VERSION}
4935 system                : ${SYS}
4936 architecture          : ${ARCH}
4937 build flavour         : "
4938 test "${enable_debug}" = "yes" && printf "debug "
4939 test "${enable_cprof}" = "yes" && printf "cprof "
4940 test "${enable_gprof}" = "yes" && printf "gprof "
4941 test "${enable_optimizations}" = "yes" && printf "optim "
4942 echo ""
4943 if test "${enable_vlc}" != "no"; then
4944 echo "vlc aliases           :${ALIASES}"
4945 else
4946 echo "build vlc executable  : no"
4947 fi
4948 echo "plugins/bindings      :${PLUGINS_BINDINGS}
4949
4950 You can tune the compiler flags in vlc-config.
4951 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'.
4952 "
4953 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
4954    echo ""
4955    echo "Warning: Due to a bug in ld, mmx/sse support has been"
4956    echo "         turned off."
4957    echo "         FFmpeg will be REALLY slow."
4958    echo "         VLC WILL NOT PERFORM AS EXPECTED."
4959    echo ""
4960 fi