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