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