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