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