]> git.sesse.net Git - vlc/blob - configure.ac
Hard-code ntservice, motion and signals interface as appropriate
[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([dynamicoverlay])
1171 elif test "${SYS}" != "mingwce"; then
1172     VLC_ADD_PLUGIN([access_smb])
1173     VLC_ADD_PLUGIN([dmo])
1174     VLC_ADD_PLUGIN([msn])
1175     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1176     VLC_ADD_PLUGIN([globalhotkeys])
1177 fi
1178 if test "${SYS}" = "darwin"; then
1179     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
1180 fi
1181
1182 dnl
1183 dnl  Accelerated modules
1184 dnl
1185 AC_ARG_WITH(,[])
1186 AC_ARG_WITH(,[Optimization options:])
1187
1188 dnl  Check for fully working MMX intrinsics
1189 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1190 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1191 AC_ARG_ENABLE(mmx,
1192 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1193   case "${host_cpu}" in
1194     i?86|x86_64)
1195       enable_mmx="yes"
1196       ;;
1197     *)
1198       enable_mmx="no"
1199       ;;
1200   esac
1201 ])
1202 have_mmx="no"
1203 have_mmxext="no"
1204 AS_IF([test "${enable_mmx}" != "no"], [
1205   ARCH="${ARCH} mmx"
1206
1207   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1208     [ac_cv_c_mmx_intrinsics],
1209     [CFLAGS="${CFLAGS_save} -O -mmmx"
1210      AC_TRY_COMPILE([#include <mmintrin.h>
1211                      #include <stdint.h>
1212                      uint64_t frobzor;],
1213                     [__m64 a, b, c;
1214                      a = b = c = (__m64)frobzor;
1215                      a = _mm_slli_pi16(a, 3);
1216                      a = _mm_adds_pi16(a, b);
1217                      c = _mm_srli_pi16(c, 8);
1218                      c = _mm_slli_pi16(c, 3);
1219                      b = _mm_adds_pi16(b, c);
1220                      a = _mm_unpacklo_pi8(a, b);
1221                      frobzor = (uint64_t)a;],
1222                     [ac_cv_c_mmx_intrinsics=yes],
1223                     [ac_cv_c_mmx_intrinsics=no])])
1224   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1225     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1226               [Define to 1 if MMX intrinsics are available.])
1227     MMX_CFLAGS="-mmmx"
1228   ])
1229
1230   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1231     [ac_cv_mmx_inline],
1232     [CFLAGS="${CFLAGS_save}"
1233      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1234                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1235   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1236     AC_DEFINE(CAN_COMPILE_MMX, 1,
1237               [Define to 1 inline MMX assembly is available.])
1238     have_mmx="yes"
1239   ])
1240
1241   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1242     [ac_cv_mmxext_inline],
1243     [CFLAGS="${CFLAGS_save}"
1244      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1245                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1246   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1247     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1248               [Define to 1 if MMX EXT inline assembly is available.])
1249     have_mmxext="yes"
1250   ])
1251 ])
1252 AC_SUBST(MMX_CFLAGS)
1253 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1254 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1255
1256 dnl  Check for fully workin SSE2 intrinsics
1257 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1258 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1259 AC_ARG_ENABLE(sse,
1260 [  --disable-sse           disable SSE (1, 2, 3 and 4) optimizations (default auto)],
1261 , [
1262   case "${host_cpu}" in
1263     i686|x86_64)
1264       enable_sse=yes
1265       ;;
1266     *)
1267       enable_sse=no
1268       ;;
1269   esac
1270 ])
1271 have_sse2="no"
1272 AS_IF([test "${enable_sse}" != "no"], [
1273   ARCH="${ARCH} sse sse2"
1274
1275   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1276     [ac_cv_c_sse2_intrinsics],
1277     [CFLAGS="${CFLAGS_save} -O -msse2"
1278      AC_TRY_COMPILE([#include <emmintrin.h>
1279                      #include <stdint.h>
1280                      uint64_t frobzor;],
1281                     [__m128i a, b, c;
1282                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1283                      a = _mm_slli_epi16(a, 3);
1284                      a = _mm_adds_epi16(a, b);
1285                      c = _mm_srli_epi16(c, 8);
1286                      c = _mm_slli_epi16(c, 3);
1287                      b = _mm_adds_epi16(b, c);
1288                      a = _mm_unpacklo_epi8(a, b);
1289                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1290                     [ac_cv_c_sse2_intrinsics=yes],
1291                     [ac_cv_c_sse2_intrinsics=no])])
1292   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1293     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1294               [Define to 1 if SSE2 intrinsics are available.])
1295     SSE2_CFLAGS="-msse2"
1296   ])
1297
1298   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1299     [ac_cv_sse_inline],
1300     [CFLAGS="${CFLAGS_save}"
1301      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1302                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1303   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1304     AC_DEFINE(CAN_COMPILE_SSE, 1,
1305               [Define to 1 if SSE inline assembly is available.])
1306   ])
1307
1308   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1309     [ac_cv_sse2_inline],
1310     [CFLAGS="${CFLAGS_save}"
1311      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1312                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1313   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1314     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1315               [Define to 1 if SSE2 inline assembly is available.])
1316     have_sse2="yes"
1317   ])
1318
1319   # SSE3
1320   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly],
1321     [ac_cv_sse3_inline],
1322     [CFLAGS="${CFLAGS_save}"
1323      AC_TRY_COMPILE(,[void *p;asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p));],
1324                     ac_cv_sse3_inline=yes, ac_cv_sse3_inline=no)])
1325   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1326     AC_DEFINE(CAN_COMPILE_SSE3, 1,
1327               [Define to 1 if SSE3 inline assembly is available.]) ])
1328   # SSSE3
1329   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly],
1330     [ac_cv_ssse3_inline],
1331     [CFLAGS="${CFLAGS_save}"
1332      AC_TRY_COMPILE(,[void *p;asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p));],
1333                     ac_cv_ssse3_inline=yes, ac_cv_ssse3_inline=no)])
1334   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1335     AC_DEFINE(CAN_COMPILE_SSSE3, 1,
1336               [Define to 1 if SSSE3 inline assembly is available.]) ])
1337
1338   # SSE4.1
1339   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1340     [ac_cv_sse4_1_inline],
1341     [CFLAGS="${CFLAGS_save}"
1342      AC_TRY_COMPILE(,[void *p;asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p));],
1343                     ac_cv_sse4_1_inline=yes, ac_cv_sse4_1_inline=no)])
1344   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1345     AC_DEFINE(CAN_COMPILE_SSE4_1, 1,
1346               [Define to 1 if SSE4_1 inline assembly is available.]) ])
1347
1348   # SSE4.2
1349   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1350     [ac_cv_sse4_2_inline],
1351     [CFLAGS="${CFLAGS_save}"
1352      AC_TRY_COMPILE(,[void *p;asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p));],
1353                     ac_cv_sse4_2_inline=yes, ac_cv_sse4_2_inline=no)])
1354   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1355     AC_DEFINE(CAN_COMPILE_SSE4_2, 1,
1356               [Define to 1 if SSE4_2 inline assembly is available.]) ])
1357
1358   # SSE4A
1359   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly],
1360     [ac_cv_sse4a_inline],
1361     [CFLAGS="${CFLAGS_save}"
1362      AC_TRY_COMPILE(,[void *p;asm volatile("insertq %%xmm1,%%xmm0"::"r"(p));],
1363                     ac_cv_sse4a_inline=yes, ac_cv_sse4a_inline=no)])
1364   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1365     AC_DEFINE(CAN_COMPILE_SSE4A, 1,
1366               [Define to 1 if SSE4A inline assembly is available.]) ])
1367 ])
1368 AC_SUBST(SSE2_CFLAGS)
1369 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1370
1371 have_3dnow="no"
1372 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1373     [ac_cv_3dnow_inline],
1374     [CFLAGS="${CFLAGS_save}"
1375      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1376                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1377 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1378   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1379             [Define to 1 if 3D Now! inline assembly is available.])
1380   have_3dnow="yes"
1381 ])
1382 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1383
1384
1385 AC_ARG_ENABLE(neon,
1386 [  --disable-neon          disable NEON optimizations (default auto)],, [
1387   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1388 ])
1389 AS_IF([test "${enable_neon}" != "no"], [
1390   AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1391     CFLAGS="${CFLAGS_save} -mfpu=neon"
1392     AC_COMPILE_IFELSE([
1393       AC_LANG_PROGRAM(,[[asm volatile("vqmovun.s64 d0, q1":::"d0");]])
1394     ], [
1395       ac_cv_neon_inline="-mfpu=neon"
1396     ], [
1397       ac_cv_neon_inline="no"
1398     ])
1399     CFLAGS="${CFLAGS_save}"
1400   ])
1401   ARM_NEON_CFLAGS="$ac_cv_neon_inline"
1402 ], [
1403   ac_cv_neon_inline="no"
1404 ])
1405 AC_SUBST(ARM_NEON_CFLAGS)
1406 AM_CONDITIONAL(HAVE_ARM_NEON, [test "${ac_cv_neon_inline}" != "no"])
1407
1408
1409 AC_ARG_ENABLE(altivec,
1410 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1411   AS_IF([test "${host_cpu}" = "powerpc"],
1412         [enable_altivec=yes], [enable_altivec=no])
1413 ])
1414 have_altivec="no"
1415 AS_IF([test "${enable_altivec}" = "yes"], [
1416   ARCH="${ARCH} altivec";
1417   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1418     [ac_cv_altivec_inline],
1419     [CFLAGS="${CFLAGS_save}"
1420      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1421          ac_cv_altivec_inline="yes",
1422          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1423           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1424             [ac_cv_altivec_inline="-Wa,-m7400"],
1425             ac_cv_altivec_inline=no)
1426          ])])
1427   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1428     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1429               [Define to 1 if AltiVec inline assembly is available.])
1430     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1431       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1432       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1433       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1434       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1435       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1436     ])
1437     have_altivec="yes"
1438   ])
1439
1440 dnl The AltiVec C extensions
1441 dnl
1442 dnl There are several possible cases:
1443 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1444 dnl                      need <altivec.h>
1445 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1446 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1447 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1448 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1449 dnl - Others: test should fail
1450   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1451   [ac_cv_c_altivec],
1452   [# OS X/PPC test (gcc 4.x)
1453    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1454    AC_TRY_COMPILE([vector unsigned char foo;],
1455      [vec_ld(0, (unsigned char *)0);],
1456      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1457      [# OS X/PPC test (gcc 3.x)
1458       CFLAGS="${CFLAGS_save} -faltivec"
1459       AC_TRY_COMPILE([vector unsigned char foo;],
1460         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1461         [ac_cv_c_altivec="-faltivec"],
1462         dnl Below this are the Linux tests
1463         [# Linux/PPC test (gcc 4.x)
1464          CFLAGS="${CFLAGS_save} -maltivec"
1465          AC_TRY_COMPILE([#include <altivec.h>],
1466            [vec_ld(0, (unsigned char *)0);],
1467            [ac_cv_c_altivec="-maltivec"],
1468            [# Linux/PPC test (gcc 3.3)
1469             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1470             AC_TRY_COMPILE([#include <altivec.h>],
1471               [vec_ld(0, (unsigned char *)0);],
1472               [ac_cv_c_altivec=""
1473                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1474               [# Linux/PPC test (gcc 3.3)
1475                CFLAGS="${CFLAGS_save} -fvec"
1476                AC_TRY_COMPILE([#include <altivec.h>],
1477                  [vec_ld(0, (unsigned char *)0);],
1478                  [ac_cv_c_altivec="-fvec"],
1479                  [ac_cv_c_altivec=no])
1480               ])
1481            ])
1482         ])
1483      ])
1484    CFLAGS="${CFLAGS_save}"
1485   ])
1486   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1487     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1488   ])
1489
1490   AC_CHECK_HEADERS(altivec.h)
1491   CPPFLAGS="${CPPFLAGS_save}"
1492
1493   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1494     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1495               [Define to 1 if C AltiVec extensions are available.])
1496     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1497     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1498     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1499     have_altivec="yes"
1500   ])
1501
1502   AC_CACHE_CHECK([if linker needs -framework vecLib],
1503     [ac_cv_ld_altivec],
1504     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1505      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1506      LDFLAGS="${LDFLAGS_save}"
1507     ])
1508   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1509     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1510   ])
1511 ])
1512 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1513
1514 dnl
1515 dnl  Special arch tuning
1516 dnl
1517 AC_ARG_WITH(tuning,
1518 [  --with-tuning=ARCH      enable special tuning for an architecture
1519                           (default Pentium 2 on IA-32 and G4 on PPC)])
1520 if test -n "${with_tuning}"; then
1521     if test "${with_tuning}" != "no"; then
1522         CFLAGS_TUNING="-mtune=${with_tuning}"
1523     fi
1524 else
1525     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1526         CFLAGS_TUNING="-march=prescott -mtune=generic"
1527     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1528         CFLAGS_TUNING="-mtune=pentium2"
1529     elif test "${host_cpu}" = "x86_64"; then
1530         CFLAGS_TUNING="-mtune=athlon64"
1531     elif test "${host_cpu}" = "powerpc"; then
1532         CFLAGS_TUNING="-mtune=G4";
1533     fi
1534 fi
1535
1536 dnl NOTE: this can't be cached cleanly
1537 AS_IF([test "${CFLAGS_TUNING}"],
1538    [CFLAGS_save="${CFLAGS}"
1539     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1540
1541     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1542     AC_COMPILE_IFELSE([ ],
1543                       [tuning="yes"],
1544                       [CFLAGS_TUNING=""; tuning="no"
1545                        AS_IF([test "${with_tuning}"],
1546                              [AC_MSG_ERROR([requested tuning not supported])])])
1547
1548     AC_MSG_RESULT([$tuning])
1549     CFLAGS="${CFLAGS_save}"
1550 ])
1551
1552 dnl
1553 dnl  Memory usage
1554 dnl
1555 AC_ARG_ENABLE(optimize-memory,
1556 [  --enable-optimize-memory optimize memory usage over performance])
1557 if test "${enable_optimize_memory}" = "yes"; then
1558   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1559 fi
1560
1561 dnl
1562 dnl  Enable/disable optimizations
1563 dnl
1564 AC_ARG_ENABLE(optimizations,
1565 [  --disable-optimizations disable compiler optimizations (default enabled)])
1566 if test "${enable_optimizations}" != "no"; then
1567    if test "${enable_optimize_memory}" = "yes"; then
1568       enable_optimizations="size"
1569    else
1570       enable_optimizations="speed"
1571    fi
1572 fi
1573
1574 dnl
1575 dnl  Debugging mode
1576 dnl
1577 AC_ARG_ENABLE(debug,
1578 [  --enable-debug          debug mode (default disabled)])
1579 test "${enable_debug}" != "yes" && enable_debug="no"
1580 AH_TEMPLATE(NDEBUG,
1581             [Define to 1 if debug code should NOT be compiled])
1582 AS_IF([test "x${enable_debug}" = "xno"], [
1583   AC_DEFINE(NDEBUG)
1584 ], [
1585   AC_CHECK_HEADERS([valgrind/valgrind.h])
1586 ])
1587
1588 dnl
1589 dnl Allow runing as root (usefull for people runing on embedded platforms)
1590 dnl
1591 AC_ARG_ENABLE(run-as-root,
1592 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1593 AS_IF([test "${enable_run_as_root}" = "yes"],[
1594     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1595               [Define to 1 to allow runing VLC as root (uid 0).])
1596 ])
1597
1598 dnl
1599 dnl  Test coverage
1600 dnl
1601 AC_ARG_ENABLE(coverage,
1602         [  --enable-coverage       build for test coverage (default disabled)],,
1603         [enable_coverage="no"])
1604 AS_IF([test "${enable_coverage}" != "no"], [
1605         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1606         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1607         LDFLAGS="-lgcov ${LDFLAGS}"
1608         dnl ugly...
1609         CFLAGS_save="${CFLAGS}"
1610         CXXFLAGS_save="${CXXFLAGS}"
1611         LDFLAGS_save="${LDFLAGS}"
1612 ])
1613
1614 dnl
1615 dnl  Enable release-specific flags
1616 dnl
1617 AC_ARG_ENABLE(release,
1618 [  --enable-release        activate extra optimizations (default disabled)])
1619 test "${enable_release}" != "yes" && enable_release="no"
1620
1621 dnl
1622 dnl Stream output
1623 dnl
1624 AC_ARG_ENABLE(sout,
1625   [  --enable-sout           Stream output modules (default enabled)])
1626 AS_IF([test "${enable_sout}" != "no"], [
1627   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1628 ])
1629 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1630
1631 dnl Lua modules
1632 AC_ARG_ENABLE(lua,
1633   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1634                   plugins (default enabled)]))
1635 if test "${enable_lua}" != "no"
1636 then
1637   PKG_CHECK_MODULES(LUA, lua5.1,
1638     [ have_lua=yes ],
1639     [
1640     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1641     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1642       [ have_lua=yes ],
1643       [
1644         have_lua=yes
1645         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1646           [],
1647           [ have_lua=no ] )
1648         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1649           [LUA_LIBS="-llua5.1"],
1650           AC_CHECK_LIB( lua51 , luaL_newstate,
1651             [LUA_LIBS="-llua51"],
1652             AC_CHECK_LIB( lua , luaL_newstate,
1653               [LUA_LIBS="-llua"],
1654               [ have_lua=no
1655                 AS_IF([test "x${enable_lua}" = "xyes"],
1656                   [AC_MSG_ERROR([lua >= 5.1 not found!])],
1657                   [AC_MSG_WARN([lua >= 5.1 not found!])])
1658               ], [-lm])
1659           )
1660         )
1661       ])
1662     ])
1663   if test "x${have_lua}" = "xyes" ;  then
1664      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1665      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1666   else
1667       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.])
1668   fi
1669 fi
1670 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1671
1672 dnl
1673 dnl HTTP daemon
1674 dnl
1675 AC_ARG_ENABLE(httpd,
1676   [  --enable-httpd          HTTP daemon (default enabled)])
1677 if test "${enable_httpd}" != "no"
1678 then
1679   VLC_ADD_PLUGIN([oldhttp])
1680   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1681 fi
1682 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1683
1684 dnl
1685 dnl libproxy support
1686 dnl
1687 AC_ARG_ENABLE(libproxy,
1688   [  --enable-libproxy       libproxy support (default auto)])
1689 AS_IF([test "${enable_libproxy}" != "no"], [
1690   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1691     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1692     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1693     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1694   ], [
1695     AS_IF([test "x${enable_libproxy}" != "x"], [
1696       AC_MSG_ERROR([libproxy could not be found on your system])
1697     ])
1698   ])
1699 ])
1700
1701
1702 dnl
1703 dnl VideoLAN manager
1704 dnl
1705 AC_ARG_ENABLE(vlm,
1706   [  --enable-vlm            VideoLAN manager (default enabled)],,
1707   [enable_vlm="${enable_sout}"])
1708 AS_IF([test "${enable_vlm}" != "no"], [
1709   AS_IF([test "${enable_sout}" = "no"], [
1710     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1711   ])
1712   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1713   VLC_ADD_PLUGIN([oldtelnet])
1714 ])
1715 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1716
1717 dnl
1718 dnl Growl notification plugin
1719 dnl
1720 AC_ARG_ENABLE(growl,
1721   [  --enable-growl          growl notification plugin (default disabled)],,
1722   [enable_growl=no])
1723 AS_IF([test "${enable_growl}" != "no"], [
1724     VLC_ADD_PLUGIN([growl_udp])
1725     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1726       VLC_ADD_PLUGIN([growl])
1727       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1728       VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
1729     ])
1730   ]
1731 )
1732
1733 dnl
1734 dnl Libnotify notification plugin
1735 dnl
1736 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1737
1738 dnl
1739 dnl Taglibplugin
1740 dnl
1741 AC_ARG_ENABLE(taglib,
1742   [  --disable-taglib        Taglib support (default enabled) ])
1743   AS_IF([test "${enable_taglib}" != "no"],[
1744     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1745       [ VLC_ADD_PLUGIN([taglib])
1746         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1747        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1748       [AC_MSG_WARN(TagLib library not found)])
1749   ])
1750
1751 dnl
1752 dnl  Input plugins
1753 dnl
1754
1755 AC_ARG_WITH(,[Input plugins:])
1756
1757 dnl  live555 input
1758 dnl
1759 if test "${enable_livedotcom}"
1760 then
1761   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1762 fi
1763 if test "${enable_livedotcom}" = "no"
1764 then
1765   enable_live555="no"
1766 fi
1767
1768 AC_ARG_ENABLE(live555,
1769 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1770 if test "${enable_live555}" != "no"; then
1771   AC_ARG_WITH(live555-tree,
1772     [  --with-live555-tree=PATH live.com tree for static linking])
1773
1774   dnl
1775   dnl test for --with-live555-tree
1776   dnl
1777   if test "${with_livedotcom_tree}"
1778   then
1779     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1780   with_live555_tree="${with_livedotcom_tree}"
1781   fi
1782
1783   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1784     AC_LANG_PUSH(C++)
1785     CPPFLAGS_save="${CPPFLAGS}"
1786     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1787     if test "${SYS}" = "solaris"; then
1788       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1789     fi
1790     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1791
1792     AC_CHECK_HEADERS(liveMedia_version.hh, [
1793       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1794       AC_EGREP_CPP(yes,
1795         [#include <liveMedia_version.hh>
1796          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1797          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1798          yes
1799          #endif
1800          #endif],
1801         [AC_MSG_RESULT([no])
1802          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1803 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1804       ],[
1805          AC_MSG_RESULT([yes])
1806          ])
1807     ])
1808      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1809      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1810       if test "${SYS}" = "mingw32"; then
1811         # add ws2_32 for closesocket, select, recv
1812         other_libs="$other_libs -lws2_32"
1813       elif test "${SYS}" = "mingwce"; then
1814         # add ws2 for closesocket, select, recv
1815         other_libs="$other_libs -lws2"
1816       fi
1817     dnl We need to check for pic because live555 don't provide shared libs
1818     dnl and we want to build a plugins so we need -fPIC on some arch.
1819     AC_CHECK_HEADERS(liveMedia.hh, [
1820       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1821         AC_CHECK_LIB(liveMedia_pic, main, [
1822           VLC_ADD_PLUGIN([live555])
1823          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1824          ],[
1825         AC_CHECK_LIB(liveMedia, main, [
1826           VLC_ADD_PLUGIN([live555])
1827           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1828         ],[],[${other_libs}]) ],[${other_libs_pic}])
1829     ],[
1830        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1831     ])
1832     CPPFLAGS="${CPPFLAGS_save}"
1833     AC_LANG_POP(C++)
1834   else
1835     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1836     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1837     if test -z "${real_live555_tree}"; then
1838       dnl  The given directory can't be found
1839       AC_MSG_RESULT(no)
1840       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1841     fi
1842     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1843       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1844
1845       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1846         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1847         AC_EGREP_CPP(yes,
1848           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1849            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1850            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1851            yes
1852            #endif
1853            #endif],
1854           [AC_MSG_RESULT([no])
1855            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1856 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1857         ],[
1858            AC_MSG_RESULT([yes])
1859            ])
1860       ])
1861
1862       VLC_ADD_PLUGIN([live555])
1863
1864       if test "${SYS}" = "mingw32"; then
1865         # add ws2_32 for closesocket, select, recv
1866         VLC_ADD_LIBS([live555],[-lws2_32])
1867       fi
1868
1869       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1870       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1871       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1872       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1873
1874       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1875       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1876       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1877       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1878       if test "${SYS}" = "solaris"; then
1879         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1880       fi
1881     else
1882       dnl  The given live555 wasn't built
1883         AC_MSG_RESULT(no)
1884       if test "${enable_live555}" = "yes"; then
1885         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1886       fi        
1887     fi
1888   fi
1889 fi
1890
1891 dnl
1892 dnl - special access module for dc1394 input
1893 dnl - dv module: digital video module check for libraw1394
1894 dnl
1895 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
1896 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1897
1898 dnl
1899 dnl dvdread module: check for libdvdread
1900 dnl
1901 AC_ARG_ENABLE(dvdread,
1902 [  --enable-dvdread        dvdread input module (default disabled)])
1903 if test "${enable_dvdread}" != "no"
1904 then
1905   AC_ARG_WITH(dvdread,
1906   [  --with-dvdread=PATH     libdvdread headers and libraries])
1907   AC_ARG_WITH(dvdread-tree,
1908   [  --with-dvdread-tree=PATH libdvdread tree for static linking])
1909
1910   dnl Temporary hack (yeah, sure ;)
1911   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1912       VLC_ADD_LIBS([dvdread],[-ldvdcss])
1913   fi
1914
1915   if test -z "${with_dvdread}"
1916   then
1917     if test -z "${with_dvdread_tree}"
1918     then
1919       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1920         [ VLC_ADD_PLUGIN([dvdread])
1921           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
1922         ],[
1923           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
1924             [ VLC_ADD_PLUGIN([dvdread])
1925               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
1926             ],[
1927               if test -n "${enable_dvdread}"
1928               then
1929               AC_MSG_ERROR([cannot find libdvdread headers])
1930              fi
1931            ])
1932         ])
1933     else
1934       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1935       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1936       if test -z "${real_dvdread_tree}"
1937       then
1938         dnl  The given directory can't be found
1939         AC_MSG_RESULT(no)
1940         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1941       fi
1942       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1943       then
1944         dnl  Use a custom libdvdread
1945         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1946         VLC_ADD_PLUGIN([dvdread])
1947         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
1948         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1949       else
1950         dnl  The given libdvdread wasn't built
1951         AC_MSG_RESULT(no)
1952         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1953       fi
1954     fi
1955   else
1956     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1957     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1958     then
1959       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1960       AC_MSG_RESULT(yes)
1961       VLC_ADD_PLUGIN([dvdread])
1962       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
1963       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1964     else
1965       dnl  No libdvdread could be found, sorry
1966       AC_MSG_RESULT(no)
1967       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1968     fi
1969   fi
1970 fi
1971
1972 dnl
1973 dnl  libdvdnav plugin
1974 dnl
1975 AC_ARG_ENABLE(dvdnav,
1976   [  --enable-dvdnav         dvdnav input module (default enabled)])
1977 if test "${enable_dvdnav}" != "no"
1978 then
1979   dnl Same hack than dvdread
1980   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1981       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
1982   fi
1983
1984   DVDNAV_PATH="${PATH}"
1985   AC_ARG_WITH(dvdnav-config-path,
1986     [  --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1987     [ if test "${with_dvdnav_config_path}" != "no"
1988       then
1989         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1990       fi ])
1991   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1992   if test "${DVDNAV_CONFIG}" != "no"
1993   then
1994     VLC_ADD_PLUGIN([dvdnav])
1995     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1996     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1997   fi
1998 fi
1999
2000 dnl
2001 dnl  Windows DirectShow access module
2002 dnl
2003 AC_ARG_ENABLE(dshow,
2004   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2005 if test "${enable_dshow}" != "no"
2006 then
2007   if test "${SYS}" = "mingw32"
2008   then
2009     AC_LANG_PUSH(C++)
2010       AC_CHECK_HEADERS(dshow.h,
2011       [ VLC_ADD_PLUGIN([dshow])
2012         VLC_ADD_CXXFLAGS([dshow],[])
2013         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2014     AC_LANG_POP(C++)
2015   fi
2016 fi
2017
2018 dnl
2019 dnl  Windows DirectShow BDA access module
2020 dnl
2021 AC_ARG_ENABLE(bda,
2022   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2023                   enabled on Win32)]))
2024 if test "${enable_bda}" != "no"
2025 then
2026   if test "${SYS}" = "mingw32"
2027   then
2028       AC_CHECK_HEADERS(dshow.h,
2029       [ VLC_ADD_PLUGIN([bda])
2030         VLC_ADD_CXXFLAGS([bda],[])
2031         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2032   fi
2033 fi
2034
2035
2036 dnl
2037 dnl  OpenCV wrapper and example filters
2038 dnl
2039 AC_ARG_ENABLE(opencv,
2040   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2041 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2042 then
2043   AC_ARG_WITH(opencv-tree,
2044   [  --with-opencv-tree=PATH opencv tree for linking])
2045     if test "${SYS}" = "mingw32"
2046     then
2047       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2048       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2049       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2050         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2051       then
2052         AC_MSG_RESULT(yes)
2053         VLC_ADD_PLUGIN([opencv_wrapper])
2054         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2055         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])
2056         AC_LANG_PUSH(C++)
2057         VLC_ADD_PLUGIN([opencv_example])
2058         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2059         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])
2060         AC_LANG_POP(C++)
2061       else
2062         dnl  No opencv could be found, sorry
2063         AC_MSG_RESULT(no)
2064         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2065       fi
2066     else
2067       PKG_CHECK_MODULES(OPENCV, opencv,
2068         [
2069           VLC_ADD_PLUGIN([opencv_example])
2070           VLC_ADD_PLUGIN([opencv_wrapper])
2071           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2072           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2073           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2074         ],
2075         [AC_MSG_ERROR([libopencv not found!])]
2076       )
2077     fi
2078 fi
2079
2080
2081 dnl
2082 dnl  libsmbclient plugin
2083 dnl
2084 AC_ARG_ENABLE(smb,
2085   [  --enable-smb            smb input module (default enabled)])
2086 if test "${enable_smb}" != "no"; then
2087   AC_CHECK_HEADERS(libsmbclient.h,
2088     [ VLC_ADD_PLUGIN([access_smb])
2089       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2090     [ if test -n "${enable_smb}"; then
2091         AC_MSG_ERROR([cannot find libsmbclient headers])
2092      fi ])
2093 fi
2094
2095
2096 dnl
2097 dnl sftp access support
2098 dnl
2099 AC_ARG_ENABLE(sftp,
2100   [  --enable-sftp           sftp input access module (default disable)])
2101 if test "${enable_sftp}" = "yes"; then
2102   AC_CHECK_HEADERS(libssh2.h, [
2103     VLC_ADD_PLUGIN([access_sftp])
2104     VLC_ADD_LIBS([access_sftp], [-lssh2])
2105   ])
2106 fi
2107
2108 dnl
2109 dnl  libdvbpsi ts demux/mux
2110 dnl
2111 AC_ARG_ENABLE(dvbpsi,
2112   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2113 have_dvbpsi=no
2114 if test "${enable_dvbpsi}" != "no"
2115 then
2116   AC_ARG_WITH(dvbpsi,
2117   [  --with-dvbpsi=PATH      libdvbpsi headers and libraries])
2118   AC_ARG_WITH(dvbpsi,
2119   [  --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2120   case "${with_dvbpsi}" in
2121   ""|yes)
2122     if test -z "${with_dvbpsi_tree}"
2123     then
2124       AC_CHECK_HEADERS(dvbpsi/dr.h,
2125         [ VLC_ADD_PLUGIN([ts])
2126           if test "${enable_sout}" != "no"; then
2127             VLC_ADD_PLUGIN([mux_ts])
2128           fi
2129           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2130           have_dvbpsi=yes],
2131         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2132         [#if defined( HAVE_STDINT_H )
2133 #   include <stdint.h>
2134 #elif defined( HAVE_INTTYPES_H )
2135 #   include <inttypes.h>
2136 #endif
2137 #include <dvbpsi/dvbpsi.h>
2138 #include <dvbpsi/descriptor.h>
2139 #include <dvbpsi/pat.h>
2140 #include <dvbpsi/pmt.h>])
2141     else
2142       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2143       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2144       if test -z "${real_dvbpsi_tree}"
2145       then
2146         dnl  The given directory can't be found
2147         AC_MSG_RESULT(no)
2148         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2149       fi
2150       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2151       then
2152         dnl  Use a custom libdvbpsi
2153         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2154         VLC_ADD_PLUGIN([ts])
2155         if test "${enable_sout}" != "no"; then
2156           VLC_ADD_PLUGIN([mux_ts])
2157         fi
2158         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2159         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2160         have_dvbpsi=yes
2161       else
2162         dnl  The given libdvbpsi wasn't built
2163         AC_MSG_RESULT(no)
2164         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2165       fi
2166     fi
2167   ;;
2168   no)
2169     dnl  Compile without dvbpsi
2170   ;;
2171   *)
2172     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2173     if test -z "${with_dvbpsi}"
2174     then
2175       LDFLAGS_test=""
2176       CPPFLAGS_test=""
2177     else
2178       LDFLAGS_test="-L${with_dvbpsi}/lib"
2179       CPPFLAGS_test="-I${with_dvbpsi}/include"
2180     fi
2181     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2182     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2183       VLC_ADD_PLUGIN([ts])
2184       if test "${enable_sout}" != "no"; then
2185         AC_CHECK_LIB(dvbpsi, dvbpsi_SDTServiceAddDescriptor,
2186            [VLC_ADD_PLUGIN([mux_ts])], [], [${LDFLAGS_test} -ldvbpsi])
2187       fi
2188       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2189       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2190       have_dvbpsi=yes
2191     ],[
2192       if test -n "${enable_dvbpsi}"
2193       then
2194         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])
2195       fi
2196     ],
2197     [#if defined( HAVE_STDINT_H )
2198 #   include <stdint.h>
2199 #elif defined( HAVE_INTTYPES_H )
2200 #   include <inttypes.h>
2201 #endif
2202 #include <dvbpsi/dvbpsi.h>
2203 #include <dvbpsi/descriptor.h>
2204 #include <dvbpsi/pat.h>
2205 #include <dvbpsi/pmt.h>])
2206     CPPFLAGS="${CPPFLAGS_save}"
2207   ;;
2208   esac
2209   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2210     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2211   ], [], [${LIBS_ts}])
2212
2213 fi
2214
2215 dnl
2216 dnl  Video4Linux plugin
2217 dnl
2218 AC_ARG_ENABLE(v4l,
2219   [  --enable-v4l            Video4Linux input support (default disabled)])
2220 if test "${enable_v4l}" = "yes"
2221 then
2222   AC_ARG_WITH(v4l,
2223     [  --with-v4l=PATH         path to a v4l-enabled kernel tree],[],[])
2224   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2225   then
2226     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2227   fi
2228
2229   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2230   AC_CHECK_HEADERS(linux/videodev.h, [
2231     VLC_ADD_PLUGIN([v4l])
2232   ],[])
2233   CPPFLAGS="${CPPFLAGS_save}"
2234 fi
2235
2236 dnl
2237 dnl libv4l1 support for video4linux.
2238 dnl
2239 AC_ARG_ENABLE( libv4l,
2240   [  --enable-libv4l         Libv4l Video4Linux support (default enabled)])
2241 if test "${enable_libv4l}" != "no" -a "${enable_v4l}" != "no"
2242 then
2243     PKG_CHECK_MODULES( LIBV4L, libv4l1, [
2244       VLC_ADD_LDFLAGS([v4l],[${LIBV4L_LIBS}])
2245       VLC_ADD_CFLAGS([v4l],[${LIBV4L_CFLAGS}])
2246       AC_DEFINE(HAVE_LIBV4L1, 1, Define if libv4l is available)],
2247       AC_MSG_WARN([LibV4L support disabled because libv4l development headers were not found])
2248     )
2249 fi
2250
2251 dnl
2252 dnl  Video4Linux2 plugin
2253 dnl
2254 AC_ARG_ENABLE(v4l2,
2255   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2256 if test "${enable_v4l2}" != "no"
2257 then
2258   AC_ARG_WITH(v4l2,
2259     [  --with-v4l2=PATH        path to a v4l2-enabled kernel tree],[],[])
2260   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2261   then
2262     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2263   fi
2264
2265   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2266   AC_CHECK_HEADERS(linux/videodev2.h, [
2267     VLC_ADD_PLUGIN([v4l2])
2268   ],[])
2269   CPPFLAGS="${CPPFLAGS_save}"
2270 fi
2271
2272 dnl
2273 dnl libv4l2 support for video4linux.
2274 dnl
2275 AC_ARG_ENABLE( libv4l2,
2276   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2277 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2278 then
2279     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2280       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2281       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2282       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l2 is available)],
2283       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2284     )
2285 fi
2286
2287 dnl
2288 dnl  special access module for Hauppauge PVR cards
2289 dnl
2290 AC_ARG_ENABLE(pvr,
2291   [  --enable-pvr            PVR cards access module (default disabled)])
2292 if test "${enable_pvr}" = "yes"
2293 then
2294   VLC_ADD_PLUGIN([pvr])
2295   AC_ARG_WITH(videodev2,
2296     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2297   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2298   then
2299     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2300   fi
2301
2302   AC_CACHE_CHECK([for new linux/videodev2.h],
2303       [ac_cv_new_linux_videodev2_h],
2304       [AC_TRY_COMPILE([
2305           #include <sys/types.h>
2306           #   ifdef VIDEODEV2_H_FILE
2307           #   include VIDEODEV2_H_FILE
2308           #   else
2309           #   include <linux/videodev2.h>
2310           #   endif
2311           ],
2312           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2313           ac_cv_new_linux_videodev2_h=yes,
2314           ac_cv_new_linux_videodev2_h=no)])
2315   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2316     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2317   fi
2318 fi
2319
2320 dnl
2321 dnl  gnomeVFS access module
2322 dnl
2323 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2324
2325 dnl
2326 dnl  VCDX modules
2327 dnl
2328 AC_ARG_ENABLE(vcdx,
2329   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2330
2331 if test "${enable_vcdx}" = "yes"
2332 then
2333         PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
2334           [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
2335                  VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
2336                 [AC_MSG_ERROR([vcdx plugin requires libcdio >= 0.78.2 and libiso9660 >= 0.72])])
2337         PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
2338                 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
2339                  VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
2340           [AC_MSG_ERROR([vcdx plugin requires libvcdinfo library >= 0.7.22])])
2341         VLC_ADD_PLUGIN([vcdx])
2342 fi
2343
2344 dnl
2345 dnl  Built-in CD-DA and VCD module
2346 dnl
2347 AC_ARG_ENABLE(cdda,
2348   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2349
2350 AC_ARG_ENABLE(vcd,
2351   [  --enable-vcd            built-in VCD (default enabled)])
2352
2353 AC_ARG_ENABLE(libcddb,
2354   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2355
2356 if test "${enable_vcd}" != "no"
2357 then
2358   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2359   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2360     AC_MSG_RESULT(yes)
2361     VLC_ADD_PLUGIN([vcd])
2362     VLC_ADD_PLUGIN([cdda])
2363   ],[
2364     AC_MSG_RESULT(no)
2365   ])
2366
2367   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2368   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2369     AC_MSG_RESULT(yes)
2370     VLC_ADD_PLUGIN([vcd])
2371     VLC_ADD_PLUGIN([cdda])
2372     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2373   ],[
2374     AC_MSG_RESULT(no)
2375   ])
2376
2377   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2378   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2379     AC_MSG_RESULT(yes)
2380     VLC_ADD_PLUGIN([vcd])
2381     VLC_ADD_PLUGIN([cdda])
2382     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2383   ],[
2384     AC_MSG_RESULT(no)
2385   ])
2386
2387   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2388   then
2389     VLC_ADD_PLUGIN([vcd])
2390     VLC_ADD_PLUGIN([cdda])
2391   fi
2392
2393   if test "${SYS}" = "darwin"
2394   then
2395     VLC_ADD_PLUGIN([vcd])
2396     VLC_ADD_PLUGIN([cdda])
2397     VLC_ADD_LDFLAGS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2398     VLC_ADD_LIBS([vcdx cdda],[-liconv])
2399   fi
2400
2401   if test "$enable_libcddb" != "no"; then
2402     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2403       HAVE_LIBCDDB=yes
2404       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2405       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2406       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2407       ],:
2408       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2409       HAVE_LIBCDDB=no])
2410   fi
2411 fi
2412
2413 dnl
2414 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2415 dnl
2416 AC_ARG_ENABLE(dvb,
2417   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2418
2419 if test "${enable_dvb}" != "no"
2420 then
2421     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2422     AC_ARG_WITH(dvb,
2423      [  --with-dvb=PATH         path to a dvb- and v4l2-enabled kernel tree],[],[])
2424      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2425      then
2426        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2427      fi
2428      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2429      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2430      VLC_ADD_PLUGIN([dvb])
2431      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2432      CPPFLAGS="${CPPFLAGS_save}"
2433    ],[
2434      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2435     ])
2436 fi
2437
2438 dnl
2439 dnl  Screen capture module
2440 dnl
2441 AC_ARG_ENABLE(screen,
2442   [  --enable-screen         Screen capture support (default enabled)])
2443 if test "${enable_screen}" != "no"; then
2444   if test "${SYS}" = "darwin"; then
2445     AC_CHECK_HEADERS(OpenGL/gl.h, [
2446       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2447         VLC_ADD_PLUGIN([screen])
2448         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2449       ])
2450     ])
2451   elif test "${SYS}" = "mingw32"; then
2452     VLC_ADD_PLUGIN([screen])
2453     VLC_ADD_LIBS([screen],[-lgdi32])
2454   elif test "${SYS}" = "mingwce"; then
2455     CPPFLAGS="${CPPFLAGS_save}"
2456   elif test "${SYS}" = "beos"; then
2457     VLC_ADD_PLUGIN([screen])
2458     VLC_ADD_CXXFLAGS([screen],[])
2459     VLC_ADD_LIBS([screen],[-lbe])
2460   fi
2461 fi
2462
2463 dnl
2464 dnl  ipv6 plugin
2465 dnl
2466 have_ipv6=no
2467 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2468   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2469 ])
2470
2471 AS_IF([test "${have_ipv6}" = "yes"], [
2472   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2473
2474
2475 AC_CHECK_FUNCS(inet_ntop,[
2476   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2477
2478
2479 dnl
2480 dnl  ogg demux plugin
2481 dnl
2482 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2483 if test "${enable_sout}" != "no"; then
2484     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2485 fi
2486
2487 if test "${enable_sout}" != "no"; then
2488 dnl Check for libshout
2489 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2490 fi
2491
2492 dnl
2493 dnl  matroska demux plugin
2494 dnl
2495 AC_ARG_ENABLE(mkv,
2496   [  --enable-mkv            Matroska demux support (default enabled)])
2497 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2498   AC_LANG_PUSH(C++)
2499   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2500     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2501     AC_EGREP_CPP(yes,
2502       [#include <ebml/EbmlVersion.h>
2503        #ifdef LIBEBML_VERSION
2504        #if LIBEBML_VERSION >= 0x000706
2505        yes
2506        #endif
2507        #endif],
2508       [AC_MSG_RESULT([yes])
2509         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2510           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2511           AC_EGREP_CPP(yes,
2512             [#include <matroska/KaxVersion.h>
2513              #ifdef LIBMATROSKA_VERSION
2514              #if LIBMATROSKA_VERSION >= 0x000705
2515              yes
2516              #endif
2517              #endif],
2518             [AC_MSG_RESULT([yes])
2519               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2520               VLC_ADD_CXXFLAGS([mkv],[])
2521               if test "${SYS}" = "darwin"; then
2522                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2523               fi
2524               AC_CHECK_LIB(ebml_pic, main, [
2525                 VLC_ADD_PLUGIN([mkv])
2526                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2527               ],
2528                 AC_CHECK_LIB(ebml, main, [
2529                   VLC_ADD_PLUGIN([mkv])
2530                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2531                 ])
2532               )
2533             ],
2534             [AC_MSG_RESULT([no])
2535               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.])
2536           ])
2537         ])
2538       ],
2539       [AC_MSG_RESULT([no])
2540         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.])
2541     ])
2542   ])
2543   AC_LANG_POP(C++)
2544 fi
2545
2546 dnl
2547 dnl  modplug demux plugin
2548 dnl
2549 AC_ARG_ENABLE(mod,
2550   [  --enable-mod            Mod demux support (default enabled)])
2551 if test "${enable_mod}" != "no"
2552 then
2553   AC_ARG_WITH(mod-tree,
2554   [  --with-mod-tree=PATH    mod tree for static linking])
2555   if test -n "${with_mod_tree}"
2556   then
2557     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2558     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2559     if test -z "${real_mod_tree}"
2560     then
2561       dnl  The given directory can't be found
2562       AC_MSG_RESULT(no)
2563       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2564     fi
2565     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2566     then
2567       dnl  Use a custom mod
2568       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2569       VLC_ADD_PLUGIN([mod])
2570       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2571       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2572     else
2573       dnl  The given mod wasn't built
2574       AC_MSG_RESULT(no)
2575       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2576     fi
2577   else
2578     PKG_CHECK_MODULES(LIBMODPLUG, libmodplug >= 0.8,
2579         [ VLC_ADD_PLUGIN([mod])
2580           VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2581           VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2582         ],[AC_MSG_WARN([libmodplug not found!])])
2583   fi
2584 fi
2585
2586 dnl
2587 dnl  mpc demux plugin
2588 dnl
2589 AC_ARG_ENABLE(mpc,
2590   [  --enable-mpc            Mpc demux support (default enabled)])
2591 if test "${enable_mpc}" != "no"
2592 then
2593   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2594     VLC_ADD_PLUGIN([mpc])
2595     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2596     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2597     VLC_ADD_PLUGIN([mpc])
2598     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2599 fi
2600
2601 dnl
2602 dnl  game music emu demux plugin
2603 dnl
2604 AC_ARG_ENABLE(gme,
2605   [  --enable-gme            Game Music Emu demux support (default enabled)])
2606 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2607 then
2608   AC_LANG_PUSH(C++)
2609   AC_ARG_WITH(gme-tree,
2610   [  --with-gme-tree=PATH    gme tree for static linking])
2611   if test -n "${with_gme_tree}"
2612   then
2613     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2614     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2615     if test -z "${real_gme_tree}"
2616     then
2617       dnl  The given directory can't be found
2618       AC_MSG_RESULT(no)
2619       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2620     fi
2621     if test -f "${real_gme_tree}/gme/libgme.a"
2622     then
2623       dnl  Use a custom gme
2624       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2625       VLC_ADD_PLUGIN([gme])
2626       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2627       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2628     else
2629       dnl  The given gme wasn't built
2630       AC_MSG_RESULT(no)
2631       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2632     fi
2633   else
2634       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2635   fi
2636   AC_LANG_POP(C++)
2637 fi
2638
2639 dnl
2640 dnl  Codec plugins
2641 dnl
2642
2643 AC_ARG_WITH(,[Codec plugins:])
2644
2645 dnl
2646 dnl wmafixed plugin
2647 dnl
2648 AC_ARG_ENABLE(wma-fixed,
2649   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2650 if test "${enable_wma_fixed}" = "yes"
2651 then
2652   VLC_ADD_PLUGIN([wma_fixed])
2653 fi
2654
2655 dnl
2656 dnl shine fixed point mp3 encoder
2657 dnl
2658 AC_ARG_ENABLE(shine,
2659   [  --enable-shine          shine mp3 encoding module (default disabled)])
2660 if test "${enable_shine}" = "yes"
2661 then
2662   VLC_ADD_PLUGIN([shine])
2663 fi
2664
2665 dnl
2666 dnl  mad plugin
2667 dnl
2668 AC_ARG_ENABLE(mad,
2669   [  --enable-mad            libmad module (default enabled)])
2670 if test "${enable_mad}" != "no"
2671 then
2672   AC_ARG_WITH(mad,
2673     [  --with-mad=PATH         path to libmad],[],[])
2674   if test "${with_mad}" != "no" -a -n "${with_mad}"
2675   then
2676     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2677     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2678   fi
2679
2680   AC_ARG_WITH(mad-tree,
2681     [  --with-mad-tree=PATH    mad tree for static linking],[],[])
2682   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2683   then
2684     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2685     if test -z "${real_mad_tree}"
2686     then
2687       dnl  The given directory can't be found
2688       AC_MSG_RESULT(no)
2689       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2690     fi
2691     dnl  Use a custom libmad
2692     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2693     if test -f ${real_mad_tree}/mad.h
2694     then
2695       AC_MSG_RESULT(yes)
2696       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2697       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2698       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2699       AC_CHECK_LIB(mad, mad_bit_init, [
2700         VLC_ADD_PLUGIN([mpgatofixed32])
2701         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2702         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2703       ],[])
2704       LDFLAGS="${LDFLAGS_save}"
2705     else
2706       AC_MSG_RESULT(no)
2707       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2708     fi
2709   else
2710     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2711     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2712     AC_CHECK_HEADERS(mad.h, ,
2713       [ 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.]) ])
2714     AC_CHECK_LIB(mad, mad_bit_init, [
2715       VLC_ADD_PLUGIN([mpgatofixed32])
2716       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2717       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2718     CPPFLAGS="${CPPFLAGS_save}"
2719     LDFLAGS="${LDFLAGS_save}"
2720   fi
2721 fi
2722
2723 dnl
2724 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2725 dnl
2726 AC_ARG_ENABLE( id3tag,
2727 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2728 AS_IF([test "${enable_id3tag}" = "yes"], [
2729   AC_CHECK_HEADERS(id3tag.h, [
2730       AS_IF([test "${have_zlib}" = "yes"],[
2731           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2732           VLC_ADD_PLUGIN([id3tag])
2733        ])
2734     ])
2735 ])
2736
2737 AC_ARG_ENABLE(merge-ffmpeg,
2738 [  --enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)],, [
2739   enable_merge_ffmpeg="no"
2740 ])
2741 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2742
2743 dnl
2744 dnl  avcodec decoder/encoder plugin
2745 dnl
2746
2747 if test "${with_ffmpeg_tree}"
2748 then
2749   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2750 fi
2751
2752 AC_ARG_ENABLE(avcodec,
2753 [  --enable-avcodec        libavcodec codec (default enabled)])
2754 if test "${enable_avcodec}" != "no"
2755 then
2756   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2757     [
2758       VLC_SAVE_FLAGS
2759       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2760       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2761       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2762       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2763       VLC_ADD_PLUGIN([avcodec])
2764       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2765       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2766       VLC_RESTORE_FLAGS
2767       have_avcodec="yes"
2768     ],[
2769       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2770   ])
2771 fi
2772
2773 dnl
2774 dnl libva needs avcodec
2775 dnl
2776 AC_ARG_ENABLE(libva,
2777   [  --enable-libva          libva VAAPI support (default auto)])
2778
2779 AS_IF([test "${enable_libva}" != "no"], [
2780   AS_IF([test "x${have_avcodec}" = "xyes"], [
2781     PKG_CHECK_MODULES(LIBVA, [libva libva-x11],
2782       [
2783         VLC_SAVE_FLAGS
2784         CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2785         CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2786         AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2787            VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS])
2788            VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS])
2789            AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2790            echo "VAAPI acceleration activated"
2791         ],[
2792         AS_IF([test "${enable_libva}" == "yes"],
2793               [AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])],
2794               [AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])])
2795         ])
2796         VLC_RESTORE_FLAGS
2797       ],[
2798         AS_IF([test "${enable_libva}" == "yes"],
2799               [AC_MSG_ERROR([Could not find required libva.])],
2800               [AC_MSG_WARN([libva not found  ])])
2801       ])
2802   ],[
2803     AS_IF([test "x${enable_libva}" != "x"], [
2804       AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive.])
2805     ])
2806   ])
2807 ])
2808
2809 dnl
2810 dnl dxva2 needs avcodec
2811 dnl
2812 AC_ARG_ENABLE(dxva2,
2813   [  --enable-dxva2          DxVA2  support (default auto)])
2814
2815 AS_IF([test "${enable_dxva2}" != "no"], [
2816   if test "${SYS}" = "mingw32"; then
2817   AS_IF([test "x${have_avcodec}" = "xyes"], [
2818     AC_CHECK_HEADERS(dxva2api.h, 
2819       [
2820         AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2821            VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2822            AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2823            echo "DxVA2 acceleration activated"
2824         ],[
2825         AS_IF([test "${enable_dxva2}" == "yes"],
2826               [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2827               [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2828         ])
2829       ],[
2830         AS_IF([test "${enable_dxva2}" == "yes"],
2831               [AC_MSG_ERROR([Could not find required dxva2api.h])],
2832               [AC_MSG_WARN([dxva2api.h not found])])
2833       ])
2834   ],[
2835     AS_IF([test "x${enable_dxva2}" != "x"], [
2836       AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2837     ])
2838   ])
2839   fi
2840 ])
2841
2842
2843 dnl
2844 dnl stream_out switcher needs libavcodec
2845 dnl
2846 AC_ARG_ENABLE(switcher,
2847   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2848 AS_IF([test "${enable_switcher}" = "yes"], [
2849   AS_IF([test "x${have_avcodec}" = "xyes"], [
2850     VLC_ADD_PLUGIN([stream_out_switcher])
2851     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2852     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2853   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2854   ])
2855 ])
2856
2857
2858 dnl
2859 dnl  avformat demuxer/muxer plugin
2860 dnl
2861
2862 AC_ARG_ENABLE(avformat,
2863 [  --enable-avformat       libavformat containers (default enabled)])
2864 if test "${enable_avformat}" != "no"
2865 then
2866   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2867     [
2868       VLC_SAVE_FLAGS
2869       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2870       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2871       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2872       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2873       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2874         VLC_ADD_PLUGIN([avformat])
2875         VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2876         VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2877
2878         VLC_ADD_PLUGIN([access_avio])
2879         VLC_ADD_LIBS([access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2880         VLC_ADD_CFLAGS([access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2881       ], [
2882         VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2883         VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2884       ])
2885       VLC_RESTORE_FLAGS
2886     ],[
2887       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2888   ])
2889 fi
2890
2891 dnl
2892 dnl  swscale image scaling and conversion plugin
2893 dnl
2894
2895 AC_ARG_ENABLE(swscale,
2896   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2897                   (default enabled)]))
2898 if test "${enable_swscale}" != "no"
2899 then
2900   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2901     [
2902       VLC_SAVE_FLAGS
2903       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2904       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2905       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2906       VLC_ADD_PLUGIN([swscale])
2907       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2908       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2909       VLC_RESTORE_FLAGS
2910     ],[
2911       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.])
2912   ])
2913 fi
2914
2915 dnl
2916 dnl  postproc plugin
2917 dnl
2918
2919 AC_ARG_ENABLE(postproc,
2920 [  --enable-postproc       libpostproc image post-processing (default enabled)])
2921 if test "${enable_postproc}" != "no"
2922 then
2923   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2924     [
2925       VLC_SAVE_FLAGS
2926       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2927       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2928       AC_CHECK_HEADERS(postproc/postprocess.h)
2929       VLC_ADD_PLUGIN([postproc])
2930       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2931       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2932       VLC_RESTORE_FLAGS
2933     ],[
2934       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
2935   ])
2936 fi
2937
2938 dnl
2939 dnl  faad decoder plugin
2940 dnl
2941 AC_ARG_ENABLE(faad,
2942 [  --enable-faad           faad codec (default disabled)])
2943 if test "${enable_faad}" = "yes"
2944 then
2945   AC_ARG_WITH(faad-tree,
2946   [  --with-faad-tree=PATH   faad tree for static linking])
2947   if test -n "${with_faad_tree}"
2948   then
2949     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2950     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2951     if test -z "${real_faad_tree}"
2952     then
2953       dnl  The given directory can't be found
2954       AC_MSG_RESULT(no)
2955       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2956     fi
2957     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2958     then
2959       dnl  Use a custom faad
2960       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2961       VLC_ADD_PLUGIN([faad])
2962       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2963       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2964     else
2965       dnl  The given libfaad wasn't built
2966       AC_MSG_RESULT(no)
2967       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2968     fi
2969   else
2970     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2971     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
2972     AC_CHECK_HEADERS(faad.h, ,
2973       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2974     AC_CHECK_LIB(faad, faacDecOpen, [
2975       VLC_ADD_PLUGIN([faad])
2976       VLC_ADD_LIBS([faad],[-lfaad]) ],
2977       AC_CHECK_LIB(faad, NeAACDecOpen, [
2978         VLC_ADD_PLUGIN([faad])
2979         VLC_ADD_LIBS([faad],[-lfaad]) ],
2980         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2981     LDFLAGS="${LDFLAGS_save}"
2982     CPPFLAGS="${CPPFLAGS_save}"
2983   fi
2984 fi
2985
2986 dnl
2987 dnl twolame encoder plugin
2988 dnl
2989 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2990
2991 dnl
2992 dnl  QuickTime plugin
2993 dnl
2994 AC_ARG_ENABLE(quicktime,
2995   [  --enable-quicktime      QuickTime module (deprecated)])
2996 if test "${enable_quicktime}" = "yes"; then
2997   if test "${SYS}" = "mingw32"; then
2998     VLC_ADD_PLUGIN([quicktime])
2999   else
3000   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3001     [ VLC_ADD_PLUGIN([quicktime])
3002       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3003     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3004   fi
3005 fi
3006
3007 dnl
3008 dnl  Real plugin
3009 dnl
3010 AC_ARG_ENABLE(real,
3011   [  --enable-real           Real media module (default disabled)])
3012 if test "${enable_real}" = "yes"; then
3013   VLC_ADD_PLUGIN([realvideo])
3014 fi
3015
3016 dnl
3017 dnl  Real RTSP plugin
3018 dnl
3019 AC_ARG_ENABLE(realrtsp,
3020   [  --enable-realrtsp       Real RTSP module (default disabled)])
3021 if test "${enable_realrtsp}" = "yes"; then
3022   VLC_ADD_PLUGIN([access_realrtsp])
3023 fi
3024
3025 AC_ARG_ENABLE(libsysfs,
3026   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3027
3028 AS_IF([test "${enable_libsysfs}" != "no"],[
3029   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3030     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3031   ] )
3032 ])
3033
3034 dnl
3035 dnl skins2 module
3036 dnl
3037 AC_ARG_ENABLE(libtar,
3038   [  --enable-libtar         libtar support for skins2 (default enabled)])
3039
3040 AS_IF([test "${enable_libtar}" != "no"],[
3041   AC_CHECK_HEADERS(libtar.h, [
3042     VLC_ADD_LIBS([skins2],[-ltar])
3043   ] )
3044 ])
3045
3046 dnl
3047 dnl A52/AC3 decoder plugin
3048 dnl
3049 AC_ARG_ENABLE(a52,
3050   [  --enable-a52            A/52 support with liba52 (default enabled)])
3051 if test "${enable_a52}" != "no"
3052 then
3053   AC_ARG_WITH(a52,
3054     [  --with-a52=PATH         a52 headers and libraries])
3055   AC_ARG_WITH(a52-tree,
3056     [  --with-a52-tree=PATH    a52dec tree for static linking ],[],[])
3057   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3058   then
3059     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3060     if test -z "${real_a52_tree}"
3061     then
3062       dnl  The given directory can't be found
3063       AC_MSG_RESULT(no)
3064       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3065     fi
3066     dnl  Use a custom a52dec
3067     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3068     if test -f ${real_a52_tree}/include/a52.h
3069     then
3070       AC_MSG_RESULT(yes)
3071       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3072       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3073       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3074       AC_CHECK_LIB(a52, a52_free, [
3075         VLC_ADD_PLUGIN([a52tofloat32])
3076         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3077         VLC_ADD_LIBS([a52tofloat32],[-la52])
3078         ],[
3079         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3080         then
3081           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3082         else
3083           AC_MSG_ERROR([the specified tree hasn't been compiled])
3084         fi
3085       ])
3086       LDFLAGS="${LDFLAGS_save}"
3087     else
3088       AC_MSG_RESULT(no)
3089       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3090     fi
3091   else
3092     if test -z "${with_a52}"
3093     then
3094       LDFLAGS_test=""
3095       CPPFLAGS_test=""
3096     else
3097       LDFLAGS_test="-L${with_a52}/lib"
3098       CPPFLAGS_test="-I${with_a52}/include"
3099     fi
3100     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3101     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3102     AC_CHECK_HEADERS(a52dec/a52.h, [
3103       AC_CHECK_LIB(a52, a52_free, [
3104         VLC_ADD_PLUGIN([a52tofloat32])
3105         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3106         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3107       ],[
3108         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.])
3109         ])
3110     ],[
3111       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.])
3112     ])
3113     CPPFLAGS="${CPPFLAGS_save}"
3114     LDFLAGS="${LDFLAGS_save}"
3115   fi
3116 fi
3117
3118 AC_ARG_WITH(a52-fixed,
3119       [  --with-a52-fixed        specify if liba52 has been compiled with fixed point support],
3120       [
3121         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3122
3123 dnl
3124 dnl DTS Coherent Acoustics decoder plugin
3125 dnl
3126 AS_IF([test "x${enable_dts}" != "x"], [
3127   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3128 ])
3129 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3130
3131 dnl
3132 dnl  Flac plugin
3133 dnl
3134 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3135
3136 dnl
3137 dnl  Libmpeg2 plugin
3138 dnl
3139 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3140
3141 dnl
3142 dnl  Vorbis plugin
3143 dnl
3144 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3145
3146 dnl
3147 dnl  Tremor plugin
3148 dnl
3149 AC_ARG_ENABLE(tremor,
3150   [  --enable-tremor         Tremor decoder support (default disabled)])
3151 if test "${enable_tremor}" = "yes"
3152 then
3153   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3154     VLC_ADD_PLUGIN([tremor])
3155     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3156    ],[])
3157 fi
3158
3159 dnl
3160 dnl  Speex plugin
3161 dnl
3162 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3163
3164 dnl
3165 dnl  theora decoder plugin
3166 dnl
3167 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3168
3169 dnl
3170 dnl  dirac encoder plugin
3171 dnl
3172 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3173
3174 dnl
3175 dnl  schroedinger decoder plugin (for dirac format video)
3176 dnl
3177 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3178
3179 dnl
3180 dnl  PNG decoder module
3181 dnl
3182 AC_ARG_ENABLE(png,
3183   [  --enable-png            PNG support (default enabled)])
3184 if test "${enable_png}" != "no"; then
3185 AC_CHECK_HEADERS(png.h, [
3186   LDFLAGS="${LDFLAGS_save} -lz"
3187   AC_CHECK_LIB(png, png_set_rows, [
3188     VLC_ADD_LIBS([png],[-lpng -lz])
3189     VLC_ADD_PLUGIN([png])
3190     VLC_ADD_PLUGIN([osdmenu])
3191     VLC_ADD_PLUGIN([osd_parser])],
3192     [],[-lz])
3193     LDFLAGS="${LDFLAGS_save}"
3194   ])
3195 fi
3196 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3197
3198 dnl
3199 dnl H264 encoder plugin (using libx264)
3200 dnl
3201 AC_ARG_ENABLE(x264,
3202   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3203 if test "${enable_x264}" != "no"; then
3204   AC_ARG_WITH(x264-tree,
3205     [  --with-x264-tree=PATH   x264 tree for static linking ],[],[])
3206   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3207   then
3208     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3209     if test -z "${real_x264_tree}"
3210     then
3211       dnl  The given directory can't be found
3212       AC_MSG_RESULT(no)
3213       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3214     fi
3215     dnl  Use a custom libx264
3216     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3217     if test -f ${real_x264_tree}/x264.h
3218     then
3219       AC_MSG_RESULT(yes)
3220       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3221       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3222       PKG_CHECK_MODULES(X264,x264, [
3223         VLC_ADD_PLUGIN([x264])
3224         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3225         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3226         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3227           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3228         fi
3229       ],[
3230         AC_MSG_ERROR([the specified tree hasn't been compiled])
3231       ])
3232       LDFLAGS="${LDFLAGS_save}"
3233     else
3234       AC_MSG_RESULT(no)
3235       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3236     fi
3237   else
3238       PKG_CHECK_MODULES(X264,x264 >= 0.76, [
3239         VLC_ADD_PLUGIN([x264])
3240         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3241
3242         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3243           [ac_cv_ld_bsymbolic],
3244           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3245             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3246             LDFLAGS="${LDFLAGS_save}"
3247           ])
3248         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3249           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3250         ])
3251
3252         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3253         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3254           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3255         fi
3256       ],[
3257         if test "${enable_x264}" = "yes"; then
3258             AC_MSG_ERROR([Could not find libx264 >= 0.76 on your system: you may get it from http://www.videolan.org/x264.html])
3259           fi
3260       ])
3261     LDFLAGS="${LDFLAGS_save}"
3262   fi
3263 fi
3264
3265 dnl
3266 dnl libfluidsynth (MIDI synthetizer) plugin
3267 dnl
3268 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3269
3270 dnl
3271 dnl Teletext Modules
3272 dnl vbi decoder plugin (using libzbvi)
3273 dnl telx module
3274 dnl uncompatible
3275 dnl
3276 AC_ARG_ENABLE(zvbi,
3277   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3278                   libzvbi (default enabled)]))
3279 AC_ARG_ENABLE(telx,
3280   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3281                   zvbi) (default enabled if zvbi is absent)]))
3282
3283 AS_IF( [test "${enable_zvbi}" != "no"],[
3284     PKG_CHECK_MODULES(ZVBI,
3285         zvbi-0.2 >= 0.2.28,
3286         [
3287           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3288           if test "${SYS}" = "mingw32"; then
3289               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3290           fi
3291           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3292           VLC_ADD_PLUGIN([zvbi])
3293           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3294           AS_IF( [test "${enable_telx}" = "yes"],[
3295                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3296                                Using zvbi.])
3297                   ])
3298         ],[
3299           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3300         ])
3301     ])
3302 AS_IF( [test "${enable_telx}" != "no" ],[
3303   VLC_ADD_PLUGIN([telx])
3304   ])
3305
3306 dnl
3307 dnl libass subtitle rendering module
3308 dnl
3309 AC_ARG_ENABLE(libass,
3310   [  --enable-libass         Subtitle support using libass (default enabled)])
3311 AS_IF( [test "${enable_libass}" != "no"], [
3312   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3313       [
3314         VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
3315         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3316         VLC_ADD_PLUGIN([libass])
3317
3318         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3319           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3320            VLC_ADD_LIBS([libass],[-lfontconfig])
3321        ])
3322       ],[
3323         AC_MSG_WARN([LIBASS library not found])
3324       ])
3325   ])
3326
3327 dnl
3328 dnl asa demuxer
3329 dnl
3330 AC_ARG_ENABLE(asademux,
3331   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3332 AS_IF( [test "${enable_asademux}" = "yes"], [
3333   PKG_CHECK_MODULES(PCRE,
3334       libpcre >= 6.5,
3335       [
3336         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3337         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3338         if test "${SYS}" = "mingw32"; then
3339             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3340         fi
3341         VLC_ADD_PLUGIN([asademux])
3342       ],[
3343         AC_MSG_WARN([PCRE library not found (required for asademux)])
3344       ])
3345   ])
3346
3347 dnl
3348 dnl  kate decoder plugin
3349 dnl
3350 AC_ARG_ENABLE(kate,
3351 [  --enable-kate           kate codec (default enabled)])
3352 AS_IF([test "${enable_kate}" != "no"], [
3353   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3354       VLC_ADD_PLUGIN([kate])
3355       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3356       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3357         AC_CHECK_HEADERS(kate/kate.h, [
3358           AC_CHECK_LIB(kate, kate_decode_init, [
3359             VLC_ADD_PLUGIN([kate])
3360             kate_libs="-lkate -logg"
3361             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3362             AS_IF([test "x${enable_kate}" != "x"], [
3363               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3364               You also need to check that you have a libogg posterior to the 1.0 release.])
3365             ])
3366           ], [-lkate -logg])
3367         ],[
3368           AS_IF([test "x${enable_kate}" != "x"], [
3369             AC_MSG_ERROR([libkate headers do not 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         ])
3373   ])
3374 ])
3375
3376
3377 dnl
3378 dnl  tiger rendering for kate decoder plugin
3379 dnl
3380 AC_ARG_ENABLE(tiger,
3381 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3382 AS_IF([test "${enable_tiger}" != "no"], [
3383   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3384       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3385       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3386       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3387         AS_IF([test "x${enable_tiger}" != "x"], [
3388           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3389         ])
3390   ])
3391 ])
3392
3393
3394
3395 dnl
3396 dnl  Video plugins
3397 dnl
3398
3399 AC_ARG_WITH(,[Video plugins:])
3400
3401 dnl
3402 dnl  Xlib
3403 dnl
3404
3405 AC_PATH_XTRA()
3406
3407 dnl
3408 dnl  X C Bindings modules
3409 dnl
3410 AC_ARG_ENABLE(xcb,
3411   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3412   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
3413     enable_xcb="yes"
3414   ], [
3415     enable_xcb="no"
3416   ])
3417 ])
3418 AC_ARG_ENABLE(xvideo,
3419   [  --enable-xvideo         XVideo support (default enabled)],, [
3420     enable_xvideo="$enable_xcb"
3421 ])
3422
3423 need_xid_provider="no"
3424 AS_IF([test "${enable_xcb}" != "no"], [
3425   dnl libxcb
3426   PKG_CHECK_MODULES(XCB, [xcb])
3427   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3428   VLC_ADD_PLUGIN([screensaver])
3429   VLC_ADD_PLUGIN([xcb_x11])
3430   VLC_ADD_PLUGIN([xcb_screen])
3431   VLC_ADD_PLUGIN([xcb_apps])
3432   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3433
3434   AS_IF([test "${enable_xvideo}" != "no"], [
3435     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3436       VLC_ADD_PLUGIN([xcb_xv])
3437     ], [
3438       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3439         VLC_ADD_PLUGIN([xcb_xv])
3440         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3441       ])
3442     ])
3443   ])
3444
3445   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3446     VLC_ADD_PLUGIN([panoramix])
3447     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3448     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3449   ], [true])
3450
3451   dnl xcb-utils
3452   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3453     have_xcb_keysyms="yes"
3454   ], [
3455     PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
3456       have_xcb_keysyms="yes"
3457       VLC_ADD_CFLAGS([globalhotkeys], [-DXCB_KEYSYM_OLD_API])
3458     ], [
3459       have_xcb_keysyms="no"
3460       need_xid_provider="yes"
3461     ])
3462   ])
3463
3464   AS_IF([test "${have_xcb_keysyms}" = "yes"], [
3465     PKG_CHECK_MODULES(XPROTO, [xproto])
3466     VLC_ADD_PLUGIN([xcb_window])
3467     VLC_ADD_PLUGIN([globalhotkeys])
3468     VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3469     VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3470   ])
3471   VLC_ADD_PLUGIN([xdg_screensaver])
3472 ])
3473
3474 AC_ARG_ENABLE(glx,
3475   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3476   enable_glx="$enable_xcb"
3477 ])
3478 AS_IF([test "${enable_glx}" != "no"], [
3479   PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb])
3480   PKG_CHECK_MODULES(GL, [gl],, [
3481     AC_CHECK_HEADER([GL/gl.h], [
3482       GL_CFLAGS=""
3483       GL_LIBS="-lGL"
3484     ], [
3485       AC_MSG_ERROR([GLX (libGL) cannot be found. If you do not need OpenGL with X11, use --disable-glx.])
3486     ])
3487   ])
3488   VLC_ADD_PLUGIN([xcb_glx])
3489 ])
3490 AC_SUBST([GL_CFLAGS])
3491 AC_SUBST([GL_LIBS])
3492
3493
3494 dnl
3495 dnl  OpenGL module
3496 dnl  (enabled by default except on beos)
3497 dnl
3498 AC_ARG_ENABLE(opengl,
3499   [  --enable-opengl         OpenGL support (default enabled)])
3500 if test "${enable_opengl}" != "no" &&
3501    test "${SYS}" = "darwin"; then
3502     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3503     VLC_ADD_PLUGIN([opengl])
3504     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3505 fi
3506
3507 dnl
3508 dnl  SDL module
3509 dnl
3510 AC_ARG_ENABLE(sdl,
3511   [  --enable-sdl            SDL support (default enabled)])
3512 AC_ARG_ENABLE(sdl-image,
3513   [  --enable-sdl-image      SDL image support (default enabled)])
3514 if test "${enable_sdl}" != "no"
3515 then
3516   SDL_PATH="${PATH}"
3517   AC_ARG_WITH(sdl-config-path,
3518     [  --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3519     [ if test "${with_sdl_config_path}" != "no"
3520       then
3521         SDL_PATH="${with_sdl_config_path}:${PATH}"
3522       fi ])
3523   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3524   SDL_HEADER="SDL/SDL.h"
3525   SDL_IMAGE="SDL/SDL_image.h"
3526
3527   if test "${SDL_CONFIG}" != "no";  then
3528      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3529         # SDL on Darwin is heavily patched and can only run SDL_image
3530         if test "${SYS}" != "darwin"; then
3531           VLC_ADD_PLUGIN([vout_sdl])
3532           VLC_ADD_PLUGIN([aout_sdl])
3533         fi
3534         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3535         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3536
3537         # SDL_image
3538         AS_IF([ test "${enable_sdl_image}" != "no"],[
3539           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3540             VLC_ADD_PLUGIN([sdl_image])
3541             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3542             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3543             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3544             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3545             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3546       You should install it alongside your SDL package.])
3547             ])
3548         ])
3549      ],[
3550        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3551                     Alternatively you can also configure with --disable-sdl.])
3552      ])
3553   else if test "${enable_sdl}" =  "yes"; then
3554     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3555 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3556     ])
3557       fi
3558   fi
3559 fi
3560
3561 dnl
3562 dnl  freetype module
3563 dnl
3564 AC_ARG_ENABLE(freetype,
3565   [  --enable-freetype       freetype support (default enabled)])
3566 AC_ARG_ENABLE(fribidi,
3567   [  --enable-fribidi        fribidi support (default enabled)])
3568 AC_ARG_ENABLE(fontconfig,
3569   [  --enable-fontconfig     fontconfig support (default enabled)])
3570 if test "${enable_freetype}" != "no"
3571 then
3572    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3573       VLC_ADD_PLUGIN([freetype])
3574       have_freetype=yes
3575       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3576       if test "${SYS}" = "mingw32"; then
3577         VLC_ADD_LIBS([freetype],[-liconv -lz])
3578       fi
3579       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3580       if test "${enable_fontconfig}" != "no"
3581       then
3582         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3583           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3584            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3585         AC_CHECK_HEADERS(Carbon/Carbon.h,
3586           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3587       fi
3588
3589      dnl fribidi support
3590       if test "${enable_fribidi}" != "no"
3591       then
3592         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3593           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3594           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3595         ])
3596       fi
3597
3598   ],[
3599   have_freetype=no
3600   AS_IF([ test "${enable_freetype}" =  "yes"],[
3601     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3602 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3603       ])
3604     ])
3605   ])
3606
3607 fi
3608
3609 dnl
3610 dnl  libxml2 module
3611 dnl
3612 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3613
3614 dnl
3615 dnl  SVG module
3616 dnl
3617 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3618
3619 dnl
3620 dnl Snapshot vout module (with cache)
3621 dnl
3622 AC_ARG_ENABLE(snapshot,
3623   [  --enable-snapshot       snapshot module (default disabled)])
3624 if test "${enable_snapshot}" = "yes"
3625 then
3626   VLC_ADD_PLUGIN([snapshot])
3627 fi
3628
3629 dnl
3630 dnl Roku HD1000 Video output module
3631 dnl
3632 AC_ARG_ENABLE(hd1000v,
3633   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3634 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3635   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3636    test "${enable_hd1000v}" = "yes"); then
3637   AC_LANG_PUSH([C++])
3638   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3639   [
3640     can_build_roku="yes"
3641   ],
3642   [
3643     can_build_roku="no"
3644     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3645   ])
3646   if test "$can_build_roku" = "yes"
3647   then
3648     VLC_ADD_PLUGIN([hd1000v])
3649     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3650   fi
3651   AC_LANG_POP([C++])
3652 fi
3653
3654 dnl
3655 dnl  Windows DirectX module
3656 dnl
3657
3658 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3659 then
3660   VLC_ADD_PLUGIN([panoramix])
3661 fi
3662
3663 AC_ARG_ENABLE(directx,
3664   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3665 if test "${enable_directx}" != "no"
3666 then
3667   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3668   then
3669       AC_CHECK_HEADERS(ddraw.h,
3670       [ VLC_ADD_PLUGIN([directx])
3671         VLC_ADD_PLUGIN([aout_directx])
3672         VLC_ADD_LIBS([directx],[-lgdi32])
3673       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3674       )
3675       AC_CHECK_HEADERS(GL/gl.h,
3676       [ VLC_ADD_PLUGIN([glwin32])
3677         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3678       ])
3679       AC_CHECK_HEADERS(d3d9.h,
3680       [ VLC_ADD_PLUGIN([direct3d])
3681         VLC_ADD_LIBS([direct3d],[-lgdi32])
3682       ])
3683       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3684   fi
3685 fi
3686
3687 dnl
3688 dnl  win32 GDI plugin
3689 dnl
3690 AC_ARG_ENABLE(wingdi,
3691   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3692 if test "${enable_wingdi}" != "no"; then
3693   if test "${SYS}" = "mingw32"; then
3694     VLC_ADD_PLUGIN([wingdi])
3695     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3696   fi
3697   if test "${SYS}" = "mingwce"; then
3698     VLC_ADD_PLUGIN([wingdi])
3699     VLC_ADD_PLUGIN([wingapi])
3700     VLC_ADD_LIBS([wingdi],[-laygshell])
3701     VLC_ADD_LIBS([wingapi],[-laygshell])
3702   fi
3703 fi
3704
3705
3706 dnl
3707 dnl  Linux framebuffer module
3708 dnl
3709 AC_ARG_ENABLE(fb,
3710   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3711     if test "${enable_fb}" != "no"
3712     then
3713       AC_CHECK_HEADERS(linux/fb.h, [
3714         VLC_ADD_PLUGIN([fb])
3715       ])
3716     fi
3717
3718 dnl
3719 dnl  OMAP Framebuffer module
3720 dnl
3721 AC_ARG_ENABLE(omapfb,
3722   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3723     if test "${enable_omapfb}" = "yes"
3724     then
3725       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3726         VLC_ADD_PLUGIN([omapfb])
3727         AC_CHECK_HEADERS(X11/Xlib.h, [
3728           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
3729       ])
3730       VLC_ADD_PLUGIN([swscale_omap])
3731     fi
3732
3733 dnl
3734 dnl  SVGAlib module
3735 dnl
3736 AC_ARG_ENABLE(svgalib,
3737   [  --enable-svgalib        SVGAlib support (default disabled)])
3738 if test "${enable_svgalib}" = "yes"
3739 then
3740   VLC_ADD_PLUGIN([svgalib])
3741   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3742 fi
3743
3744 dnl
3745 dnl  DirectFB module
3746 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3747 dnl  TODO: support for static linking
3748 dnl
3749 AC_ARG_ENABLE(directfb,
3750   [  --enable-directfb       DirectFB support (default disabled)])
3751 AC_ARG_WITH(directfb,
3752   [  --with-directfb=PATH    path to DirectFB headers and libraries])
3753
3754 if test "${enable_directfb}" = "yes"; then
3755     have_directfb="false"
3756     CPPFLAGS_mydirectfb=
3757     LIBS_mydirectfb=
3758     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3759         dnl Trying the given location
3760         CPPFLAGS_save="${CPPFLAGS}"
3761         LIBS_save="${LIBS}"
3762
3763         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3764         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3765         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3766
3767         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3768         LIBS="${LIBS} ${LIBS_new}"
3769
3770         dnl FIXME: too obscure
3771         AC_CHECK_HEADER([directfb.h], [
3772             AC_CHECK_LIB([direct],[direct_initialize], [
3773                 AC_CHECK_LIB([fusion], [fusion_enter], [
3774                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3775                 ], have_directfb="false")
3776             ], have_directfb="false")
3777         ], have_directfb="false")
3778
3779         dnl Restore flags
3780         CPPFLAGS="${CPPFLAGS_save}"
3781         LIBS="${LIBS_save}"
3782
3783         if test "${have_directfb}" = "true"; then
3784             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
3785             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3786         fi
3787     else
3788         dnl Look for directfb-config
3789         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3790         if test "${DIRECTFB_CONFIG}" != "no"; then
3791             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3792             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3793             have_directfb="true"
3794         else
3795             dnl Trying with pkg-config
3796             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3797                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3798                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3799                 have_directfb="true"
3800                 ], [have_directfb="false"])
3801         fi
3802     fi
3803     if test "${have_directfb}" = "true"; then
3804         VLC_ADD_PLUGIN([directfb])
3805         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3806         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3807     else
3808         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3809     fi
3810 fi
3811
3812
3813
3814 dnl
3815 dnl  GGI module
3816 dnl
3817 AC_ARG_ENABLE(ggi,
3818   [  --enable-ggi            GGI support (default disabled)])
3819 if test "${enable_ggi}" = "yes"
3820 then
3821   AC_CHECK_HEADER([ggi/ggi.h],[
3822     VLC_ADD_PLUGIN([ggi])
3823     VLC_ADD_LIBS([ggi],[-lggi])
3824     AC_ARG_WITH(ggi,
3825       [  --with-ggi=PATH         path to libggi],
3826       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3827         then
3828           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3829           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
3830         fi ])
3831     ],[
3832        AC_MSG_ERROR([LibGGI development files can't be found])
3833     ])
3834 fi
3835
3836 dnl
3837 dnl  AA plugin
3838 dnl
3839 AC_ARG_ENABLE(aa,
3840   [  --enable-aa             aalib output (default disabled)])
3841 if test "${enable_aa}" = "yes"
3842 then
3843   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3844   if test "${have_aa}" = "true"
3845   then
3846     VLC_ADD_PLUGIN([aa])
3847     VLC_ADD_LIBS([aa],[-laa])
3848   fi
3849 fi
3850
3851 dnl
3852 dnl  libcaca plugin
3853 dnl
3854 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3855
3856 dnl
3857 dnl  Audio plugins
3858 dnl
3859
3860 AC_ARG_WITH(,[Audio plugins:])
3861
3862 dnl
3863 dnl  OSS /dev/dsp module (enabled by default except on win32)
3864 dnl
3865 AC_ARG_ENABLE(oss,
3866   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3867
3868 if test "${enable_oss}" != "no" &&
3869   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3870    test "${enable_oss}" = "yes")
3871 then
3872   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3873     VLC_ADD_PLUGIN([oss])
3874     VLC_ADD_PLUGIN([access_oss])
3875     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])
3876                                 VLC_ADD_LIBS([access_oss],[-lossaudio])])
3877   ])
3878 fi
3879
3880 dnl
3881 dnl  Pulseaudio module
3882 dnl
3883 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
3884
3885 dnl
3886 dnl  Portaudio module
3887 dnl
3888 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3889
3890 dnl
3891 dnl  ALSA module
3892 dnl
3893 PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
3894 PKG_ENABLE_MODULES_VLC([ACCESS_ALSA], [access_alsa], [alsa >= 1.0.0], [Alsa access for linux], [auto])
3895
3896 dnl
3897 dnl  win32 waveOut plugin
3898 dnl
3899 AC_ARG_ENABLE(waveout,
3900   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3901 if test "${enable_waveout}" != "no"; then
3902   if test "${SYS}" = "mingw32"; then
3903     VLC_ADD_PLUGIN([waveout])
3904     VLC_ADD_LIBS([waveout],[-lwinmm])
3905   fi
3906   if test "${SYS}" = "mingwce"; then
3907     VLC_ADD_PLUGIN([waveout])
3908   fi
3909 fi
3910
3911 dnl
3912 dnl  CoreAudio plugin
3913 dnl
3914 AC_ARG_ENABLE(macosx-audio,
3915   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
3916 if test "x${enable_macosx_audio}" != "xno" &&
3917   (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3918 then
3919   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3920     [ VLC_ADD_PLUGIN([auhal])
3921       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3922     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3923 fi
3924
3925 dnl
3926 dnl  Roku HD1000 audio
3927 dnl
3928 AC_ARG_ENABLE(hd1000a,
3929   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3930 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3931   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3932    test "${enable_hd1000a}" = "yes")
3933 then
3934   AC_LANG_PUSH([C++])
3935   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3936     VLC_ADD_PLUGIN([hd1000a])
3937     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
3938   AC_LANG_POP([C++])
3939 fi
3940
3941 dnl
3942 dnl  JACK modules
3943 dnl
3944 PKG_ENABLE_MODULES_VLC([JACK], [jack], [jack], [JACK audio I/O modules],[auto])
3945 PKG_ENABLE_MODULES_VLC([JACK], [access_jack], [jack], [JACK audio I/O modules],[auto])
3946
3947
3948 dnl
3949 dnl  CyberLink for C++ UPnP stack
3950 dnl
3951 AC_ARG_ENABLE(cyberlink,
3952   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
3953   AS_IF([test "${enable_cyberlink}" = "yes" ], [
3954   AC_ARG_WITH(cyberlink-tree,
3955     [  --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
3956
3957   dnl
3958   dnl test for --with-cyberlink-tree
3959   dnl
3960   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
3961     AC_LANG_PUSH(C++)
3962     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
3963     AS_IF([test -z "${real_cyberlink_tree}"], [
3964       dnl  The given directory can't be found
3965       AC_MSG_RESULT(no)
3966       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
3967     ])
3968     CPPFLAGS_save="${CPPFLAGS}"
3969     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
3970     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
3971     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
3972       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
3973         VLC_ADD_PLUGIN([upnp_cc])
3974       ],[
3975         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
3976       ])
3977     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
3978     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
3979       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
3980       dnl The mere fact that we have to make such an ugly check sucks
3981       AC_MSG_CHECKING(for XML parser to link CyberLink with)
3982       LIBS_save="$LIBS"
3983       LIBS_cclink="no"
3984       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
3985         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
3986         AC_LINK_IFELSE([AC_LANG_PROGRAM([
3987 #include <cybergarage/upnp/media/player/MediaPlayer.h>
3988 using namespace CyberLink;
3989
3990 class testclass : public SearchResponseListener, public MediaPlayer
3991 {
3992     virtual void deviceSearchResponseReceived( SSDPPacket *)
3993     {
3994     }
3995
3996     public:
3997       testclass (void)
3998       {
3999         addSearchResponseListener (this);
4000         start ();
4001       }
4002 };
4003 ],[testclass l;])],[LIBS_cclink="$l"])
4004       done
4005       LIBS="${LIBS_save}"
4006       dnl should not happen - otherwise this needs fixing - hence FAILURE
4007       AS_IF([test "${LIBS_cclink}" = "no"],
4008         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4009       AC_MSG_RESULT([${LIBS_cclink}])
4010       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4011     ], [
4012       AC_MSG_RESULT(no)
4013       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4014     ])
4015     CPPFLAGS="${CPPFLAGS_save}"
4016     AC_LANG_POP([C++])
4017   ])
4018 ])
4019
4020 dnl
4021 dnl UPnP Plugin (Intel SDK)
4022 dnl
4023 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
4024
4025
4026 dnl
4027 dnl  Interface plugins
4028 dnl
4029
4030 AC_ARG_WITH(,[Interface plugins:])
4031
4032 dnl
4033 dnl Skins2 module
4034 dnl
4035 AC_ARG_ENABLE(skins2,
4036   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4037    enabled except on MacOSX, BeOS and WinCE)])])
4038 if test "${enable_skins2}" = "yes" ||
4039   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4040    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4041
4042   dnl test for the required libraries
4043   skins2_missing_lib="no"
4044
4045   dnl freetype
4046   if test "${have_freetype}" != "yes"; then
4047     skins2_missing_lib="yes"
4048     if test "${enable_skins2}" = "yes"; then
4049       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4050     fi
4051   fi
4052
4053   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
4054     VLC_ADD_PLUGIN([skins2])
4055     ALIASES="${ALIASES} svlc"
4056     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4057     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4058     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4059
4060   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4061     VLC_ADD_PLUGIN([skins2])
4062     ALIASES="${ALIASES} svlc"
4063     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4064     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4065     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4066
4067   else if test "${skins2_missing_lib}" = "no"; then
4068     VLC_ADD_PLUGIN([skins2])
4069     ALIASES="${ALIASES} svlc"
4070     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4071     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4072     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4073     need_xid_provider="no"
4074   fi fi fi
4075 fi
4076 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4077          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4078           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4079
4080 dnl
4081 dnl Hildon UI
4082 dnl
4083 AC_ARG_ENABLE(hildon,
4084   [  --enable-hildon         Hildon touchscreen UI (default disabled)])
4085 AS_IF([test "${enable_hildon}" = "yes"], [
4086   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4087     VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS}])
4088     VLC_ADD_LIBS([hildon],[${HILDON_LIBS}])
4089     VLC_ADD_PLUGIN([hildon])
4090     ALIASES="${ALIASES} mvlc"
4091     need_xid_provider="no"
4092   ], [
4093     AS_IF([test "${enable_hildon}" = "yes"],[
4094       AC_MSG_ERROR([Hildon libraries not found])
4095     ])
4096     enable_hildon="no"
4097   ])
4098 ])
4099 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
4100
4101 dnl
4102 dnl QT 4
4103 dnl
4104 AC_ARG_ENABLE(qt4,
4105   [  --enable-qt4            Qt 4 support (default enabled) ],, [
4106   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4107 ])
4108 AS_IF([test "${enable_qt4}" != "no"], [
4109   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4110     VLC_ADD_PLUGIN([qt4])
4111     ALIASES="${ALIASES} qvlc"
4112     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4113         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4114         need_xid_provider="no"
4115     ], [
4116         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4117     ])
4118     QT4LOCALEDIR="$(eval $PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4119     AC_SUBST(QT4LOCALEDIR)
4120     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4121     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4122     AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4123     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4124   ], [
4125     AS_IF([test "${enable_qt4}" = "yes"],[
4126       AC_MSG_ERROR([Qt 4 library not found])
4127     ],[
4128       AC_MSG_WARN([Qt 4 library not found])
4129     ])
4130     enable_qt4="no"
4131   ])
4132 ])
4133 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4134
4135 dnl
4136 dnl Simple test for skins2 dependency
4137 dnl
4138 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4139   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.])
4140 ])
4141
4142 dnl
4143 dnl  MacOS X video output/gui modules
4144 dnl
4145 AC_ARG_ENABLE(macosx,
4146   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
4147 if test "x${enable_macosx}" = "xyes"
4148 then
4149   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,Cocoa])
4150   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,OpenGL])
4151   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4152   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4153   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4154   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4155   VLC_ADD_LDFLAGS([macosx],                           [-F${CONTRIB_DIR}/Sparkle -Wl,-framework,Sparkle])
4156   VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/Sparkle])
4157   dnl For bug report
4158   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4159   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4160   VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
4161
4162   VLC_ADD_PLUGIN([macosx])
4163   VLC_ADD_PLUGIN([minimal_macosx])
4164 fi
4165
4166 dnl
4167 dnl  MacOS X related modules
4168 dnl
4169
4170 AC_ARG_ENABLE(macosx-vout,
4171   [  --enable-macosx-vout    Mac OS X video output module (default enabled on Mac OS X)])
4172 if test "x${enable_macosx_vout}" != "xno" &&
4173   (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
4174 then
4175   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,Cocoa])
4176   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,OpenGL])
4177   VLC_ADD_PLUGIN([vout_macosx])
4178 fi
4179
4180 AC_ARG_ENABLE(macosx-dialog-provider,
4181   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
4182 if test "x${enable_macosx_dialog_provider}" != "xno" &&
4183   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
4184 then
4185   VLC_ADD_LDFLAGS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
4186   VLC_ADD_PLUGIN([macosx_dialog_provider])
4187 fi
4188
4189 AC_ARG_ENABLE(macosx-qtcapture,
4190   [  --enable-macosx-qtcapture Mac OS X qtcapture (iSight) module (default enabled on Mac OS X)])
4191 if test "x${enable_macosx_qtcapture}" != "xno" &&
4192   (test "${SYS}" = "darwin" || test "${enable_macosx_qtcapture}" = "yes")
4193 then
4194   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,Cocoa])
4195   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QTKit])
4196   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreAudio])
4197   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QuartzCore])
4198   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreVideo])
4199   VLC_ADD_PLUGIN([qtcapture])
4200 fi
4201
4202 AC_ARG_ENABLE(macosx-eyetv,
4203   [  --enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
4204 if test "x${enable_macosx_eyetv}" != "xno" &&
4205   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
4206 then
4207   VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,Foundation])
4208   VLC_ADD_PLUGIN([access_eyetv])
4209 fi
4210
4211 AC_ARG_ENABLE(macosx-vlc-app,
4212   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4213 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4214     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4215
4216
4217 dnl
4218 dnl  ncurses module
4219 dnl
4220 AC_ARG_ENABLE(ncurses,
4221   [  --disable-ncurses       ncurses interface support (default enabled)],
4222   [if test "${enable_ncurses}" != "no"; then
4223     AC_CHECK_HEADER(ncurses.h,
4224       [AC_CHECK_LIB(ncursesw, mvprintw,
4225         [VLC_ADD_PLUGIN([ncurses])
4226         VLC_ADD_LIBS([ncurses],[-lncursesw])
4227         ALIASES="${ALIASES} nvlc"
4228         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4229         AC_CHECK_LIB(ncursesw, tgetent, [],
4230           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4231             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4232               [AS_IF([test "x${enable_ncurses}" != "x"],
4233                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4234                )])])
4235             ]
4236           )
4237         )
4238         ],
4239         [AC_CHECK_LIB( ncurses, mvprintw,
4240           [VLC_ADD_PLUGIN([ncurses])
4241           ALIASES="${ALIASES} nvlc"
4242           VLC_ADD_LIBS([ncurses],[-lncurses])
4243           AC_CHECK_LIB(ncurses, tgetent, [],
4244             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4245               [AS_IF([test "x${enable_ncurses}" != "x"],
4246                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4247             )]
4248           )],
4249           [AS_IF([test "x${enable_ncurses}" != "x"], [
4250             AC_MSG_ERROR([libncurses not found])])]
4251         )]
4252       )]
4253     )
4254   fi]
4255 )
4256
4257 dnl
4258 dnl  XOSD plugin
4259 dnl
4260 AC_ARG_ENABLE(xosd,
4261   [  --enable-xosd           xosd interface support (default disabled)])
4262 if test "${enable_xosd}" = "yes"
4263 then
4264   AC_CHECK_HEADERS(xosd.h,
4265     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4266       VLC_ADD_PLUGIN([xosd])
4267       VLC_ADD_LIBS([xosd],[-lxosd])
4268     ])
4269   )
4270 fi
4271
4272 dnl
4273 dnl Framebuffer (overlay) plugin
4274 dnl
4275 AC_ARG_ENABLE(fbosd,
4276   [  --enable-fbosd          fbosd interface support (default disabled)])
4277 if test "${enable_fbosd}" = "yes"
4278 then
4279   AC_CHECK_HEADERS(linux/fb.h, [
4280     VLC_ADD_PLUGIN([fbosd])
4281  ])
4282 fi
4283
4284 dnl
4285 dnl Post-interface configuration checks
4286 dnl
4287 AS_IF([test "$need_xid_provider" = "yes"], [
4288   AC_MSG_ERROR([X11 video outputs need a window provider (Qt4, Skins2, Hildon or xcb-utils), but none were found. Please install xcb-keysyms.])
4289 ])
4290
4291 dnl
4292 dnl Visualisation plugin
4293 dnl
4294 AC_ARG_ENABLE(visual,
4295   [  --enable-visual         visualisation plugin (default enabled)])
4296 if test "${enable_visual}" != "no"
4297 then
4298     VLC_ADD_PLUGIN([visual])
4299 fi
4300
4301 dnl
4302 dnl  goom visualization plugin
4303 dnl
4304 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4305
4306 dnl
4307 dnl libprojectM visualization plugin
4308 dnl
4309 PKG_ENABLE_MODULES_VLC([PROJECTM], [], [libprojectM], [projectM visualization plugin], [auto])
4310
4311 dnl
4312 dnl  AtmoLight (homemade Philips Ambilight clone)
4313 dnl
4314 AC_ARG_ENABLE(atmo,
4315 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
4316                 (default enabled)]),, [enable_atmo="yes"])
4317 AS_IF([test "${enable_atmo}" != no], [
4318   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4319     AC_LANG_PUSH(C++)
4320     VLC_ADD_PLUGIN([atmo])
4321     AC_LANG_POP(C++)
4322   ])
4323 ])
4324
4325 dnl
4326 dnl  Bonjour services discovery
4327 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4328
4329 dnl
4330 dnl  libudev services discovery
4331 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4332
4333 dnl
4334 dnl MTP devices services discovery
4335 PKG_ENABLE_MODULES_VLC([MTP], [], [libmtp >= 0.3.0],[MTP devices support],[auto])
4336
4337 dnl
4338 dnl  Lirc plugin
4339 dnl
4340 AC_ARG_ENABLE(lirc,
4341   [  --enable-lirc           lirc support (default disabled)])
4342 if test "${enable_lirc}" = "yes"
4343 then
4344   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4345   if test "${have_lirc}" = "true"
4346   then
4347     VLC_ADD_PLUGIN([lirc])
4348     VLC_ADD_LIBS([lirc],[-llirc_client])
4349   fi
4350 fi
4351
4352
4353 AC_ARG_WITH(,[Misc options:])
4354
4355 dnl
4356 dnl libgcrypt
4357 dnl
4358 AC_ARG_ENABLE(libgcrypt,
4359   [  --disable-libgcrypt     gcrypt support (default enabled)])
4360 AS_IF([test "${enable_libgcrypt}" != "no"], [
4361   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4362     libgcrypt-config --version >/dev/null || \
4363         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4364     AC_CHECK_LIB(gcrypt, gcry_control, [
4365       have_libgcrypt="yes"
4366       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4367       GCRYPT_LIBS="`libgcrypt-config --libs`"
4368     ], [
4369       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4370     ], [`libgcrypt-config --libs`])
4371   ], [
4372     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4373   ], [#include <gcrypt.h>]
4374   )
4375 ])
4376
4377 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4378   AS_IF([test "${have_libgcrypt}" = "yes"],[
4379     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4380   ])
4381 fi
4382 AC_SUBST(GCRYPT_CFLAGS)
4383 AC_SUBST(GCRYPT_LIBS)
4384 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4385
4386 dnl
4387 dnl TLS/SSL
4388 dnl
4389 AC_ARG_ENABLE(gnutls,
4390   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4391
4392 AS_IF([test "${have_libgcrypt}" != "yes"], [
4393   AS_IF([test "${enable_gnutls}" = "yes"], [
4394     AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
4395   ])
4396   enable_gnutls="no"
4397 ])
4398 AS_IF([test "${enable_gnutls}" != "no"], [
4399   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4400     VLC_ADD_PLUGIN([gnutls])
4401     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4402     AS_IF([test "${SYS}" = "mingw32"], [
4403       dnl pkg-config --libs gnutls omits these
4404       VLC_ADD_LIBS([gnutls], [-lz])
4405       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
4406     ])
4407     dnl The GnuTLS plugin invokes gcry_control directly.
4408     AS_IF([test "${have_libgcrypt}" = "yes"],[
4409       VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4410       VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4411     ])
4412     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4413   ], [
4414     AS_IF([test "${enable_gnutls}" = "yes"], [
4415       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4416     ])
4417   ])
4418 ])
4419
4420
4421 dnl
4422 dnl RemoteOSD plugin (VNC client as video filter)
4423 dnl
4424 AC_ARG_ENABLE(remoteosd,
4425   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4426
4427 AS_IF([test "${enable_remoteosd}" != "no"], [
4428   AS_IF([test "${have_libgcrypt}" = "yes"],[
4429     VLC_ADD_PLUGIN([remoteosd])
4430     VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4431     VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4432   ], [
4433     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4434   ])
4435 ])
4436
4437
4438 dnl
4439 dnl RAOP plugin
4440 dnl
4441 AC_MSG_CHECKING([whether to enable RAOP plugin])
4442 AS_IF([test "${have_libgcrypt}" = "yes"], [
4443   AC_MSG_RESULT(yes)
4444   VLC_ADD_PLUGIN([stream_out_raop])
4445   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4446   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4447 ], [
4448   AC_MSG_RESULT(no)
4449   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4450 ])
4451
4452
4453 dnl
4454 dnl OSSO (Maemo screen blanking) plugin
4455 dnl
4456 PKG_ENABLE_MODULES_VLC([OSSO], [], [libosso], [Maemo support], [auto])
4457
4458 AS_IF([test -f "/etc/maemo_version"], [
4459   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4460 ])
4461
4462
4463 dnl
4464 dnl update checking system
4465 dnl
4466 AC_ARG_ENABLE(update-check,
4467   [  --enable-update-check   update checking system (default disabled)])
4468 if test "${enable_update_check}" = "yes"
4469 then
4470   if test "${have_libgcrypt}" != "yes"
4471   then
4472     AC_MSG_ERROR([libgcrypt is required for update checking system])
4473   fi
4474   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4475   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4476   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4477 fi
4478
4479 dnl
4480 dnl SQLite
4481 dnl
4482 AC_ARG_WITH(sqlite,
4483   [  --with-sqlite=PATH      sqlite path linking])
4484 if test "${SYS}" != "darwin"; then
4485   PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4486 else
4487   if test "${enable_sqlite}" != "no"
4488   then
4489     AC_CHECK_HEADERS(sqlite3.h, [
4490         VLC_ADD_PLUGIN([sqlite])
4491         if test "${with_sqlite}" != "no" -a -n "${with_sqlite}"; then
4492           AC_MSG_CHECKING(existence of sqlite directory in ${with_sqlite})
4493           real_sqlite="`cd ${with_sqlite} 2>/dev/null && pwd`"
4494           if test -z "${real_sqlite}"
4495           then
4496             dnl  The given directory can't be found
4497             AC_MSG_RESULT(no)
4498             AC_MSG_ERROR([cannot cd to ${with_sqlite}])
4499           fi
4500           VLC_ADD_CFLAGS([sqlite],[-I${with_sqlite}/include])
4501           VLC_ADD_LIBS([sqlite], [-L${with_sqlite}/lib -lsqlite3])
4502           AC_MSG_RESULT(yes)
4503         else
4504           VLC_ADD_LIBS([sqlite], [-lsqlite3])
4505         fi
4506         AC_DEFINE([SQLITE_MODULE], 1, [Define if you want to use SQLite module]) ],
4507         AC_MSG_ERROR([sqlite3 is required for sqlite module]) )
4508   fi
4509 fi
4510 AM_CONDITIONAL([HAVE_SQLITE], [test "${enable_sqlite}" != "no"])
4511
4512
4513 dnl
4514 dnl  Endianness check
4515 dnl
4516 AC_C_BIGENDIAN
4517 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4518   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4519 ], [
4520   DEFS_BIGENDIAN=""
4521 ])
4522 AC_SUBST(DEFS_BIGENDIAN)
4523
4524 dnl
4525 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4526 dnl
4527 loader=false
4528 AC_ARG_ENABLE(loader,
4529   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4530                   (default disabled)]))
4531 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4532 AS_IF([test "${enable_loader}" = "yes"],
4533   [ VLC_ADD_PLUGIN([dmo])
4534     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
4535     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4536     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
4537     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4538     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4539     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4540   ])
4541
4542 AC_ARG_WITH(,[Components:])
4543
4544 dnl
4545 dnl  the VLC binary
4546 dnl
4547 AC_ARG_ENABLE(vlc,
4548   [  --enable-vlc            build the VLC media player (default enabled)])
4549 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4550
4551 dnl
4552 dnl  Microsoft ActiveX support
4553 dnl
4554 activex=false
4555 AC_ARG_ENABLE(activex,
4556   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4557                   (default enabled on Win32)]))
4558 AC_ARG_WITH(wine-sdk-path,
4559   [  --with-wine-sdk-path=PATH path to wine sdk])
4560 if test "${enable_activex}" != "no"
4561 then
4562   if test "${SYS}" = "mingw32"
4563   then
4564     AC_CHECK_PROGS(MIDL, [midl], no)
4565     if test "${with_wine_sdk_path}" != ""
4566     then
4567        WINE_SDK_PATH=${with_wine_sdk_path}
4568        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4569     else
4570        WIDL=no
4571     fi
4572     AC_LANG_PUSH(C++)
4573     AC_CHECK_HEADERS(ole2.h,
4574       [AC_CHECK_HEADERS(olectl.h,
4575         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4576           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4577           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4578           AC_CHECK_HEADERS(objsafe.h,
4579             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4580             [
4581              #if HAVE_OLE2_H
4582              #   include <ole2.h>
4583              #endif
4584             ]
4585           )
4586           activex=:
4587           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4588         ],
4589         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4590       )],
4591       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4592     )
4593     AC_LANG_POP(C++)
4594   fi
4595 fi
4596 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4597 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4598 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4599 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4600 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4601
4602 dnl
4603 dnl  Mozilla plugin
4604 dnl
4605 mozilla=false
4606 AC_ARG_ENABLE(mozilla,
4607   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4608                   (default disabled)]))
4609 AC_ARG_WITH(mozilla-sdk-path,
4610   [  --with-mozilla-sdk-path=PATH path to mozilla sdk])
4611 AC_ARG_WITH(mozilla-pkg,
4612   [  --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4613 AC_LANG_PUSH(C++)
4614 if test "${enable_mozilla}" = "yes"
4615 then
4616   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4617     [
4618     dnl pkg-config
4619     dnl As we want to do a loop due to the number of name possible for the .pc
4620     dnl we can't use the pkg-config macros.
4621
4622     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4623     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4624     AC_MSG_NOTICE([Checking for Mozilla])
4625     found=0
4626     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4627     then
4628       found=1
4629     else
4630       if test -n "$PKG_CONFIG"; then
4631         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4632           echo "Trying to find $i.pc files" >&5
4633           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4634           then
4635             echo "Using $i.pc files." >&5
4636             echo "Using $i.pc files." >&6
4637             found=1
4638             MOZILLA_CFLAGS=$(eval $PKG_CONFIG --cflags "$i" )
4639             MOZILLA_LIBS=$(eval $PKG_CONFIG --libs "$i" )
4640             break
4641           fi
4642         done
4643       fi
4644     fi
4645     AS_IF( [test $found = 1],[
4646         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4647         MOZILLA_REQUIRED_HEADERS=1
4648         AC_CHECK_HEADERS([npfunctions.h])
4649         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4650         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4651           [#if HAVE_NPAPI_H
4652            # include <npapi.h>
4653            #endif
4654           ])
4655         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4656             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
4657         fi
4658         MOZILLA_REQUIRED_HEADERS=
4659         mozilla=:
4660         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4661            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
4662            AS_IF([ test "${SYS}" != "darwin"],[
4663              PKG_CHECK_MODULES(XPM, [xpm xt],[
4664                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4665              ],[
4666                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4667              ])
4668           ])
4669         ])
4670         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4671         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4672         VLC_ADD_PLUGIN([mozilla])
4673         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4674         MOZILLA_CONFIG=
4675         CPPFLAGS="${CPPFLAGS_save}"
4676           ],
4677           [
4678             AC_PATH_PROGS(MOZILLA_CONFIG,
4679             [mozilla-config seamonkey-config xulrunner-config],
4680         [no])
4681             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
4682           ]
4683         )
4684     dnl pkg-config failed but we might have found a mozilla-config
4685     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
4686       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
4687         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4688         AC_CHECK_LIB(Xt,XtStrings,
4689          [
4690            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
4691            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
4692          ],
4693          [],
4694          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
4695         ])
4696         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
4697         LDFLAGS="${LDFLAGS_save}"
4698       fi
4699
4700       mozilla=:
4701       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4702       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
4703       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
4704       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4705       MOZILLA_REQUIRED_HEADERS=1
4706       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4707       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4708       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4709         [#if HAVE_NPAPI_H
4710          # include <npapi.h>
4711          #endif
4712         ])
4713       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4714       then
4715         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4716       fi
4717       MOZILLA_REQUIRED_HEADERS=
4718       CPPFLAGS="${CPPFLAGS_save}"
4719       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
4720     ])
4721     dnl End of moz_sdk = ""
4722   ],[
4723     dnl special case for mingw32
4724     if test "${SYS}" = "mingw32"
4725     then
4726       AC_CHECK_TOOL(CYGPATH, cygpath, "")
4727       dnl latest gecko sdk does not have an xpcom directory
4728       if test -d "${with_mozilla_sdk_path}/xpcom"; then
4729           mozilla_sdk_xpcom="/xpcom"
4730       fi
4731     fi
4732
4733     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4734     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
4735     MOZILLA_REQUIRED_HEADERS=1
4736     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4737     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4738     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4739         [#if HAVE_NPAPI_H
4740           #include <npapi.h>
4741           #endif
4742         ])
4743     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4744     then
4745         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4746     fi
4747     MOZILLA_REQUIRED_HEADERS=
4748     mozilla=:
4749     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4750     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])
4751     if ${need_xpcom_libs}; then
4752        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])
4753       if test "${SYS}" = "mingw32"; then
4754         dnl latest gecko sdk does not have embedstring
4755         if test -d "${real_mozilla_sdk}/embedstring/bin"
4756         then
4757           VLC_ADD_LIBS([mozilla],[-lembedstring])
4758         fi
4759       fi
4760     fi
4761     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
4762
4763     if test -n "${CYGPATH}"; then
4764       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4765     fi
4766     CPPFLAGS="${CPPFLAGS_save}"
4767  ])
4768 fi
4769 AC_LANG_POP(C++)
4770 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4771
4772 dnl
4773 dnl  test plugins
4774 dnl
4775 AC_ARG_ENABLE(testsuite,
4776   [  --enable-testsuite      build test modules (default disabled)])
4777 if test "${enable_testsuite}" = "yes"
4778 then
4779   TESTS="test1 test2 test3 test4"
4780
4781   dnl  we define those so that bootstrap sets the right linker
4782   VLC_ADD_CXXFLAGS([test2],[])
4783   VLC_ADD_OBJCFLAGS([test3],[])
4784   dnl  this one is needed until automake knows what to do
4785   VLC_ADD_LIBS([test3],[-lobjc])
4786
4787   VLC_ADD_PLUGIN([test1])
4788   VLC_ADD_PLUGIN([test2])
4789   VLC_ADD_PLUGIN([test3])
4790   VLC_ADD_PLUGIN([test4])
4791 fi
4792
4793 dnl
4794 dnl  Plugin and builtin checks
4795 dnl
4796 plugin_support=yes
4797
4798 dnl Automagically disable plugins if there is no system support for
4799 dnl dynamically loadable files (.so, .dll, .dylib).
4800 dnl don't forget vlc-win32 still can load .dll as plugins
4801 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
4802   AC_MSG_WARN([*** No plugin support! Building statically! ***])
4803   plugin_support=no
4804 ])
4805
4806 AS_IF([test "${plugin_support}" != "no"], [
4807   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
4808 ])
4809
4810 dnl
4811 dnl Pic and shared libvlc stuff
4812 dnl
4813 AS_IF([test "${SYS}" = "mingw32"], [
4814   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
4815   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
4816 ])
4817
4818 dnl
4819 dnl  Stuff used by the program
4820 dnl
4821 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4822 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
4823 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4824 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4825 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4826 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4827 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
4828 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
4829 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
4830 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
4831 AC_SUBST(COPYRIGHT_MESSAGE)
4832 AC_SUBST(VERSION_MESSAGE)
4833 AC_SUBST(VERSION_MAJOR)
4834 AC_SUBST(VERSION_MINOR)
4835 AC_SUBST(VERSION_REVISION)
4836 AC_SUBST(VERSION_EXTRA)
4837 AC_SUBST(COPYRIGHT_YEARS)
4838 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4839 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4840 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4841 dnl Win32 need s a numerical version_extra.
4842 case $( echo ${VERSION_EXTRA}|wc -m ) in
4843        "1") VERSION_EXTRA_RC="0";;
4844        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
4845        *) VERSION_EXTRA_RC="99"
4846 esac
4847 AC_SUBST(VERSION_EXTRA_RC)
4848 dnl
4849 dnl  Handle substvars that use $(top_srcdir)
4850 dnl
4851 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4852 AC_SUBST(VLC_CONFIG)
4853 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
4854
4855 dnl
4856 dnl  Restore *FLAGS
4857 dnl
4858 VLC_RESTORE_FLAGS
4859
4860 dnl
4861 dnl Sort the modules list
4862 dnl
4863 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4864
4865 dnl
4866 dnl  Create the vlc-config script
4867 dnl
4868 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
4869
4870 dnl
4871 dnl  Configuration is finished
4872 dnl
4873 AC_SUBST(SYS)
4874 AC_SUBST(ARCH)
4875 AC_SUBST(ALIASES)
4876 AC_SUBST(ASM)
4877 AC_SUBST(MOC)
4878 AC_SUBST(RCC)
4879 AC_SUBST(UIC)
4880 AC_SUBST(WINDRES)
4881 AC_SUBST(MOZILLA_SDK_PATH)
4882 AC_SUBST(WINE_SDK_PATH)
4883 AC_SUBST(LIBEXT)
4884 AC_SUBST(AM_CPPFLAGS)
4885 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4886 AC_SUBST(FILE_LIBVLCCORE_DLL)
4887 AC_SUBST(FILE_LIBVLC_DLL)
4888
4889 dnl Create vlc-config.in
4890 VLC_OUTPUT_VLC_CONFIG_IN
4891
4892 AC_CONFIG_FILES([
4893   extras/package/win32/spad.nsi
4894   extras/package/win32/vlc.win32.nsi
4895   extras/package/macosx/Info.plist
4896   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4897   extras/package/macosx/plugin/Info.plist
4898   extras/package/macosx/plugin/InstallerInfo.plist
4899   Makefile
4900   projects/activex/Makefile
4901   projects/activex/axvlc.inf
4902   doc/Makefile
4903   extras/package/ipkg/Makefile
4904   libs/loader/Makefile
4905   libs/srtp/Makefile
4906   libs/unzip/Makefile
4907   modules/Makefile
4908   projects/mozilla/Makefile
4909   m4/Makefile
4910   po/Makefile.in
4911   projects/activex/axvlc_rc.rc
4912   projects/mozilla/npvlc_rc.rc
4913   projects/mozilla/vlc.r
4914   projects/mozilla/install.js
4915   projects/mozilla/install.rdf
4916   share/Makefile
4917   compat/Makefile
4918   src/Makefile
4919   src/test/Makefile
4920   bin/Makefile
4921   test/Makefile
4922   modules/access/Makefile
4923   modules/access/bd/Makefile
4924   modules/access/bda/Makefile
4925   modules/access/dshow/Makefile
4926   modules/access/dvb/Makefile
4927   modules/access/mms/Makefile
4928   modules/access/rtp/Makefile
4929   modules/access/rtsp/Makefile
4930   modules/access/vcd/Makefile
4931   modules/access/vcdx/Makefile
4932   modules/access/screen/Makefile
4933   modules/access/zip/Makefile
4934   modules/access_output/Makefile
4935   modules/audio_filter/Makefile
4936   modules/audio_filter/channel_mixer/Makefile
4937   modules/audio_filter/converter/Makefile
4938   modules/audio_filter/resampler/Makefile
4939   modules/audio_filter/spatializer/Makefile
4940   modules/audio_mixer/Makefile
4941   modules/audio_output/Makefile
4942   modules/codec/Makefile
4943   modules/codec/avcodec/Makefile
4944   modules/codec/dmo/Makefile
4945   modules/codec/shine/Makefile
4946   modules/codec/subtitles/Makefile
4947   modules/codec/spudec/Makefile
4948   modules/codec/wmafixed/Makefile
4949   modules/control/Makefile
4950   modules/control/http/Makefile
4951   modules/control/globalhotkeys/Makefile
4952   modules/demux/Makefile
4953   modules/demux/asf/Makefile
4954   modules/demux/avformat/Makefile
4955   modules/demux/avi/Makefile
4956   modules/demux/mkv/Makefile
4957   modules/demux/mp4/Makefile
4958   modules/demux/mpeg/Makefile
4959   modules/demux/playlist/Makefile
4960   modules/gui/Makefile
4961   modules/gui/macosx/Makefile
4962   modules/gui/hildon/Makefile
4963   modules/gui/minimal_macosx/Makefile
4964   modules/gui/macosx_dialog_provider/Makefile
4965   modules/gui/qt4/Makefile
4966   modules/gui/skins2/Makefile
4967   modules/meta_engine/Makefile
4968   modules/misc/Makefile
4969   modules/misc/dummy/Makefile
4970   modules/misc/lua/Makefile
4971   modules/misc/notify/Makefile
4972   modules/misc/testsuite/Makefile
4973   modules/misc/playlist/Makefile
4974   modules/misc/osd/Makefile
4975   modules/misc/stats/Makefile
4976   modules/misc/xml/Makefile
4977   modules/mux/Makefile
4978   modules/mux/mpeg/Makefile
4979   modules/packetizer/Makefile
4980   modules/services_discovery/Makefile
4981   modules/stream_filter/Makefile
4982   modules/stream_out/Makefile
4983   modules/stream_out/transcode/Makefile
4984   modules/video_chroma/Makefile
4985   modules/video_filter/Makefile
4986   modules/video_filter/dynamicoverlay/Makefile
4987   modules/video_output/Makefile
4988   modules/video_output/msw/Makefile
4989   modules/visualization/Makefile
4990   modules/visualization/visual/Makefile
4991   modules/mmx/Makefile
4992   modules/mmxext/Makefile
4993   modules/3dnow/Makefile
4994   modules/sse2/Makefile
4995   modules/altivec/Makefile
4996   modules/arm_neon/Makefile
4997 ])
4998
4999 dnl Generate makefiles
5000 AC_OUTPUT
5001
5002 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5003 # not provided with the source
5004 ${SHELL} ./config.status --file=vlc-config
5005 chmod 0755 vlc-config
5006
5007 /bin/echo -n "Enabled modules: "
5008 ./vlc-config --list plugin
5009
5010 dnl Do we have to use make or gmake ?
5011 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
5012 dnl Shortcut to nice compile message
5013 rm -f compile
5014 if test -n $SHELL; then
5015   SHELL=${CONFIG_SHELL-/bin/sh}
5016 fi
5017 echo '#! '$SHELL >compile
5018 echo rm -f .error\$\$ >>compile
5019 echo ERROR=0 >>compile
5020 echo export PATH=$PATH LANG=C >>compile
5021 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5022 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5023 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5024 echo rm -f .error\$\$ >>compile
5025 echo exit \$ERROR >>compile
5026 chmod a+x compile
5027
5028 printf "
5029 libvlc configuration
5030 --------------------
5031 version               : ${VERSION}
5032 system                : ${SYS}
5033 architecture          : ${ARCH}
5034 build flavour         : "
5035 test "${enable_debug}" = "yes" && printf "debug "
5036 test "${enable_cprof}" = "yes" && printf "cprof "
5037 test "${enable_gprof}" = "yes" && printf "gprof "
5038 test "${enable_optimizations}" = "yes" && printf "optim "
5039 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5040 echo ""
5041 if test "${enable_vlc}" != "no"; then
5042 echo "vlc aliases           :${ALIASES}"
5043 else
5044 echo "build vlc executable  : no"
5045 fi
5046 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5047
5048 You can tune the compiler flags in vlc-config.
5049 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'.
5050 "
5051 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5052    echo ""
5053    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5054    echo "         turned off."
5055    echo "         FFmpeg will be REALLY slow."
5056    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5057    echo ""
5058 fi