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