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