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