]> git.sesse.net Git - vlc/blob - configure.ac
Remove libsysfs code
[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 dnl
2954 dnl skins2 module
2955 dnl
2956 AC_ARG_ENABLE(libtar,
2957   [  --enable-libtar         libtar support for skins2 (default enabled)])
2958
2959 AS_IF([test "${enable_libtar}" != "no"],[
2960   AC_CHECK_HEADERS(libtar.h, [
2961     VLC_ADD_LIBS([skins2],[-ltar])
2962   ] )
2963 ])
2964
2965 dnl
2966 dnl A52/AC3 decoder plugin
2967 dnl
2968 AC_ARG_ENABLE(a52,
2969   [  --enable-a52            A/52 support with liba52 (default enabled)])
2970 if test "${enable_a52}" != "no"
2971 then
2972   AC_ARG_WITH(a52,
2973     [  --with-a52=PATH         a52 headers and libraries])
2974   AC_ARG_WITH(a52-tree,
2975     [  --with-a52-tree=PATH    a52dec tree for static linking ],[],[])
2976   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2977   then
2978     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2979     if test -z "${real_a52_tree}"
2980     then
2981       dnl  The given directory can't be found
2982       AC_MSG_RESULT(no)
2983       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2984     fi
2985     dnl  Use a custom a52dec
2986     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2987     if test -f ${real_a52_tree}/include/a52.h
2988     then
2989       AC_MSG_RESULT(yes)
2990       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2991       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2992       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
2993       AC_CHECK_LIB(a52, a52_free, [
2994         VLC_ADD_PLUGIN([a52tofloat32])
2995         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2996         VLC_ADD_LIBS([a52tofloat32],[-la52])
2997         ],[
2998         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2999         then
3000           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3001         else
3002           AC_MSG_ERROR([the specified tree hasn't been compiled])
3003         fi
3004       ])
3005       LDFLAGS="${LDFLAGS_save}"
3006     else
3007       AC_MSG_RESULT(no)
3008       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3009     fi
3010   else
3011     if test -z "${with_a52}"
3012     then
3013       LDFLAGS_test=""
3014       CPPFLAGS_test=""
3015     else
3016       LDFLAGS_test="-L${with_a52}/lib"
3017       CPPFLAGS_test="-I${with_a52}/include"
3018     fi
3019     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3020     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3021     AC_CHECK_HEADERS(a52dec/a52.h, [
3022       AC_CHECK_LIB(a52, a52_free, [
3023         VLC_ADD_PLUGIN([a52tofloat32])
3024         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3025         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3026       ],[
3027         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.])
3028         ])
3029     ],[
3030       AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3031     ])
3032     CPPFLAGS="${CPPFLAGS_save}"
3033     LDFLAGS="${LDFLAGS_save}"
3034   fi
3035 fi
3036
3037 AC_ARG_WITH(a52-fixed,
3038       [  --with-a52-fixed        specify if liba52 has been compiled with fixed point support],
3039       [
3040         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3041
3042 dnl
3043 dnl DTS Coherent Acoustics decoder plugin
3044 dnl
3045 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3046
3047 dnl
3048 dnl  Flac plugin
3049 dnl
3050 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3051
3052 dnl
3053 dnl  Libmpeg2 plugin
3054 dnl
3055 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3056
3057 dnl
3058 dnl  Vorbis plugin
3059 dnl
3060 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3061
3062 dnl
3063 dnl  Tremor plugin
3064 dnl
3065 AC_ARG_ENABLE(tremor,
3066   [  --enable-tremor         Tremor decoder support (default disabled)])
3067 if test "${enable_tremor}" = "yes"
3068 then
3069   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3070     VLC_ADD_PLUGIN([tremor])
3071     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3072    ],[])
3073 fi
3074
3075 dnl
3076 dnl  Speex plugin
3077 dnl
3078 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3079
3080 dnl
3081 dnl  theora decoder plugin
3082 dnl
3083 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3084
3085 dnl
3086 dnl  dirac encoder plugin
3087 dnl
3088 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3089
3090 dnl
3091 dnl  schroedinger decoder plugin (for dirac format video)
3092 dnl
3093 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3094
3095 dnl
3096 dnl  PNG decoder module
3097 dnl
3098 AC_ARG_ENABLE(png,
3099   [  --enable-png            PNG support (default enabled)])
3100 if test "${enable_png}" != "no"; then
3101 AC_CHECK_HEADERS(png.h, [
3102   LDFLAGS="${LDFLAGS_save} -lz"
3103   AC_CHECK_LIB(png, png_set_rows, [
3104     VLC_ADD_LIBS([png],[-lpng -lz])
3105     VLC_ADD_PLUGIN([png osdmenu osd_parser])],
3106     [],[-lz])
3107     LDFLAGS="${LDFLAGS_save}"
3108   ])
3109 fi
3110 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3111
3112 dnl
3113 dnl H264 encoder plugin (using libx264)
3114 dnl
3115 AC_ARG_ENABLE(x264,
3116   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3117 if test "${enable_x264}" != "no"; then
3118   AC_ARG_WITH(x264-tree,
3119     [  --with-x264-tree=PATH   x264 tree for static linking ],[],[])
3120   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3121   then
3122     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3123     if test -z "${real_x264_tree}"
3124     then
3125       dnl  The given directory can't be found
3126       AC_MSG_RESULT(no)
3127       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3128     fi
3129     dnl  Use a custom libx264
3130     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3131     if test -f ${real_x264_tree}/x264.h
3132     then
3133       AC_MSG_RESULT(yes)
3134       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3135       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3136       PKG_CHECK_MODULES(X264,x264, [
3137         VLC_ADD_PLUGIN([x264])
3138         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3139         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3140         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3141           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3142         fi
3143       ],[
3144         AC_MSG_ERROR([the specified tree hasn't been compiled])
3145       ])
3146       LDFLAGS="${LDFLAGS_save}"
3147     else
3148       AC_MSG_RESULT(no)
3149       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3150     fi
3151   else
3152       PKG_CHECK_MODULES(X264,x264 >= 0.76, [
3153         VLC_ADD_PLUGIN([x264])
3154         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3155
3156         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3157           [ac_cv_ld_bsymbolic],
3158           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3159             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3160             LDFLAGS="${LDFLAGS_save}"
3161           ])
3162         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3163           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3164         ])
3165
3166         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3167         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3168           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3169         fi
3170       ],[
3171         if test "${enable_x264}" = "yes"; then
3172             AC_MSG_ERROR([Could not find libx264 >= 0.76 on your system: you may get it from http://www.videolan.org/x264.html])
3173           fi
3174       ])
3175     LDFLAGS="${LDFLAGS_save}"
3176   fi
3177 fi
3178
3179 dnl
3180 dnl libfluidsynth (MIDI synthetizer) plugin
3181 dnl
3182 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3183
3184 dnl
3185 dnl Teletext Modules
3186 dnl vbi decoder plugin (using libzbvi)
3187 dnl telx module
3188 dnl uncompatible
3189 dnl
3190 AC_ARG_ENABLE(zvbi,
3191   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3192                   libzvbi (default enabled)]))
3193 AC_ARG_ENABLE(telx,
3194   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3195                   zvbi) (default enabled if zvbi is absent)]))
3196
3197 AS_IF( [test "${enable_zvbi}" != "no"],[
3198     PKG_CHECK_MODULES(ZVBI,
3199         zvbi-0.2 >= 0.2.28,
3200         [
3201           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3202           if test "${SYS}" = "mingw32"; then
3203               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3204           fi
3205           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3206           VLC_ADD_PLUGIN([zvbi])
3207           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3208           AS_IF( [test "${enable_telx}" = "yes"],[
3209                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3210                                Using zvbi.])
3211                   ])
3212         ],[
3213           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3214         ])
3215     ])
3216 AS_IF( [test "${enable_telx}" != "no" ],[
3217   VLC_ADD_PLUGIN([telx])
3218   ])
3219
3220 dnl
3221 dnl libass subtitle rendering module
3222 dnl
3223 AC_ARG_ENABLE(libass,
3224   [  --enable-libass         Subtitle support using libass (default enabled)])
3225 AS_IF( [test "${enable_libass}" != "no"], [
3226   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3227       [
3228         VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
3229         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3230         VLC_ADD_PLUGIN([libass])
3231
3232         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3233           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3234            VLC_ADD_LIBS([libass],[-lfontconfig])
3235        ])
3236       ],[
3237         AC_MSG_WARN([LIBASS library not found])
3238       ])
3239   ])
3240
3241 dnl
3242 dnl asa demuxer
3243 dnl
3244 AC_ARG_ENABLE(asademux,
3245   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3246 AS_IF( [test "${enable_asademux}" = "yes"], [
3247   PKG_CHECK_MODULES(PCRE,
3248       libpcre >= 6.5,
3249       [
3250         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3251         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3252         if test "${SYS}" = "mingw32"; then
3253             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3254         fi
3255         VLC_ADD_PLUGIN([asademux])
3256       ],[
3257         AC_MSG_WARN([PCRE library not found (required for asademux)])
3258       ])
3259   ])
3260
3261 dnl
3262 dnl  kate decoder plugin
3263 dnl
3264 AC_ARG_ENABLE(kate,
3265 [  --enable-kate           kate codec (default enabled)])
3266 AS_IF([test "${enable_kate}" != "no"], [
3267   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3268       VLC_ADD_PLUGIN([kate])
3269       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3270       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3271         AC_CHECK_HEADERS(kate/kate.h, [
3272           AC_CHECK_LIB(kate, kate_decode_init, [
3273             VLC_ADD_PLUGIN([kate])
3274             kate_libs="-lkate -logg"
3275             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3276             AS_IF([test "x${enable_kate}" != "x"], [
3277               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3278               You also need to check that you have a libogg posterior to the 1.0 release.])
3279             ])
3280           ], [-lkate -logg])
3281         ],[
3282           AS_IF([test "x${enable_kate}" != "x"], [
3283             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3284             You also need to check that you have a libogg posterior to the 1.0 release.])
3285           ])
3286         ])
3287   ])
3288 ])
3289
3290
3291 dnl
3292 dnl  tiger rendering for kate decoder plugin
3293 dnl
3294 AC_ARG_ENABLE(tiger,
3295 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3296 AS_IF([test "${enable_tiger}" != "no"], [
3297   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3298       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3299       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3300       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3301         AS_IF([test "x${enable_tiger}" != "x"], [
3302           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3303         ])
3304   ])
3305 ])
3306
3307
3308
3309 dnl
3310 dnl  Video plugins
3311 dnl
3312
3313 EXTEND_HELP_STRING([Video plugins:])
3314
3315 dnl
3316 dnl  Xlib
3317 dnl
3318
3319 AC_PATH_XTRA()
3320
3321 dnl
3322 dnl  X C Bindings modules
3323 dnl
3324 AC_ARG_ENABLE(xcb,
3325   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3326   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
3327     enable_xcb="yes"
3328   ], [
3329     enable_xcb="no"
3330   ])
3331 ])
3332 AC_ARG_ENABLE(xvideo,
3333   [  --enable-xvideo         XVideo support (default enabled)],, [
3334     enable_xvideo="$enable_xcb"
3335 ])
3336
3337 need_xid_provider="no"
3338 AS_IF([test "${enable_xcb}" != "no"], [
3339   dnl libxcb
3340   PKG_CHECK_MODULES(XCB, [xcb])
3341   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3342   VLC_ADD_PLUGIN([screensaver xcb_x11 xcb_screen xcb_apps])
3343   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3344
3345   AS_IF([test "${enable_xvideo}" != "no"], [
3346     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3347       VLC_ADD_PLUGIN([xcb_xv])
3348     ], [
3349       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3350         VLC_ADD_PLUGIN([xcb_xv])
3351         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3352       ])
3353     ])
3354   ])
3355
3356   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3357     VLC_ADD_PLUGIN([panoramix])
3358     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3359     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3360   ], [true])
3361
3362   dnl xcb-utils
3363   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3364     have_xcb_keysyms="yes"
3365   ], [
3366     PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
3367       have_xcb_keysyms="yes"
3368       VLC_ADD_CFLAGS([globalhotkeys], [-DXCB_KEYSYM_OLD_API])
3369     ], [
3370       have_xcb_keysyms="no"
3371       need_xid_provider="yes"
3372     ])
3373   ])
3374
3375   AS_IF([test "${have_xcb_keysyms}" = "yes"], [
3376     PKG_CHECK_MODULES(XPROTO, [xproto])
3377     VLC_ADD_PLUGIN([xcb_window globalhotkeys])
3378     VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3379     VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3380   ])
3381   VLC_ADD_PLUGIN([xdg_screensaver])
3382 ])
3383
3384 AC_ARG_ENABLE(glx,
3385   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3386   enable_glx="$enable_xcb"
3387 ])
3388 AS_IF([test "${enable_glx}" != "no"], [
3389   PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb])
3390   PKG_CHECK_MODULES(GL, [gl],, [
3391     AC_CHECK_HEADER([GL/gl.h], [
3392       GL_CFLAGS=""
3393       GL_LIBS="-lGL"
3394     ], [
3395       AC_MSG_ERROR([GLX (libGL) cannot be found. If you do not need OpenGL with X11, use --disable-glx.])
3396     ])
3397   ])
3398   VLC_ADD_PLUGIN([xcb_glx])
3399 ])
3400 AC_SUBST([GL_CFLAGS])
3401 AC_SUBST([GL_LIBS])
3402
3403
3404 dnl
3405 dnl  OpenGL module
3406 dnl  (enabled by default except on beos)
3407 dnl
3408 AC_ARG_ENABLE(opengl,
3409   [  --enable-opengl         OpenGL support (default enabled)])
3410 if test "${enable_opengl}" != "no" &&
3411    test "${SYS}" = "darwin"; then
3412     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3413     VLC_ADD_PLUGIN([opengl])
3414     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3415 fi
3416
3417 dnl
3418 dnl  SDL module
3419 dnl
3420 AC_ARG_ENABLE(sdl,
3421   [  --enable-sdl            SDL support (default enabled)])
3422 AC_ARG_ENABLE(sdl-image,
3423   [  --enable-sdl-image      SDL image support (default enabled)])
3424 if test "${enable_sdl}" != "no"
3425 then
3426   SDL_PATH="${PATH}"
3427   AC_ARG_WITH(sdl-config-path,
3428     [  --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3429     [ if test "${with_sdl_config_path}" != "no"
3430       then
3431         SDL_PATH="${with_sdl_config_path}:${PATH}"
3432       fi ])
3433   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3434   SDL_HEADER="SDL/SDL.h"
3435   SDL_IMAGE="SDL/SDL_image.h"
3436
3437   if test "${SDL_CONFIG}" != "no";  then
3438      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3439         # SDL on Darwin is heavily patched and can only run SDL_image
3440         if test "${SYS}" != "darwin"; then
3441           VLC_ADD_PLUGIN([vout_sdl aout_sdl])
3442         fi
3443         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3444         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3445
3446         # SDL_image
3447         AS_IF([ test "${enable_sdl_image}" != "no"],[
3448           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3449             VLC_ADD_PLUGIN([sdl_image])
3450             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3451             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3452             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3453             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3454             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3455       You should install it alongside your SDL package.])
3456             ])
3457         ])
3458      ],[
3459        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3460                     Alternatively you can also configure with --disable-sdl.])
3461      ])
3462   else if test "${enable_sdl}" =  "yes"; then
3463     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3464 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3465     ])
3466       fi
3467   fi
3468 fi
3469
3470 dnl
3471 dnl  freetype module
3472 dnl
3473 AC_ARG_ENABLE(freetype,
3474   [  --enable-freetype       freetype support (default enabled)])
3475 AC_ARG_ENABLE(fribidi,
3476   [  --enable-fribidi        fribidi support (default enabled)])
3477 AC_ARG_ENABLE(fontconfig,
3478   [  --enable-fontconfig     fontconfig support (default enabled)])
3479 if test "${enable_freetype}" != "no"
3480 then
3481    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3482       VLC_ADD_PLUGIN([freetype])
3483       have_freetype=yes
3484       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3485       if test "${SYS}" = "mingw32"; then
3486         VLC_ADD_LIBS([freetype],[-liconv -lz])
3487       fi
3488       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3489       if test "${enable_fontconfig}" != "no"
3490       then
3491         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3492           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3493            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3494         AC_CHECK_HEADERS(Carbon/Carbon.h,
3495           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3496       fi
3497
3498      dnl fribidi support
3499       if test "${enable_fribidi}" != "no"
3500       then
3501         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3502           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3503           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3504         ])
3505       fi
3506
3507   ],[
3508   have_freetype=no
3509   AS_IF([ test "${enable_freetype}" =  "yes"],[
3510     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3511 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3512       ])
3513     ])
3514   ])
3515
3516 fi
3517
3518 dnl
3519 dnl  libxml2 module
3520 dnl
3521 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3522
3523 dnl
3524 dnl  SVG module
3525 dnl
3526 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3527
3528 dnl
3529 dnl Snapshot vout module (with cache)
3530 dnl
3531 AC_ARG_ENABLE(snapshot,
3532   [  --enable-snapshot       snapshot module (default disabled)])
3533 if test "${enable_snapshot}" = "yes"
3534 then
3535   VLC_ADD_PLUGIN([snapshot])
3536 fi
3537
3538 dnl
3539 dnl Roku HD1000 Video output module
3540 dnl
3541 AC_ARG_ENABLE(hd1000v,
3542   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3543 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3544   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3545    test "${enable_hd1000v}" = "yes"); then
3546   AC_LANG_PUSH([C++])
3547   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3548   [
3549     can_build_roku="yes"
3550   ],
3551   [
3552     can_build_roku="no"
3553     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3554   ])
3555   if test "$can_build_roku" = "yes"
3556   then
3557     VLC_ADD_PLUGIN([hd1000v])
3558     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3559   fi
3560   AC_LANG_POP([C++])
3561 fi
3562
3563 dnl
3564 dnl  Windows DirectX module
3565 dnl
3566
3567 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3568 then
3569   VLC_ADD_PLUGIN([panoramix])
3570 fi
3571
3572 AC_ARG_ENABLE(directx,
3573   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3574 if test "${enable_directx}" != "no"
3575 then
3576   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3577   then
3578       AC_CHECK_HEADERS(ddraw.h,
3579       [ VLC_ADD_PLUGIN([directx aout_directx])
3580         VLC_ADD_LIBS([directx],[-lgdi32])
3581       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3582       )
3583       AC_CHECK_HEADERS(GL/gl.h,
3584       [ VLC_ADD_PLUGIN([glwin32])
3585         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3586       ])
3587       AC_CHECK_HEADERS(d3d9.h,
3588       [ VLC_ADD_PLUGIN([direct3d])
3589         VLC_ADD_LIBS([direct3d],[-lgdi32])
3590       ])
3591       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3592   fi
3593 fi
3594
3595 dnl
3596 dnl  win32 GDI plugin
3597 dnl
3598 AC_ARG_ENABLE(wingdi,
3599   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3600 if test "${enable_wingdi}" != "no"; then
3601   if test "${SYS}" = "mingw32"; then
3602     VLC_ADD_PLUGIN([wingdi])
3603     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3604   fi
3605   if test "${SYS}" = "mingwce"; then
3606     VLC_ADD_PLUGIN([wingdi wingapi])
3607     VLC_ADD_LIBS([wingdi],[-laygshell])
3608     VLC_ADD_LIBS([wingapi],[-laygshell])
3609   fi
3610 fi
3611
3612
3613 dnl
3614 dnl  Linux framebuffer module
3615 dnl
3616 AC_ARG_ENABLE(fb,
3617   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3618     if test "${enable_fb}" != "no"
3619     then
3620       AC_CHECK_HEADERS(linux/fb.h, [
3621         VLC_ADD_PLUGIN([fb])
3622       ])
3623     fi
3624
3625 dnl
3626 dnl  OMAP Framebuffer module
3627 dnl
3628 AC_ARG_ENABLE(omapfb,
3629   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3630     if test "${enable_omapfb}" = "yes"
3631     then
3632       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3633         VLC_ADD_PLUGIN([omapfb])
3634         AC_CHECK_HEADERS(X11/Xlib.h, [
3635           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
3636       ])
3637       VLC_ADD_PLUGIN([swscale_omap])
3638     fi
3639
3640 dnl
3641 dnl  SVGAlib module
3642 dnl
3643 AC_ARG_ENABLE(svgalib,
3644   [  --enable-svgalib        SVGAlib support (default disabled)])
3645 if test "${enable_svgalib}" = "yes"
3646 then
3647   VLC_ADD_PLUGIN([svgalib])
3648   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3649 fi
3650
3651 dnl
3652 dnl  DirectFB module
3653 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3654 dnl  TODO: support for static linking
3655 dnl
3656 AC_ARG_ENABLE(directfb,
3657   [  --enable-directfb       DirectFB support (default disabled)])
3658 AC_ARG_WITH(directfb,
3659   [  --with-directfb=PATH    path to DirectFB headers and libraries])
3660
3661 if test "${enable_directfb}" = "yes"; then
3662     have_directfb="false"
3663     CPPFLAGS_mydirectfb=
3664     LIBS_mydirectfb=
3665     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3666         dnl Trying the given location
3667         CPPFLAGS_save="${CPPFLAGS}"
3668         LIBS_save="${LIBS}"
3669
3670         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3671         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3672         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3673
3674         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3675         LIBS="${LIBS} ${LIBS_new}"
3676
3677         dnl FIXME: too obscure
3678         AC_CHECK_HEADER([directfb.h], [
3679             AC_CHECK_LIB([direct],[direct_initialize], [
3680                 AC_CHECK_LIB([fusion], [fusion_enter], [
3681                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3682                 ], have_directfb="false")
3683             ], have_directfb="false")
3684         ], have_directfb="false")
3685
3686         dnl Restore flags
3687         CPPFLAGS="${CPPFLAGS_save}"
3688         LIBS="${LIBS_save}"
3689
3690         if test "${have_directfb}" = "true"; then
3691             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
3692             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3693         fi
3694     else
3695         dnl Look for directfb-config
3696         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3697         if test "${DIRECTFB_CONFIG}" != "no"; then
3698             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3699             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3700             have_directfb="true"
3701         else
3702             dnl Trying with pkg-config
3703             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3704                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3705                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3706                 have_directfb="true"
3707                 ], [have_directfb="false"])
3708         fi
3709     fi
3710     if test "${have_directfb}" = "true"; then
3711         VLC_ADD_PLUGIN([directfb])
3712         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3713         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3714     else
3715         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3716     fi
3717 fi
3718
3719
3720
3721 dnl
3722 dnl  GGI module
3723 dnl
3724 AC_ARG_ENABLE(ggi,
3725   [  --enable-ggi            GGI support (default disabled)])
3726 if test "${enable_ggi}" = "yes"
3727 then
3728   AC_CHECK_HEADER([ggi/ggi.h],[
3729     VLC_ADD_PLUGIN([ggi])
3730     VLC_ADD_LIBS([ggi],[-lggi])
3731     AC_ARG_WITH(ggi,
3732       [  --with-ggi=PATH         path to libggi],
3733       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3734         then
3735           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3736           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
3737         fi ])
3738     ],[
3739        AC_MSG_ERROR([LibGGI development files can't be found])
3740     ])
3741 fi
3742
3743 dnl
3744 dnl  AA plugin
3745 dnl
3746 AC_ARG_ENABLE(aa,
3747   [  --enable-aa             aalib output (default disabled)])
3748 if test "${enable_aa}" = "yes"
3749 then
3750   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3751   if test "${have_aa}" = "true"
3752   then
3753     VLC_ADD_PLUGIN([aa])
3754     VLC_ADD_LIBS([aa],[-laa])
3755   fi
3756 fi
3757
3758 dnl
3759 dnl  libcaca plugin
3760 dnl
3761 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3762
3763 dnl
3764 dnl  Audio plugins
3765 dnl
3766
3767 EXTEND_HELP_STRING([Audio plugins:])
3768
3769 dnl
3770 dnl  OSS /dev/dsp module (enabled by default except on win32)
3771 dnl
3772 AC_ARG_ENABLE(oss,
3773   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3774
3775 if test "${enable_oss}" != "no" &&
3776   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3777    test "${enable_oss}" = "yes")
3778 then
3779   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3780     VLC_ADD_PLUGIN([oss access_oss])
3781     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss access_oss],[-lossaudio])])
3782   ])
3783 fi
3784
3785 dnl
3786 dnl  Pulseaudio module
3787 dnl
3788 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
3789
3790 dnl
3791 dnl  Portaudio module
3792 dnl
3793 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3794
3795 dnl
3796 dnl  ALSA module
3797 dnl
3798 PKG_ENABLE_MODULES_VLC([ALSA], [alsa access_alsa], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
3799
3800 dnl
3801 dnl  win32 waveOut plugin
3802 dnl
3803 AC_ARG_ENABLE(waveout,
3804   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3805 if test "${enable_waveout}" != "no"; then
3806   if test "${SYS}" = "mingw32"; then
3807     VLC_ADD_PLUGIN([waveout])
3808     VLC_ADD_LIBS([waveout],[-lwinmm])
3809   fi
3810   if test "${SYS}" = "mingwce"; then
3811     VLC_ADD_PLUGIN([waveout])
3812   fi
3813 fi
3814
3815 dnl
3816 dnl  CoreAudio plugin
3817 dnl
3818 AC_ARG_ENABLE(macosx-audio,
3819   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
3820 if test "x${enable_macosx_audio}" != "xno" &&
3821   (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3822 then
3823   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3824     [ VLC_ADD_PLUGIN([auhal])
3825       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3826     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3827 fi
3828
3829 dnl
3830 dnl  Roku HD1000 audio
3831 dnl
3832 AC_ARG_ENABLE(hd1000a,
3833   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3834 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3835   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3836    test "${enable_hd1000a}" = "yes")
3837 then
3838   AC_LANG_PUSH([C++])
3839   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3840     VLC_ADD_PLUGIN([hd1000a])
3841     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
3842   AC_LANG_POP([C++])
3843 fi
3844
3845 dnl
3846 dnl  JACK modules
3847 dnl
3848 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3849
3850
3851 dnl
3852 dnl  CyberLink for C++ UPnP stack
3853 dnl
3854 AC_ARG_ENABLE(cyberlink,
3855   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
3856   AS_IF([test "${enable_cyberlink}" = "yes" ], [
3857   AC_ARG_WITH(cyberlink-tree,
3858     [  --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
3859
3860   dnl
3861   dnl test for --with-cyberlink-tree
3862   dnl
3863   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
3864     AC_LANG_PUSH(C++)
3865     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
3866     AS_IF([test -z "${real_cyberlink_tree}"], [
3867       dnl  The given directory can't be found
3868       AC_MSG_RESULT(no)
3869       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
3870     ])
3871     CPPFLAGS_save="${CPPFLAGS}"
3872     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
3873     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
3874     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
3875       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
3876         VLC_ADD_PLUGIN([upnp_cc])
3877       ],[
3878         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
3879       ])
3880     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
3881     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
3882       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
3883       dnl The mere fact that we have to make such an ugly check sucks
3884       AC_MSG_CHECKING(for XML parser to link CyberLink with)
3885       LIBS_save="$LIBS"
3886       LIBS_cclink="no"
3887       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
3888         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
3889         AC_LINK_IFELSE([AC_LANG_PROGRAM([
3890 #include <cybergarage/upnp/media/player/MediaPlayer.h>
3891 using namespace CyberLink;
3892
3893 class testclass : public SearchResponseListener, public MediaPlayer
3894 {
3895     virtual void deviceSearchResponseReceived( SSDPPacket *)
3896     {
3897     }
3898
3899     public:
3900       testclass (void)
3901       {
3902         addSearchResponseListener (this);
3903         start ();
3904       }
3905 };
3906 ],[testclass l;])],[LIBS_cclink="$l"])
3907       done
3908       LIBS="${LIBS_save}"
3909       dnl should not happen - otherwise this needs fixing - hence FAILURE
3910       AS_IF([test "${LIBS_cclink}" = "no"],
3911         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
3912       AC_MSG_RESULT([${LIBS_cclink}])
3913       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
3914     ], [
3915       AC_MSG_RESULT(no)
3916       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
3917     ])
3918     CPPFLAGS="${CPPFLAGS_save}"
3919     AC_LANG_POP([C++])
3920   ])
3921 ])
3922
3923 dnl
3924 dnl UPnP Plugin (Intel SDK)
3925 dnl
3926 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
3927
3928
3929 dnl
3930 dnl  Interface plugins
3931 dnl
3932
3933 EXTEND_HELP_STRING([Interface plugins:])
3934
3935 dnl
3936 dnl Skins2 module
3937 dnl
3938 AC_ARG_ENABLE(skins2,
3939   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
3940    enabled except on MacOSX, BeOS and WinCE)])])
3941 if test "${enable_skins2}" = "yes" ||
3942   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3943    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3944
3945   dnl test for the required libraries
3946   skins2_missing_lib="no"
3947
3948   dnl freetype
3949   if test "${have_freetype}" != "yes"; then
3950     skins2_missing_lib="yes"
3951     if test "${enable_skins2}" = "yes"; then
3952       AC_MSG_ERROR([Could not find freetype (required for skins2)])
3953     fi
3954   fi
3955
3956   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
3957     VLC_ADD_PLUGIN([skins2])
3958     ALIASES="${ALIASES} svlc"
3959     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3960     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3961     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
3962
3963   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
3964     VLC_ADD_PLUGIN([skins2])
3965     ALIASES="${ALIASES} svlc"
3966     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3967     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3968     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
3969
3970   else if test "${skins2_missing_lib}" = "no"; then
3971     VLC_ADD_PLUGIN([skins2])
3972     ALIASES="${ALIASES} svlc"
3973     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
3974     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3975     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
3976     need_xid_provider="no"
3977   fi fi fi
3978 fi
3979 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
3980          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3981           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
3982
3983 dnl
3984 dnl Hildon UI
3985 dnl
3986 AC_ARG_ENABLE(hildon,
3987   [  --enable-hildon         Hildon touchscreen UI (default disabled)])
3988 AS_IF([test "${enable_hildon}" = "yes"], [
3989   PKG_CHECK_MODULES(HILDON, [hildon-1], [
3990     PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3991       VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -IHAVE_HILDON_FM])
3992       VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3993     ], [
3994       AC_MSG_WARN(hildon-fm-2 not found)
3995     ])
3996     VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3997     VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3998     VLC_ADD_PLUGIN([hildon])
3999     ALIASES="${ALIASES} mvlc"
4000     need_xid_provider="no"
4001   ], [
4002     AS_IF([test "${enable_hildon}" = "yes"],[
4003       AC_MSG_ERROR([Hildon libraries not found])
4004     ])
4005     enable_hildon="no"
4006   ])
4007 ])
4008 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
4009
4010 dnl
4011 dnl QT 4
4012 dnl
4013 AC_ARG_ENABLE(qt4,
4014   [  --enable-qt4            Qt 4 support (default enabled) ],, [
4015   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4016 ])
4017 AS_IF([test "${enable_qt4}" != "no"], [
4018   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4019     VLC_ADD_PLUGIN([qt4])
4020     ALIASES="${ALIASES} qvlc"
4021     QT4LOCALEDIR="$(eval $PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4022     AC_SUBST(QT4LOCALEDIR)
4023     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4024         VLC_ADD_LIBS([qt4],[$QT4_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
4025         need_xid_provider="no"
4026         VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS ${X_CFLAGS} -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4027     ], [
4028         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4029         VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4030     ])
4031     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4032     AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4033     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4034   ], [
4035     AS_IF([test "${enable_qt4}" = "yes"],[
4036       AC_MSG_ERROR([Qt 4 library not found])
4037     ],[
4038       AC_MSG_WARN([Qt 4 library not found])
4039     ])
4040     enable_qt4="no"
4041   ])
4042 ])
4043 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4044
4045 dnl
4046 dnl Simple test for skins2 dependency
4047 dnl
4048 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4049   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.])
4050 ])
4051
4052 dnl
4053 dnl  MacOS X video output/gui modules
4054 dnl
4055 AC_ARG_ENABLE(macosx,
4056   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
4057 if test "x${enable_macosx}" = "xyes"
4058 then
4059   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,Cocoa])
4060   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,OpenGL])
4061   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4062   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4063   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4064   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4065   VLC_ADD_LDFLAGS([macosx],                           [-F${CONTRIB_DIR}/Sparkle -Wl,-framework,Sparkle])
4066   VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/Sparkle])
4067   dnl For bug report
4068   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4069   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4070   VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
4071
4072   VLC_ADD_PLUGIN([macosx minimal_macosx])
4073 fi
4074
4075 dnl
4076 dnl  MacOS X related modules
4077 dnl
4078
4079 AC_ARG_ENABLE(macosx-vout,
4080   [  --enable-macosx-vout    Mac OS X video output module (default enabled on Mac OS X)])
4081 if test "x${enable_macosx_vout}" != "xno" &&
4082   (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
4083 then
4084   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,Cocoa])
4085   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,OpenGL])
4086   VLC_ADD_PLUGIN([vout_macosx])
4087 fi
4088
4089 AC_ARG_ENABLE(macosx-dialog-provider,
4090   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
4091 if test "x${enable_macosx_dialog_provider}" != "xno" &&
4092   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
4093 then
4094   VLC_ADD_LDFLAGS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
4095   VLC_ADD_PLUGIN([macosx_dialog_provider])
4096 fi
4097
4098 AC_ARG_ENABLE(macosx-qtcapture,
4099   [  --enable-macosx-qtcapture Mac OS X qtcapture (iSight) module (default enabled on Mac OS X)])
4100 if test "x${enable_macosx_qtcapture}" != "xno" &&
4101   (test "${SYS}" = "darwin" || test "${enable_macosx_qtcapture}" = "yes")
4102 then
4103   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,Cocoa])
4104   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QTKit])
4105   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreAudio])
4106   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QuartzCore])
4107   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreVideo])
4108   VLC_ADD_PLUGIN([qtcapture])
4109 fi
4110
4111 AC_ARG_ENABLE(macosx-eyetv,
4112   [  --enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
4113 if test "x${enable_macosx_eyetv}" != "xno" &&
4114   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
4115 then
4116   VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,Foundation])
4117   VLC_ADD_PLUGIN([access_eyetv])
4118 fi
4119
4120 AC_ARG_ENABLE(macosx-vlc-app,
4121   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4122 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4123     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4124
4125
4126 dnl
4127 dnl  ncurses module
4128 dnl
4129 AC_ARG_ENABLE(ncurses,
4130   [  --disable-ncurses       ncurses interface support (default disabled)],
4131   [if test "${enable_ncurses}" != "no"; then
4132     AC_CHECK_HEADER(ncurses.h,
4133       [AC_CHECK_LIB(ncursesw, mvprintw,
4134         [VLC_ADD_PLUGIN([ncurses])
4135         VLC_ADD_LIBS([ncurses],[-lncursesw])
4136         ALIASES="${ALIASES} nvlc"
4137         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4138         AC_CHECK_LIB(ncursesw, tgetent, [],
4139           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4140             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4141               [AS_IF([test "x${enable_ncurses}" != "x"],
4142                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4143                )])])
4144             ]
4145           )
4146         )
4147         ],
4148         [AC_CHECK_LIB( ncurses, mvprintw,
4149           [VLC_ADD_PLUGIN([ncurses])
4150           ALIASES="${ALIASES} nvlc"
4151           VLC_ADD_LIBS([ncurses],[-lncurses])
4152           AC_CHECK_LIB(ncurses, tgetent, [],
4153             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4154               [AS_IF([test "x${enable_ncurses}" != "x"],
4155                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4156             )]
4157           )],
4158           [AS_IF([test "x${enable_ncurses}" != "x"], [
4159             AC_MSG_ERROR([libncurses not found])])]
4160         )]
4161       )]
4162     )
4163   fi]
4164 )
4165
4166 dnl
4167 dnl  XOSD plugin
4168 dnl
4169 AC_ARG_ENABLE(xosd,
4170   [  --enable-xosd           xosd interface support (default disabled)])
4171 if test "${enable_xosd}" = "yes"
4172 then
4173   AC_CHECK_HEADERS(xosd.h,
4174     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4175       VLC_ADD_PLUGIN([xosd])
4176       VLC_ADD_LIBS([xosd],[-lxosd])
4177     ])
4178   )
4179 fi
4180
4181 dnl
4182 dnl Framebuffer (overlay) plugin
4183 dnl
4184 AC_ARG_ENABLE(fbosd,
4185   [  --enable-fbosd          fbosd interface support (default disabled)])
4186 if test "${enable_fbosd}" = "yes"
4187 then
4188   AC_CHECK_HEADERS(linux/fb.h, [
4189     VLC_ADD_PLUGIN([fbosd])
4190  ])
4191 fi
4192
4193 dnl
4194 dnl Post-interface configuration checks
4195 dnl
4196 AS_IF([test "$need_xid_provider" = "yes"], [
4197   AC_MSG_ERROR([X11 video outputs need a window provider (Qt4, Skins2, Hildon or xcb-utils), but none were found. Please install xcb-keysyms.])
4198 ])
4199
4200 dnl
4201 dnl Visualisation plugin
4202 dnl
4203 AC_ARG_ENABLE(visual,
4204   [  --enable-visual         visualisation plugin (default enabled)])
4205 if test "${enable_visual}" != "no"
4206 then
4207     VLC_ADD_PLUGIN([visual])
4208 fi
4209
4210 dnl
4211 dnl  goom visualization plugin
4212 dnl
4213 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4214
4215 dnl
4216 dnl libprojectM visualization plugin
4217 dnl
4218 AC_ARG_ENABLE(projectm,
4219   [  --enable-projectm          projectM visualization plugin (default enabled)])
4220 AS_IF([test "${enable_projectm}" != "no"],
4221   [
4222     PKG_CHECK_MODULES(PROJECTM, libprojectM,
4223     [
4224       VLC_ADD_PLUGIN([projectm])
4225       VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
4226       VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
4227       PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
4228         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4229         [ AC_MSG_WARN( [Using libprojectM version 1] )
4230       ])
4231     ],[
4232       AC_MSG_WARN([libprojectM library not found])
4233     ])
4234   ])
4235
4236 dnl
4237 dnl  AtmoLight (homemade Philips Ambilight clone)
4238 dnl
4239 AC_ARG_ENABLE(atmo,
4240 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
4241                 (default enabled)]),, [enable_atmo="yes"])
4242 AS_IF([test "${enable_atmo}" != no], [
4243   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4244     AC_LANG_PUSH(C++)
4245     VLC_ADD_PLUGIN([atmo])
4246     AC_LANG_POP(C++)
4247   ])
4248 ])
4249
4250 dnl
4251 dnl  Bonjour services discovery
4252 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4253
4254 dnl
4255 dnl  libudev services discovery
4256 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4257
4258 dnl
4259 dnl MTP devices services discovery
4260 PKG_ENABLE_MODULES_VLC([MTP], [], [libmtp >= 0.3.0],[MTP devices support],[auto])
4261
4262 dnl
4263 dnl  Lirc plugin
4264 dnl
4265 AC_ARG_ENABLE(lirc,
4266   [  --enable-lirc           lirc support (default disabled)])
4267 if test "${enable_lirc}" = "yes"
4268 then
4269   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4270   if test "${have_lirc}" = "true"
4271   then
4272     VLC_ADD_PLUGIN([lirc])
4273     VLC_ADD_LIBS([lirc],[-llirc_client])
4274   fi
4275 fi
4276
4277 EXTEND_HELP_STRING([Misc options:])
4278
4279 dnl
4280 dnl libgcrypt
4281 dnl
4282 AC_ARG_ENABLE(libgcrypt,
4283   [  --disable-libgcrypt     gcrypt support (default enabled)])
4284 AS_IF([test "${enable_libgcrypt}" != "no"], [
4285   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4286     libgcrypt-config --version >/dev/null || \
4287         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4288     AC_CHECK_LIB(gcrypt, gcry_control, [
4289       have_libgcrypt="yes"
4290       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4291       GCRYPT_LIBS="`libgcrypt-config --libs`"
4292     ], [
4293       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4294     ], [`libgcrypt-config --libs`])
4295   ], [
4296     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4297   ], [#include <gcrypt.h>]
4298   )
4299 ])
4300
4301 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4302   AS_IF([test "${have_libgcrypt}" = "yes"],[
4303     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4304   ])
4305 fi
4306 AC_SUBST(GCRYPT_CFLAGS)
4307 AC_SUBST(GCRYPT_LIBS)
4308 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4309
4310 dnl
4311 dnl TLS/SSL
4312 dnl
4313 AC_ARG_ENABLE(gnutls,
4314   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4315
4316 AS_IF([test "${have_libgcrypt}" != "yes"], [
4317   AS_IF([test "${enable_gnutls}" = "yes"], [
4318     AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
4319   ])
4320   enable_gnutls="no"
4321 ])
4322 AS_IF([test "${enable_gnutls}" != "no"], [
4323   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4324     VLC_ADD_PLUGIN([gnutls])
4325     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4326     AS_IF([test "${SYS}" = "mingw32"], [
4327       dnl pkg-config --libs gnutls omits these
4328       VLC_ADD_LIBS([gnutls], [-lz ${LTLIBINTL}])
4329     ])
4330     dnl The GnuTLS plugin invokes gcry_control directly.
4331     AS_IF([test "${have_libgcrypt}" = "yes"],[
4332       VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4333       VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4334     ])
4335     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4336   ], [
4337     AS_IF([test "${enable_gnutls}" = "yes"], [
4338       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4339     ])
4340   ])
4341 ])
4342
4343
4344 dnl
4345 dnl RemoteOSD plugin (VNC client as video filter)
4346 dnl
4347 AC_ARG_ENABLE(remoteosd,
4348   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4349
4350 AS_IF([test "${enable_remoteosd}" != "no"], [
4351   AS_IF([test "${have_libgcrypt}" = "yes"],[
4352     VLC_ADD_PLUGIN([remoteosd])
4353     VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4354     VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4355   ], [
4356     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4357   ])
4358 ])
4359
4360
4361 dnl
4362 dnl RAOP plugin
4363 dnl
4364 AC_MSG_CHECKING([whether to enable RAOP plugin])
4365 AS_IF([test "${have_libgcrypt}" = "yes"], [
4366   AC_MSG_RESULT(yes)
4367   VLC_ADD_PLUGIN([stream_out_raop])
4368   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4369   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4370 ], [
4371   AC_MSG_RESULT(no)
4372   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4373 ])
4374
4375
4376 dnl
4377 dnl OSSO (Maemo screen blanking) plugin
4378 dnl
4379 PKG_ENABLE_MODULES_VLC([OSSO], [], [libosso], [Maemo support], [auto])
4380
4381 AS_IF([test -f "/etc/maemo_version"], [
4382   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4383 ])
4384
4385
4386 dnl
4387 dnl update checking system
4388 dnl
4389 AC_ARG_ENABLE(update-check,
4390   [  --enable-update-check   update checking system (default disabled)])
4391 if test "${enable_update_check}" = "yes"
4392 then
4393   if test "${have_libgcrypt}" != "yes"
4394   then
4395     AC_MSG_ERROR([libgcrypt is required for update checking system])
4396   fi
4397   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4398   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4399   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4400 fi
4401
4402 dnl
4403 dnl SQLite
4404 dnl
4405 AC_ARG_WITH(sqlite,
4406   [  --with-sqlite=PATH      sqlite path linking])
4407 if test "${SYS}" != "darwin"; then
4408   PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4409 else
4410   if test "${enable_sqlite}" != "no"
4411   then
4412     AC_CHECK_HEADERS(sqlite3.h, [
4413         VLC_ADD_PLUGIN([sqlite])
4414         if test "${with_sqlite}" != "no" -a -n "${with_sqlite}"; then
4415           AC_MSG_CHECKING(existence of sqlite directory in ${with_sqlite})
4416           real_sqlite="`cd ${with_sqlite} 2>/dev/null && pwd`"
4417           if test -z "${real_sqlite}"
4418           then
4419             dnl  The given directory can't be found
4420             AC_MSG_RESULT(no)
4421             AC_MSG_ERROR([cannot cd to ${with_sqlite}])
4422           fi
4423           VLC_ADD_CFLAGS([sqlite],[-I${with_sqlite}/include])
4424           VLC_ADD_LIBS([sqlite], [-L${with_sqlite}/lib -lsqlite3])
4425           AC_MSG_RESULT(yes)
4426         else
4427           VLC_ADD_LIBS([sqlite], [-lsqlite3])
4428         fi
4429         AC_DEFINE([SQLITE_MODULE], 1, [Define if you want to use SQLite module]) ],
4430         AC_MSG_ERROR([sqlite3 is required for sqlite module]) )
4431   fi
4432 fi
4433 AM_CONDITIONAL([HAVE_SQLITE], [test "${enable_sqlite}" != "no"])
4434
4435
4436 dnl
4437 dnl  Endianness check
4438 dnl
4439 AC_C_BIGENDIAN
4440 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4441   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4442 ], [
4443   DEFS_BIGENDIAN=""
4444 ])
4445 AC_SUBST(DEFS_BIGENDIAN)
4446
4447 dnl
4448 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4449 dnl
4450 loader=false
4451 AC_ARG_ENABLE(loader,
4452   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4453                   (default disabled)]))
4454 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4455 AS_IF([test "${enable_loader}" = "yes"],
4456   [ VLC_ADD_PLUGIN([dmo])
4457     VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/libs/loader])
4458     VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4459     VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4460     VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4461   ])
4462
4463 EXTEND_HELP_STRING([Components:])
4464
4465 dnl
4466 dnl  the VLC binary
4467 dnl
4468 AC_ARG_ENABLE(vlc,
4469   [  --enable-vlc            build the VLC media player (default enabled)])
4470 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4471
4472 dnl
4473 dnl  Microsoft ActiveX support
4474 dnl
4475 activex=false
4476 AC_ARG_ENABLE(activex,
4477   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4478                   (default enabled on Win32)]))
4479 AC_ARG_WITH(wine-sdk-path,
4480   [  --with-wine-sdk-path=PATH path to wine sdk])
4481 if test "${enable_activex}" != "no"
4482 then
4483   if test "${SYS}" = "mingw32"
4484   then
4485     AC_CHECK_PROGS(MIDL, [midl], no)
4486     if test "${with_wine_sdk_path}" != ""
4487     then
4488        WINE_SDK_PATH=${with_wine_sdk_path}
4489        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4490     else
4491        WIDL=no
4492     fi
4493     AC_LANG_PUSH(C++)
4494     AC_CHECK_HEADERS(ole2.h,
4495       [AC_CHECK_HEADERS(olectl.h,
4496         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4497           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4498           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4499           AC_CHECK_HEADERS(objsafe.h,
4500             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4501             [
4502              #if HAVE_OLE2_H
4503              #   include <ole2.h>
4504              #endif
4505             ]
4506           )
4507           activex=:
4508           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4509         ],
4510         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4511       )],
4512       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4513     )
4514     AC_LANG_POP(C++)
4515   fi
4516 fi
4517 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4518 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4519 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4520 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4521 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4522
4523 dnl
4524 dnl  Mozilla plugin
4525 dnl
4526 mozilla=false
4527 AC_ARG_ENABLE(mozilla,
4528   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4529                   (default disabled)]))
4530 AC_ARG_WITH(mozilla-sdk-path,
4531   [  --with-mozilla-sdk-path=PATH path to mozilla sdk])
4532 AC_ARG_WITH(mozilla-pkg,
4533   [  --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4534 AC_LANG_PUSH(C++)
4535 if test "${enable_mozilla}" = "yes"
4536 then
4537   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4538     [
4539     dnl pkg-config
4540     dnl As we want to do a loop due to the number of name possible for the .pc
4541     dnl we can't use the pkg-config macros.
4542
4543     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4544     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4545     AC_MSG_NOTICE([Checking for Mozilla])
4546     found=0
4547     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4548     then
4549       found=1
4550     else
4551       if test -n "$PKG_CONFIG"; then
4552         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4553           echo "Trying to find $i.pc files" >&5
4554           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4555           then
4556             echo "Using $i.pc files." >&5
4557             echo "Using $i.pc files." >&6
4558             found=1
4559             MOZILLA_CFLAGS=$(eval $PKG_CONFIG --cflags "$i" )
4560             MOZILLA_LIBS=$(eval $PKG_CONFIG --libs "$i" )
4561             break
4562           fi
4563         done
4564       fi
4565     fi
4566     AS_IF( [test $found = 1],[
4567         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4568         MOZILLA_REQUIRED_HEADERS=1
4569         AC_CHECK_HEADERS([npfunctions.h])
4570         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4571         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4572           [#if HAVE_NPAPI_H
4573            # include <npapi.h>
4574            #endif
4575           ])
4576         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4577             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
4578         fi
4579         MOZILLA_REQUIRED_HEADERS=
4580         mozilla=:
4581         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4582            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
4583            AS_IF([ test "${SYS}" != "darwin"],[
4584              PKG_CHECK_MODULES(XPM, [xpm xt],[
4585                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4586              ],[
4587                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4588              ])
4589           ])
4590         ])
4591         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4592         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4593         VLC_ADD_PLUGIN([mozilla])
4594         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4595         MOZILLA_CONFIG=
4596         CPPFLAGS="${CPPFLAGS_save}"
4597           ],
4598           [
4599             AC_PATH_PROGS(MOZILLA_CONFIG,
4600             [mozilla-config seamonkey-config xulrunner-config],
4601         [no])
4602             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
4603           ]
4604         )
4605     dnl pkg-config failed but we might have found a mozilla-config
4606     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
4607       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
4608         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4609         AC_CHECK_LIB(Xt,XtStrings,
4610          [
4611            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
4612            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
4613          ],
4614          [],
4615          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
4616         ])
4617         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
4618         LDFLAGS="${LDFLAGS_save}"
4619       fi
4620
4621       mozilla=:
4622       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4623       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
4624       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
4625       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4626       MOZILLA_REQUIRED_HEADERS=1
4627       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4628       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4629       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4630         [#if HAVE_NPAPI_H
4631          # include <npapi.h>
4632          #endif
4633         ])
4634       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4635       then
4636         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4637       fi
4638       MOZILLA_REQUIRED_HEADERS=
4639       CPPFLAGS="${CPPFLAGS_save}"
4640       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
4641     ])
4642     dnl End of moz_sdk = ""
4643   ],[
4644     dnl special case for mingw32
4645     if test "${SYS}" = "mingw32"
4646     then
4647       AC_CHECK_TOOL(CYGPATH, cygpath, "")
4648       dnl latest gecko sdk does not have an xpcom directory
4649       if test -d "${with_mozilla_sdk_path}/xpcom"; then
4650           mozilla_sdk_xpcom="/xpcom"
4651       fi
4652     fi
4653
4654     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4655     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
4656     MOZILLA_REQUIRED_HEADERS=1
4657     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4658     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4659     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4660         [#if HAVE_NPAPI_H
4661           #include <npapi.h>
4662           #endif
4663         ])
4664     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4665     then
4666         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4667     fi
4668     MOZILLA_REQUIRED_HEADERS=
4669     mozilla=:
4670     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4671     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])
4672     if ${need_xpcom_libs}; then
4673        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])
4674       if test "${SYS}" = "mingw32"; then
4675         dnl latest gecko sdk does not have embedstring
4676         if test -d "${real_mozilla_sdk}/embedstring/bin"
4677         then
4678           VLC_ADD_LIBS([mozilla],[-lembedstring])
4679         fi
4680       fi
4681     fi
4682     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
4683
4684     if test -n "${CYGPATH}"; then
4685       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4686     fi
4687     CPPFLAGS="${CPPFLAGS_save}"
4688  ])
4689 fi
4690 AC_LANG_POP(C++)
4691 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4692
4693 dnl
4694 dnl  Plugin and builtin checks
4695 dnl
4696 plugin_support=yes
4697
4698 dnl Automagically disable plugins if there is no system support for
4699 dnl dynamically loadable files (.so, .dll, .dylib).
4700 dnl don't forget vlc-win32 still can load .dll as plugins
4701 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
4702   AC_MSG_WARN([*** No plugin support! Building statically! ***])
4703   plugin_support=no
4704 ])
4705
4706 AS_IF([test "${plugin_support}" != "no"], [
4707   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
4708 ])
4709
4710 dnl
4711 dnl Pic and shared libvlc stuff
4712 dnl
4713 AS_IF([test "${SYS}" = "mingw32"], [
4714   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
4715   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
4716 ])
4717
4718 dnl
4719 dnl  Stuff used by the program
4720 dnl
4721 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4722 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
4723 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4724 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4725 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4726 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4727 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
4728 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
4729 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
4730 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
4731 AC_SUBST(COPYRIGHT_MESSAGE)
4732 AC_SUBST(VERSION_MESSAGE)
4733 AC_SUBST(VERSION_MAJOR)
4734 AC_SUBST(VERSION_MINOR)
4735 AC_SUBST(VERSION_REVISION)
4736 AC_SUBST(VERSION_EXTRA)
4737 AC_SUBST(COPYRIGHT_YEARS)
4738 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4739 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4740 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4741 dnl Win32 need s a numerical version_extra.
4742 case $( echo ${VERSION_EXTRA}|wc -m ) in
4743        "1") VERSION_EXTRA_RC="0";;
4744        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
4745        *) VERSION_EXTRA_RC="99"
4746 esac
4747 AC_SUBST(VERSION_EXTRA_RC)
4748 dnl
4749 dnl  Handle substvars that use $(top_srcdir)
4750 dnl
4751 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4752 AC_SUBST(VLC_CONFIG)
4753 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
4754
4755 dnl
4756 dnl  Restore *FLAGS
4757 dnl
4758 VLC_RESTORE_FLAGS
4759
4760 dnl
4761 dnl Sort the modules list
4762 dnl
4763 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4764
4765 dnl
4766 dnl  Create the vlc-config script
4767 dnl
4768 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
4769
4770 dnl
4771 dnl  Configuration is finished
4772 dnl
4773 AC_SUBST(SYS)
4774 AC_SUBST(ARCH)
4775 AC_SUBST(ALIASES)
4776 AC_SUBST(ASM)
4777 AC_SUBST(MOC)
4778 AC_SUBST(RCC)
4779 AC_SUBST(UIC)
4780 AC_SUBST(WINDRES)
4781 AC_SUBST(MOZILLA_SDK_PATH)
4782 AC_SUBST(WINE_SDK_PATH)
4783 AC_SUBST(LIBEXT)
4784 AC_SUBST(AM_CPPFLAGS)
4785 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4786 AC_SUBST(FILE_LIBVLCCORE_DLL)
4787 AC_SUBST(FILE_LIBVLC_DLL)
4788
4789 dnl Create vlc-config.in
4790 VLC_OUTPUT_VLC_CONFIG_IN
4791
4792 AC_CONFIG_FILES([
4793   extras/package/win32/spad.nsi
4794   extras/package/win32/vlc.win32.nsi
4795   extras/package/macosx/Info.plist
4796   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4797   extras/package/macosx/plugin/Info.plist
4798   extras/package/macosx/plugin/InstallerInfo.plist
4799   Makefile
4800   projects/activex/Makefile
4801   projects/activex/axvlc.inf
4802   doc/Makefile
4803   extras/package/ipkg/Makefile
4804   libs/loader/Makefile
4805   libs/srtp/Makefile
4806   libs/unzip/Makefile
4807   modules/Makefile
4808   projects/mozilla/Makefile
4809   m4/Makefile
4810   po/Makefile.in
4811   projects/activex/axvlc_rc.rc
4812   projects/mozilla/npvlc_rc.rc
4813   projects/mozilla/vlc.r
4814   projects/mozilla/install.js
4815   projects/mozilla/install.rdf
4816   share/Makefile
4817   compat/Makefile
4818   src/Makefile
4819   src/test/Makefile
4820   bin/Makefile
4821   test/Makefile
4822   modules/access/Makefile
4823   modules/access/bd/Makefile
4824   modules/access/bda/Makefile
4825   modules/access/dshow/Makefile
4826   modules/access/dvb/Makefile
4827   modules/access/mms/Makefile
4828   modules/access/rtp/Makefile
4829   modules/access/rtsp/Makefile
4830   modules/access/vcd/Makefile
4831   modules/access/vcdx/Makefile
4832   modules/access/screen/Makefile
4833   modules/access/zip/Makefile
4834   modules/access_output/Makefile
4835   modules/audio_filter/Makefile
4836   modules/audio_filter/channel_mixer/Makefile
4837   modules/audio_filter/converter/Makefile
4838   modules/audio_filter/resampler/Makefile
4839   modules/audio_filter/spatializer/Makefile
4840   modules/audio_mixer/Makefile
4841   modules/audio_output/Makefile
4842   modules/codec/Makefile
4843   modules/codec/avcodec/Makefile
4844   modules/codec/dmo/Makefile
4845   modules/codec/omxil/Makefile
4846   modules/codec/shine/Makefile
4847   modules/codec/subtitles/Makefile
4848   modules/codec/spudec/Makefile
4849   modules/codec/wmafixed/Makefile
4850   modules/control/Makefile
4851   modules/control/http/Makefile
4852   modules/control/globalhotkeys/Makefile
4853   modules/demux/Makefile
4854   modules/demux/asf/Makefile
4855   modules/demux/avformat/Makefile
4856   modules/demux/avi/Makefile
4857   modules/demux/mkv/Makefile
4858   modules/demux/mp4/Makefile
4859   modules/demux/mpeg/Makefile
4860   modules/demux/playlist/Makefile
4861   modules/gui/Makefile
4862   modules/gui/macosx/Makefile
4863   modules/gui/hildon/Makefile
4864   modules/gui/minimal_macosx/Makefile
4865   modules/gui/macosx_dialog_provider/Makefile
4866   modules/gui/qt4/Makefile
4867   modules/gui/skins2/Makefile
4868   modules/meta_engine/Makefile
4869   modules/misc/Makefile
4870   modules/misc/dummy/Makefile
4871   modules/misc/lua/Makefile
4872   modules/misc/notify/Makefile
4873   modules/misc/playlist/Makefile
4874   modules/misc/osd/Makefile
4875   modules/misc/stats/Makefile
4876   modules/misc/xml/Makefile
4877   modules/mux/Makefile
4878   modules/mux/mpeg/Makefile
4879   modules/packetizer/Makefile
4880   modules/services_discovery/Makefile
4881   modules/stream_filter/Makefile
4882   modules/stream_out/Makefile
4883   modules/stream_out/transcode/Makefile
4884   modules/video_chroma/Makefile
4885   modules/video_filter/Makefile
4886   modules/video_filter/dynamicoverlay/Makefile
4887   modules/video_output/Makefile
4888   modules/video_output/msw/Makefile
4889   modules/visualization/Makefile
4890   modules/visualization/visual/Makefile
4891   modules/mmx/Makefile
4892   modules/mmxext/Makefile
4893   modules/3dnow/Makefile
4894   modules/sse2/Makefile
4895   modules/altivec/Makefile
4896   modules/arm_neon/Makefile
4897 ])
4898
4899 dnl Generate makefiles
4900 AC_OUTPUT
4901
4902 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4903 # not provided with the source
4904 ${SHELL} ./config.status --file=vlc-config
4905 chmod 0755 vlc-config
4906
4907 /bin/echo -n "Enabled modules: "
4908 ./vlc-config --list plugin
4909
4910 dnl Do we have to use make or gmake ?
4911 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4912 dnl Shortcut to nice compile message
4913 rm -f compile
4914 if test -n $SHELL; then
4915   SHELL=${CONFIG_SHELL-/bin/sh}
4916 fi
4917 echo '#! '$SHELL >compile
4918 echo rm -f .error\$\$ >>compile
4919 echo ERROR=0 >>compile
4920 echo export PATH=$PATH LANG=C >>compile
4921 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4922 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4923 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4924 echo rm -f .error\$\$ >>compile
4925 echo exit \$ERROR >>compile
4926 chmod a+x compile
4927
4928 printf "
4929 libvlc configuration
4930 --------------------
4931 version               : ${VERSION}
4932 system                : ${SYS}
4933 architecture          : ${ARCH}
4934 build flavour         : "
4935 test "${enable_debug}" = "yes" && printf "debug "
4936 test "${enable_cprof}" = "yes" && printf "cprof "
4937 test "${enable_gprof}" = "yes" && printf "gprof "
4938 test "${enable_optimizations}" = "yes" && printf "optim "
4939 echo ""
4940 if test "${enable_vlc}" != "no"; then
4941 echo "vlc aliases           :${ALIASES}"
4942 else
4943 echo "build vlc executable  : no"
4944 fi
4945 echo "plugins/bindings      :${PLUGINS_BINDINGS}
4946
4947 You can tune the compiler flags in vlc-config.
4948 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'.
4949 "
4950 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
4951    echo ""
4952    echo "Warning: Due to a bug in ld, mmx/sse support has been"
4953    echo "         turned off."
4954    echo "         FFmpeg will be REALLY slow."
4955    echo "         VLC WILL NOT PERFORM AS EXPECTED."
4956    echo ""
4957 fi