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