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