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