efb1f82b6c58a403628e4db545d73a4ec74e421a
[vlc.git] / 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     CPPFLAGS="${CPPFLAGS_save}"
2304   ;;
2305   esac
2306   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2307     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2308   ], [], [${LIBS_ts}])
2309
2310 fi
2311
2312 dnl
2313 dnl  Video4Linux plugin
2314 dnl
2315 AC_ARG_ENABLE(v4l,
2316   [  --enable-v4l            Video4Linux input support (default disabled)])
2317 if test "${enable_v4l}" = "yes"
2318 then
2319   AC_ARG_WITH(v4l,
2320     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2321   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2322   then
2323     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2324   fi
2325
2326   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2327   AC_CHECK_HEADERS(linux/videodev.h, [
2328     VLC_ADD_PLUGIN([v4l])
2329   ],[])
2330   CPPFLAGS="${CPPFLAGS_save}"
2331 fi
2332
2333 dnl
2334 dnl  Video4Linux2 plugin
2335 dnl
2336 AC_ARG_ENABLE(v4l2,
2337   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2338 if test "${enable_v4l2}" != "no"
2339 then
2340   AC_ARG_WITH(v4l2,
2341     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2342   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2343   then
2344     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2345   fi
2346
2347   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2348   AC_CHECK_HEADERS(linux/videodev2.h, [
2349     VLC_ADD_PLUGIN([v4l2])
2350   ],[])
2351   CPPFLAGS="${CPPFLAGS_save}"
2352 fi
2353
2354 dnl
2355 dnl libv4l2 support for video4linux.
2356 dnl
2357 AC_ARG_ENABLE( libv4l2,
2358   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2359 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2360 then
2361     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2362       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2363       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2364       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2365       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2366     )
2367 fi
2368
2369 dnl
2370 dnl  special access module for Hauppauge PVR cards
2371 dnl
2372 AC_ARG_ENABLE(pvr,
2373   [  --enable-pvr            PVR cards access module (default disabled)])
2374 if test "${enable_pvr}" = "yes"
2375 then
2376   VLC_ADD_PLUGIN([pvr])
2377   AC_ARG_WITH(videodev2,
2378     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2379   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2380   then
2381     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2382   fi
2383
2384   AC_CACHE_CHECK([for new linux/videodev2.h],
2385       [ac_cv_new_linux_videodev2_h],
2386       [AC_TRY_COMPILE([
2387           #include <sys/types.h>
2388           #   ifdef VIDEODEV2_H_FILE
2389           #   include VIDEODEV2_H_FILE
2390           #   else
2391           #   include <linux/videodev2.h>
2392           #   endif
2393           ],
2394           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2395           ac_cv_new_linux_videodev2_h=yes,
2396           ac_cv_new_linux_videodev2_h=no)])
2397   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2398     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2399   fi
2400 fi
2401
2402 dnl
2403 dnl  gnomeVFS access module
2404 dnl
2405 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2406
2407
2408 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2409 AC_ARG_ENABLE(libcdio,
2410   [  --enable-libcdio        CD input and control library support (default enabled)])
2411
2412 AC_ARG_ENABLE(vcdinfo,
2413   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2414
2415 have_libcdio=no
2416 have_libvcdinfo=no
2417 if test "${enable_libcdio}" != "no"
2418 then
2419   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2420      have_libcdio=yes
2421      AC_DEFINE(HAVE_LIBCDIO, 1,
2422      [Define if you have libcdio 0.78.2 or greater installed]),
2423      [AC_MSG_WARN(CD Reading and information library not found)])
2424
2425   if test "${enable_vcdinfo}" != "no"
2426   then
2427     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2428        [have_libvcdinfo=yes
2429        AC_DEFINE(HAVE_VCDINFO, 1,
2430        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2431        [AC_MSG_WARN(VCD information library not found)])
2432   fi
2433 fi
2434
2435 dnl
2436 dnl  VCDX and CDDAX modules
2437 dnl
2438 AC_ARG_ENABLE(cddax,
2439   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2440                   via libcdio (default disabled)]))
2441
2442 AC_ARG_ENABLE(libcddb,
2443   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2444
2445 if test "${enable_cddax}" = "yes"
2446 then
2447   if test "$have_libcdio" = "yes"
2448   then
2449     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2450     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2451     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2452     VLC_ADD_PLUGIN([cddax])
2453     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2454     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2455     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2456   else
2457     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2458     HAVE_CDDAX=no
2459   fi
2460
2461   if test "$enable_libcddb" != "no"; then
2462     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2463       HAVE_LIBCDDB=yes
2464       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2465       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2466       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2467       ],
2468       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2469       HAVE_LIBCDDB=no])
2470   fi
2471
2472 fi
2473
2474 AC_ARG_ENABLE(vcdx,
2475   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2476
2477 if test "${enable_vcdx}" = "yes"
2478 then
2479   if test "${have_libvcdinfo}" = "yes"
2480   then
2481     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2482     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2483   else
2484     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2485     HAVE_VCDX=no
2486   fi
2487
2488   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2489    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2490     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2491     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2492     HAVE_VCDX=no])
2493
2494   if test "$have_libvcdinfo" = "yes"
2495   then
2496     AC_DEFINE(HAVE_VCDX, 1,
2497     [Define for the VCD plugin using libcdio/libvcdinfo])
2498     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2499     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2500     VLC_ADD_PLUGIN([vcdx])
2501   else
2502     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2503     HAVE_VCDX=no
2504   fi
2505 fi
2506
2507 dnl
2508 dnl  Built-in CD-DA and VCD module
2509 dnl
2510 AC_ARG_ENABLE(cdda,
2511   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2512
2513 AC_ARG_ENABLE(vcd,
2514   [  --enable-vcd            built-in VCD (default enabled)])
2515
2516 if test "${enable_vcd}" != "no"
2517 then
2518   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2519   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2520     AC_MSG_RESULT(yes)
2521     VLC_ADD_PLUGIN([vcd])
2522     VLC_ADD_PLUGIN([cdda])
2523   ],[
2524     AC_MSG_RESULT(no)
2525   ])
2526
2527   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2528   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2529     AC_MSG_RESULT(yes)
2530     VLC_ADD_PLUGIN([vcd])
2531     VLC_ADD_PLUGIN([cdda])
2532     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2533   ],[
2534     AC_MSG_RESULT(no)
2535   ])
2536
2537   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2538   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2539     AC_MSG_RESULT(yes)
2540     VLC_ADD_PLUGIN([vcd])
2541     VLC_ADD_PLUGIN([cdda])
2542     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2543   ],[
2544     AC_MSG_RESULT(no)
2545   ])
2546
2547   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2548   then
2549     VLC_ADD_PLUGIN([vcd])
2550     VLC_ADD_PLUGIN([cdda])
2551   fi
2552
2553   if test "${SYS}" = "darwin"
2554   then
2555     VLC_ADD_PLUGIN([vcd])
2556     VLC_ADD_PLUGIN([cdda])
2557     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2558     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2559   fi
2560
2561   if test "$enable_libcddb" != "no"; then
2562     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2563       HAVE_LIBCDDB=yes
2564       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2565       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2566       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2567       ],:
2568       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2569       HAVE_LIBCDDB=no])
2570   fi
2571 fi
2572
2573 dnl
2574 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2575 dnl
2576 AC_ARG_ENABLE(dvb,
2577   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2578
2579 if test "${enable_dvb}" != "no"
2580 then
2581     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2582     AC_ARG_WITH(dvb,
2583      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2584      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2585      then
2586        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2587      fi
2588      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2589      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2590      VLC_ADD_PLUGIN([dvb])
2591      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2592      CPPFLAGS="${CPPFLAGS_save}"
2593    ],[
2594      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2595     ])
2596 fi
2597
2598 dnl
2599 dnl  Screen capture module
2600 dnl
2601 AC_ARG_ENABLE(screen,
2602   [  --enable-screen         Screen capture support (default enabled)])
2603 if test "${enable_screen}" != "no"; then
2604   if test "${SYS}" = "darwin"; then
2605     AC_CHECK_HEADERS(OpenGL/gl.h, [
2606       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2607         VLC_ADD_PLUGIN([screen])
2608         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2609       ])
2610     ])
2611   elif test "${SYS}" = "mingw32"; then
2612     VLC_ADD_PLUGIN([screen])
2613     VLC_ADD_LIBS([screen],[-lgdi32])
2614   elif test "${SYS}" = "mingwce"; then
2615     CPPFLAGS="${CPPFLAGS_save}"
2616   elif test "${SYS}" = "beos"; then
2617     VLC_ADD_PLUGIN([screen])
2618     VLC_ADD_CXXFLAGS([screen],[])
2619     VLC_ADD_LIBS([screen],[-lbe])
2620   fi
2621 fi
2622
2623 dnl
2624 dnl  ipv6 plugin - not for QNX yet
2625 dnl
2626 have_ipv6=no
2627 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2628   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2629 ])
2630
2631 AS_IF([test "${have_ipv6}" = "yes"], [
2632   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2633
2634
2635 AC_CHECK_FUNCS(inet_ntop,[
2636   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2637
2638
2639 dnl
2640 dnl  ogg demux plugin
2641 dnl
2642 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2643 if test "${enable_sout}" != "no"; then
2644     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2645 else
2646     AM_CONDITIONAL(HAVE_MUX_OGG, 0)
2647 fi
2648
2649 if test "${enable_sout}" != "no"; then
2650 dnl Check for libshout
2651 PKG_ENABLE_MODULES_VLC([shout], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2652 else
2653     AM_CONDITIONAL(HAVE_shout, 0)
2654 fi
2655
2656 dnl
2657 dnl  matroska demux plugin
2658 dnl
2659 AC_ARG_ENABLE(mkv,
2660   [  --enable-mkv            Matroska demux support (default enabled)])
2661 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2662   AC_LANG_PUSH(C++)
2663   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2664     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2665     AC_EGREP_CPP(yes,
2666       [#include <ebml/EbmlVersion.h>
2667        #ifdef LIBEBML_VERSION
2668        #if LIBEBML_VERSION >= 0x000706
2669        yes
2670        #endif
2671        #endif],
2672       [AC_MSG_RESULT([yes])
2673         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2674           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2675           AC_EGREP_CPP(yes,
2676             [#include <matroska/KaxVersion.h>
2677              #ifdef LIBMATROSKA_VERSION
2678              #if LIBMATROSKA_VERSION >= 0x000705
2679              yes
2680              #endif
2681              #endif],
2682             [AC_MSG_RESULT([yes])
2683               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2684               VLC_ADD_CXXFLAGS([mkv],[])
2685               if test "${SYS}" = "darwin"; then
2686                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2687               fi
2688               AC_CHECK_LIB(ebml_pic, main, [
2689                 VLC_ADD_PLUGIN([mkv])
2690                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2691               ],
2692                 AC_CHECK_LIB(ebml, main, [
2693                   VLC_ADD_PLUGIN([mkv])
2694                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2695                 ])
2696               )
2697             ],
2698             [AC_MSG_RESULT([no])
2699               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.])
2700           ])
2701         ])
2702       ],
2703       [AC_MSG_RESULT([no])
2704         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.])
2705     ])
2706   ])
2707   AC_LANG_POP(C++)
2708 fi
2709
2710 dnl
2711 dnl  modplug demux plugin
2712 dnl
2713 AC_ARG_ENABLE(mod,
2714   [  --enable-mod            Mod demux support (default enabled)])
2715 if test "${enable_mod}" != "no"
2716 then
2717   AC_ARG_WITH(mod-tree,
2718   [    --with-mod-tree=PATH mod tree for static linking])
2719   if test -n "${with_mod_tree}"
2720   then
2721     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2722     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2723     if test -z "${real_mod_tree}"
2724     then
2725       dnl  The given directory can't be found
2726       AC_MSG_RESULT(no)
2727       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2728     fi
2729     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2730     then
2731       dnl  Use a custom mod
2732       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2733       VLC_ADD_PLUGIN([mod])
2734       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2735       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2736     else
2737       dnl  The given mod wasn't built
2738       AC_MSG_RESULT(no)
2739       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2740     fi
2741   else
2742     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2743       VLC_ADD_PLUGIN([mod])
2744       VLC_ADD_CXXFLAGS([mod],[])
2745       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2746   fi
2747 fi
2748
2749 dnl
2750 dnl  mpc demux plugin
2751 dnl
2752 AC_ARG_ENABLE(mpc,
2753   [  --enable-mpc            Mpc demux support (default enabled)])
2754 if test "${enable_mpc}" != "no"
2755 then
2756   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2757     VLC_ADD_PLUGIN([mpc])
2758     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2759     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2760     VLC_ADD_PLUGIN([mpc])
2761     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2762 fi
2763
2764 dnl
2765 dnl  game music emu demux plugin
2766 dnl
2767 AC_ARG_ENABLE(gme,
2768   [  --enable-gme            Game Music Emu demux support (default enabled)])
2769 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2770 then
2771   AC_LANG_PUSH(C++)
2772   AC_ARG_WITH(gme-tree,
2773   [    --with-gme-tree=PATH gme tree for static linking])
2774   if test -n "${with_gme_tree}"
2775   then
2776     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2777     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2778     if test -z "${real_gme_tree}"
2779     then
2780       dnl  The given directory can't be found
2781       AC_MSG_RESULT(no)
2782       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2783     fi
2784     if test -f "${real_gme_tree}/gme/libgme.a"
2785     then
2786       dnl  Use a custom gme
2787       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2788       VLC_ADD_PLUGIN([gme])
2789       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2790       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2791     else
2792       dnl  The given gme wasn't built
2793       AC_MSG_RESULT(no)
2794       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2795     fi
2796   else
2797       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2798   fi
2799   AC_LANG_POP(C++)
2800 fi
2801
2802 dnl
2803 dnl  Codec plugins
2804 dnl
2805
2806 AC_ARG_WITH(,[Codec plugins:])
2807
2808 dnl
2809 dnl wmafixed plugin
2810 dnl
2811 AC_ARG_ENABLE(wma-fixed,
2812   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2813 if test "${enable_wma_fixed}" = "yes"
2814 then
2815   VLC_ADD_PLUGIN([wma_fixed])
2816 fi
2817
2818 dnl
2819 dnl shine fixed point mp3 encoder
2820 dnl
2821 AC_ARG_ENABLE(shine,
2822   [  --enable-shine          shine mp3 encoding module (default disabled)])
2823 if test "${enable_shine}" = "yes"
2824 then
2825   VLC_ADD_PLUGIN([shine])
2826 fi
2827
2828 dnl
2829 dnl  mad plugin
2830 dnl
2831 AC_ARG_ENABLE(mad,
2832   [  --enable-mad            libmad module (default enabled)])
2833 if test "${enable_mad}" != "no"
2834 then
2835   AC_ARG_WITH(mad,
2836     [    --with-mad=PATH       path to libmad],[],[])
2837   if test "${with_mad}" != "no" -a -n "${with_mad}"
2838   then
2839     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2840     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2841   fi
2842
2843   AC_ARG_WITH(mad-tree,
2844     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2845   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2846   then
2847     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2848     if test -z "${real_mad_tree}"
2849     then
2850       dnl  The given directory can't be found
2851       AC_MSG_RESULT(no)
2852       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2853     fi
2854     dnl  Use a custom libmad
2855     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2856     if test -f ${real_mad_tree}/mad.h
2857     then
2858       AC_MSG_RESULT(yes)
2859       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2860       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2861       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2862       AC_CHECK_LIB(mad, mad_bit_init, [
2863         VLC_ADD_PLUGIN([mpgatofixed32])
2864         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2865         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2866       ],[])
2867       LDFLAGS="${LDFLAGS_save}"
2868     else
2869       AC_MSG_RESULT(no)
2870       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2871     fi
2872   else
2873     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2874     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2875     AC_CHECK_HEADERS(mad.h, ,
2876       [ 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.]) ])
2877     AC_CHECK_LIB(mad, mad_bit_init, [
2878       VLC_ADD_PLUGIN([mpgatofixed32])
2879       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2880       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2881     CPPFLAGS="${CPPFLAGS_save}"
2882     LDFLAGS="${LDFLAGS_save}"
2883   fi
2884 fi
2885
2886 dnl
2887 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2888 dnl
2889 AC_ARG_ENABLE( id3tag,
2890 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2891 AS_IF([test "${enable_id3tag}" = "yes"], [
2892   AC_CHECK_HEADERS(id3tag.h, [
2893       AS_IF([test "${have_zlib}" = "yes"],[
2894           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2895           VLC_ADD_PLUGIN([id3tag])
2896        ])
2897     ])
2898 ])
2899
2900 AC_ARG_ENABLE(merge-ffmpeg,
2901 [  --enable-merged-ffmpeg  merge FFmpeg-based plugins (default disabled)],, [
2902   enable_merge_ffmpeg="no"
2903 ])
2904 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2905
2906 dnl
2907 dnl  avcodec decoder/encoder plugin
2908 dnl
2909
2910 if test "${with_ffmpeg_tree}"
2911 then
2912   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2913 fi
2914
2915 AC_ARG_ENABLE(avcodec,
2916 [  --enable-avcodec        libavcodec codec (default enabled)])
2917 if test "${enable_avcodec}" != "no"
2918 then
2919   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2920     [
2921       VLC_SAVE_FLAGS
2922       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2923       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2924       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2925       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2926       VLC_ADD_PLUGIN([avcodec])
2927       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2928       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2929       VLC_RESTORE_FLAGS
2930       have_avcodec="yes"
2931     ],[
2932       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2933   ])
2934 fi
2935
2936 dnl
2937 dnl stream_out switcher needs libavcodec
2938 dnl
2939 AC_ARG_ENABLE(switcher,
2940   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2941 AS_IF([test "${enable_switcher}" = "yes"], [
2942   AS_IF([test "x${have_avcodec}" = "xyes"], [
2943     VLC_ADD_PLUGIN([stream_out_switcher])
2944     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2945     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2946   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2947   ])
2948 ])
2949
2950
2951 dnl
2952 dnl  avformat demuxer/muxer plugin
2953 dnl
2954
2955 AC_ARG_ENABLE(avformat,
2956 [  --enable-avformat       libavformat containers (default enabled)])
2957 if test "${enable_avformat}" != "no"
2958 then
2959   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2960     [
2961       VLC_SAVE_FLAGS
2962       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2963       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2964       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2965       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2966       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2967         VLC_ADD_PLUGIN([avformat])
2968         VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2969         VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2970       ], [
2971         VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2972         VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2973       ])
2974       VLC_RESTORE_FLAGS
2975     ],[
2976       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2977   ])
2978 fi
2979
2980 dnl
2981 dnl  swscale image scaling and conversion plugin
2982 dnl
2983
2984 AC_ARG_ENABLE(swscale,
2985   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2986                   (default enabled)]))
2987 if test "${enable_swscale}" != "no"
2988 then
2989   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2990     [
2991       VLC_SAVE_FLAGS
2992       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2993       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2994       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2995       VLC_ADD_PLUGIN([swscale])
2996       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2997       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2998       VLC_RESTORE_FLAGS
2999     ],[
3000       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.])
3001   ])
3002 fi
3003
3004 dnl
3005 dnl  postproc plugin
3006 dnl
3007
3008 AC_ARG_ENABLE(postproc,
3009 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3010 if test "${enable_postproc}" != "no"
3011 then
3012   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3013     [
3014       VLC_SAVE_FLAGS
3015       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3016       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3017       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3018       VLC_ADD_PLUGIN([postproc])
3019       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
3020       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
3021       VLC_RESTORE_FLAGS
3022     ],[
3023       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
3024   ])
3025 fi
3026
3027 dnl
3028 dnl  faad decoder plugin
3029 dnl
3030 AC_ARG_ENABLE(faad,
3031 [  --enable-faad           faad codec (default disabled)])
3032 if test "${enable_faad}" = "yes"
3033 then
3034   AC_ARG_WITH(faad-tree,
3035   [    --with-faad-tree=PATH faad tree for static linking])
3036   if test -n "${with_faad_tree}"
3037   then
3038     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3039     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3040     if test -z "${real_faad_tree}"
3041     then
3042       dnl  The given directory can't be found
3043       AC_MSG_RESULT(no)
3044       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3045     fi
3046     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3047     then
3048       dnl  Use a custom faad
3049       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3050       VLC_ADD_PLUGIN([faad])
3051       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3052       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3053     else
3054       dnl  The given libfaad wasn't built
3055       AC_MSG_RESULT(no)
3056       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3057     fi
3058   else
3059     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3060     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3061     AC_CHECK_HEADERS(faad.h, ,
3062       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3063     AC_CHECK_LIB(faad, faacDecOpen, [
3064       VLC_ADD_PLUGIN([faad])
3065       VLC_ADD_LIBS([faad],[-lfaad]) ],
3066       AC_CHECK_LIB(faad, NeAACDecOpen, [
3067         VLC_ADD_PLUGIN([faad])
3068         VLC_ADD_LIBS([faad],[-lfaad]) ],
3069         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3070     LDFLAGS="${LDFLAGS_save}"
3071     CPPFLAGS="${CPPFLAGS_save}"
3072   fi
3073 fi
3074
3075 dnl
3076 dnl twolame encoder plugin
3077 dnl
3078 PKG_ENABLE_MODULES_VLC([twolame], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
3079
3080 dnl
3081 dnl  QuickTime plugin
3082 dnl
3083 AC_ARG_ENABLE(quicktime,
3084   [  --enable-quicktime      QuickTime module (deprecated)])
3085 if test "${enable_quicktime}" = "yes"; then
3086   if test "${SYS}" = "mingw32"; then
3087     VLC_ADD_PLUGIN([quicktime])
3088   else
3089   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3090     [ VLC_ADD_PLUGIN([quicktime])
3091       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3092     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3093   fi
3094 fi
3095
3096 dnl
3097 dnl  Real plugin
3098 dnl
3099 AC_ARG_ENABLE(real,
3100   [  --enable-real           Real media module (default disabled)])
3101 if test "${enable_real}" = "yes"; then
3102   VLC_ADD_PLUGIN([realaudio])
3103   VLC_ADD_PLUGIN([realvideo])
3104 fi
3105
3106 dnl
3107 dnl  Real RTSP plugin
3108 dnl
3109 AC_ARG_ENABLE(realrtsp,
3110   [  --enable-realrtsp       Real RTSP module (default disabled)])
3111 if test "${enable_realrtsp}" = "yes"; then
3112   VLC_ADD_PLUGIN([access_realrtsp])
3113 fi
3114
3115 AC_ARG_ENABLE(libsysfs,
3116   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3117
3118 AS_IF([test "${enable_libsysfs}" != "no"],[
3119   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3120     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3121   ] )
3122 ])
3123
3124 dnl
3125 dnl skins2 module
3126 dnl
3127 AC_ARG_ENABLE(libtar,
3128   [  --enable-libtar         libtar support for skins2 (default enabled)])
3129
3130 AS_IF([test "${enable_libtar}" != "no"],[
3131   AC_CHECK_HEADERS(libtar.h, [
3132     VLC_ADD_LIBS([skins2],[-ltar])
3133   ] )
3134 ])
3135
3136 dnl
3137 dnl A52/AC3 decoder plugin
3138 dnl
3139 AC_ARG_ENABLE(a52,
3140   [  --enable-a52            A/52 support with liba52 (default enabled)])
3141 if test "${enable_a52}" != "no"
3142 then
3143   AC_ARG_WITH(a52,
3144     [    --with-a52=PATH       a52 headers and libraries])
3145   AC_ARG_WITH(a52-tree,
3146     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3147   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3148   then
3149     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3150     if test -z "${real_a52_tree}"
3151     then
3152       dnl  The given directory can't be found
3153       AC_MSG_RESULT(no)
3154       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3155     fi
3156     dnl  Use a custom a52dec
3157     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3158     if test -f ${real_a52_tree}/include/a52.h
3159     then
3160       AC_MSG_RESULT(yes)
3161       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3162       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3163       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3164       AC_CHECK_LIB(a52, a52_free, [
3165         VLC_ADD_PLUGIN([a52tofloat32])
3166         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3167         VLC_ADD_LIBS([a52tofloat32],[-la52])
3168         ],[
3169         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3170         then
3171           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3172         else
3173           AC_MSG_ERROR([the specified tree hasn't been compiled])
3174         fi
3175       ])
3176       LDFLAGS="${LDFLAGS_save}"
3177     else
3178       AC_MSG_RESULT(no)
3179       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3180     fi
3181   else
3182     if test -z "${with_a52}"
3183     then
3184       LDFLAGS_test=""
3185       CPPFLAGS_test=""
3186     else
3187       LDFLAGS_test="-L${with_a52}/lib"
3188       CPPFLAGS_test="-I${with_a52}/include"
3189     fi
3190     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3191     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3192     AC_CHECK_HEADERS(a52dec/a52.h, [
3193       AC_CHECK_LIB(a52, a52_free, [
3194         VLC_ADD_PLUGIN([a52tofloat32])
3195         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3196         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3197       ],[
3198         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.])
3199         ])
3200     ],[
3201       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.])
3202     ])
3203     CPPFLAGS="${CPPFLAGS_save}"
3204     LDFLAGS="${LDFLAGS_save}"
3205   fi
3206 fi
3207
3208 AC_ARG_WITH(a52-fixed,
3209       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3210       [
3211         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3212
3213 dnl
3214 dnl DTS Coherent Acoustics decoder plugin
3215 dnl
3216 AS_IF([test "x${enable_dts}" != "x"], [
3217   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3218 ])
3219 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3220
3221 dnl
3222 dnl  Flac plugin
3223 dnl
3224 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3225
3226 dnl
3227 dnl  Libmpeg2 plugin
3228 dnl
3229 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3230
3231 dnl
3232 dnl  Vorbis plugin
3233 dnl
3234 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3235
3236 dnl
3237 dnl  Tremor plugin
3238 dnl
3239 AC_ARG_ENABLE(tremor,
3240   [  --enable-tremor         Tremor decoder support (default disabled)])
3241 if test "${enable_tremor}" = "yes"
3242 then
3243   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3244     VLC_ADD_PLUGIN([tremor])
3245     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3246    ],[])
3247 fi
3248
3249 dnl
3250 dnl  Speex plugin
3251 dnl
3252 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3253
3254 dnl
3255 dnl  tarkin decoder plugin
3256 dnl
3257 AC_ARG_ENABLE(tarkin,
3258 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3259 if test "${enable_tarkin}" = "yes"
3260 then
3261   AC_ARG_WITH(tarkin-tree,
3262   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3263   if test -n "${with_tarkin_tree}"
3264   then
3265     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3266     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3267     if test -f "${real_tarkin_tree}/tarkin.o"
3268     then
3269       VLC_ADD_PLUGIN([tarkin])
3270       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3271       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])
3272       AC_MSG_RESULT(yes)
3273     else
3274       dnl  The given tarkin tree wasn't built
3275       AC_MSG_RESULT(no)
3276       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3277                     make sure you compiled tarkin in ${with_tarkin_tree}])
3278     fi
3279   fi
3280 fi
3281
3282 dnl
3283 dnl  theora decoder plugin
3284 dnl
3285 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3286
3287 dnl
3288 dnl  dirac encoder plugin
3289 dnl
3290 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3291
3292 dnl
3293 dnl  schroedinger decoder plugin (for dirac format video)
3294 dnl
3295 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3296
3297 dnl
3298 dnl  PNG decoder module
3299 dnl
3300 AC_ARG_ENABLE(png,
3301   [  --enable-png            PNG support (default enabled)])
3302 if test "${enable_png}" != "no"; then
3303 AC_CHECK_HEADERS(png.h, [
3304   LDFLAGS="${LDFLAGS_save} -lz"
3305   AC_CHECK_LIB(png, png_set_rows, [
3306     VLC_ADD_LIBS([png],[-lpng -lz])
3307     VLC_ADD_PLUGIN([png])
3308     VLC_ADD_PLUGIN([osdmenu])
3309     VLC_ADD_PLUGIN([osd_parser])
3310     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3311     [],[-lz])
3312     LDFLAGS="${LDFLAGS_save}"
3313   ])
3314 fi
3315 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3316
3317 dnl
3318 dnl H264 encoder plugin (using libx264)
3319 dnl
3320 AC_ARG_ENABLE(x264,
3321   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3322 if test "${enable_x264}" != "no"; then
3323   AC_ARG_WITH(x264-tree,
3324     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3325   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3326   then
3327     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3328     if test -z "${real_x264_tree}"
3329     then
3330       dnl  The given directory can't be found
3331       AC_MSG_RESULT(no)
3332       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3333     fi
3334     dnl  Use a custom libx264
3335     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3336     if test -f ${real_x264_tree}/x264.h
3337     then
3338       AC_MSG_RESULT(yes)
3339       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3340       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3341       PKG_CHECK_MODULES(X264,x264, [
3342         VLC_ADD_PLUGIN([x264])
3343         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3344         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3345         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3346           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3347         fi
3348       ],[
3349         AC_MSG_ERROR([the specified tree hasn't been compiled])
3350       ])
3351       LDFLAGS="${LDFLAGS_save}"
3352     else
3353       AC_MSG_RESULT(no)
3354       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3355     fi
3356   else
3357       PKG_CHECK_MODULES(X264,x264 >= 0.76, [
3358         VLC_ADD_PLUGIN([x264])
3359         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3360
3361         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3362           [ac_cv_ld_bsymbolic],
3363           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3364             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3365             LDFLAGS="${LDFLAGS_save}"
3366           ])
3367         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3368           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3369         ])
3370
3371         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3372         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3373           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3374         fi
3375       ],[
3376         if test "${enable_x264}" = "yes"; then
3377             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3378           fi
3379       ])
3380     LDFLAGS="${LDFLAGS_save}"
3381   fi
3382 fi
3383
3384 dnl
3385 dnl libfluidsynth (MIDI synthetizer) plugin
3386 dnl
3387 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3388
3389 dnl
3390 dnl Teletext Modules
3391 dnl vbi decoder plugin (using libzbvi)
3392 dnl telx module
3393 dnl uncompatible
3394 dnl
3395 AC_ARG_ENABLE(zvbi,
3396   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3397                   libzvbi (default enabled)]))
3398 AC_ARG_ENABLE(telx,
3399   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3400                   zvbi) (default enabled if zvbi is absent)]))
3401
3402 AS_IF( [test "${enable_zvbi}" != "no"],[
3403     PKG_CHECK_MODULES(ZVBI,
3404         zvbi-0.2 >= 0.2.25,
3405         [
3406           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3407           if test "${SYS}" = "mingw32"; then
3408               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3409           fi
3410           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3411           VLC_ADD_PLUGIN([zvbi])
3412           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3413           AS_IF( [test "${enable_telx}" = "yes"],[
3414                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3415                                Using zvbi.])
3416                   ])
3417         ],[
3418           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3419         ])
3420     ])
3421 AS_IF( [test "${enable_telx}" != "no" ],[
3422   VLC_ADD_PLUGIN([telx])
3423   ])
3424
3425 dnl
3426 dnl libass subtitle rendering module
3427 dnl
3428 AC_ARG_ENABLE(libass,
3429   [  --enable-libass         Subtitle support using libass (default disabled)])
3430 AS_IF( [test "${enable_libass}" = "yes"], [
3431   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3432       [
3433         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3434         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3435         VLC_ADD_PLUGIN([libass])
3436
3437         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3438           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3439         if test "${SYS}" = "mingw32"; then
3440            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz])
3441         else
3442            VLC_ADD_LIBS([libass],[-lfontconfig])
3443         fi
3444        ])
3445       ],[
3446         AC_MSG_WARN([LIBASS library not found])
3447       ])
3448   ])
3449
3450 dnl
3451 dnl asa demuxer
3452 dnl
3453 AC_ARG_ENABLE(asademux,
3454   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3455 AS_IF( [test "${enable_asademux}" = "yes"], [
3456   PKG_CHECK_MODULES(PCRE,
3457       libpcre >= 6.5,
3458       [
3459         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3460         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3461         if test "${SYS}" = "mingw32"; then
3462             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3463         fi
3464         VLC_ADD_PLUGIN([asademux])
3465       ],[
3466         AC_MSG_WARN([PCRE library not found (required for asademux)])
3467       ])
3468   ])
3469
3470 dnl
3471 dnl  CMML plugin
3472 dnl
3473 AC_ARG_ENABLE(cmml,
3474   [  --enable-cmml           CMML support (default enabled)])
3475 if test "${enable_cmml}" != "no"
3476 then
3477   VLC_ADD_PLUGIN([cmml])
3478 fi
3479
3480 dnl
3481 dnl  kate decoder plugin
3482 dnl
3483 AC_ARG_ENABLE(kate,
3484 [  --enable-kate           kate codec (default enabled)])
3485 AS_IF([test "${enable_kate}" != "no"], [
3486   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3487       VLC_ADD_PLUGIN([kate])
3488       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3489       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3490         AC_CHECK_HEADERS(kate/kate.h, [
3491           AC_CHECK_LIB(kate, kate_decode_init, [
3492             VLC_ADD_PLUGIN([kate])
3493             kate_libs="-lkate -logg"
3494             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3495             AS_IF([test "x${enable_kate}" != "x"], [
3496               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3497               You also need to check that you have a libogg posterior to the 1.0 release.])
3498             ])
3499           ], [-lkate -logg])
3500         ],[
3501           AS_IF([test "x${enable_kate}" != "x"], [
3502             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3503             You also need to check that you have a libogg posterior to the 1.0 release.])
3504           ])
3505         ])
3506   ])
3507 ])
3508
3509
3510 dnl
3511 dnl  tiger decoder plugin
3512 dnl
3513 PKG_ENABLE_MODULES_VLC([TIGER], [], [tiger >= 0.3.1], [Tiger rendering library for Kate streams],[auto])
3514
3515
3516 dnl
3517 dnl  Video plugins
3518 dnl
3519
3520 AC_ARG_WITH(,[Video plugins:])
3521
3522 dnl
3523 dnl  Xlib
3524 dnl
3525
3526 AC_PATH_XTRA()
3527 AC_ARG_ENABLE(x11,
3528   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3529   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3530     enable_x11="yes"
3531   ], [
3532     enable_x11="no"
3533   ])
3534 ])
3535
3536 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3537
3538 AS_IF([test "${enable_x11}" != "no"], [
3539   AC_CHECK_HEADERS(X11/Xlib.h)
3540
3541 dnl Check for DPMS
3542   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3543     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3544     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3545       AC_MSG_RESULT(yes)
3546       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3547                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3548     ],[
3549       AC_MSG_RESULT(no)
3550     ])
3551   ],,[
3552     #include <X11/Xlib.h>
3553   ])
3554 ])
3555
3556 dnl
3557 dnl  GLX module
3558 dnl  (enabled by default except on win32)
3559 dnl
3560 AC_ARG_ENABLE(glx,
3561   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3562   enable_glx="$enable_x11"
3563 ])
3564 AS_IF([test "${enable_glx}" != "no"], [
3565   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3566   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3567     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3568     choke me
3569     #endif]]),
3570     [
3571       VLC_ADD_PLUGIN([glx])
3572       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3573       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3574     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3575 ])
3576
3577 dnl
3578 dnl  XVMC module
3579 dnl  (disabled by default except on win32)
3580 dnl
3581 AC_ARG_ENABLE(xvmc,
3582   [  --enable-xvmc           XvMC support (default disabled)],, [
3583   enable_xvmc="no"
3584 ])
3585 AS_IF([test "${enable_xvmc}" != "no"], [
3586   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3587     AS_IF([test "${enable_libmpeg2}" = "yes"], [
3588       VLC_ADD_PLUGIN([xvmc])
3589       VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3590       VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3591     ], [
3592       AC_MSG_ERROR([XVideo-MotionCompensation needs libmpeg2 which isn't available])
3593     ])
3594   ], [
3595     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3596   ])
3597 ])
3598
3599 dnl End of Xlib tests
3600 CPPFLAGS="${CPPFLAGS_save}"
3601
3602
3603 dnl
3604 dnl  X C Bindings modules
3605 dnl
3606 AC_ARG_ENABLE(xcb,
3607   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3608   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3609     enable_xcb="yes"
3610   ], [
3611     enable_xcb="no"
3612   ])
3613 ])
3614 AC_ARG_ENABLE(xvideo,
3615   [  --enable-xvideo         XVideo support (default enabled)],, [
3616     enable_xvideo="$enable_xcb"
3617 ])
3618
3619 AS_IF([test "${enable_xcb}" != "no"], [
3620   PKG_CHECK_MODULES(XPROTO, [xproto])
3621
3622   dnl libxcb
3623   PKG_CHECK_MODULES(XCB, [xcb])
3624   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3625   VLC_ADD_PLUGIN([xcb_x11])
3626   VLC_ADD_PLUGIN([xcb_screen])
3627   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3628
3629   AS_IF([test "${enable_xvideo}" != "no"], [
3630     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3631       VLC_ADD_PLUGIN([xcb_xv])
3632     ], [
3633       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3634         VLC_ADD_PLUGIN([xcb_xv])
3635         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3636       ])
3637     ])
3638   ])
3639
3640   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3641     VLC_ADD_PLUGIN([panoramix])
3642     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3643     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3644   ], [true])
3645
3646   dnl xcb-utils
3647   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
3648
3649   VLC_ADD_PLUGIN([xcb_window])
3650   VLC_ADD_PLUGIN([globalhotkeys])
3651   VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
3652   VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
3653 ])
3654
3655
3656 dnl
3657 dnl  OpenGL module
3658 dnl  (enabled by default except on beos)
3659 dnl
3660 AC_ARG_ENABLE(opengl,
3661   [  --enable-opengl         OpenGL support (default enabled)])
3662 if test "${enable_opengl}" != "no" &&
3663    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3664   if test "${SYS}" != "darwin"; then
3665     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3666       VLC_ADD_PLUGIN([opengl])
3667       if test "${SYS}" != "mingw32"; then
3668         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3669       else
3670         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3671       fi
3672     ])
3673   else
3674     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3675     VLC_ADD_PLUGIN([opengl])
3676     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3677   fi
3678 fi
3679
3680 dnl
3681 dnl  SDL module
3682 dnl
3683 AC_ARG_ENABLE(sdl,
3684   [  --enable-sdl            SDL support (default enabled)])
3685 AC_ARG_ENABLE(sdl-image,
3686   [  --enable-sdl-image      SDL image support (default enabled)])
3687 if test "${enable_sdl}" != "no"
3688 then
3689   SDL_PATH="${PATH}"
3690   AC_ARG_WITH(sdl-config-path,
3691     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3692     [ if test "${with_sdl_config_path}" != "no"
3693       then
3694         SDL_PATH="${with_sdl_config_path}:${PATH}"
3695       fi ])
3696   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3697   SDL_HEADER="SDL/SDL.h"
3698   SDL_IMAGE="SDL/SDL_image.h"
3699
3700   if test "${SDL_CONFIG}" != "no";  then
3701      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3702         # SDL on Darwin is heavily patched and can only run SDL_image
3703         if test "${SYS}" != "darwin"; then
3704           VLC_ADD_PLUGIN([vout_sdl])
3705           VLC_ADD_PLUGIN([aout_sdl])
3706         fi
3707         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3708         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3709
3710         # SDL_image
3711         AS_IF([ test "${enable_sdl_image}" != "no"],[
3712           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3713             VLC_ADD_PLUGIN([sdl_image])
3714             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3715             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3716             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3717             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3718             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3719       You should install it alongside your SDL package.])
3720             ])
3721         ])
3722      ],[
3723        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3724                     Alternatively you can also configure with --disable-sdl.])
3725      ])
3726   else if test "${enable_sdl}" =  "yes"; then
3727     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3728 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3729     ])
3730       fi
3731   fi
3732 fi
3733
3734 dnl
3735 dnl  freetype module
3736 dnl
3737 AC_ARG_ENABLE(freetype,
3738   [  --enable-freetype       freetype support (default enabled)])
3739 AC_ARG_ENABLE(fribidi,
3740   [  --enable-fribidi        fribidi support (default enabled)])
3741 AC_ARG_ENABLE(fontconfig,
3742   [  --enable-fontconfig,    fontconfig support (default enabled)])
3743 if test "${enable_freetype}" != "no"
3744 then
3745    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3746       VLC_ADD_PLUGIN([freetype])
3747       have_freetype=yes
3748       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3749       if test "${SYS}" = "mingw32"; then
3750         VLC_ADD_LIBS([freetype],[-liconv -lz])
3751       fi
3752       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3753       if test "${enable_fontconfig}" != "no"
3754       then
3755         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3756           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3757            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3758         AC_CHECK_HEADERS(Carbon/Carbon.h,
3759           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3760       fi
3761
3762      dnl fribidi support
3763       if test "${enable_fribidi}" != "no"
3764       then
3765         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3766           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3767           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3768         ])
3769       fi
3770
3771   ],[
3772   have_freetype=no
3773   AS_IF([ test "${enable_freetype}" =  "yes"],[
3774     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3775 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3776       ])
3777     ])
3778   ])
3779
3780 fi
3781
3782 dnl
3783 dnl  libxml2 module
3784 dnl
3785 PKG_ENABLE_MODULES_VLC([libxml2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3786
3787 dnl
3788 dnl  SVG module
3789 dnl
3790 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3791
3792 dnl
3793 dnl Snapshot vout module (with cache)
3794 dnl
3795 AC_ARG_ENABLE(snapshot,
3796   [  --enable-snapshot       snapshot module (default disabled)])
3797 if test "${enable_snapshot}" = "yes"
3798 then
3799   VLC_ADD_PLUGIN([snapshot])
3800 fi
3801
3802 dnl
3803 dnl  Qt Embedded module
3804 dnl  (disabled by default)
3805 dnl
3806 AC_ARG_ENABLE(qte,
3807   [  --enable-qte            QT Embedded support (default disabled)])
3808 if test "${enable_qte}" = "yes"
3809 then
3810   AC_ARG_WITH(qte,
3811   [    --with-qte=PATH       Qt Embedded headers and libraries])
3812   if test "${with_qte}" != "no" -a -n "${with_qte}"
3813   then
3814     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3815     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])
3816   else
3817     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3818     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3819   fi
3820   VLC_ADD_PLUGIN([qte])
3821   NEED_QTE_MAIN=yes
3822   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3823   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3824     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3825   ] )
3826   CPPFLAGS="${CPPFLAGS_save}"
3827 fi
3828
3829 dnl
3830 dnl Roku HD1000 Video output module
3831 dnl
3832 AC_ARG_ENABLE(hd1000v,
3833   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3834 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3835   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3836    test "${enable_hd1000v}" = "yes"); then
3837   AC_LANG_PUSH([C++])
3838   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3839   [
3840     can_build_roku="yes"
3841   ],
3842   [
3843     can_build_roku="no"
3844     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3845   ])
3846   if test "$can_build_roku" = "yes"
3847   then
3848     VLC_ADD_PLUGIN([hd1000v])
3849     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3850   fi
3851   AC_LANG_POP([C++])
3852 fi
3853
3854 dnl
3855 dnl  Windows DirectX module
3856 dnl
3857
3858 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3859 then
3860   VLC_ADD_PLUGIN([panoramix])
3861 fi
3862
3863 AC_ARG_ENABLE(directx,
3864   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3865 if test "${enable_directx}" != "no"
3866 then
3867   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3868   then
3869       AC_CHECK_HEADERS(ddraw.h,
3870       [ VLC_ADD_PLUGIN([directx])
3871         VLC_ADD_PLUGIN([aout_directx])
3872         VLC_ADD_LIBS([directx],[-lgdi32])
3873       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3874       )
3875       AC_CHECK_HEADERS(GL/gl.h,
3876       [ VLC_ADD_PLUGIN([glwin32])
3877         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3878       ])
3879       AC_CHECK_HEADERS(d3d9.h,
3880       [ VLC_ADD_PLUGIN([direct3d])
3881         VLC_ADD_LIBS([direct3d],[-lgdi32])
3882       ])
3883       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3884   fi
3885 fi
3886
3887 dnl
3888 dnl  win32 GDI plugin
3889 dnl
3890 AC_ARG_ENABLE(wingdi,
3891   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3892 if test "${enable_wingdi}" != "no"; then
3893   if test "${SYS}" = "mingw32"; then
3894     VLC_ADD_PLUGIN([wingdi])
3895     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3896   fi
3897   if test "${SYS}" = "mingwce"; then
3898     VLC_ADD_PLUGIN([wingdi])
3899     VLC_ADD_PLUGIN([wingapi])
3900     VLC_ADD_LIBS([wingdi],[-laygshell])
3901     VLC_ADD_LIBS([wingapi],[-laygshell])
3902   fi
3903 fi
3904
3905
3906 dnl
3907 dnl  Linux framebuffer module
3908 dnl
3909 AC_ARG_ENABLE(fb,
3910   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3911     if test "${enable_fb}" != "no"
3912     then
3913       AC_CHECK_HEADERS(linux/fb.h, [
3914         VLC_ADD_PLUGIN([fb])
3915       ])
3916     fi
3917
3918 dnl
3919 dnl  Linux MGA module
3920 dnl
3921 AC_ARG_ENABLE(mga,
3922   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3923   [ if test "${enable_mga}" = "yes"
3924     then
3925       VLC_ADD_PLUGIN([mga])
3926     fi ])
3927
3928 dnl
3929 dnl  OMAP Framebuffer module
3930 dnl
3931 AC_ARG_ENABLE(omapfb,
3932   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3933     if test "${enable_omapfb}" = "yes"
3934     then
3935       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3936         VLC_ADD_PLUGIN([omapfb])
3937         AC_CHECK_HEADERS(X11/Xlib.h, [
3938           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
3939       ])
3940     fi
3941
3942 dnl
3943 dnl  SVGAlib module
3944 dnl
3945 AC_ARG_ENABLE(svgalib,
3946   [  --enable-svgalib        SVGAlib support (default disabled)])
3947 if test "${enable_svgalib}" = "yes"
3948 then
3949   VLC_ADD_PLUGIN([svgalib])
3950   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3951 fi
3952
3953 dnl
3954 dnl  DirectFB module
3955 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3956 dnl  TODO: support for static linking
3957 dnl
3958 AC_ARG_ENABLE(directfb,
3959   [  --enable-directfb       DirectFB support (default disabled)])
3960 AC_ARG_WITH(directfb,
3961   [    --with-directfb=PATH  path to DirectFB headers and libraries])
3962
3963 if test "${enable_directfb}" = "yes"; then
3964     have_directfb="false"
3965     CPPFLAGS_mydirectfb=
3966     LIBS_mydirectfb=
3967     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3968         dnl Trying the given location
3969         CPPFLAGS_save="${CPPFLAGS}"
3970         LIBS_save="${LIBS}"
3971
3972         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3973         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3974         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3975
3976         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3977         LIBS="${LIBS} ${LIBS_new}"
3978
3979         dnl FIXME: too obscure
3980         AC_CHECK_HEADER([directfb.h], [
3981             AC_CHECK_LIB([direct],[direct_initialize], [
3982                 AC_CHECK_LIB([fusion], [fusion_enter], [
3983                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3984                 ], have_directfb="false")
3985             ], have_directfb="false")
3986         ], have_directfb="false")
3987
3988         dnl Restore flags
3989         CPPFLAGS="${CPPFLAGS_save}"
3990         LIBS="${LIBS_save}"
3991
3992         if test "${have_directfb}" = "true"; then
3993             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
3994             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3995         fi
3996     else
3997         dnl Look for directfb-config
3998         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3999         if test "${DIRECTFB_CONFIG}" != "no"; then
4000             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4001             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4002             have_directfb="true"
4003         else
4004             dnl Trying with pkg-config
4005             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4006                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4007                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4008                 have_directfb="true"
4009                 ], [have_directfb="false"])
4010         fi
4011     fi
4012     if test "${have_directfb}" = "true"; then
4013         VLC_ADD_PLUGIN([directfb])
4014         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4015         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4016     else
4017         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4018     fi
4019 fi
4020
4021
4022
4023 dnl
4024 dnl  GGI module
4025 dnl
4026 AC_ARG_ENABLE(ggi,
4027   [  --enable-ggi            GGI support (default disabled)])
4028 if test "${enable_ggi}" = "yes"
4029 then
4030   AC_CHECK_HEADER([ggi/ggi.h],[
4031     VLC_ADD_PLUGIN([ggi])
4032     VLC_ADD_LIBS([ggi],[-lggi])
4033     AC_ARG_WITH(ggi,
4034       [    --with-ggi=PATH       path to libggi],
4035       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4036         then
4037           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4038           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4039         fi ])
4040     ],[
4041        AC_MSG_ERROR([LibGGI development files can't be found])
4042     ])
4043 fi
4044
4045 dnl
4046 dnl  AA plugin
4047 dnl
4048 AC_ARG_ENABLE(aa,
4049   [  --enable-aa             aalib output (default disabled)])
4050 if test "${enable_aa}" = "yes"
4051 then
4052   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4053   if test "${have_aa}" = "true"
4054   then
4055     VLC_ADD_PLUGIN([aa])
4056     VLC_ADD_LIBS([aa],[-laa])
4057   fi
4058 fi
4059
4060 dnl
4061 dnl  libcaca plugin
4062 dnl
4063 PKG_ENABLE_MODULES_VLC([caca], [], [caca >= 0.99.beta1], [libcaca output],[auto])
4064
4065 dnl
4066 dnl  Audio plugins
4067 dnl
4068
4069 AC_ARG_WITH(,[Audio plugins:])
4070
4071 dnl
4072 dnl  OSS /dev/dsp module (enabled by default except on win32)
4073 dnl
4074 AC_ARG_ENABLE(oss,
4075   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4076
4077 if test "${enable_oss}" != "no" &&
4078   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4079    test "${enable_oss}" = "yes")
4080 then
4081   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4082     VLC_ADD_PLUGIN([oss])
4083     VLC_ADD_PLUGIN([access_oss])
4084     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4085   ])
4086 fi
4087
4088 dnl
4089 dnl  Pulseaudio module
4090 dnl
4091 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4092
4093 dnl
4094 dnl  Portaudio module
4095 dnl
4096 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
4097
4098 dnl
4099 dnl  ALSA module
4100 dnl
4101 PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
4102 PKG_ENABLE_MODULES_VLC([ACCESS_ALSA], [access_alsa], [alsa >= 1.0.0], [Alsa access for linux], [auto])
4103
4104 dnl
4105 dnl  win32 waveOut plugin
4106 dnl
4107 AC_ARG_ENABLE(waveout,
4108   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4109 if test "${enable_waveout}" != "no"; then
4110   if test "${SYS}" = "mingw32"; then
4111     VLC_ADD_PLUGIN([waveout])
4112     VLC_ADD_LIBS([waveout],[-lwinmm])
4113   fi
4114   if test "${SYS}" = "mingwce"; then
4115     VLC_ADD_PLUGIN([waveout])
4116   fi
4117 fi
4118
4119 dnl
4120 dnl  CoreAudio plugin
4121 dnl
4122 AC_ARG_ENABLE(macosx-audio,
4123   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4124 if test "${enable_macosx-audio}" != "no" &&
4125   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4126 then
4127   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4128     [ VLC_ADD_PLUGIN([auhal])
4129       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4130     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4131 fi
4132
4133 dnl
4134 dnl  Roku HD1000 audio
4135 dnl
4136 AC_ARG_ENABLE(hd1000a,
4137   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4138 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4139   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4140    test "${enable_hd1000a}" = "yes")
4141 then
4142   AC_LANG_PUSH([C++])
4143   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4144     VLC_ADD_PLUGIN([hd1000a])
4145     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4146   AC_LANG_POP([C++])
4147 fi
4148
4149 dnl
4150 dnl  JACK modules
4151 dnl
4152 PKG_ENABLE_MODULES_VLC([JACK], [jack], [jack], [JACK audio I/O modules],[auto])
4153 PKG_ENABLE_MODULES_VLC([JACK], [access_jack], [jack], [JACK audio I/O modules],[auto])
4154
4155
4156 dnl
4157 dnl  CyberLink for C++ UPnP stack
4158 dnl
4159 AC_ARG_ENABLE(cyberlink,
4160   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4161   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4162   AC_ARG_WITH(cyberlink-tree,
4163     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4164
4165   dnl
4166   dnl test for --with-cyberlink-tree
4167   dnl
4168   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4169     AC_LANG_PUSH(C++)
4170     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4171     AS_IF([test -z "${real_cyberlink_tree}"], [
4172       dnl  The given directory can't be found
4173       AC_MSG_RESULT(no)
4174       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4175     ])
4176     CPPFLAGS_save="${CPPFLAGS}"
4177     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4178     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4179     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4180       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4181         VLC_ADD_PLUGIN([upnp_cc])
4182       ],[
4183         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4184       ])
4185     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4186     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4187       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4188       dnl The mere fact that we have to make such an ugly check sucks
4189       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4190       LIBS_save="$LIBS"
4191       LIBS_cclink="no"
4192       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4193         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4194         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4195 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4196 using namespace CyberLink;
4197
4198 class testclass : public SearchResponseListener, public MediaPlayer
4199 {
4200     virtual void deviceSearchResponseReceived( SSDPPacket *)
4201     {
4202     }
4203
4204     public:
4205       testclass (void)
4206       {
4207         addSearchResponseListener (this);
4208         start ();
4209       }
4210 };
4211 ],[testclass l;])],[LIBS_cclink="$l"])
4212       done
4213       LIBS="${LIBS_save}"
4214       dnl should not happen - otherwise this needs fixing - hence FAILURE
4215       AS_IF([test "${LIBS_cclink}" = "no"],
4216         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4217       AC_MSG_RESULT([${LIBS_cclink}])
4218       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4219     ], [
4220       AC_MSG_RESULT(no)
4221       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4222     ])
4223     CPPFLAGS="${CPPFLAGS_save}"
4224     AC_LANG_POP([C++])
4225   ])
4226 ])
4227
4228 dnl
4229 dnl UPnP Plugin (Intel SDK)
4230 dnl
4231 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
4232
4233
4234 dnl
4235 dnl  Interface plugins
4236 dnl
4237
4238 AC_ARG_WITH(,[Interface plugins:])
4239
4240 dnl special case for BeOS
4241 if test "${SYS}" = "beos"
4242 then
4243     VLC_ADD_PLUGIN([beos])
4244 fi
4245
4246 dnl
4247 dnl Skins2 module
4248 dnl
4249 AC_ARG_ENABLE(skins2,
4250   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4251    enabled except on MacOSX, BeOS and WinCE)])])
4252 if test "${enable_skins2}" = "yes" ||
4253   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4254    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4255
4256   dnl test for the required libraries
4257   skins2_missing_lib="no"
4258
4259   dnl freetype
4260   if test "${have_freetype}" != "yes"; then
4261     skins2_missing_lib="yes"
4262     if test "${enable_skins2}" = "yes"; then
4263       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4264     fi
4265   fi
4266
4267   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
4268     VLC_ADD_PLUGIN([skins2])
4269     ALIASES="${ALIASES} svlc"
4270     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4271     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4272     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4273
4274   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4275     VLC_ADD_PLUGIN([skins2])
4276     ALIASES="${ALIASES} svlc"
4277     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4278     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4279     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4280
4281   else if test "${skins2_missing_lib}" = "no"; then
4282     VLC_ADD_PLUGIN([skins2])
4283     ALIASES="${ALIASES} svlc"
4284     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4285     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4286     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4287   fi fi fi
4288 fi
4289 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4290          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4291           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4292
4293 dnl
4294 dnl Maemo
4295 dnl
4296 AC_ARG_ENABLE(maemo,
4297   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4298 if test "${enable_maemo}" = "yes"
4299 then
4300   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4301     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4302     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4303     VLC_ADD_PLUGIN([maemo])
4304     VLC_ADD_PLUGIN([swscale_maemo])
4305     AC_DEFINE([BUILD_MAEMO], 1, [Define if you are using Maemo interfaces])
4306     ALIASES="${ALIASES} mvlc"
4307   ], [
4308     AS_IF([test "${enable_maemo}" = "yes"],[
4309       AC_MSG_ERROR([Hildon libraries not found])
4310     ])
4311     enable_maemo="no"
4312   ])
4313 fi
4314 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4315
4316 dnl
4317 dnl QT 4
4318 dnl
4319 AC_ARG_ENABLE(qt4,
4320   [  --enable-qt4            QT 4 support (default enabled) ],, [
4321   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4322 ])
4323 AS_IF([test "${enable_qt4}" != "no"], [
4324   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4325     VLC_ADD_PLUGIN([qt4])
4326     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4327     ALIASES="${ALIASES} qvlc"
4328     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4329         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4330     ], [
4331         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4332     ])
4333     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4334     AC_SUBST(QT4LOCALEDIR)
4335     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4336     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4337     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4338     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4339   ], [
4340     AS_IF([test "${enable_qt4}" = "yes"],[
4341       AC_MSG_ERROR([Qt 4 library not found])
4342     ],[
4343       AC_MSG_WARN([Qt 4 library not found])
4344     ])
4345     enable_qt4="no"
4346   ])
4347 ])
4348 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4349
4350 dnl
4351 dnl  WinCE GUI module
4352 dnl
4353 AC_ARG_ENABLE(wince,
4354   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4355 if test "${enable_wince}" != "no"; then
4356   if test "${SYS}" = "mingwce"; then
4357     VLC_ADD_PLUGIN([wince])
4358     VLC_ADD_CXXFLAGS([wince],[])
4359     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4360     dnl Gross hack
4361     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4362   elif test "${SYS}" = "mingw32"; then
4363     VLC_ADD_CXXFLAGS([wince],[])
4364     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4365     dnl Gross hack
4366     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4367   fi
4368 fi
4369
4370 dnl
4371 dnl Simple test for skins2 dependency
4372 dnl
4373 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4374   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.])
4375 ])
4376
4377 dnl
4378 dnl  Opie QT embedded module
4379 dnl
4380 AC_ARG_ENABLE(opie,
4381   [  --enable-opie           Qt embedded interface support (default disabled)],
4382   [if test "${enable_opie}" = "yes"; then
4383      AC_ARG_WITH(qte,
4384      [    --with-qte=PATH       Qt Embedded headers and libraries])
4385      if test "${with_qte}" != "no" -a -n "${with_qte}"
4386      then
4387        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4388        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])
4389      else
4390        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4391        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4392      fi
4393      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4394      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4395        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4396      ] )
4397      CPPFLAGS="${CPPFLAGS_save}"
4398
4399      VLC_ADD_PLUGIN([opie])
4400      NEED_QTE_MAIN=yes
4401      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4402      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4403      if test "${with_qte}" != "no" -a -n "${with_qte}"
4404      then
4405        MOC=${with_qte}/bin/moc
4406      else
4407        MOC=${QTDIR}/bin/moc
4408      fi
4409    fi])
4410
4411 dnl
4412 dnl  MacOS X video output/gui modules
4413 dnl
4414 AC_ARG_ENABLE(macosx,
4415   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4416 if test "x${enable_macosx}" = "xyes"
4417 then
4418   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4419   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4420   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4421   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4422   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4423   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4424   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4425   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4426   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4427   dnl For bug report
4428   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4429   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,QTKit])
4430   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4431   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4432   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4433   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4434   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4435
4436   VLC_ADD_PLUGIN([access_eyetv])
4437   VLC_ADD_PLUGIN([qtcapture])
4438   VLC_ADD_PLUGIN([macosx])
4439   VLC_ADD_PLUGIN([minimal_macosx])
4440   VLC_ADD_PLUGIN([opengllayer])
4441 fi
4442
4443 dnl
4444 dnl  QNX RTOS module
4445 dnl
4446 AC_ARG_ENABLE(qnx,
4447   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4448     if test "${enable_qnx}" != "no"
4449     then
4450       AC_CHECK_HEADERS(Ph.h, [
4451         VLC_ADD_PLUGIN([qnx])
4452         VLC_ADD_LIBS([qnx],[-lasound -lph])
4453       ])
4454     fi
4455
4456 dnl
4457 dnl  ncurses module
4458 dnl
4459 AC_ARG_ENABLE(ncurses,
4460   [  --disable-ncurses       ncurses interface support (default enabled)],
4461   [if test "${enable_ncurses}" != "no"; then
4462     AC_CHECK_HEADER(ncurses.h,
4463       [AC_CHECK_LIB(ncursesw, mvprintw,
4464         [VLC_ADD_PLUGIN([ncurses])
4465         VLC_ADD_LIBS([ncurses],[-lncursesw])
4466         ALIASES="${ALIASES} nvlc"
4467         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4468         AC_CHECK_LIB(ncursesw, tgetent, [],
4469           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4470             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4471               [AS_IF([test "x${enable_ncurses}" != "x"],
4472                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4473                )])])
4474             ]
4475           )
4476         )
4477         ],
4478         [AC_CHECK_LIB( ncurses, mvprintw,
4479           [VLC_ADD_PLUGIN([ncurses])