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