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