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