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