]> git.sesse.net Git - vlc/blob - configure.ac
Fix non posix test construction in configure.
[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     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
315
316     case "${host_os}" in
317       *wince* | *mingwce* | *mingw32ce* | *pe*)
318         SYS=mingwce
319         dnl Sadly CeGCC still needs non-wince macros
320         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
321         ;;
322       *mingw32*)
323         SYS=mingw32
324         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
325         ;;
326       *cygwin*)
327         dnl Check if we are using the mno-cygwin mode in which case we are
328         dnl actually dealing with a mingw32 compiler.
329         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
330         AC_EGREP_CPP(yes,
331             [#ifdef WIN32
332              yes
333              #endif],
334             SYS=mingw32, SYS=cygwin)
335         ;;
336     esac
337
338     if test "${SYS}" = "mingw32"; then
339         # add ws2_32 for closesocket, select, recv
340         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
341         VLC_ADD_LDFLAGS([vlc],[-mwindows])
342         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
343         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
344         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])
345     fi
346     if test "${SYS}" = "mingwce"; then
347         # add ws2 for closesocket, select, recv
348         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])
349         VLC_ADD_LIBS([libvlc],[-lmmtimer])
350    fi
351     ;;
352   *nto*)
353     SYS=nto
354     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
355     ;;
356   solaris*)
357     SYS=solaris
358     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
359     # Perhaps it is useful other places as well? 
360     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
361     ;;
362   hpux*)
363     SYS=hpux
364     ;;
365   beos)
366     SYS=beos
367     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
368     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
369     VLC_ADD_CXXFLAGS([beos],[])
370     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
371     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
372     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
373     VLC_ADD_LIBS([access_file],[-lpoll])
374     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
375     dnl Check for BONE
376     if test -f /boot/beos/system/lib/libbind.so; then
377         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
378     else
379         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
380     fi
381
382     dnl Ugly check for Zeta
383     if test -f /boot/beos/system/lib/libzeta.so; then
384         VLC_ADD_LIBS([beos],[-lzeta])
385     fi
386     ;;
387   *)
388     SYS="${host_os}"
389     ;;
390 esac
391 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
392 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
393 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
394 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
395 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
396
397 dnl
398 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
399 dnl for program foo on win32
400
401 case "${build_os}" in
402     cygwin|msys)
403         ac_executable_extensions=".exe"
404     ;;
405     *)
406     ;;
407 esac
408
409 dnl 
410 dnl  Libtool
411 dnl  It's very bad, but our former custom system was worst
412 dnl  -- Courmisch
413 dnl
414
415 dnl override platform specific check for dependent libraries
416 dnl otherwise libtool linking of shared libraries will
417 dnl fail on anything other than pass_all.
418 AC_CACHE_VAL(lt_cv_deplibs_check_method,
419     [lt_cv_deplibs_check_method=pass_all])
420
421 AC_DISABLE_STATIC
422 dnl AC_DISABLE_FAST_INSTALL
423 AC_LIBTOOL_DLOPEN
424 AC_LIBTOOL_WIN32_DLL
425 m4_undefine([AC_PROG_F77])
426 m4_defun([AC_PROG_F77],[])
427 AC_PROG_LIBTOOL
428
429 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
430 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
431
432 lt_cv_deplibs_check_method=pass_all
433
434
435 dnl
436 dnl Gettext stuff
437 dnl
438 AM_GNU_GETTEXT_VERSION([0.17])
439 AM_GNU_GETTEXT([external])
440 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
441
442 dnl
443 dnl Iconv stuff
444 dnl
445 AM_ICONV
446 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
447 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
448
449 dnl Check for the need to include the mingwex lib for mingw32
450 if test "${SYS}" = "mingw32"
451 then
452     AC_CHECK_LIB(mingwex,opendir,
453         AC_CHECK_LIB(mingw32,opendir,,
454             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
455     )
456 fi
457
458 dnl Check for fnative-struct or mms-bitfields support for mingw32
459 if test "${SYS}" = "mingw32"
460 then
461     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
462         [ac_cv_c_mms_bitfields],
463         [CFLAGS="${CFLAGS_save} -mms-bitfields"
464          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
465     if test "${ac_cv_c_mms_bitfields}" != "no"; then
466         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
467         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
468     else
469         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
470             [ac_cv_c_fnative_struct],
471             [CFLAGS="${CFLAGS_save} -fnative-struct"
472              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
473         if test "${ac_cv_c_fnative_struct}" != "no"; then
474             CFLAGS_save="${CFLAGS_save} -fnative-struct";
475             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
476         fi
477     fi
478
479     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
480 fi
481
482 dnl Check for fvtable-thunks support for mingw32
483 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
484 then
485 AC_LANG_PUSH(C++)
486     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
487         [ac_cv_cxx_fvtable_thunks],
488         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
489          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
490                         ac_cv_cxx_fvtable_thunks=no)])
491     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
492         CXXFLAGS_mingw32_special="-fvtable-thunks"
493     fi
494
495     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
496 AC_LANG_POP(C++)
497 fi
498
499 dnl Plugin compilation stuff
500
501 VLC_LIBRARY_SUFFIX
502
503 dnl The -DSYS_FOO flag
504 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
505
506 dnl Check for system libs needed
507 need_libc=false
508
509 dnl Check for usual libc functions
510 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])
511 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
512 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
513 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
514 AC_FUNC_ALLOCA
515 AC_CHECK_FUNCS(fcntl)
516
517 dnl Check for Linux system calls
518 AC_CHECK_FUNCS([vmsplice])
519
520 AH_BOTTOM([#include <vlc_fixups.h>])
521
522 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
523
524 dnl Check for setlocal and langinfo
525 AC_CHECK_FUNCS(setlocale)
526 AC_CHECK_HEADERS(langinfo.h)
527 AC_CHECK_FUNCS(nl_langinfo)
528
529 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
530   [AC_TRY_LINK([#include <langinfo.h>],
531     [char* cs = nl_langinfo(CODESET);],
532     ac_cv_langinfo_codeset=yes,
533     ac_cv_langinfo_codeset=no)
534   ])
535 if test ${ac_cv_langinfo_codeset} = yes; then
536   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
537     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
538 fi
539
540 AC_CHECK_FUNCS(connect,,[
541   AC_CHECK_LIB(socket,connect,[
542     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
543     LIBS_socket="-lsocket"
544   ])
545 ])
546
547 AC_CHECK_FUNCS(send,,[
548   AC_CHECK_LIB(socket,send,[
549     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])
550   ])
551 ])
552
553 AC_CHECK_HEADERS(zlib.h, [
554   VLC_ADD_LIBS([access_http],[-lz])
555 ])
556
557 dnl Check for socklen_t
558 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
559 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
560 ac_cv_type_socklen_t,
561 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
562 [#include <sys/types.h>
563 #ifdef WIN32
564 # include <winsock2.h>
565 # include <ws2tcpip.h>
566 #else
567 # include <sys/socket.h>
568 #endif]], [[socklen_t len; len = 0;]])],
569 ac_cv_type_socklen_t=yes,
570 ac_cv_type_socklen_t=no)])
571 AS_IF([test "$ac_cv_type_socklen_t" = no],
572  [AC_DEFINE(socklen_t, int)])
573
574 dnl Check for struct sockaddr_storage
575 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
576 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
577 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
578   [AC_TRY_COMPILE(
579     [#include <sys/types.h>
580      #if defined( UNDER_CE )
581      # include <winsock2.h>
582      #elif defined( WIN32 )
583      # include <winsock2.h>
584      #else
585      # include <sys/socket.h>
586      #endif], [struct sockaddr_storage addr;],
587      ac_cv_struct_sockaddr_storage=yes,
588      ac_cv_struct_sockaddr_storage=no)])
589 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
590   AC_DEFINE(sockaddr_storage, sockaddr)
591   AC_DEFINE(ss_family, sa_family)
592 ])
593
594 dnl getaddrinfo, getnameinfo and gai_strerror check
595 dnl  -lnsl and -lsocket are needed on Solaris;
596 dnl  we purposedly make the test fail on Windows
597 LIBS_save="${LIBS}"
598 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
599 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
600
601 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
602 dnl are
603 LIBS="${LIBS_gai}"
604 AC_CHECK_FUNCS([getnameinfo gai_strerror])
605 LIBS="${LIBS_save}"
606
607 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
608 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
609 [#include <sys/types.h>
610 #if defined( WIN32 ) || defined( UNDER_CE )
611 # if defined(UNDER_CE) && defined(sockaddr_storage)
612 #  undef sockaddr_storage
613 # endif
614 # include <winsock2.h>
615 # include <ws2tcpip.h>
616 #else
617 # include <netdb.h>
618 #endif])
619
620 dnl Check for va_copy
621 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
622   AC_TRY_LINK(
623     [#include <stdarg.h>],
624     [va_list ap1, ap2; va_copy(ap1,ap2);],
625     [ac_cv_c_va_copy="yes"],
626     [ac_cv_c_va_copy="no"]))
627 if test "${ac_cv_c_va_copy}" = "yes"; then
628   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
629 fi
630 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
631   AC_TRY_LINK(
632     [#include <stdarg.h>],
633     [va_list ap1, ap2; __va_copy(ap1,ap2);],
634     [ac_cv_c___va_copy="yes"],
635     [ac_cv_c___va_copy="no"]))
636 if test "${ac_cv_c___va_copy}" = "yes"; then
637   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
638 fi
639
640 AC_CHECK_FUNCS(inet_aton,,[
641   AC_CHECK_LIB(resolv,inet_aton,[
642     VLC_ADD_LIBS([libvlc],[-lresolv])
643   ])
644 ])
645
646 dnl Check for getopt (always use builtin one on win32)
647 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
648 need_getopt=:
649 else
650 need_getopt=false
651 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
652 [ # FreeBSD has a gnugetopt library for this:
653   AC_CHECK_LIB([gnugetopt],[getopt_long],
654     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
655      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
656     [need_getopt=:])])
657 fi
658 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
659
660 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
661 AC_TYPE_SIGNAL
662 AC_CHECK_LIB(m,cos,[
663   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene],[-lm])
664 ])
665 AC_CHECK_LIB(m,pow,[
666   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])
667 ])
668 AC_CHECK_LIB(m,sqrt,[
669   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
670 ])
671 AC_CHECK_LIB(m,ceil,[
672   VLC_ADD_LIBS([mosaic],[-lm])
673 ])
674 AC_CHECK_LIB(m,exp,[
675   VLC_ADD_LIBS([gaussianblur],[-lm])
676 ])
677 AC_CHECK_LIB(m,round,[
678   VLC_ADD_LIBS([dbus],[-lm])
679 ])
680 AC_CHECK_LIB(mx,sqrtf,[
681   VLC_ADD_LIBS([x264],[-lmx])
682 ])
683 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
684
685 dnl Check for dynamic plugins
686 ac_cv_have_plugins=no
687
688 # OS X style
689 AC_CHECK_HEADERS(mach-o/dyld.h,
690   [AC_CHECK_FUNCS(NSLinkModule,
691     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
692      ac_cv_have_plugins=yes])])
693
694 # HP-UX style
695 if test "${ac_cv_have_plugins}" = "no"; then
696   AC_CHECK_HEADERS(dl.h)
697   ac_cv_my_have_shl_load=no
698   AC_CHECK_FUNC(shl_load,
699    [ac_cv_my_have_shl_load=yes,
700     AC_CHECK_LIB(dld, shl_load,
701      [ac_cv_my_have_shl_load=yes
702       VLC_ADD_LIBS([libvlc],[-ldld])])])
703   if test "${ac_cv_my_have_shl_load}" = "yes"; then
704     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
705     ac_cv_have_plugins=yes
706   fi
707 fi
708
709 # Whatever style
710 if test "${ac_cv_have_plugins}" = "no"; then
711   AC_CHECK_LIB(dld, dld_link,
712    [VLC_ADD_LIBS([libvlc],[-ldld])
713     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
714     ac_cv_have_plugins=yes])
715 fi
716
717 # Win32 style
718 if test "${ac_cv_have_plugins}" = "no"; then
719   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
720     AC_CHECK_LIB(kernel32, main,
721      [VLC_ADD_LIBS([libvlc],[-lkernel32])
722       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
723       ac_cv_have_plugins=yes])
724   fi
725 fi
726
727 # WinCE style
728 if test "${ac_cv_have_plugins}" = "no"; then
729   if test "${SYS}" = "mingwce"; then
730     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
731     ac_cv_have_plugins=yes
732   fi
733 fi
734
735 # BeOS style
736 if test "${ac_cv_have_plugins}" = "no"; then
737   AC_CHECK_HEADERS(image.h)
738   AC_CHECK_FUNCS(load_add_on,
739    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
740     ac_cv_have_plugins=yes])
741 fi
742
743 # Only test for dlopen() if the others didn't work
744 if test "${ac_cv_have_plugins}" = "no"; then
745   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
746   ac_cv_my_have_dlopen=no
747   AC_CHECK_FUNC(dlopen,
748     ac_cv_my_have_dlopen=yes,
749     AC_CHECK_LIB(dl, dlopen,
750       ac_cv_my_have_dlopen=yes
751       VLC_ADD_LIBS([libvlc realaudio realvideo],[-ldl]),
752       AC_CHECK_LIB(svld, dlopen,
753         ac_cv_my_have_dlopen=yes
754         VLC_ADD_LIBS([libvlc],[-lsvld]))))
755   if test "${ac_cv_my_have_dlopen}" = "yes"; then
756     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
757     ac_cv_have_plugins=yes
758   fi
759 fi
760
761 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
762 dnl Check for pthreads - borrowed from XMMS
763 THREAD_LIB=error
764 if test "${THREAD_LIB}" = "error"; then
765   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
766 fi
767 if test "${THREAD_LIB}" = "error"; then
768   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
769 fi
770 if test "${THREAD_LIB}" = "error"; then
771   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
772 fi
773 if test "${THREAD_LIB}" = "error"; then
774   AC_CHECK_FUNCS(pthread_mutex_lock)
775   THREAD_LIB=""
776 fi
777
778 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
779
780 AC_CHECK_LIB(rt, clock_nanosleep, [
781   VLC_ADD_LIBS([libvlc],[-lrt])
782   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
783 ], [
784   dnl HP/UX port
785   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
786 ])
787
788 have_nanosleep=false
789 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
790   AC_CHECK_LIB(rt,nanosleep,
791     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
792     [AC_CHECK_LIB(posix4,nanosleep,
793         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
794   )
795 ])
796 if ${have_nanosleep}; then
797   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
798 fi
799 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
800
801 dnl Check for misc headers
802 AC_MSG_CHECKING(for strncasecmp in strings.h)
803 AC_EGREP_HEADER(strncasecmp,strings.h,[
804   AC_MSG_RESULT(yes)
805   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
806             Define if <strings.h> defines strncasecmp.)],[
807   AC_MSG_RESULT(no)])
808
809 dnl Check for headers
810 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)
811 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)
812 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
813 AC_CHECK_HEADERS([net/if.h], [], [],
814   [
815     #include <sys/socket.h>
816   ])
817 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
818 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
819 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
820 AC_CHECK_HEADERS(syslog.h)
821 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
822
823 AC_HEADER_TIME
824
825 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
826 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
827 AC_CHECK_TYPE(ssize_t,, [
828   AC_DEFINE(ssize_t, int)
829 ])
830
831 dnl Check for poll
832 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
833 if test ${SYS} != "mingw32"
834 then
835     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])
836 fi
837 ])
838
839 dnl Check for dirent
840 need_dirent=false
841 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
842 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
843
844 dnl Mac OS X and other OSes don't have declaration for nanosleep
845 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
846 AC_MSG_CHECKING(for nanosleep in time.h)
847 AC_EGREP_HEADER(nanosleep,time.h,[
848   AC_MSG_RESULT(yes)
849   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
850             Define if <time.h> defines nanosleep.)
851 ],[
852   AC_MSG_RESULT(no)
853 ])
854 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
855
856 dnl Make sure we have timespecs
857 AC_MSG_CHECKING(for timespec in sys/time.h)
858 AC_EGREP_HEADER(timespec,sys/time.h,[
859   AC_MSG_RESULT(yes)
860   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
861             Define if <sys/time.h> defines struct timespec.)
862 ],[
863   AC_MSG_RESULT(no)
864 ])
865
866 dnl Check for threads library
867 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
868 AC_CHECK_HEADERS(pthread.h)
869 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
870
871 dnl Find where are the X headers and libraries
872 AC_PATH_XTRA()
873
874 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.
875 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
876 AC_ARG_VAR(PKG_CONFIG_PATH, 
877            [Paths where to find .pc not at the default location])
878 PKG_PROG_PKG_CONFIG()
879
880 dnl Check for hal
881 AC_ARG_ENABLE(hal,
882   [  --enable-hal            Linux HAL services discovery (default enabled)])
883  
884 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
885 then
886   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
887     [
888       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
889       VLC_ADD_PLUGIN([hal])
890       VLC_ADD_PLUGIN([probe_hal])
891       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
892       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],
893     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
894   )
895 fi
896
897 dnl Check for dbus
898 AC_ARG_ENABLE(dbus,
899   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
900 case "${SYS}" in
901     linux*|*bsd*)
902 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
903 then
904   dnl api stable dbus
905   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
906     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
907       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
908       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
909       dnl Check for dbus control interface
910         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
911         if test "${enable_dbus_control}" != "no"
912         then
913           VLC_ADD_PLUGIN([dbus])
914           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
915           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
916         fi
917       dnl Check for Telepathy
918         AC_ARG_ENABLE(telepathy,
919           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
920         if test "${enable_telepathy}" != "no"; then
921           VLC_ADD_PLUGIN([telepathy])
922           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
923           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
924         fi
925         dnl Power Management Inhibiter
926         VLC_ADD_PLUGIN([inhibit])
927         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
928         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
929     ],
930     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
931   )
932 fi
933 ;;
934 esac
935
936 dnl Build the gtk_main plugins?
937 NEED_GTK_MAIN=no
938 NEED_GNOME_MAIN=no
939 NEED_GTK2_MAIN=no
940 NEED_GNOME2_MAIN=no
941
942 dnl build the qte plugin ?
943 NEED_QTE_MAIN=no
944
945 dnl Check for ntohl, etc.
946 AC_CACHE_CHECK([for ntohl in sys/param.h],
947     [ac_cv_c_ntohl_sys_param_h],
948     [CFLAGS="${CFLAGS_save} -Wall -Werror"
949      AC_TRY_COMPILE([#include <sys/param.h>],
950         [int meuh; ntohl(meuh);],
951         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
952 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
953     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
954 fi
955 CFLAGS="${CFLAGS_save}"
956
957 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])
958 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
959
960 dnl Check for various optimization flags
961 AC_CACHE_CHECK([if \$CC accepts -Os],
962     [ac_cv_c_os],
963     [CFLAGS="${CFLAGS_save} -Os"
964      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
965 if test "${ac_cv_c_os}" != "no"; then
966     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
967 else 
968     AC_CACHE_CHECK([if \$CC accepts -O],
969         [ac_cv_c_o],
970         [CFLAGS="${CFLAGS_save} -O"
971          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
972     if test "${ac_cv_c_o}" != "no"; then
973         if test "${ac_cv_c_o3}" = "no"; then
974             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
975         fi
976     fi
977 fi
978
979 AC_CACHE_CHECK([if \$CC accepts -O3],
980     [ac_cv_c_o3],
981     [CFLAGS="${CFLAGS_save} -O3"
982      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
983 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
984     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
985 else
986     AC_CACHE_CHECK([if \$CC accepts -O2],
987         [ac_cv_c_o2],
988         [CFLAGS="${CFLAGS_save} -O2"
989          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
990     if test "${ac_cv_c_o2}" != "no"; then
991         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
992     else
993         AC_CACHE_CHECK([if \$CC accepts -O],
994             [ac_cv_c_o],
995             [CFLAGS="${CFLAGS_save} -O"
996              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
997         if test "${ac_cv_c_o}" != "no"; then
998             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
999         fi
1000     fi
1001 fi
1002
1003 AC_CACHE_CHECK([if \$CC accepts -O0],
1004     [ac_cv_c_o0],
1005     [CFLAGS="${CFLAGS_save} -O0"
1006      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1007 if test "${ac_cv_c_o0}" != "no"; then
1008     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1009 fi
1010
1011 dnl Check for -ffast-math
1012 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1013     [ac_cv_c_fast_math],
1014     [CFLAGS="${CFLAGS_save} -ffast-math"
1015      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1016 if test "${ac_cv_c_fast_math}" != "no"; then
1017     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1018 fi
1019
1020 dnl Check for -funroll-loops
1021 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1022 if test "${SYS}" != "beos"
1023 then
1024   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1025       [ac_cv_c_unroll_loops],
1026       [CFLAGS="${CFLAGS_save} -funroll-loops"
1027        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1028   if test "${ac_cv_c_unroll_loops}" != "no"; then
1029       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1030   fi
1031 fi
1032
1033 dnl Check for -fomit-frame-pointer
1034 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1035     [ac_cv_c_omit_frame_pointer],
1036     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1037      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1038 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1039  if test "${SYS}" != "darwin"; then
1040     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1041  else
1042     dnl On darwin we explicitely disable it.
1043     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1044  fi
1045 fi
1046
1047 dnl Check for Darwin plugin linking flags
1048 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1049     [ac_cv_ld_darwin],
1050     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1051      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1052 if test "${ac_cv_ld_darwin}" != "no"; then
1053     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1054 fi
1055
1056 dnl Checks for __attribute__(aligned()) directive
1057 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1058     [ac_cv_c_attribute_aligned],
1059     [ac_cv_c_attribute_aligned=0
1060         CFLAGS="${CFLAGS_save} -Werror"
1061     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1062         AC_TRY_COMPILE([],
1063         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1064         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1065     done
1066         CFLAGS="${CFLAGS_save}"])
1067 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1068     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1069         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1070 fi
1071
1072 dnl Check for __attribute__((packed))
1073 AC_CACHE_CHECK([for __attribute__((packed))],
1074   [ac_cv_c_attribute_packed],
1075   [ac_cv_c_attribute_packed=no
1076    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1077                     [ac_cv_c_attribute_packed=yes])])
1078 if test "${ac_cv_c_attribute_packed}" != "no"; then
1079   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1080 fi
1081
1082 dnl
1083 dnl  Check the CPU
1084 dnl
1085 case "${host_cpu}" in
1086   "")
1087     ARCH=unknown
1088     ;;
1089   *)
1090     ARCH="${host_cpu}"
1091     ;;
1092 esac
1093
1094 dnl Check for backtrace() support
1095 AC_CHECK_HEADERS(execinfo.h)
1096 AC_CHECK_FUNCS(backtrace)
1097
1098 dnl
1099 dnl  Enable profiling
1100 dnl
1101 AC_ARG_ENABLE(gprof,
1102 [  --enable-gprof          gprof profiling (default disabled)])
1103 AC_ARG_ENABLE(cprof,
1104 [  --enable-cprof          cprof profiling (default disabled)])
1105 test "${enable_gprof}" != "yes" && enable_gprof="no"
1106 test "${enable_cprof}" != "yes" && enable_cprof="no"
1107
1108 dnl
1109 dnl  default modules
1110 dnl
1111 dnl Video filters:
1112 VLC_ADD_PLUGIN([deinterlace])
1113 VLC_ADD_PLUGIN([yuvp])
1114 VLC_ADD_PLUGIN([invert])
1115 VLC_ADD_PLUGIN([adjust])
1116 VLC_ADD_PLUGIN([transform])
1117 VLC_ADD_PLUGIN([wave])
1118 VLC_ADD_PLUGIN([ripple])
1119 VLC_ADD_PLUGIN([psychedelic])
1120 VLC_ADD_PLUGIN([gradient])
1121 VLC_ADD_PLUGIN([motionblur])
1122 VLC_ADD_PLUGIN([rv32])
1123 VLC_ADD_PLUGIN([rotate])
1124 VLC_ADD_PLUGIN([noise])
1125 VLC_ADD_PLUGIN([grain])
1126 VLC_ADD_PLUGIN([extract])
1127 VLC_ADD_PLUGIN([sharpen])
1128 VLC_ADD_PLUGIN([croppadd])
1129 VLC_ADD_PLUGIN([canvas])
1130 VLC_ADD_PLUGIN([blendbench])
1131 VLC_ADD_PLUGIN([blend])
1132 VLC_ADD_PLUGIN([scale])
1133 VLC_ADD_PLUGIN([vmem])
1134 VLC_ADD_PLUGIN([logo])
1135 VLC_ADD_PLUGIN([magnify])
1136 VLC_ADD_PLUGIN([puzzle])
1137 VLC_ADD_PLUGIN([colorthres])
1138 VLC_ADD_PLUGIN([scene])
1139 VLC_ADD_PLUGIN([yuv])
1140
1141 ALIASES="${ALIASES} cvlc"
1142
1143 dnl
1144 dnl default modules that need g++
1145 dnl
1146 AC_LANG_PUSH(C++)
1147 VLC_ADD_PLUGIN([spatializer])
1148 AC_LANG_POP(C++)
1149
1150 if test "${SYS}" != "mingwce"; then
1151   VLC_ADD_PLUGIN([gestures])
1152   VLC_ADD_PLUGIN([rc])
1153   VLC_ADD_PLUGIN([hotkeys])
1154   VLC_ADD_PLUGIN([showintf])
1155   VLC_ADD_PLUGIN([marq])
1156   VLC_ADD_PLUGIN([podcast])
1157   VLC_ADD_PLUGIN([shout])
1158   VLC_ADD_PLUGIN([sap])
1159   VLC_ADD_PLUGIN([fake])
1160   VLC_ADD_PLUGIN([folder])
1161   VLC_ADD_PLUGIN([rss])
1162   VLC_ADD_PLUGIN([mosaic])
1163   VLC_ADD_PLUGIN([wall])
1164   VLC_ADD_PLUGIN([motiondetect])
1165   VLC_ADD_PLUGIN([clone])
1166   VLC_ADD_PLUGIN([crop])
1167   VLC_ADD_PLUGIN([erase])
1168   VLC_ADD_PLUGIN([bluescreen])
1169   VLC_ADD_PLUGIN([alphamask])
1170   VLC_ADD_PLUGIN([gaussianblur])
1171   VLC_ADD_PLUGIN([i420_yuy2])
1172   VLC_ADD_PLUGIN([i422_yuy2])
1173   VLC_ADD_PLUGIN([i420_ymga])
1174   VLC_ADD_PLUGIN([i422_i420])
1175   VLC_ADD_PLUGIN([yuy2_i422])
1176   VLC_ADD_PLUGIN([yuy2_i420])
1177   VLC_ADD_PLUGIN([chain])
1178   VLC_ADD_PLUGIN([aout_file])
1179   VLC_ADD_PLUGIN([linear_resampler])
1180   VLC_ADD_PLUGIN([bandlimited_resampler])
1181   VLC_ADD_PLUGIN([float32_mixer])
1182   VLC_ADD_PLUGIN([spdif_mixer])
1183   VLC_ADD_PLUGIN([simple_channel_mixer])
1184   VLC_ADD_PLUGIN([dolby_surround_decoder])
1185   VLC_ADD_PLUGIN([headphone_channel_mixer])
1186   VLC_ADD_PLUGIN([normvol])
1187   VLC_ADD_PLUGIN([equalizer])
1188   VLC_ADD_PLUGIN([param_eq])
1189   VLC_ADD_PLUGIN([scaletempo])
1190   VLC_ADD_PLUGIN([converter_float])
1191   VLC_ADD_PLUGIN([a52tospdif])
1192   VLC_ADD_PLUGIN([dtstospdif])
1193   VLC_ADD_PLUGIN([audio_format])
1194   ALIASES="${ALIASES} rvlc"
1195 fi
1196
1197 if test "${SYS}" = "mingwce"; then
1198   VLC_ADD_PLUGIN([chain])
1199   VLC_ADD_PLUGIN([aout_file])
1200   VLC_ADD_PLUGIN([linear_resampler])
1201   VLC_ADD_PLUGIN([bandlimited_resampler])
1202   VLC_ADD_PLUGIN([float32_mixer])
1203   VLC_ADD_PLUGIN([spdif_mixer])
1204   VLC_ADD_PLUGIN([simple_channel_mixer])
1205   VLC_ADD_PLUGIN([headphone_channel_mixer])
1206   VLC_ADD_PLUGIN([normvol])
1207   VLC_ADD_PLUGIN([converter_float])
1208   VLC_ADD_PLUGIN([a52tospdif])
1209   VLC_ADD_PLUGIN([dtstospdif])
1210   VLC_ADD_PLUGIN([audio_format])
1211   VLC_ADD_PLUGIN([i420_yuy2])
1212   VLC_ADD_PLUGIN([i422_yuy2])
1213   VLC_ADD_PLUGIN([i420_ymga])
1214   VLC_ADD_PLUGIN([i422_i420])
1215   VLC_ADD_PLUGIN([yuy2_i422])
1216   VLC_ADD_PLUGIN([yuy2_i420])
1217 fi
1218
1219 dnl
1220 dnl Some plugins aren't useful on some platforms
1221 dnl
1222 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1223     VLC_ADD_PLUGIN([screensaver])
1224     VLC_ADD_PLUGIN([motion])
1225     VLC_ADD_PLUGIN([dynamicoverlay])
1226     VLC_ADD_PLUGIN([signals])
1227 elif test "${SYS}" != "mingwce"; then
1228     VLC_ADD_PLUGIN([ntservice])
1229     VLC_ADD_PLUGIN([access_smb])
1230     VLC_ADD_PLUGIN([dmo])
1231     VLC_ADD_PLUGIN([msn])
1232     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1233     VLC_ADD_PLUGIN([globalhotkeys])
1234 else
1235     VLC_ADD_PLUGIN([win32text])
1236 fi
1237 if test "${SYS}" = "darwin"; then
1238     VLC_ADD_PLUGIN([quartztext])
1239     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1240 fi
1241
1242 dnl
1243 dnl  Accelerated modules
1244 dnl
1245 AC_ARG_WITH(,[])
1246 AC_ARG_WITH(,[Optimization options:])
1247
1248 dnl  Check for fully working MMX intrinsics
1249 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1250 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1251 AC_ARG_ENABLE(mmx,
1252 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1253   case "${host_cpu}" in
1254     i?86|x86_64)
1255       enable_mmx="yes"
1256       ;;
1257     *)
1258       enable_mmx="no"
1259       ;;
1260   esac
1261 ])
1262 AS_IF([test "${enable_mmx}" != "no"], [
1263   ARCH="${ARCH} mmx"
1264
1265   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1266     [ac_cv_c_mmx_intrinsics],
1267     [CFLAGS="${CFLAGS_save} -O -mmmx"
1268      AC_TRY_COMPILE([#include <mmintrin.h>
1269                      #include <stdint.h>
1270                      uint64_t frobzor;],
1271                     [__m64 a, b, c;
1272                      a = b = c = (__m64)frobzor;
1273                      a = _mm_slli_pi16(a, 3);
1274                      a = _mm_adds_pi16(a, b);
1275                      c = _mm_srli_pi16(c, 8);
1276                      c = _mm_slli_pi16(c, 3);
1277                      b = _mm_adds_pi16(b, c);
1278                      a = _mm_unpacklo_pi8(a, b);
1279                      frobzor = (uint64_t)a;],
1280                     [ac_cv_c_mmx_intrinsics=yes],
1281                     [ac_cv_c_mmx_intrinsics=no])])
1282   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1283     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1284               [Define to 1 if MMX intrinsics are available.])
1285     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1286   ])
1287
1288   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1289     [ac_cv_mmx_inline],
1290     [CFLAGS="${CFLAGS_save}"
1291      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1292                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1293   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1294     AC_DEFINE(CAN_COMPILE_MMX, 1,
1295               [Define to 1 inline MMX assembly is available.])
1296     VLC_ADD_PLUGIN([memcpymmx])
1297     VLC_ADD_PLUGIN([i420_rgb_mmx])
1298     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1299     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1300     VLC_ADD_PLUGIN([i420_ymga_mmx])
1301   ])
1302
1303   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1304     [ac_cv_mmxext_inline],
1305     [CFLAGS="${CFLAGS_save}"
1306      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1307                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1308   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1309     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1310               [Define to 1 if MMX EXT inline assembly is available.])
1311     VLC_ADD_PLUGIN([memcpymmxext])
1312   ])
1313 ])
1314
1315 dnl  Check for fully workin SSE2 intrinsics
1316 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1317 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1318 AC_ARG_ENABLE(sse,
1319 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1320 ,, [
1321   case "${host_cpu}" in
1322     i686|x86_64)
1323       enable_sse=yes
1324       ;;
1325     *)
1326       enable_sse=no
1327       ;;
1328   esac
1329 ])
1330 AS_IF([test "${enable_sse}" != "no"], [
1331   ARCH="${ARCH} sse sse2"
1332
1333   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1334     [ac_cv_c_sse2_intrinsics],
1335     [CFLAGS="${CFLAGS_save} -O -msse2"
1336      AC_TRY_COMPILE([#include <emmintrin.h>
1337                      #include <stdint.h>
1338                      uint64_t frobzor;],
1339                     [__m128i a, b, c;
1340                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1341                      a = _mm_slli_epi16(a, 3);
1342                      a = _mm_adds_epi16(a, b);
1343                      c = _mm_srli_epi16(c, 8);
1344                      c = _mm_slli_epi16(c, 3);
1345                      b = _mm_adds_epi16(b, c);
1346                      a = _mm_unpacklo_epi8(a, b);
1347                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1348                     [ac_cv_c_sse2_intrinsics=yes],
1349                     [ac_cv_c_sse2_intrinsics=no])])
1350   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1351     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1352               [Define to 1 if SSE2 intrinsics are available.])
1353     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1354   ])
1355
1356   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1357     [ac_cv_sse_inline],
1358     [CFLAGS="${CFLAGS_save}"
1359      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1360                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1361   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1362     AC_DEFINE(CAN_COMPILE_SSE, 1,
1363               [Define to 1 if SSE inline assembly is available.])
1364   ])
1365
1366   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1367     [ac_cv_sse2_inline],
1368     [CFLAGS="${CFLAGS_save}"
1369      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1370                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1371   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1372     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1373               [Define to 1 if SSE2 inline assembly is available.])
1374     VLC_ADD_PLUGIN([i420_rgb_sse2])
1375     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1376     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1377   ])
1378 ])
1379
1380 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1381     [ac_cv_3dnow_inline],
1382     [CFLAGS="${CFLAGS_save}"
1383      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1384                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1385 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1386   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1387             [Define to 1 if 3D Now! inline assembly is available.])
1388   VLC_ADD_PLUGIN([memcpy3dn])
1389 ])
1390
1391 AC_ARG_ENABLE(altivec,
1392 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1393   AS_IF([test "${host_cpu}" = "powerpc"],
1394         [enable_altivec=yes], [enable_altivec=no])
1395 ])
1396 AS_IF([test "${enable_altivec}" = "yes"], [
1397   ARCH="${ARCH} altivec";
1398   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1399     [ac_cv_altivec_inline],
1400     [CFLAGS="${CFLAGS_save}"
1401      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1402          ac_cv_altivec_inline="yes",
1403          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1404           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1405             [ac_cv_altivec_inline="-Wa,-m7400"],
1406             ac_cv_altivec_inline=no)
1407          ])])
1408   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1409     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1410               [Define to 1 if AltiVec inline assembly is available.])
1411     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1412       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1413       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1414       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1415       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1416       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1417     ])
1418     VLC_ADD_PLUGIN([memcpyaltivec])
1419     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1420   ])
1421
1422 dnl The AltiVec C extensions
1423 dnl
1424 dnl There are several possible cases:
1425 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1426 dnl                      need <altivec.h>
1427 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1428 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1429 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1430 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1431 dnl - Others: test should fail
1432   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1433   [ac_cv_c_altivec],
1434   [# OS X/PPC test (gcc 4.x)
1435    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1436    AC_TRY_COMPILE([vector unsigned char foo;],
1437      [vec_ld(0, (unsigned char *)0);],
1438      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1439      [# OS X/PPC test (gcc 3.x)
1440       CFLAGS="${CFLAGS_save} -faltivec"
1441       AC_TRY_COMPILE([vector unsigned char foo;],
1442         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1443         [ac_cv_c_altivec="-faltivec"],
1444         dnl Below this are the Linux tests
1445         [# Linux/PPC test (gcc 4.x)
1446          CFLAGS="${CFLAGS_save} -maltivec"
1447          AC_TRY_COMPILE([#include <altivec.h>],
1448            [vec_ld(0, (unsigned char *)0);],
1449            [ac_cv_c_altivec="-maltivec"],
1450            [# Linux/PPC test (gcc 3.3)
1451             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1452             AC_TRY_COMPILE([#include <altivec.h>],
1453               [vec_ld(0, (unsigned char *)0);],
1454               [ac_cv_c_altivec=""
1455                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1456               [# Linux/PPC test (gcc 3.3)
1457                CFLAGS="${CFLAGS_save} -fvec"
1458                AC_TRY_COMPILE([#include <altivec.h>],
1459                  [vec_ld(0, (unsigned char *)0);],
1460                  [ac_cv_c_altivec="-fvec"],
1461                  [ac_cv_c_altivec=no])
1462               ])
1463            ])
1464         ])
1465      ])
1466    CFLAGS="${CFLAGS_save}"
1467   ])
1468   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1469     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1470   ])
1471
1472   AC_CHECK_HEADERS(altivec.h)
1473   CPPFLAGS="${CPPFLAGS_save}"
1474
1475   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1476     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1477               [Define to 1 if C AltiVec extensions are available.])
1478     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1479     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1480     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1481     VLC_ADD_PLUGIN([memcpyaltivec])
1482     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1483   ])
1484
1485   AC_CACHE_CHECK([if linker needs -framework vecLib],
1486     [ac_cv_ld_altivec],
1487     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1488      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1489      LDFLAGS="${LDFLAGS_save}"
1490     ])
1491   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1492     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1493   ])
1494 ])
1495
1496 dnl
1497 dnl  Special arch tuning
1498 dnl
1499 AC_ARG_WITH(tuning,
1500 [  --with-tuning=ARCH      enable special tuning for an architecture
1501                           (default Pentium 2 on IA-32 and G4 on PPC)])
1502 if test -n "${with_tuning}"; then
1503     if test "${with_tuning}" != "no"; then
1504         CFLAGS_TUNING="-mtune=${with_tuning}"
1505     fi
1506 else
1507     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1508         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1509     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1510         CFLAGS_TUNING="-mtune=pentium2"
1511     elif test "${host_cpu}" = "x86_64"; then
1512         CFLAGS_TUNING="-mtune=athlon64"
1513     elif test "${host_cpu}" = "powerpc"; then
1514         CFLAGS_TUNING="-mtune=G4";
1515     fi
1516 fi
1517
1518 dnl NOTE: this can't be cached cleanly
1519 AS_IF([test "${CFLAGS_TUNING}"],
1520    [CFLAGS_save="${CFLAGS}"
1521     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1522
1523     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1524     AC_COMPILE_IFELSE([ ],
1525                       [tuning="yes"],
1526                       [CFLAGS_TUNING=""; tuning="no"
1527                        AS_IF([test "${with_tuning}"],
1528                              [AC_MSG_ERROR([requested tuning not supported])])])
1529
1530     AC_MSG_RESULT([$tuning])
1531     CFLAGS="${CFLAGS_save}"
1532 ])
1533
1534 dnl
1535 dnl  Memory usage
1536 dnl
1537 AC_ARG_ENABLE(optimize-memory,
1538 [  --enable-optimize-memory optimize memory usage over performance])
1539 if test "${enable_optimize_memory}" = "yes"; then
1540   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1541 fi
1542
1543 dnl
1544 dnl  Enable/disable optimizations
1545 dnl
1546 AC_ARG_ENABLE(optimizations,
1547 [  --disable-optimizations disable compiler optimizations (default enabled)])
1548 if test "${enable_optimizations}" != "no"; then
1549    if test "${enable_optimize_memory}" = "yes"; then
1550       enable_optimizations="size"
1551    else
1552       enable_optimizations="speed"
1553    fi
1554 fi
1555
1556 dnl
1557 dnl  Debugging mode
1558 dnl
1559 AC_ARG_ENABLE(debug,
1560 [  --enable-debug          debug mode (default disabled)])
1561 test "${enable_debug}" != "yes" && enable_debug="no"
1562 AH_TEMPLATE(NDEBUG,
1563             [Define to 1 if debug code should NOT be compiled])
1564 AS_IF([test "x${enable_debug}" = "xno"], [
1565   AC_DEFINE(NDEBUG)
1566 ], [
1567   AC_CHECK_HEADERS([valgrind/valgrind.h])
1568 ])
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 shine fixed point mp3 encoder
2907 dnl
2908 AC_ARG_ENABLE(shine,
2909   [  --enable-shine          shine mp3 encoding module (default disabled)])
2910 if test "${enable_shine}" = "yes"
2911 then
2912   VLC_ADD_PLUGIN([shine])
2913 fi
2914
2915 dnl
2916 dnl  mad plugin
2917 dnl
2918 AC_ARG_ENABLE(mad,
2919   [  --enable-mad            libmad module (default enabled)])
2920 if test "${enable_mad}" != "no"
2921 then
2922   AC_ARG_WITH(mad,
2923     [    --with-mad=PATH       path to libmad],[],[])
2924   if test "${with_mad}" != "no" -a -n "${with_mad}"
2925   then
2926     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2927     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2928   fi
2929
2930   AC_ARG_WITH(mad-tree,
2931     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2932   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2933   then
2934     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2935     if test -z "${real_mad_tree}"
2936     then
2937       dnl  The given directory can't be found
2938       AC_MSG_RESULT(no)
2939       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2940     fi
2941     dnl  Use a custom libmad
2942     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2943     if test -f ${real_mad_tree}/mad.h
2944     then
2945       AC_MSG_RESULT(yes)
2946       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2947       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2948       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2949       AC_CHECK_LIB(mad, mad_bit_init, [
2950         VLC_ADD_PLUGIN([mpgatofixed32])
2951         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2952         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2953       ],[])
2954       LDFLAGS="${LDFLAGS_save}"
2955     else
2956       AC_MSG_RESULT(no)
2957       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2958     fi
2959   else
2960     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2961     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2962     AC_CHECK_HEADERS(mad.h, ,
2963       [ 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.]) ])
2964     AC_CHECK_LIB(mad, mad_bit_init, [
2965       VLC_ADD_PLUGIN([mpgatofixed32])
2966       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2967       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2968     CPPFLAGS="${CPPFLAGS_save}"
2969     LDFLAGS="${LDFLAGS_save}"
2970   fi
2971 fi
2972
2973 dnl
2974 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2975 dnl
2976 AC_ARG_ENABLE( id3tag,
2977 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2978 AS_IF([test "${enable_id3tag}" = "yes"], [
2979   AC_CHECK_HEADERS(id3tag.h, [
2980     AC_CHECK_HEADERS(zlib.h, [
2981       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2982       VLC_ADD_PLUGIN([id3tag])
2983     ])
2984   ])
2985 ])
2986
2987 dnl
2988 dnl  avcodec decoder/encoder plugin
2989 dnl
2990
2991 if test "${with_ffmpeg_tree}"
2992 then
2993   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2994 fi
2995
2996 AC_ARG_ENABLE(avcodec,
2997 [  --enable-avcodec        libavcodec codec (default enabled)])
2998 if test "${enable_avcodec}" != "no"
2999 then
3000   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
3001     [
3002       VLC_SAVE_FLAGS
3003       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
3004       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
3005       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3006       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3007       VLC_ADD_PLUGIN([avcodec])
3008       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
3009       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
3010       VLC_RESTORE_FLAGS
3011     ],[
3012       AC_MSG_FAILURE([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
3013   ])
3014 fi
3015
3016 dnl
3017 dnl  avformat demuxer/muxer plugin
3018 dnl
3019
3020 AC_ARG_ENABLE(avformat,
3021 [  --enable-avformat       libavformat containers (default enabled)])
3022 if test "${enable_avformat}" != "no"
3023 then
3024   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3025     [
3026       VLC_SAVE_FLAGS
3027       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3028       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3029       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3030       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3031       VLC_ADD_PLUGIN([avformat])
3032       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3033       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3034       VLC_RESTORE_FLAGS
3035     ],[
3036       AC_MSG_FAILURE([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3037   ])
3038 fi
3039
3040 dnl
3041 dnl  swscale image scaling and conversion plugin
3042 dnl
3043
3044 AC_ARG_ENABLE(swscale,
3045   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
3046                   (default enabled)]))
3047 if test "${enable_swscale}" != "no"
3048 then
3049   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3050     [
3051       VLC_SAVE_FLAGS
3052       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3053       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3054       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3055       VLC_ADD_PLUGIN([swscale])
3056       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3057       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3058       VLC_RESTORE_FLAGS
3059     ],[
3060       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3061       enable_imgresample=yes
3062   ])
3063 fi
3064
3065 dnl
3066 dnl  avcodec (deprecated API) image scaling and conversion plugin
3067 dnl
3068 dnl  This is build as a seperate module than the avcodec one to prevent
3069 dnl  stupid run time library load errors from disabling most codecs
3070 dnl  from VLC.
3071 dnl
3072
3073 AC_ARG_ENABLE(imgresample,
3074   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3075                   and conversion (default disabled)]))
3076 if test "${enable_imgresample}" = "yes"
3077 then
3078   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3079     [
3080       VLC_SAVE_FLAGS
3081       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3082       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3083       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3084       AC_CHECK_LIB(avcodec,img_resample,
3085         [
3086           VLC_ADD_PLUGIN([imgresample])
3087           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3088           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3089         ],[
3090           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3091           if test "${enable_swscale}" != "no"
3092           then
3093             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.)])
3094           fi
3095         # That sed hack to add -rpath is kind of ugly but at least it fixes
3096         # detection when linking against a shared libavcodec with
3097         # a libavutil not in one of your ld.so.conf directories.
3098         # (for example a local install)
3099         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3100       VLC_RESTORE_FLAGS
3101     ],[
3102       AC_MSG_WARN([Could not find libavcodec.])
3103   ])
3104 fi
3105
3106 dnl
3107 dnl  postproc plugin
3108 dnl
3109
3110 AC_ARG_ENABLE(postproc,
3111 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3112 if test "${enable_postproc}" != "no"
3113 then
3114   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3115     [
3116       VLC_SAVE_FLAGS
3117       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3118       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3119       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3120       VLC_ADD_PLUGIN([postproc])
3121       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3122       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3123       VLC_RESTORE_FLAGS
3124     ],[
3125       AC_MSG_ERROR([Could not find libpostproc.])
3126   ])
3127 fi
3128
3129 dnl
3130 dnl  faad decoder plugin
3131 dnl
3132 AC_ARG_ENABLE(faad,
3133 [  --enable-faad           faad codec (default disabled)])
3134 if test "${enable_faad}" = "yes"
3135 then
3136   AC_ARG_WITH(faad-tree,
3137   [    --with-faad-tree=PATH faad tree for static linking])
3138   if test -n "${with_faad_tree}"
3139   then
3140     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3141     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3142     if test -z "${real_faad_tree}"
3143     then
3144       dnl  The given directory can't be found
3145       AC_MSG_RESULT(no)
3146       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3147     fi
3148     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3149     then
3150       dnl  Use a custom faad
3151       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3152       VLC_ADD_PLUGIN([faad])
3153       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3154       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3155     else
3156       dnl  The given libfaad wasn't built
3157       AC_MSG_RESULT(no)
3158       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3159     fi
3160   else
3161     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3162     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3163     AC_CHECK_HEADERS(faad.h, ,
3164       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3165     AC_CHECK_LIB(faad, faacDecOpen, [
3166       VLC_ADD_PLUGIN([faad])
3167       VLC_ADD_LIBS([faad],[-lfaad]) ],
3168       AC_CHECK_LIB(faad, NeAACDecOpen, [
3169         VLC_ADD_PLUGIN([faad])
3170         VLC_ADD_LIBS([faad],[-lfaad]) ],
3171         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3172     LDFLAGS="${LDFLAGS_save}"
3173     CPPFLAGS="${CPPFLAGS_save}"
3174   fi
3175 fi
3176
3177 dnl
3178 dnl twolame encoder plugin
3179 dnl
3180 AC_ARG_ENABLE(twolame,
3181 [  --enable-twolame        twolame codec (default disabled)])
3182 if test "${enable_twolame}" = "yes"
3183 then
3184   AC_ARG_WITH(twolame-tree,
3185   [    --with-twolame-tree=PATH twolame tree for static linking])
3186   if test -n "${with_twolame_tree}"
3187   then
3188     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3189     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3190     if test -z "${real_twolame_tree}"
3191     then
3192       dnl  The given directory can't be found
3193       AC_MSG_RESULT(no)
3194       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3195     fi
3196     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3197     then
3198       dnl  Use a custom twolame
3199       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3200       VLC_ADD_PLUGIN([twolame])
3201       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3202       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3203     else
3204       dnl  The given libtwolame wasn't built
3205       AC_MSG_RESULT(no)
3206       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3207     fi
3208   else
3209     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3210     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3211     AC_CHECK_HEADERS(twolame.h, ,
3212       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3213     AC_CHECK_LIB(twolame, twolame_init, [
3214       VLC_ADD_PLUGIN([twolame])
3215       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3216       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3217         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3218     LDFLAGS="${LDFLAGS_save}"  
3219     CPPFLAGS="${CPPFLAGS_save}"
3220   fi
3221 fi
3222
3223 dnl
3224 dnl  QuickTime plugin
3225 dnl
3226 AC_ARG_ENABLE(quicktime,
3227   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3228 if test "${enable_quicktime}" != "no" &&
3229   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3230 then
3231   if test "${SYS}" = "mingw32"; then
3232     VLC_ADD_PLUGIN([quicktime])
3233   else
3234   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3235     [ VLC_ADD_PLUGIN([quicktime])
3236       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3237     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3238   fi
3239 fi
3240
3241 dnl
3242 dnl  Real plugin
3243 dnl
3244 AC_ARG_ENABLE(real,
3245   [  --enable-real           Real media module (default disabled)])
3246 if test "${enable_real}" = "yes"; then
3247   VLC_ADD_PLUGIN([realaudio])
3248   VLC_ADD_PLUGIN([realvideo])
3249 fi
3250
3251 dnl
3252 dnl  Real RTSP plugin
3253 dnl
3254 AC_ARG_ENABLE(realrtsp,
3255   [  --enable-realrtsp       Real RTSP module (default disabled)])
3256 if test "${enable_realrtsp}" = "yes"; then
3257   VLC_ADD_PLUGIN([access_realrtsp])
3258 fi
3259
3260 dnl
3261 dnl MP4 module
3262 dnl
3263 AC_CHECK_HEADERS(zlib.h, [
3264   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3265   VLC_ADD_CPPFLAGS([skins2],[-I../../../@top_srcdir@/libs/unzip])
3266   VLC_ADD_LIBS([skins2],[../../../libs/unzip/libunzip.la])
3267 ] )
3268
3269 AC_ARG_ENABLE(libsysfs,
3270   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3271
3272 AS_IF([test "${enable_libsysfs}" != "no"],[
3273   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3274     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3275   ] )
3276 ])
3277
3278 dnl
3279 dnl skins2 module
3280 dnl
3281 AC_ARG_ENABLE(libtar,
3282   [  --enable-libtar         libtar support for skins2 (default enabled)])
3283
3284 AS_IF([test "${enable_libtar}" != "no"],[
3285   AC_CHECK_HEADERS(libtar.h, [
3286     VLC_ADD_LIBS([skins2],[-ltar])
3287   ] )
3288 ])
3289
3290 dnl
3291 dnl A52/AC3 decoder plugin
3292 dnl
3293 AC_ARG_ENABLE(a52,
3294   [  --enable-a52            A/52 support with liba52 (default enabled)])
3295 if test "${enable_a52}" != "no"
3296 then
3297   AC_ARG_WITH(a52,
3298     [    --with-a52=PATH       a52 headers and libraries])
3299   AC_ARG_WITH(a52-tree,
3300     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3301   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3302   then
3303     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3304     if test -z "${real_a52_tree}"
3305     then
3306       dnl  The given directory can't be found
3307       AC_MSG_RESULT(no)
3308       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3309     fi
3310     dnl  Use a custom a52dec
3311     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3312     if test -f ${real_a52_tree}/include/a52.h
3313     then
3314       AC_MSG_RESULT(yes)
3315       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3316       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3317       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3318       AC_CHECK_LIB(a52, a52_free, [
3319         VLC_ADD_PLUGIN([a52tofloat32])
3320         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3321         VLC_ADD_LIBS([a52tofloat32],[-la52])
3322         ],[
3323         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3324         then
3325           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3326         else
3327           AC_MSG_ERROR([the specified tree hasn't been compiled])
3328         fi
3329       ])
3330       LDFLAGS="${LDFLAGS_save}"
3331     else
3332       AC_MSG_RESULT(no)
3333       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3334     fi
3335   else
3336     if test -z "${with_a52}"
3337     then
3338       LDFLAGS_test=""
3339       CPPFLAGS_test=""
3340     else
3341       LDFLAGS_test="-L${with_a52}/lib"
3342       CPPFLAGS_test="-I${with_a52}/include"
3343     fi
3344     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3345     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3346     AC_CHECK_HEADERS(a52dec/a52.h, [
3347       AC_CHECK_LIB(a52, a52_free, [
3348         VLC_ADD_PLUGIN([a52tofloat32])
3349         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3350         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3351       ],[
3352         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.])
3353         ])
3354     ],[
3355       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.])
3356     ])
3357     CPPFLAGS="${CPPFLAGS_save}"
3358     LDFLAGS="${LDFLAGS_save}"
3359   fi
3360 fi
3361
3362 AC_ARG_WITH(a52-fixed,
3363       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3364       [
3365         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3366
3367 dnl
3368 dnl DTS Coherent Acoustics decoder plugin
3369 dnl
3370 AS_IF([test "x${enable_dts}" != "x"], [
3371   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3372 ])
3373 AS_IF([test "x${with_dts_tree}" != "x"], [
3374   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3375 ])
3376
3377 AC_ARG_ENABLE(dca,
3378   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3379                   (default enabled)]))
3380 AS_IF([test "${enable_dca}" != "no"], [
3381   AC_ARG_WITH(dca-tree,
3382     [    --with-dca-tree=PATH  libdca tree for static linking],,
3383     [with_dca_tree="no"])
3384   AS_IF([test "${with_dca_tree}" != "no"], [
3385     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3386     AS_IF([test -z "${real_dca_tree}"], [
3387       dnl  The given directory can't be found
3388       AC_MSG_RESULT(no)
3389       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3390     ])
3391     dnl  Use a custom libdca
3392     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3393     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3394       AC_MSG_RESULT(yes)
3395       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3396       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3397         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3398       ], [
3399         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3400       ])
3401     ], [
3402       AC_MSG_RESULT(no)
3403       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3404     ])
3405   ], [
3406     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3407       VLC_ADD_PLUGIN([dtstofloat32])
3408       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3409       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3410     ], [
3411       AS_IF([test "x${enable_dca}" != "x"], [
3412         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3413       ])
3414     ])
3415   ])
3416 ])
3417
3418 dnl
3419 dnl  Flac plugin
3420 dnl
3421 AC_ARG_ENABLE(flac,
3422   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3423 if test "${enable_flac}" = "yes"
3424 then
3425   AC_ARG_WITH(flac-tree,
3426   [    --with-flac-tree=PATH flac tree for static linking])
3427   if test -n "${with_flac_tree}"
3428   then
3429     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3430     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3431     if test -z "${real_flac_tree}"
3432     then
3433       dnl  The given directory can't be found
3434       AC_MSG_RESULT(no)
3435       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3436     fi
3437     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3438     then
3439       dnl  Use a custom flac
3440       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3441       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3442       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3443       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3444     else
3445       dnl  The given flac wasn't built
3446       AC_MSG_RESULT(no)
3447       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3448     fi
3449   else
3450     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3451       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3452      ],[])
3453   fi
3454 fi
3455
3456 dnl
3457 dnl  Libmpeg2 plugin
3458 dnl
3459 AC_ARG_ENABLE(libmpeg2,
3460   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3461 if test "${enable_libmpeg2}" != "no"
3462 then
3463   AC_ARG_WITH(libmpeg2-tree,
3464   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3465   AS_IF([test -n "${with_libmpeg2_tree}"],[
3466     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3467     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3468     if test -z "${real_libmpeg2_tree}"
3469     then
3470       dnl  The given directory can't be found
3471       AC_MSG_RESULT(no)
3472       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3473     fi
3474     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3475     then
3476       dnl  Use a custom libmpeg2
3477       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3478       VLC_ADD_PLUGIN([libmpeg2])
3479       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3480       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3481     else
3482       dnl  The given libmpeg2 wasn't built
3483       AC_MSG_RESULT(no)
3484       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3485     fi
3486   ],[
3487    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3488           VLC_ADD_PLUGIN([libmpeg2])
3489           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3490           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3491        ], 
3492       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.]))
3493   ])
3494 fi
3495
3496 dnl
3497 dnl  Vorbis plugin
3498 dnl
3499 AC_ARG_ENABLE(vorbis,
3500   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3501 if test "${enable_vorbis}" != "no"
3502 then
3503   AC_ARG_WITH(vorbis-tree,
3504   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3505   if test -n "${with_vorbis_tree}"
3506   then
3507     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3508     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3509     if test -z "${real_vorbis_tree}"
3510     then
3511       dnl  The given directory can't be found
3512       AC_MSG_RESULT(no)
3513       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3514     fi
3515     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3516     then
3517       dnl  Use a custom vorbis 
3518       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3519       VLC_ADD_PLUGIN([vorbis])
3520       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3521       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3522     else
3523       dnl  The given vorbis wasn't built
3524       AC_MSG_RESULT(no)
3525       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3526     fi
3527   else
3528     AC_CHECK_HEADERS(vorbis/codec.h, [
3529       VLC_ADD_PLUGIN([vorbis])
3530       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3531
3532     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3533       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3534   fi
3535 fi
3536
3537 dnl
3538 dnl  Tremor plugin
3539 dnl
3540 AC_ARG_ENABLE(tremor,
3541   [  --enable-tremor         Tremor decoder support (default disabled)])
3542 if test "${enable_tremor}" = "yes"
3543 then
3544   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3545     VLC_ADD_PLUGIN([tremor])
3546     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3547    ],[])
3548 fi
3549
3550 dnl
3551 dnl  Speex plugin
3552 dnl
3553 AC_ARG_ENABLE(speex,
3554   [  --enable-speex          Speex decoder support (default enabled)])
3555 if test "${enable_speex}" != "no"
3556 then
3557   AC_ARG_WITH(speex-tree,
3558   [    --with-speex-tree=PATH speex tree for static linking])
3559   if test -n "${with_speex_tree}"
3560   then
3561     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3562     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3563     if test -z "${real_speex_tree}"
3564     then
3565       dnl  The given directory can't be found
3566       AC_MSG_RESULT(no)
3567       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3568     fi
3569     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3570     then
3571       dnl  Use a custom speex
3572       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3573       VLC_ADD_PLUGIN([speex])
3574       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3575       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3576     else
3577       dnl  The given speex wasn't built
3578       AC_MSG_RESULT(no)
3579       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3580     fi
3581   else
3582     AC_CHECK_HEADERS(speex/speex.h, [
3583       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3584       AC_CHECK_LIB(speex, speex_decode_int, [
3585         VLC_ADD_PLUGIN([speex])
3586         VLC_ADD_LIBS([speex],[-lspeex]) ],
3587         [ AC_MSG_RESULT([no])
3588           AC_MSG_WARN([Your libspeex is too old, please get the development
3589                        version.]) ],[])
3590       LDFLAGS="${LDFLAGS_save}"
3591       ],[])
3592   fi
3593 fi
3594
3595 dnl
3596 dnl  tarkin decoder plugin
3597 dnl
3598 AC_ARG_ENABLE(tarkin,
3599 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3600 if test "${enable_tarkin}" = "yes"
3601 then
3602   AC_ARG_WITH(tarkin-tree,
3603   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3604   if test -n "${with_tarkin_tree}"
3605   then
3606     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3607     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3608     if test -f "${real_tarkin_tree}/tarkin.o"
3609     then
3610       VLC_ADD_PLUGIN([tarkin])
3611       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3612       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])
3613       AC_MSG_RESULT(yes)
3614     else
3615       dnl  The given tarkin tree wasn't built
3616       AC_MSG_RESULT(no)
3617       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3618                     make sure you compiled tarkin in ${with_tarkin_tree}])
3619     fi
3620   fi
3621 fi
3622
3623 dnl
3624 dnl  theora decoder plugin
3625 dnl
3626 AC_ARG_ENABLE(theora,
3627 [  --enable-theora         experimental theora codec (default disabled)])
3628 if test "${enable_theora}" = "yes"
3629 then
3630   AC_CHECK_HEADERS(theora/theora.h, [
3631     AC_CHECK_LIB(theora, theora_granule_time, [
3632       VLC_ADD_PLUGIN([theora])
3633       theora_libs="-ltheora -logg"
3634       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3635       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3636 You also need to check that you have a libogg posterior to the 1.0 release.])],
3637       [-logg])
3638   ])
3639 fi
3640
3641 dnl
3642 dnl  dirac decoder plugin
3643 dnl
3644 AC_ARG_ENABLE(dirac,
3645 [  --enable-dirac          experimental dirac codec (default disabled)])
3646 if test "${enable_dirac}" = "yes"; then
3647   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3648       VLC_ADD_PLUGIN([dirac])
3649       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3650       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3651       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3652   ])
3653 fi
3654
3655 dnl
3656 dnl  schroedinger decoder plugin (for dirac format video)
3657 dnl
3658 AC_ARG_ENABLE(schroedinger,
3659 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3660 if test "${enable_schroedinger}" != "no"; then
3661   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3662       VLC_ADD_PLUGIN([schroedinger])
3663       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3664       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3665         AS_IF([test "x${enable_schroedinger}" != "x"], [
3666           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3667         ])
3668 ])
3669 fi
3670
3671 dnl
3672 dnl  PNG decoder module
3673 dnl
3674 AC_ARG_ENABLE(png,
3675   [  --enable-png            PNG support (default enabled)])
3676 if test "${enable_png}" != "no"; then
3677 AC_CHECK_HEADERS(png.h, [
3678   LDFLAGS="${LDFLAGS_save} -lz"
3679   AC_CHECK_LIB(png, png_set_rows, [
3680     VLC_ADD_LIBS([png],[-lpng -lz])
3681     VLC_ADD_PLUGIN([png])
3682     VLC_ADD_PLUGIN([osdmenu])
3683     VLC_ADD_PLUGIN([osd_parser])
3684     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3685     [],[-lz])
3686     LDFLAGS="${LDFLAGS_save}"
3687   ])
3688 fi
3689 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3690
3691 dnl
3692 dnl H264 encoder plugin (using libx264)
3693 dnl
3694 AC_ARG_ENABLE(x264,
3695   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3696 if test "${enable_x264}" != "no"; then
3697   AC_ARG_WITH(x264-tree,
3698     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3699   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3700   then
3701     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3702     if test -z "${real_x264_tree}"
3703     then
3704       dnl  The given directory can't be found
3705       AC_MSG_RESULT(no)
3706       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3707     fi
3708     dnl  Use a custom libx264
3709     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3710     if test -f ${real_x264_tree}/x264.h
3711     then
3712       AC_MSG_RESULT(yes)
3713       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3714       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3715       PKG_CHECK_MODULES(X264,x264, [
3716         VLC_ADD_PLUGIN([x264])
3717         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3718         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3719       ],[
3720         AC_MSG_ERROR([the specified tree hasn't been compiled])
3721       ])
3722       LDFLAGS="${LDFLAGS_save}"
3723     else
3724       AC_MSG_RESULT(no)
3725       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3726     fi
3727   else
3728       PKG_CHECK_MODULES(X264,x264, [
3729         VLC_ADD_PLUGIN([x264])
3730         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3731         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3732       ],[
3733         if test "${enable_x264}" = "yes"; then
3734             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3735           fi
3736       ])
3737     LDFLAGS="${LDFLAGS_save}"
3738   fi
3739 fi
3740
3741 dnl
3742 dnl libfluidsynth (MIDI synthetizer) plugin
3743 dnl
3744 AC_ARG_ENABLE(fluidsynth,
3745   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3746 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3747   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3748     VLC_ADD_PLUGIN(fluidsynth)
3749     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3750     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3751   ], [
3752     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3753       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3754     ])
3755   ])
3756 ])
3757
3758 dnl
3759 dnl Teletext Modules
3760 dnl vbi decoder plugin (using libzbvi)
3761 dnl telx module
3762 dnl uncompatible
3763 dnl
3764 AC_ARG_ENABLE(zvbi,
3765   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3766                   libzvbi (default enabled)]))
3767 AC_ARG_ENABLE(telx,
3768   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3769                   zvbi) (default enabled if zvbi is absent)]))
3770
3771 AS_IF( [test "${enable_zvbi}" != "no"],[
3772     PKG_CHECK_MODULES(ZVBI,
3773         zvbi-0.2 >= 0.2.25,
3774         [
3775           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3776           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3777           VLC_ADD_PLUGIN([zvbi])
3778           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3779           AS_IF( [test "${enable_telx}" = "yes"],[
3780                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles. 
3781                                Using zvbi.])
3782                   ])
3783         ],[
3784           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3785         ])
3786     ])  
3787 AS_IF( [test "${enable_telx}" != "no" ],[
3788   VLC_ADD_PLUGIN([telx])
3789   ])
3790
3791 dnl
3792 dnl asa/csri subtitle rendering module
3793 dnl
3794 AC_ARG_ENABLE(csri,
3795   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3796 AS_IF( [test "${enable_csri}" = "yes"], [
3797   PKG_CHECK_MODULES(CSRI,
3798       csri >= 0.1.0,
3799       [
3800         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3801         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3802         VLC_ADD_PLUGIN([csri])
3803       ],[
3804         AC_MSG_WARN([CSRI helper library not found])
3805       ])
3806   ])
3807
3808 dnl
3809 dnl libass subtitle rendering module
3810 dnl
3811 AC_ARG_ENABLE(libass,
3812   [  --enable-libass         Subtitle support using libass (default disabled)])
3813 AS_IF( [test "${enable_libass}" = "yes"], [
3814   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3815       [
3816         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3817         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3818         VLC_ADD_PLUGIN([libass])
3819
3820         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3821           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3822         if test "${SYS}" = "mingw32"; then
3823            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz -lxml2])
3824         else
3825            VLC_ADD_LIBS([libass],[-lfontconfig])
3826         fi
3827        ])
3828       ],[
3829         AC_MSG_WARN([LIBASS library not found])
3830       ])
3831   ])
3832
3833 dnl
3834 dnl asa demuxer
3835 dnl
3836 AC_ARG_ENABLE(asademux,
3837   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3838 AS_IF( [test "${enable_asademux}" = "yes"], [
3839   PKG_CHECK_MODULES(PCRE,
3840       libpcre >= 6.5,
3841       [
3842         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3843         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3844         if test "${SYS}" = "mingw32"; then
3845                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3846         fi
3847         VLC_ADD_PLUGIN([asademux])
3848       ],[
3849         AC_MSG_WARN([PCRE library not found (required for asademux)])
3850       ])
3851   ])
3852
3853 dnl
3854 dnl  CMML plugin
3855 dnl
3856 AC_ARG_ENABLE(cmml,
3857   [  --enable-cmml           CMML support (default enabled)])
3858 if test "${enable_cmml}" != "no"
3859 then
3860   VLC_ADD_PLUGIN([cmml])
3861 fi
3862
3863 dnl
3864 dnl  kate decoder plugin
3865 dnl
3866 AC_ARG_ENABLE(kate,
3867 [  --enable-kate           kate codec (default enabled)])
3868 AS_IF([test "${enable_kate}" != "no"], [
3869   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3870       VLC_ADD_PLUGIN([kate])
3871       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3872       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3873         AC_CHECK_HEADERS(kate/kate.h, [
3874           AC_CHECK_LIB(kate, kate_decode_init, [
3875             VLC_ADD_PLUGIN([kate])
3876             kate_libs="-lkate -logg"
3877             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3878             AS_IF([test "x${enable_kate}" != "x"], [
3879               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3880               You also need to check that you have a libogg posterior to the 1.0 release.])
3881             ])
3882           ], [-lkate -logg])
3883         ],[
3884           AS_IF([test "x${enable_kate}" != "x"], [
3885             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3886             You also need to check that you have a libogg posterior to the 1.0 release.])
3887           ])
3888         ])
3889   ])
3890 ])
3891
3892
3893 dnl
3894 dnl  tiger decoder plugin
3895 dnl
3896 AC_ARG_ENABLE(tiger,
3897 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3898 AS_IF([test "${enable_tiger}" != "no"], [
3899   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3900       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3901       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3902       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3903         AS_IF([test "x${enable_tiger}" != "x"], [
3904           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3905         ])
3906   ])
3907 ])
3908
3909
3910 dnl
3911 dnl  Video plugins
3912 dnl
3913
3914 AC_ARG_WITH(,[Video plugins:])
3915
3916 dnl Check for DPMS
3917 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3918   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3919   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3920     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3921     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3922       AC_MSG_RESULT(yes)
3923       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3924                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3925     ],[
3926       AC_MSG_RESULT(no)
3927     ])
3928   ],,[
3929     #include <X11/Xlib.h>
3930   ])
3931   CPPFLAGS="${CPPFLAGS_save}"
3932 fi
3933
3934 dnl
3935 dnl  X11 module
3936 dnl  (enabled by default except on win32)
3937 dnl
3938 AC_ARG_ENABLE(x11,
3939   [  --enable-x11            X11 support (default enabled)])
3940 if test "${enable_x11}" != "no" &&
3941   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3942    test "${enable_x11}" = "yes"); then
3943   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3944   AC_CHECK_HEADERS(X11/Xlib.h, [
3945     VLC_ADD_PLUGIN([panoramix])
3946     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3947     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3948     VLC_ADD_PLUGIN([globalhotkeys])
3949     VLC_ADD_LIBS([globalhotkeys],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3950     VLC_ADD_CPPFLAGS([globalhotkeys],[${X_CFLAGS}])
3951     AC_CHECK_LIB(Xext, XShmAttach, [
3952       VLC_ADD_PLUGIN([x11])
3953       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3954       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3955     ])
3956   ])
3957   CPPFLAGS="${CPPFLAGS_save}"
3958 fi
3959
3960 dnl
3961 dnl  XVideo module
3962 dnl  (enabled by default except on win32)
3963 dnl
3964 AC_ARG_ENABLE(xvideo,
3965   [  --enable-xvideo         XVideo support (default enabled)])
3966 if test "${enable_xvideo}" != "no" &&
3967   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3968    test "${enable_xvideo}" = "yes"); then
3969   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3970   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3971     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3972     AC_CHECK_LIB(Xv,XvPutImage,[
3973         VLC_ADD_PLUGIN([xvideo])
3974         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3975         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3976     ])
3977     CFLAGS="${CFLAGS_save}"
3978   ]
3979   CPPFLAGS="${CPPFLAGS_save}")
3980 fi
3981
3982 dnl
3983 dnl  GLX module
3984 dnl  (enabled by default except on win32)
3985 dnl
3986 AC_ARG_ENABLE(glx,
3987   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3988 if test "${enable_glx}" != "no" &&
3989   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3990    test "${enable_glx}" = "yes"); then
3991   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3992   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3993   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3994     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3995     choke me
3996     #endif]]),
3997     [
3998       VLC_ADD_PLUGIN([glx])
3999       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
4000       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
4001     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
4002   CPPFLAGS="${CPPFLAGS_save}"
4003 fi
4004
4005 dnl
4006 dnl  XVMC module
4007 dnl  (disabled by default except on win32)
4008 dnl
4009 AC_ARG_ENABLE(xvmc,
4010   [  --enable-xvmc           XVMC support (default disabled)])
4011 if test "${enable_xvmc}" = "yes" &&
4012   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4013    test "${enable_xvmc}" = "yes"); then
4014   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4015   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4016     VLC_ADD_PLUGIN([xvmc])
4017     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
4018     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
4019   ])
4020   CPPFLAGS="${CPPFLAGS_save}"
4021 fi
4022
4023 dnl
4024 dnl  Check for the Xinerama extension
4025 dnl
4026 AC_ARG_ENABLE(xinerama,
4027   [  --enable-xinerama       Xinerama support (default enabled)])
4028 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
4029   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4030    test "${enable_xvideo}" = "yes"); then
4031   ac_cv_have_xinerama="no"
4032   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4033   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4034   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4035     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4036       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4037       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4038       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4039       ac_cv_have_xinerama="yes"
4040     ],[
4041       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4042         VLC_ADD_LIBS([xvideo],[-lXinerama])
4043         VLC_ADD_LIBS([x11],[-lXinerama])
4044         VLC_ADD_LIBS([glx],[-lXinerama])
4045         ac_cv_have_xinerama="yes"
4046       ])
4047     ])
4048   ])
4049   if test "${ac_cv_have_xinerama}" = "yes"; then
4050     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4051   fi
4052   CFLAGS="${CFLAGS_save}"
4053   CPPFLAGS="${CPPFLAGS_save}"
4054
4055 dnl
4056 dnl  Check for XF86VidMode extension
4057 dnl
4058   ac_cv_have_xf86vidmode="no"
4059   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4060   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4061   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4062     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4063       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4064       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4065       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4066       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4067       ac_cv_have_xf86vidmode="yes"
4068     ],[
4069       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4070         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4071         VLC_ADD_LIBS([x11],[-lXxf86vm])
4072         VLC_ADD_LIBS([glx],[-lXxf86vm])
4073         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4074         ac_cv_have_xf86vidmode="yes"
4075       ])
4076     ])
4077   ],[true],
4078 [#ifdef HAVE_X11_XLIB_H
4079 # include <X11/Xlib.h>
4080 #endif]
4081    )
4082   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4083     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4084   ])
4085   CFLAGS="${CFLAGS_save}"
4086   CPPFLAGS="${CPPFLAGS_save}"
4087
4088 fi
4089
4090 dnl
4091 dnl  OpenGL module
4092 dnl  (enabled by default except on beos)
4093 dnl
4094 AC_ARG_ENABLE(opengl,
4095   [  --enable-opengl         OpenGL support (default enabled)])
4096 if test "${enable_opengl}" != "no" &&
4097    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4098   if test "${SYS}" != "darwin"; then
4099     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4100       VLC_ADD_PLUGIN([opengl])
4101       if test "${SYS}" != "mingw32"; then
4102         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4103       else
4104         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4105       fi
4106     ])
4107   else
4108     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4109     VLC_ADD_PLUGIN([opengl])
4110     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4111   fi
4112 fi
4113
4114 dnl
4115 dnl  SDL module
4116 dnl
4117 AC_ARG_ENABLE(sdl,
4118   [  --enable-sdl            SDL support (default enabled)])
4119 AC_ARG_ENABLE(sdl-image,
4120   [  --enable-sdl-image      SDL image support (default enabled)])
4121 if test "${enable_sdl}" != "no"
4122 then
4123   SDL_PATH="${PATH}"
4124   AC_ARG_WITH(sdl-config-path,
4125     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4126     [ if test "${with_sdl_config_path}" != "no"
4127       then
4128         SDL_PATH="${with_sdl_config_path}:${PATH}"
4129       fi ])
4130   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4131   SDL_CONFIG="${SDL12_CONFIG}"
4132   SDL_HEADER="SDL12/SDL.h"
4133   SDL_IMAGE="SDL12/SDL_image.h"
4134   if test "${SDL_CONFIG}" = "no"
4135   then
4136     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4137     SDL_CONFIG=${SDL11_CONFIG}
4138     SDL_HEADER="SDL11/SDL.h"
4139     SDL_IMAGE="SDL11/SDL_image.h"
4140   fi
4141   if test "${SDL_CONFIG}" = "no"
4142   then
4143     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4144     SDL_HEADER="SDL/SDL.h"
4145     SDL_IMAGE="SDL/SDL_image.h"
4146   fi
4147   # check for cross-compiling
4148   SDL_PREFIX=
4149   AC_ARG_WITH(sdl-prefix,
4150     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4151                                e.g use as:
4152                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4153   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4154   then
4155     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4156   fi
4157   if test "${SDL_CONFIG}" != "no"
4158   then
4159     # SDL on Darwin is heavily patched and can only run SDL_image
4160     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4161       VLC_ADD_PLUGIN([vout_sdl])
4162       VLC_ADD_PLUGIN([aout_sdl])
4163     fi
4164     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4165     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4166     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4167     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4168       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4169       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4170           As a last resort we also test for SDL.h presence),
4171       [ AC_MSG_ERROR([The development package for SDL is not installed.
4172 Please install it and try again. Alternatively you can also configure with
4173 --disable-sdl.])
4174       ])])
4175     AS_IF([ test "${enable_sdl_image}" != "no"],[
4176       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4177         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4178         VLC_ADD_PLUGIN([sdl_image])
4179         AC_CHECK_LIB(png, png_set_rows,
4180           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4181         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4182           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4183         AC_CHECK_LIB(tiff, TIFFClientOpen,
4184           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4185         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4186         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4187             As a last resort we also test for SDL_image.h presence),
4188         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4189   You should install it alongside your SDL package.])
4190         ])])
4191     ])
4192     CPPFLAGS="${CPPFLAGS_save}"
4193     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4194     then
4195       AC_MSG_ERROR([The development package for SDL is not installed.
4196 Please install it and try again. Alternatively you can also configure with
4197 --disable-sdl.])
4198     fi
4199
4200   elif test "${enable_sdl}" =  "yes"
4201   then
4202     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4203 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4204     ])
4205   fi
4206 fi
4207
4208 dnl
4209 dnl  freetype module
4210 dnl
4211 AC_ARG_ENABLE(freetype,
4212   [  --enable-freetype       freetype support (default enabled)])
4213 AC_ARG_ENABLE(fribidi,
4214   [  --enable-fribidi        fribidi support (default enabled)])
4215 AC_ARG_ENABLE(fontconfig,
4216   [  --enable-fontconfig,    fontconfig support (default enabled)])
4217 if test "${enable_freetype}" != "no"
4218 then
4219    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4220       VLC_ADD_PLUGIN([freetype])
4221       have_freetype=yes
4222       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4223       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4224       if test "${SYS}" = "mingw32"; then
4225         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4226       fi
4227       if test "${SYS}" = "mingw32"; then
4228         VLC_ADD_LIBS([freetype],[-liconv])
4229       fi
4230       if test "${enable_fontconfig}" != "no"
4231       then
4232         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4233           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4234            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4235         AC_CHECK_HEADERS(Carbon/Carbon.h,
4236           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4237       fi
4238   ],[
4239   have_freetype=no
4240   AS_IF([ test "${enable_freetype}" =  "yes"],[
4241     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4242 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4243       ])
4244     ])
4245   ])
4246
4247   dnl fribidi support
4248   if test "${enable_fribidi}" != "no"
4249   then
4250     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4251       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4252       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4253     ])
4254     fi
4255 fi
4256
4257 dnl
4258 dnl  libxml2 module
4259 dnl
4260 AC_ARG_ENABLE(libxml2,
4261   [  --enable-libxml2        libxml2 support (default enabled)])
4262 if test "${enable_libxml2}" != "no"
4263 then
4264   XML2_PATH="${PATH}"
4265   AC_ARG_WITH(xml2-config-path,
4266     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4267     [ if test "${with_xml2_config_path}" != "no"; then
4268         XML2_PATH="${with_xml2_config_path}:${PATH}"
4269       fi ])
4270   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4271   if test "${XML2_CONFIG}" != "no"; then
4272     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4273     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4274     dnl depends on the xmlTextReader extension
4275     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4276     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4277     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4278       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4279         VLC_ADD_PLUGIN([xml]) ],[
4280           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4281           if test "${enable_xml2}" = "yes"; then
4282             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4283           fi])
4284        ],[
4285       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4286       if test "${enable_xml2}" = "yes"; then
4287         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4288       fi])
4289     LDFLAGS="${LDFLAGS_save}"
4290     CPPFLAGS="${CPPFLAGS_save}"
4291   else
4292     if test "${enable_xml2}" = "yes"; then
4293       AC_MSG_ERROR([Could not find libxml2])
4294     fi
4295   fi
4296 fi
4297
4298 dnl
4299 dnl  SVG module
4300 dnl
4301 AC_ARG_ENABLE(svg,
4302   [  --enable-svg            SVG support (default disabled)])
4303 if test "${enable_svg}" = "yes"
4304 then
4305   PKG_CHECK_MODULES(SVG, 
4306         librsvg-2.0 >= 2.9.0,
4307         [
4308           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4309           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4310           VLC_ADD_PLUGIN([svg]) ],
4311         [AC_MSG_WARN(SVG library not found)])
4312 fi
4313
4314 dnl
4315 dnl Snapshot vout module (with cache)
4316 dnl
4317 AC_ARG_ENABLE(snapshot,
4318   [  --enable-snapshot       snapshot module (default disabled)])
4319 if test "${enable_snapshot}" = "yes"
4320 then
4321   VLC_ADD_PLUGIN([snapshot])
4322 fi
4323
4324 dnl
4325 dnl  Qt Embedded module
4326 dnl  (disabled by default)
4327 dnl
4328 AC_ARG_ENABLE(qte,
4329   [  --enable-qte            QT Embedded support (default disabled)])
4330 if test "${enable_qte}" = "yes"
4331 then
4332   AC_ARG_WITH(qte,
4333   [    --with-qte=PATH       Qt Embedded headers and libraries])
4334   if test "${with_qte}" != "no" -a -n "${with_qte}"
4335   then
4336     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4337     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])
4338   else
4339     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4340     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4341   fi
4342   VLC_ADD_PLUGIN([qte])
4343   NEED_QTE_MAIN=yes
4344   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4345   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4346     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4347   ] )
4348   CPPFLAGS="${CPPFLAGS_save}"
4349 fi
4350
4351 dnl
4352 dnl Roku HD1000 Video output module
4353 dnl
4354 AC_ARG_ENABLE(hd1000v,
4355   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4356 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4357   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4358    test "${enable_hd1000v}" = "yes"); then
4359   AC_LANG_PUSH([C++])
4360   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4361   [
4362     can_build_roku="yes"
4363   ],
4364   [
4365     can_build_roku="no"
4366     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4367   ])
4368   if test "$can_build_roku" = "yes"
4369   then
4370     VLC_ADD_PLUGIN([hd1000v])
4371     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4372   fi
4373   AC_LANG_POP([C++])
4374 fi
4375
4376 dnl
4377 dnl  Windows DirectX module
4378 dnl
4379
4380 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4381 then
4382   VLC_ADD_PLUGIN([panoramix])
4383 fi
4384
4385 AC_ARG_ENABLE(directx,
4386   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4387 if test "${enable_directx}" != "no"
4388 then
4389   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4390   then
4391     AC_ARG_WITH(directx,
4392     [    --with-directx=PATH   Win32 DirectX headers])
4393     if test -z "${with_directx}"
4394     then
4395       AC_CHECK_HEADERS(ddraw.h,
4396       [ VLC_ADD_PLUGIN([vout_directx])
4397         VLC_ADD_PLUGIN([aout_directx])
4398         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4399       ])
4400       AC_CHECK_HEADERS(GL/gl.h,
4401       [ VLC_ADD_PLUGIN([glwin32])
4402         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4403       ])
4404       AC_CHECK_HEADERS(d3d9.h,
4405       [ VLC_ADD_PLUGIN([direct3d])
4406         VLC_ADD_LIBS([direct3d],[-lgdi32])
4407       ])
4408     else
4409       AC_MSG_CHECKING(for directX headers in ${with_directx})
4410       if test -f ${with_directx}/ddraw.h
4411       then
4412         VLC_ADD_PLUGIN([vout_directx])
4413         VLC_ADD_PLUGIN([aout_directx])
4414         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4415         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4416         AC_MSG_RESULT(yes)
4417       else
4418         AC_MSG_RESULT(no)
4419         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4420       fi
4421     fi
4422   fi
4423 fi
4424
4425 dnl
4426 dnl  Linux framebuffer module
4427 dnl
4428 AC_ARG_ENABLE(fb,
4429   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4430     if test "${enable_fb}" != "no"
4431     then
4432       AC_CHECK_HEADERS(linux/fb.h, [
4433         VLC_ADD_PLUGIN([fb])
4434       ])
4435     fi
4436
4437 dnl
4438 dnl  Linux MGA module
4439 dnl
4440 AC_ARG_ENABLE(mga,
4441   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4442   [ if test "${enable_mga}" = "yes"
4443     then
4444       VLC_ADD_PLUGIN([mga])
4445     fi ])
4446
4447 dnl
4448 dnl  OMAP Framebuffer module
4449 dnl
4450 AC_ARG_ENABLE(omapfb,
4451   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4452     if test "${enable_omapfb}" = "yes"
4453     then
4454       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4455         VLC_ADD_PLUGIN([omapfb])
4456         AC_CHECK_HEADERS(X11/Xlib.h, [
4457           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4458       ])
4459     fi
4460
4461 dnl
4462 dnl  SVGAlib module
4463 dnl
4464 AC_ARG_ENABLE(svgalib,
4465   [  --enable-svgalib        SVGAlib support (default disabled)])
4466 if test "${enable_svgalib}" = "yes"
4467 then
4468   VLC_ADD_PLUGIN([svgalib])
4469   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4470 fi
4471
4472 dnl
4473 dnl  DirectFB module
4474 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4475 dnl  TODO: support for static linking
4476 dnl
4477 AC_ARG_ENABLE(directfb,
4478   [  --enable-directfb       DirectFB support (default disabled)])
4479 AC_ARG_WITH(directfb, 
4480   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4481
4482 if test "${enable_directfb}" = "yes"; then
4483     have_directfb="false"
4484     CPPFLAGS_mydirectfb=
4485     LIBS_mydirectfb=
4486     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4487         dnl Trying the given location
4488         CPPFLAGS_save="${CPPFLAGS}"
4489         LIBS_save="${LIBS}"
4490
4491         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4492         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4493         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4494
4495         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4496         LIBS="${LIBS} ${LIBS_new}"
4497
4498         dnl FIXME: too obscure
4499         AC_CHECK_HEADER([directfb.h], [
4500             AC_CHECK_LIB([direct],[direct_initialize], [
4501                 AC_CHECK_LIB([fusion], [fusion_enter], [
4502                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4503                 ], have_directfb="false")
4504             ], have_directfb="false")
4505         ], have_directfb="false")
4506
4507         dnl Restore flags
4508         CPPFLAGS="${CPPFLAGS_save}"
4509         LIBS="${LIBS_save}"
4510
4511         if test "${have_directfb}" = "true"; then
4512             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4513             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4514         fi
4515     else 
4516         dnl Look for directfb-config
4517         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4518         if test "${DIRECTFB_CONFIG}" != "no"; then
4519             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4520             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4521             have_directfb="true"
4522         else 
4523             dnl Trying with pkg-config
4524             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4525                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4526                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4527                 have_directfb="true"
4528                 ], [have_directfb="false"])
4529         fi
4530     fi
4531     if test "${have_directfb}" = "true"; then
4532         VLC_ADD_PLUGIN([directfb])
4533         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4534         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4535     else 
4536         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4537     fi
4538 fi
4539  
4540
4541
4542 dnl
4543 dnl  GGI module
4544 dnl
4545 AC_ARG_ENABLE(ggi,
4546   [  --enable-ggi            GGI support (default disabled)])
4547 if test "${enable_ggi}" = "yes"
4548 then
4549   AC_CHECK_HEADER([ggi/ggi.h],[
4550     VLC_ADD_PLUGIN([ggi])
4551     VLC_ADD_LIBS([ggi],[-lggi])
4552     AC_ARG_WITH(ggi,
4553       [    --with-ggi=PATH       path to libggi],
4554       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4555         then
4556           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4557           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4558         fi ])
4559     ],[
4560        AC_MSG_ERROR([LibGGI development files can't be found])
4561     ])
4562 fi
4563
4564 dnl
4565 dnl  AA plugin
4566 dnl
4567 AC_ARG_ENABLE(aa,
4568   [  --enable-aa             aalib output (default disabled)])
4569 if test "${enable_aa}" = "yes"
4570 then
4571   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4572   if test "${have_aa}" = "true"
4573   then
4574     VLC_ADD_PLUGIN([aa])
4575     VLC_ADD_LIBS([aa],[-laa])
4576   fi
4577 fi
4578
4579 dnl
4580 dnl  libcaca plugin
4581 dnl
4582 AC_ARG_ENABLE(caca,
4583   [  --enable-caca           libcaca output (default disabled)])
4584 if test "${enable_caca}" = "yes"
4585 then
4586   CACA_PATH="${PATH}"
4587   AC_ARG_WITH(caca-config-path,
4588     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4589     [ if test "${with_caca_config_path}" != "no"
4590       then
4591         CACA_PATH="${with_caca_config_path}:${PATH}"
4592       fi ])
4593   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4594   if test "${CACA_CONFIG}" != "no"
4595   then
4596     VLC_ADD_PLUGIN([caca])
4597     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4598     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4599     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4600                                         caca_event_t ev;]],
4601                                         [[ev.type = 0;]]
4602                        )],
4603                        [],
4604       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4605     )
4606   fi
4607 fi
4608
4609 dnl
4610 dnl  win32 GDI plugin
4611 dnl
4612 AC_ARG_ENABLE(wingdi,
4613   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4614 if test "${enable_wingdi}" != "no"; then
4615   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4616     VLC_ADD_PLUGIN([wingdi])
4617     VLC_ADD_LIBS([wingdi],[-lgdi32])
4618   fi
4619   if test "${SYS}" = "mingwce"; then
4620     VLC_ADD_PLUGIN([wingdi])
4621     VLC_ADD_PLUGIN([wingapi])
4622     VLC_ADD_LIBS([wingdi],[-laygshell])
4623     VLC_ADD_LIBS([wingapi],[-laygshell])
4624   fi
4625 fi
4626
4627 dnl
4628 dnl  Audio plugins
4629 dnl
4630
4631 AC_ARG_WITH(,[Audio plugins:])
4632
4633 dnl
4634 dnl  OSS /dev/dsp module (enabled by default except on win32)
4635 dnl
4636 AC_ARG_ENABLE(oss,
4637   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4638
4639 if test "${enable_oss}" != "no" &&
4640   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4641    test "${enable_oss}" = "yes")
4642 then
4643   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4644     VLC_ADD_PLUGIN([oss])
4645     VLC_ADD_PLUGIN([access_oss])
4646     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4647   ])
4648 fi
4649
4650 dnl
4651 dnl  Pulseaudio module
4652 dnl
4653 AC_ARG_ENABLE(pulse,
4654   [  --enable-pulse          Pulseaudio support (default enabled)])
4655   if test "${enable_pulse}" != "no"
4656    then
4657      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4658        [ VLC_ADD_PLUGIN([pulse])
4659         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4660         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4661        [AC_MSG_WARN(pulseaudio library not found)])
4662    fi
4663
4664 dnl
4665 dnl  Portaudio module
4666 dnl
4667 AC_ARG_ENABLE(portaudio,
4668   [  --enable-portaudio      Portaudio library support (default disabled)],
4669   [if test "${enable_portaudio}" = "yes"
4670    then
4671      VLC_ADD_PLUGIN([portaudio])
4672      VLC_ADD_CXXFLAGS([portaudio],[])
4673      if test "${SYS}" = "mingw32"; then
4674         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4675      else
4676         VLC_ADD_LIBS([portaudio],[-lportaudio])
4677      fi
4678    fi])
4679
4680 dnl
4681 dnl  ALSA module
4682 dnl
4683 AC_ARG_ENABLE(alsa,
4684   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4685 if test "${enable_alsa}" != "no"
4686 then
4687   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4688   if test "${have_alsa}" = "true"
4689   then
4690     CFLAGS="${CFLAGS_save}"
4691     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4692                     #define ALSA_PCM_NEW_SW_PARAMS_API
4693                     #include <alsa/asoundlib.h>],
4694        [snd_pcm_hw_params_get_period_time(0,0,0);],
4695         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4696     VLC_ADD_PLUGIN([alsa])
4697     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4698     VLC_ADD_PLUGIN([access_alsa])
4699     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4700   else
4701     if test "${enable_alsa}" = "yes"; then
4702       AC_MSG_ERROR([Could not find ALSA development headers])
4703     fi
4704   fi
4705 fi
4706
4707 dnl
4708 dnl  win32 waveOut plugin
4709 dnl
4710 AC_ARG_ENABLE(waveout,
4711   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4712 if test "${enable_waveout}" != "no"; then
4713   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4714     VLC_ADD_PLUGIN([waveout])
4715     VLC_ADD_LIBS([waveout],[-lwinmm])
4716   fi
4717   if test "${SYS}" = "mingwce"; then
4718     VLC_ADD_PLUGIN([waveout])
4719   fi
4720 fi
4721
4722 dnl
4723 dnl  CoreAudio plugin
4724 dnl
4725 AC_ARG_ENABLE(macosx-audio,
4726   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4727 if test "${enable_macosx-audio}" != "no" &&
4728   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4729 then
4730   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4731     [ VLC_ADD_PLUGIN([auhal])
4732       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4733     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4734 fi
4735
4736 dnl
4737 dnl  Roku HD1000 audio
4738 dnl
4739 AC_ARG_ENABLE(hd1000a,
4740   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4741 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4742   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4743    test "${enable_hd1000a}" = "yes")
4744 then
4745   AC_LANG_PUSH([C++])
4746   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4747     VLC_ADD_PLUGIN([hd1000a])
4748     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4749   AC_LANG_POP([C++])
4750 fi
4751
4752 dnl
4753 dnl  JACK modules
4754 dnl
4755 AC_ARG_ENABLE(jack,
4756  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4757  [enable_jack="no"])
4758
4759 AS_IF([test "${enable_jack}" != "no"], [
4760   AC_CHECK_HEADERS(jack/jack.h, [
4761     VLC_ADD_PLUGIN([access_jack])
4762     VLC_ADD_PLUGIN([jack])
4763     VLC_ADD_LIBS([access_jack jack],[-ljack])
4764   ],[AC_MSG_ERROR([cannot find JACK headers])])
4765 ])
4766
4767 dnl
4768 dnl  CyberLink for C++ UPnP stack
4769 dnl
4770 AC_ARG_ENABLE(cyberlink,
4771   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4772   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4773   AC_ARG_WITH(cyberlink-tree,
4774     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4775
4776   dnl
4777   dnl test for --with-cyberlink-tree
4778   dnl
4779   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4780     AC_LANG_PUSH(C++)
4781     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4782     AS_IF([test -z "${real_cyberlink_tree}"], [
4783       dnl  The given directory can't be found
4784       AC_MSG_RESULT(no)
4785       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4786     ])
4787     CPPFLAGS_save="${CPPFLAGS}"
4788     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4789     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4790     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4791       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4792         VLC_ADD_PLUGIN([upnp_cc]) 
4793       ],[
4794         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4795       ])
4796     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4797     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4798       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4799       dnl The mere fact that we have to make such an ugly check sucks
4800       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4801       LIBS_save="$LIBS"
4802       LIBS_cclink="no"
4803       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4804         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4805         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4806 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4807 using namespace CyberLink;
4808
4809 class testclass : public SearchResponseListener, public MediaPlayer
4810 {
4811     virtual void deviceSearchResponseReceived( SSDPPacket *)
4812     {
4813     }
4814
4815     public:
4816       testclass (void)
4817       {
4818         addSearchResponseListener (this);
4819         start ();
4820       }
4821 };
4822 ],[testclass l;])],[LIBS_cclink="$l"])
4823       done
4824       LIBS="${LIBS_save}"
4825       dnl should not happen - otherwise this needs fixing - hence FAILURE
4826       AS_IF([test "${LIBS_cclink}" = "no"],
4827         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4828       AC_MSG_RESULT([${LIBS_cclink}])
4829       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4830     ], [
4831       AC_MSG_RESULT(no)
4832       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4833     ])
4834     CPPFLAGS="${CPPFLAGS_save}"
4835     AC_LANG_POP([C++])
4836   ])
4837 ])
4838
4839 dnl
4840 dnl UPnP Plugin (Intel SDK)
4841 dnl
4842 AC_ARG_ENABLE(upnp,
4843   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4844
4845 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4846 AS_IF([test "x${enable_upnp}" != "xno"], [
4847   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4848   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4849     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4850   ])
4851   AS_IF([test "${has_upnp}" = "yes"], [
4852     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4853   ])
4854 ], [
4855   has_upnp="no"
4856 ])
4857
4858 AS_IF([test "${has_upnp}" = "yes"], [
4859   VLC_ADD_PLUGIN([upnp_intel])
4860 ])
4861
4862
4863 dnl
4864 dnl  Interface plugins
4865 dnl
4866
4867 AC_ARG_WITH(,[Interface plugins:])
4868
4869 dnl special case for BeOS
4870 if test "${SYS}" = "beos"
4871 then
4872     VLC_ADD_PLUGIN([beos])
4873 fi
4874
4875 dnl
4876 dnl Skins2 module
4877 dnl
4878 AC_ARG_ENABLE(skins2,
4879   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4880    enabled except on MacOSX, BeOS and WinCE)])])
4881 if test "${enable_skins2}" = "yes" ||
4882   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4883    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4884
4885   dnl test for the required libraries
4886   skins2_missing_lib="no"
4887
4888   dnl freetype
4889   if test "${have_freetype}" != "yes"; then
4890     skins2_missing_lib="yes"
4891     if test "${enable_skins2}" = "yes"; then
4892       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4893     fi
4894   fi
4895
4896   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4897     VLC_ADD_PLUGIN([skins2])
4898     ALIASES="${ALIASES} svlc"
4899     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4900     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4901     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4902
4903   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4904     VLC_ADD_PLUGIN([skins2])
4905     ALIASES="${ALIASES} svlc"
4906     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4907     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4908     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4909
4910   else if test "${skins2_missing_lib}" = "no"; then
4911     VLC_ADD_PLUGIN([skins2])
4912     ALIASES="${ALIASES} svlc"
4913     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4914     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4915     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4916   fi fi fi
4917 fi
4918 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4919          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4920           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4921
4922 dnl
4923 dnl  PDA Gtk+2 module
4924 dnl
4925 AC_ARG_ENABLE(pda,
4926   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4927 if test "${enable_pda}" = "yes"
4928 then
4929   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4930   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4931   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4932   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4933   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4934   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4935   VLC_ADD_PLUGIN([pda])
4936   if test "${SYS}" != "mingw32"; then
4937     NEED_GTK2_MAIN=yes
4938     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4939     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4940   fi
4941 fi
4942 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4943
4944 dnl
4945 dnl Maemo
4946 dnl
4947 AC_ARG_ENABLE(maemo,
4948   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4949 if test "${enable_maemo}" = "yes"
4950 then
4951   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4952     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4953     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4954     VLC_ADD_PLUGIN([maemo])
4955     VLC_ADD_PLUGIN([swscale_maemo])
4956     AC_DEFINE([BUILD_MAEMO], 1, [Define if you're using Maemo interfaces])
4957     ALIASES="${ALIASES} mvlc"
4958   ], [
4959     AS_IF([test "${enable_maemo}" = "yes"],[
4960       AC_MSG_ERROR([Hildon libraries not found])
4961     ])
4962     enable_maemo="no"
4963   ])
4964 fi
4965 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4966
4967 dnl
4968 dnl QT 4
4969 dnl
4970 AC_ARG_ENABLE(qt4,
4971   [  --enable-qt4            QT 4 support (default enabled) ],, [
4972   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4973 ])
4974 AS_IF([test "${enable_qt4}" != "no"], [
4975   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.3.0], [
4976     VLC_ADD_PLUGIN([qt4])
4977     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4978     ALIASES="${ALIASES} qvlc"
4979     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4980         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4981     ], [
4982         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
4983     ])
4984     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4985     AC_SUBST(QT4LOCALEDIR)
4986     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4987     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4988     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4989     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4990   ], [
4991     AS_IF([test "${enable_qt4}" = "yes"],[
4992       AC_MSG_ERROR([Qt 4 library not found])
4993     ],[
4994       AC_MSG_WARN([Qt 4 library not found])
4995     ])
4996     enable_qt4="no"
4997   ])
4998 ])
4999 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
5000
5001 dnl
5002 dnl  WinCE GUI module
5003 dnl
5004 AC_ARG_ENABLE(wince,
5005   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
5006 if test "${enable_wince}" != "no"; then
5007   if test "${SYS}" = "mingwce"; then
5008     VLC_ADD_PLUGIN([wince])
5009     VLC_ADD_CXXFLAGS([wince],[])
5010     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5011     dnl Gross hack
5012     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5013   elif test "${SYS}" = "mingw32"; then
5014     VLC_ADD_CXXFLAGS([wince],[])
5015     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5016     dnl Gross hack
5017     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5018   fi
5019 fi
5020
5021 dnl
5022 dnl Simple test for skins2 dependency
5023 dnl
5024 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
5025   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.])
5026 ])
5027
5028 dnl
5029 dnl  Opie QT embedded module
5030 dnl
5031 AC_ARG_ENABLE(opie,
5032   [  --enable-opie           Qt embedded interface support (default disabled)],
5033   [if test "${enable_opie}" = "yes"; then
5034      AC_ARG_WITH(qte,
5035      [    --with-qte=PATH       Qt Embedded headers and libraries])
5036      if test "${with_qte}" != "no" -a -n "${with_qte}"
5037      then
5038        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5039        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])
5040      else
5041        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5042        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5043      fi
5044      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5045      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5046        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5047      ] )
5048      CPPFLAGS="${CPPFLAGS_save}"
5049
5050      VLC_ADD_PLUGIN([opie])
5051      NEED_QTE_MAIN=yes
5052      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5053      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5054      if test "${with_qte}" != "no" -a -n "${with_qte}"
5055      then
5056        MOC=${with_qte}/bin/moc
5057      else
5058        MOC=${QTDIR}/bin/moc
5059      fi
5060    fi])
5061
5062 dnl
5063 dnl  MacOS X video output/gui modules
5064 dnl
5065 AC_ARG_ENABLE(macosx,
5066   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5067 if test "x${enable_macosx}" = "xyes"
5068 then
5069   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5070   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
5071   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5072   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5073   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5074   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5075   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5076   dnl For bug report
5077   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
5078   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5079   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
5080   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5081   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5082   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5083   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5084
5085   VLC_ADD_PLUGIN([access_eyetv])
5086   VLC_ADD_PLUGIN([qtcapture])
5087   VLC_ADD_PLUGIN([macosx])
5088   VLC_ADD_PLUGIN([minimal_macosx])
5089  
5090   ORIGCFLAGS=$CFLAGS
5091   CFLAGS="$CFLAGS -x objective-c"
5092   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>],,
5093   [VLC_ADD_PLUGIN([opengllayer])
5094   VLC_ADD_OBJCFLAGS([opengllayer])],[])
5095   CFLAGS=$ORIGCFLAGS
5096 fi
5097
5098 dnl
5099 dnl  QNX RTOS module
5100 dnl
5101 AC_ARG_ENABLE(qnx,
5102   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5103     if test "${enable_qnx}" != "no"
5104     then
5105       AC_CHECK_HEADERS(Ph.h, [
5106         VLC_ADD_PLUGIN([qnx])
5107         VLC_ADD_LIBS([qnx],[-lasound -lph])
5108       ])
5109     fi
5110
5111 dnl
5112 dnl  ncurses module
5113 dnl
5114 AC_ARG_ENABLE(ncurses,
5115   [  --disable-ncurses       ncurses interface support (default enabled)],
5116   [if test "${enable_ncurses}" != "no"; then
5117     AC_CHECK_HEADER(ncurses.h,
5118       [AC_CHECK_LIB(ncursesw, mvprintw,
5119         [VLC_ADD_PLUGIN([ncurses])
5120         VLC_ADD_LIBS([ncurses],[-lncursesw])
5121         ALIASES="${ALIASES} nvlc"
5122         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5123         AC_CHECK_LIB(ncursesw, tgetent, [],
5124           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5125             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5126               [AS_IF([test "x${enable_ncurses}" != "x"],
5127                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5128                )])])
5129             ]
5130           )
5131         )
5132         ],
5133         [AC_CHECK_LIB( ncurses, mvprintw,
5134           [VLC_ADD_PLUGIN([ncurses])
5135           ALIASES="${ALIASES} nvlc"
5136           VLC_ADD_LIBS([ncurses],[-lncurses])
5137           AC_CHECK_LIB(ncurses, tgetent, [],
5138             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5139               [AS_IF([test "x${enable_ncurses}" != "x"],
5140                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5141             )]
5142           )],
5143           [AS_IF([test "x${enable_ncurses}" != "x"], [
5144             AC_MSG_ERROR([libncurses not found])])]
5145         )]
5146       )]
5147     )
5148   fi]
5149 )
5150
5151 dnl
5152 dnl  XOSD plugin
5153 dnl
5154 AC_ARG_ENABLE(xosd,
5155   [  --enable-xosd           xosd interface support (default disabled)])
5156 if test "${enable_xosd}" = "yes"
5157 then
5158   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5159   AC_CHECK_LIB(xosd,xosd_set_offset,
5160       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5161     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5162         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5163       AC_TRY_COMPILE([#include <xosd.h>],
5164          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5165           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5166   if test "${have_xosd}" = "true"
5167   then
5168     VLC_ADD_PLUGIN([xosd])
5169     VLC_ADD_LIBS([xosd],[-lxosd])
5170   fi
5171 fi
5172
5173 dnl
5174 dnl Framebuffer (overlay) plugin
5175 dnl
5176 AC_ARG_ENABLE(fbosd,
5177   [  --enable-fbosd          fbosd interface support (default disabled)])
5178 if test "${enable_fbosd}" = "yes"
5179 then
5180   AC_CHECK_HEADERS(linux/fb.h, [
5181     VLC_ADD_PLUGIN([fbosd])
5182  ])
5183 fi
5184
5185 dnl
5186 dnl Visualisation plugin
5187 dnl
5188 AC_ARG_ENABLE(visual,
5189   [  --enable-visual         visualisation plugin (default enabled)])
5190 if test "${enable_visual}" != "no"
5191 then
5192     VLC_ADD_PLUGIN([visual])
5193 fi
5194
5195 dnl
5196 dnl OpenGL visualisation plugin
5197 dnl
5198 AC_ARG_ENABLE(galaktos,
5199   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5200 if test "${enable_galaktos}" = "yes"
5201 then
5202   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5203     VLC_ADD_PLUGIN([galaktos])
5204     if test "${SYS}" != "mingw32"; then
5205       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5206     else
5207       VLC_ADD_LIBS([galaktos],[-lopengl32])
5208     fi
5209   ])
5210 fi
5211
5212 dnl
5213 dnl  goom visualization plugin
5214 dnl
5215 AC_ARG_ENABLE(goom,
5216 [  --enable-goom           goom visualisation plugin (default disabled)])
5217 if test "${enable_goom}" = "yes"
5218 then
5219   AC_ARG_WITH(goom-tree,
5220     [    --with-goom-tree=PATH goom tree for static linking (required)])
5221
5222   dnl
5223   dnl test for --with-goom-tree
5224   dnl
5225   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5226     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5227     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5228     if test -z "${real_goom_tree}"; then
5229       dnl  The given directory can't be found
5230       AC_MSG_RESULT(no)
5231       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5232     fi
5233     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5234       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5235       VLC_ADD_PLUGIN([goom])
5236       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5237       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5238     else
5239       dnl  The given libgoom2 wasn't built, try to look for the old goom
5240       AC_MSG_RESULT(no)
5241       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5242       if test -f "${real_goom_tree}/libgoom.a"; then
5243         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5244         VLC_ADD_PLUGIN([goom])
5245         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5246         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5247       else
5248         dnl  The given libgoom wasn't built
5249         AC_MSG_RESULT(no)
5250         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5251       fi
5252     fi
5253   else
5254     AC_CHECK_HEADERS(goom/goom.h, [
5255       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5256       AC_CHECK_LIB(goom2, goom_init, [
5257         VLC_ADD_PLUGIN([goom])
5258         VLC_ADD_LIBS([goom],[-lgoom2])
5259       ],[
5260         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5261       ])
5262       LDFLAGS="${LDFLAGS_save}"
5263     ])
5264   fi
5265 fi
5266
5267 dnl
5268 dnl  AtmoLight (homebrew AmbiLight)
5269 dnl
5270 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5271    AC_ARG_ENABLE(atmo,
5272 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight) 
5273                 (default enabled)]))
5274    if test "${enable_atmo}" != "no"; then
5275       AC_LANG_PUSH(C++)
5276       VLC_ADD_PLUGIN([atmo])
5277       AC_LANG_POP(C++)
5278    fi
5279 fi
5280
5281 dnl
5282 dnl  Bonjour services discovery
5283 dnl
5284 AC_ARG_ENABLE(bonjour,
5285   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5286 AS_IF([test "${enable_bonjour}" != "no"], [
5287   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5288     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5289     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5290     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5291     VLC_ADD_PLUGIN([bonjour])
5292   ], [
5293     AC_MSG_WARN(avahi-client library not found)
5294   ])
5295 ])
5296
5297 dnl
5298 dnl  Lirc plugin
5299 dnl
5300 AC_ARG_ENABLE(lirc,
5301   [  --enable-lirc           lirc support (default disabled)])
5302 if test "${enable_lirc}" = "yes"
5303 then
5304   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5305   if test "${have_lirc}" = "true"
5306   then
5307     VLC_ADD_PLUGIN([lirc])
5308     VLC_ADD_LIBS([lirc],[-llirc_client])
5309   fi
5310 fi
5311
5312
5313 AC_ARG_WITH(,[Misc options:])
5314
5315 dnl
5316 dnl libgcrypt
5317 dnl
5318 AC_ARG_ENABLE(libgcrypt,
5319   [  --disable-libgcrypt      libgcrypts support (default enabled)])
5320 AS_IF([test "${enable_libgcrypt}" != "no"], [
5321   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5322 ])
5323 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5324   AS_IF([test "${have_libgcrypt}" = "yes"],[
5325     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5326   ])
5327 fi
5328 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5329
5330 dnl
5331 dnl TLS/SSL
5332 dnl
5333 AC_ARG_ENABLE(gnutls,
5334   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5335
5336 AS_IF([test "${enable_gnutls}" != "no"], [
5337   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5338     VLC_ADD_PLUGIN([gnutls])
5339     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5340     AS_IF([test "${SYS}" = "mingw32"], [
5341       dnl pkg-config --libs gnutls omits these
5342       VLC_ADD_LIBS([gnutls], [-lz])
5343       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5344     ])
5345     dnl The GnuTLS plugin invokes gcry_control directly.
5346     AS_IF([test "${have_libgcrypt}" = "yes"],[
5347       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5348       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5349     ])
5350     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5351   ], [
5352     AS_IF([test "${enable_gnutls}" = "yes"], [
5353       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5354     ])
5355   ])
5356 ])
5357
5358
5359 dnl
5360 dnl RemoteOSD plugin (VNC client as video filter)
5361 dnl
5362 AC_ARG_ENABLE(remoteosd,
5363   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5364
5365 AS_IF([test "${enable_remoteosd}" != "no"], [
5366   AS_IF([test "${have_libgcrypt}" = "yes"],[
5367     VLC_ADD_PLUGIN([remoteosd])
5368     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5369     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5370   ], [
5371     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5372   ])
5373 ])
5374
5375
5376 dnl
5377 dnl RAOP plugin
5378 dnl
5379 AC_MSG_CHECKING([whether to enable RAOP plugin])
5380 AS_IF([test "${have_libgcrypt}" = "yes"], [
5381   AC_MSG_RESULT(yes)
5382   VLC_ADD_PLUGIN([stream_out_raop])
5383   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS}])
5384   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5385 ], [
5386   AC_MSG_RESULT(no)
5387   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5388 ])
5389
5390
5391 dnl
5392 dnl update checking system
5393 dnl
5394 AC_ARG_ENABLE(update-check,
5395   [  --enable-update-check   update checking system (default disabled)])
5396 if test "${enable_update_check}" = "yes"
5397 then
5398   if test "${have_libgcrypt}" != "yes"
5399   then
5400     AC_MSG_ERROR([libgcrypt is required for update checking system])
5401   fi
5402   VLC_ADD_LIBS([libvlc], [${LIBGCRYPT_LIBS}])
5403   VLC_ADD_CFLAGS([libvlc], [${LIBGCRYPT_CFLAGS}])
5404   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5405 fi
5406
5407
5408 dnl
5409 dnl ZIP files demuxer
5410 dnl
5411 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
5412 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
5413 if test "${have_zlib}" = "yes"
5414 then
5415   VLC_ADD_PLUGIN([unzip])
5416   VLC_ADD_LIBS([zip],[-lz])
5417   VLC_ADD_PLUGIN([zip])
5418   VLC_ADD_CFLAGS([zip],[-I../../../@top_srcdir@/libs/unzip])
5419   VLC_ADD_LIBS([zip],[../../../libs/unzip/libunzip.la])
5420 fi
5421
5422
5423 dnl
5424 dnl  Endianness check
5425 dnl
5426 AC_C_BIGENDIAN
5427 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5428   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5429 ], [
5430   DEFS_BIGENDIAN=""
5431 ])
5432 AC_SUBST(DEFS_BIGENDIAN)
5433
5434 dnl
5435 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5436 dnl
5437 loader=false
5438 AC_ARG_ENABLE(loader,
5439   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms 
5440                   (default disabled)]))
5441 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5442 AS_IF([test "${enable_loader}" = "yes"],
5443   [ VLC_ADD_PLUGIN([dmo])
5444     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5445     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5446     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5447     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5448     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5449     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5450     VLC_ADD_CPPFLAGS([realvideo],[-I../../@top_srcdir@/libs/loader -DLOADER])
5451     VLC_ADD_LIBS([realvideo],[../../libs/loader/libloader.la])
5452   ])
5453
5454 AC_ARG_WITH(,[Components:])
5455
5456 dnl
5457 dnl  the VLC binary
5458 dnl
5459 AC_ARG_ENABLE(vlc,
5460   [  --enable-vlc            build the VLC media player (default enabled)])
5461 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5462
5463 dnl
5464 dnl  Microsoft ActiveX support
5465 dnl
5466 activex=false
5467 AC_ARG_ENABLE(activex,
5468   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control 
5469                   (default enabled on Win32)]))
5470 AC_ARG_WITH(wine-sdk-path,
5471   [    --with-wine-sdk-path=PATH path to wine sdk])
5472 if test "${enable_activex}" != "no"
5473 then
5474   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5475   then
5476     AC_CHECK_PROGS(MIDL, [midl], no)
5477     if test "${with_wine_sdk_path}" != ""
5478     then
5479        WINE_SDK_PATH=${with_wine_sdk_path}
5480        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5481     else
5482        WIDL=no
5483     fi
5484     AC_LANG_PUSH(C++)
5485     AC_CHECK_HEADERS(ole2.h, 
5486       [AC_CHECK_HEADERS(olectl.h,
5487         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5488           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5489           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5490           AC_CHECK_HEADERS(objsafe.h,
5491             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5492             [
5493              #if HAVE_OLE2_H
5494              #   include <ole2.h>
5495              #endif
5496             ]
5497           )
5498           activex=:
5499           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5500         ],
5501         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5502       )],
5503       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5504     )
5505     AC_LANG_POP(C++)
5506   fi
5507 fi
5508 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5509 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5510 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5511 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5512 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5513
5514 dnl
5515 dnl  Mozilla plugin
5516 dnl
5517 mozilla=false
5518 AC_ARG_ENABLE(mozilla,
5519   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5520                   (default disabled)]))
5521 AC_ARG_WITH(mozilla-sdk-path,
5522   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5523 AC_ARG_WITH(mozilla-pkg,
5524   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5525 AC_LANG_PUSH(C++)
5526 if test "${enable_mozilla}" = "yes" 
5527 then
5528   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5529     [
5530     dnl pkg-config
5531     dnl As we want to do a loop due to the number of name possible for the .pc 
5532     dnl we can't use the pkg-config macros.
5533
5534     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5535     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5536     AC_MSG_NOTICE([Checking for Mozilla])
5537     found=0
5538     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5539     then
5540       found=1
5541     else
5542       if test -n "$PKG_CONFIG"; then
5543         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5544           echo "Trying to find $i.pc files" >&5
5545           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5546           then
5547             echo "Using $i.pc files." >&5
5548             echo "Using $i.pc files." >&6
5549             found=1
5550             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5551             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5552             break
5553           fi
5554         done
5555       fi
5556     fi 
5557     AS_IF( [test $found = 1],[
5558         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5559         MOZILLA_REQUIRED_HEADERS=1
5560         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5561         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5562           [#if HAVE_NPAPI_H
5563            # include <npapi.h>
5564            #endif
5565           ])
5566         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5567             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5568         fi
5569         MOZILLA_REQUIRED_HEADERS=
5570         mozilla=:
5571         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5572            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5573            AS_IF([ test "${SYS}" != "darwin"],[
5574              PKG_CHECK_MODULES(XPM, [xpm xt],[
5575                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5576              ],[
5577                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5578              ])
5579           ])
5580         ])
5581         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5582         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5583         VLC_ADD_PLUGIN([mozilla])
5584         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5585         MOZILLA_CONFIG=
5586         CPPFLAGS="${CPPFLAGS_save}"
5587           ],
5588           [
5589             AC_PATH_PROGS(MOZILLA_CONFIG, 
5590             [mozilla-config seamonkey-config xulrunner-config], 
5591             AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5592                   )
5593           ]
5594         )
5595     dnl pkg-config failed but we might have found a mozilla-config
5596     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5597       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5598         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5599         AC_CHECK_LIB(Xt,XtStrings,
5600          [
5601            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5602            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5603          ],
5604          [],
5605          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5606         ])
5607         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5608         LDFLAGS="${LDFLAGS_save}"
5609       fi
5610
5611       mozilla=:
5612       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5613       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5614       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5615       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5616       MOZILLA_REQUIRED_HEADERS=1
5617       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5618       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5619       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5620         [#if HAVE_NPAPI_H
5621          # include <npapi.h>
5622          #endif
5623         ])
5624       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5625       then
5626         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5627       fi
5628       MOZILLA_REQUIRED_HEADERS=
5629       CPPFLAGS="${CPPFLAGS_save}"
5630       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5631     ])
5632     dnl End of moz_sdk = ""
5633   ],[
5634     dnl special case for mingw32
5635     if test "${SYS}" = "mingw32"
5636     then
5637       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5638       dnl latest gecko sdk does not have an xpcom directory
5639       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5640           mozilla_sdk_xpcom="/xpcom"
5641       fi
5642     fi
5643
5644     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5645     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5646     MOZILLA_REQUIRED_HEADERS=1
5647     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5648     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5649     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5650         [#if HAVE_NPAPI_H
5651           #include <npapi.h>
5652           #endif
5653         ])
5654     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5655     then
5656         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5657     fi
5658     MOZILLA_REQUIRED_HEADERS=
5659     mozilla=:
5660     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5661     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])
5662     if ${need_xpcom_libs}; then
5663        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])
5664       if test "${SYS}" = "mingw32"; then
5665         dnl latest gecko sdk does not have embedstring
5666         if test -d "${real_mozilla_sdk}/embedstring/bin"
5667         then
5668           VLC_ADD_LIBS([mozilla],[-lembedstring])
5669         fi
5670       fi
5671     fi
5672     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5673
5674     if test -n "${CYGPATH}"; then
5675       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5676     fi
5677     CPPFLAGS="${CPPFLAGS_save}"
5678  ]) 
5679 fi
5680 AC_LANG_POP(C++)
5681 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5682
5683 dnl Tests for Osso and Xsp
5684 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5685   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5686     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5687     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5688  ])
5689 ])
5690 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5691   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5692   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5693 ])
5694
5695 dnl
5696 dnl  test plugins
5697 dnl
5698 AC_ARG_ENABLE(testsuite,
5699   [  --enable-testsuite      build test modules (default disabled)])
5700 if test "${enable_testsuite}" = "yes"
5701 then
5702   TESTS="test1 test2 test3 test4"
5703
5704   dnl  we define those so that bootstrap sets the right linker
5705   VLC_ADD_CXXFLAGS([test2],[])
5706   VLC_ADD_OBJCFLAGS([test3],[])
5707   dnl  this one is needed until automake knows what to do
5708   VLC_ADD_LIBS([test3],[-lobjc])
5709
5710   VLC_ADD_PLUGIN([test1])
5711   VLC_ADD_PLUGIN([test2])
5712   VLC_ADD_PLUGIN([test3])
5713   VLC_ADD_PLUGIN([test4])
5714 fi
5715
5716 dnl
5717 dnl  gtk_main plugin
5718 dnl
5719 if test "${NEED_GTK_MAIN}" != "no"
5720 then
5721     VLC_ADD_PLUGIN([gtk_main])
5722     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5723     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5724 fi
5725
5726 if test "${NEED_GNOME_MAIN}" != "no"
5727 then
5728     VLC_ADD_PLUGIN([gnome_main])
5729     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5730     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5731 fi
5732
5733 if test "${NEED_GTK2_MAIN}" != "no"
5734 then
5735     VLC_ADD_PLUGIN([gtk2_main])
5736     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5737     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5738     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5739     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5740 fi
5741
5742 if test "${NEED_GNOME2_MAIN}" != "no"
5743 then
5744     VLC_ADD_PLUGIN([gnome2_main])
5745     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5746     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5747 fi
5748
5749 dnl
5750 dnl  qte_main plugin
5751 dnl
5752 if test "${NEED_QTE_MAIN}" != "no"
5753 then
5754     VLC_ADD_PLUGIN([qte_main])
5755     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5756     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5757     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5758 fi
5759
5760 dnl
5761 dnl  Plugin and builtin checks
5762 dnl
5763 plugin_support=yes
5764
5765 dnl Automagically disable plugins if there is no system support for
5766 dnl dynamically loadable files (.so, .dll, .dylib).
5767 dnl don't forget vlc-win32 still can load .dll as plugins
5768 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5769   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5770   plugin_support=no
5771 ])
5772
5773 AS_IF([test "${enable_shared}" = "no"], [
5774   plugin_support=no
5775 ])
5776
5777 AS_IF([test "${plugin_support}" != "no"], [
5778   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5779 ])
5780 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5781
5782 dnl Temporary(?) hack for plugins/builtins transition
5783 dnl VLC_ADD_PLUGIN([${BUILTINS}])
5784 dnl BUILTINS=""
5785
5786 dnl
5787 dnl Pic and shared libvlc stuff
5788 dnl
5789 AS_IF([test "${SYS}" = "mingw32"], [
5790   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5791   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5792 ])
5793
5794 dnl
5795 dnl  Stuff used by the program
5796 dnl
5797 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5798 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5799 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5800 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5801 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5802 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5803 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5804 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5805 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5806 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5807 AC_SUBST(COPYRIGHT_MESSAGE)
5808 AC_SUBST(VERSION_MESSAGE)
5809 AC_SUBST(VERSION_MAJOR)
5810 AC_SUBST(VERSION_MINOR)
5811 AC_SUBST(VERSION_REVISION)
5812 AC_SUBST(COPYRIGHT_YEARS)
5813 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5814 if test "${build_os}" = "cygwin"
5815 then
5816     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5817 else
5818     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5819 fi
5820 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5821 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5822 dnl Win32 need s a numerical version_extra.
5823 case $( echo ${VERSION_EXTRA}|wc -m ) in 
5824        "1") VERSION_EXTRA_RC="0";;
5825        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5826        *) VERSION_EXTRA_RC="99"
5827 esac
5828 AC_SUBST(VERSION_EXTRA_RC)
5829 dnl
5830 dnl  Handle substvars that use $(top_srcdir)
5831 dnl
5832 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5833 AC_SUBST(VLC_CONFIG)
5834 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5835
5836 dnl
5837 dnl  Restore *FLAGS
5838 dnl
5839 VLC_RESTORE_FLAGS
5840
5841 dnl
5842 dnl Sort the modules list
5843 dnl 
5844 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5845
5846 dnl
5847 dnl  Create the vlc-config script
5848 dnl
5849 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5850
5851 dnl
5852 dnl  Configuration is finished
5853 dnl
5854 AC_SUBST(SYS)
5855 AC_SUBST(ARCH)
5856 AC_SUBST(ALIASES)
5857 AC_SUBST(ASM)
5858 AC_SUBST(MOC)
5859 AC_SUBST(RCC)
5860 AC_SUBST(UIC)
5861 AC_SUBST(WINDRES)
5862 AC_SUBST(MOZILLA_SDK_PATH)
5863 AC_SUBST(WINE_SDK_PATH)
5864 AC_SUBST(LIBEXT)
5865 AC_SUBST(AM_CPPFLAGS)
5866 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5867 AC_SUBST(FILE_LIBVLCCORE_DLL)
5868 AC_SUBST(FILE_LIBVLC_DLL)
5869
5870 dnl Create vlc-config.in
5871 VLC_OUTPUT_VLC_CONFIG_IN
5872
5873 AC_CONFIG_FILES([
5874   extras/package/win32/vlc.win32.nsi
5875   extras/package/macosx/Info.plist
5876   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5877   extras/package/macosx/plugin/Info.plist
5878   extras/package/macosx/plugin/InstallerInfo.plist
5879   extras/package/macosx/plugin/English.lproj/InfoPlist.strings
5880   Makefile
5881   projects/activex/Makefile
5882   projects/activex/axvlc.inf
5883   doc/Makefile
5884   extras/package/ipkg/Makefile
5885   libs/loader/Makefile
5886   libs/srtp/Makefile
5887   libs/unzip/Makefile
5888   modules/Makefile
5889   projects/mozilla/Makefile
5890   m4/Makefile
5891   po/Makefile.in
5892   projects/activex/axvlc_rc.rc
5893   projects/mozilla/npvlc_rc.rc
5894   projects/mozilla/vlc.r
5895   share/Makefile
5896   share/vlc_win32_rc.rc
5897   share/libvlc_win32_rc.rc
5898   src/Makefile
5899   src/test/Makefile
5900   bin/Makefile
5901   test/Makefile
5902 ])
5903
5904 AC_CONFIG_FILES([
5905   modules/access/Makefile
5906   modules/access/bd/Makefile
5907   modules/access/bda/Makefile
5908   modules/access/dshow/Makefile
5909   modules/access/dvb/Makefile
5910   modules/access/mms/Makefile
5911   modules/access/cdda/Makefile
5912   modules/access/rtp/Makefile
5913   modules/access/rtsp/Makefile
5914   modules/access/rtmp/Makefile
5915   modules/access/vcd/Makefile
5916   modules/access/vcdx/Makefile
5917   modules/access/screen/Makefile
5918   modules/access/zip/Makefile
5919   modules/access_output/Makefile
5920   modules/audio_filter/Makefile
5921   modules/audio_filter/channel_mixer/Makefile
5922   modules/audio_filter/converter/Makefile
5923   modules/audio_filter/resampler/Makefile
5924   modules/audio_filter/spatializer/Makefile
5925   modules/audio_mixer/Makefile
5926   modules/audio_output/Makefile
5927   modules/codec/Makefile
5928   modules/codec/avcodec/Makefile
5929   modules/codec/cmml/Makefile
5930   modules/codec/dmo/Makefile
5931   modules/codec/shine/Makefile
5932   modules/codec/subtitles/Makefile
5933   modules/codec/spudec/Makefile
5934   modules/codec/wmafixed/Makefile
5935   modules/codec/xvmc/Makefile
5936   modules/control/Makefile
5937   modules/control/http/Makefile
5938   modules/control/globalhotkeys/Makefile
5939   modules/demux/Makefile
5940   modules/demux/asf/Makefile
5941   modules/demux/avformat/Makefile
5942   modules/demux/avi/Makefile
5943   modules/demux/mkv/Makefile
5944   modules/demux/mp4/Makefile
5945   modules/demux/mpeg/Makefile
5946   modules/demux/playlist/Makefile
5947   modules/gui/Makefile
5948   modules/gui/beos/Makefile
5949   modules/gui/pda/Makefile
5950   modules/gui/macosx/Makefile
5951   modules/gui/maemo/Makefile
5952   modules/gui/minimal_macosx/Makefile
5953   modules/gui/qnx/Makefile
5954   modules/gui/qt4/Makefile
5955   modules/gui/skins2/Makefile
5956   modules/gui/wince/Makefile
5957   modules/meta_engine/Makefile
5958   modules/misc/Makefile
5959   modules/misc/dummy/Makefile
5960   modules/misc/lua/Makefile
5961   modules/misc/memcpy/Makefile
5962   modules/misc/notify/Makefile
5963   modules/misc/testsuite/Makefile
5964   modules/misc/playlist/Makefile
5965   modules/misc/osd/Makefile
5966   modules/misc/stats/Makefile
5967   modules/misc/xml/Makefile
5968   modules/misc/probe/Makefile
5969   modules/mux/Makefile
5970   modules/mux/mpeg/Makefile
5971   modules/packetizer/Makefile
5972   modules/services_discovery/Makefile
5973   modules/stream_filter/Makefile
5974   modules/stream_out/Makefile
5975   modules/stream_out/transrate/Makefile
5976   modules/video_chroma/Makefile
5977   modules/video_filter/Makefile
5978   modules/video_filter/atmo/Makefile
5979   modules/video_filter/dynamicoverlay/Makefile
5980   modules/video_output/Makefile
5981   modules/video_output/msw/Makefile
5982   modules/video_output/qte/Makefile
5983   modules/video_output/x11/Makefile
5984   modules/visualization/Makefile
5985   modules/visualization/visual/Makefile
5986   modules/visualization/galaktos/Makefile
5987 ])
5988
5989 dnl Generate makefiles
5990 AC_OUTPUT
5991
5992 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5993 # not provided with the source
5994 ${SHELL} ./config.status --file=vlc-config
5995 chmod 0755 vlc-config
5996
5997 /bin/echo -n "Enabled modules: "
5998 ./vlc-config --list plugin
5999
6000 dnl Shortcut to nice compile message
6001 rm -f compile
6002 echo '#! /bin/sh' >compile
6003 echo rm -f .error\$\$ >>compile
6004 echo ERROR=0 >>compile
6005 echo export PATH=$PATH LANG=C >>compile
6006 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
6007 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
6008 echo test -f .error\$\$ \&\& ERROR=1 >>compile
6009 echo rm -f .error\$\$ >>compile
6010 echo exit \$ERROR >>compile
6011 chmod a+x compile
6012
6013 printf "
6014 libvlc configuration
6015 --------------------
6016 version               : ${VERSION}
6017 system                : ${SYS}
6018 architecture          : ${ARCH}
6019 build flavour         : "
6020 test "${enable_debug}" = "yes" && printf "debug "
6021 test "${enable_cprof}" = "yes" && printf "cprof "
6022 test "${enable_gprof}" = "yes" && printf "gprof "
6023 test "${enable_optimizations}" = "yes" && printf "optim "
6024 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6025 echo ""
6026 if test "${enable_vlc}" != "no"; then
6027 echo "vlc aliases           :${ALIASES}"
6028 else
6029 echo "build vlc executable  : no"
6030 fi
6031 echo "plugins/bindings      :${PLUGINS_BINDINGS}
6032
6033 You can tune the compiler flags in vlc-config.
6034 To build vlc and its plugins, type \`./compile' or \`make'.
6035 "
6036 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6037    echo ""
6038    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6039    echo "         turned off."
6040    echo "         FFmpeg will be REALLY slow."
6041    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6042    echo ""
6043 fi