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