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