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