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