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