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