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