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