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