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