]> git.sesse.net Git - vlc/blob - configure.ac
Growl is too broken to be on by default
[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 disabled)],,
1712   [enable_growl=no])
1713 AS_IF([test "${enable_growl}" != "no"], [
1714     VLC_ADD_PLUGIN([growl_udp])
1715     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1716       VLC_ADD_PLUGIN([growl])
1717       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1718     ])
1719   ]
1720 )
1721
1722 dnl
1723 dnl Libnotify notification plugin
1724 dnl
1725
1726 AC_ARG_ENABLE(notify,
1727   [  --enable-notify         libnotify notification plugin (default enabled)])
1728 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1729     PKG_CHECK_MODULES(NOTIFY, libnotify,
1730       [
1731         VLC_ADD_PLUGIN([notify])
1732         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1733         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1734       ],[
1735     AS_IF([test "${enable_notify}" = "yes"],[
1736         AC_MSG_WARN( libnotify not found) ])
1737       ])
1738   ])
1739
1740 dnl
1741 dnl Audioscrobbler plugin
1742 dnl
1743
1744 AC_ARG_ENABLE(audioscrobbler,
1745   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1746 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1747         VLC_ADD_PLUGIN([audioscrobbler])
1748   ])
1749
1750 dnl
1751 dnl Musicbrainz plugin
1752 dnl
1753 AC_ARG_ENABLE(musicbrainz,
1754   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1755   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1756       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1757     [ VLC_ADD_PLUGIN([musicbrainz])
1758       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1759       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1760        [AC_MSG_WARN(MusicBrainz library not found)])
1761    ])
1762
1763
1764 dnl
1765 dnl Taglibplugin
1766 dnl
1767 AC_ARG_ENABLE(taglib,
1768   [  --disable-taglib Taglib support (default enabled) ])
1769   AS_IF([test "${enable_taglib}" != "no"],[
1770     PKG_CHECK_MODULES(TAGLIB, taglib,
1771       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1772         VLC_ADD_PLUGIN([taglib])
1773         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1774        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1775       [AC_MSG_WARN(TagLib library not found)])
1776   ])
1777
1778
1779 dnl
1780 dnl  Input plugins
1781 dnl
1782
1783 AC_ARG_WITH(,[Input plugins:])
1784
1785 dnl  live555 input
1786 dnl
1787 if test "${enable_livedotcom}" 
1788 then
1789   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1790 fi
1791 if test "${enable_livedotcom}" = "no"
1792 then
1793   enable_live555="no"
1794 fi
1795
1796 AC_ARG_ENABLE(live555,
1797 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1798 if test "${enable_live555}" != "no"; then
1799   AC_ARG_WITH(live555-tree,
1800     [    --with-live555-tree=PATH live.com tree for static linking])
1801
1802   dnl
1803   dnl test for --with-live555-tree
1804   dnl
1805   if test "${with_livedotcom_tree}" 
1806   then
1807     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1808   with_live555_tree="${with_livedotcom_tree}"
1809   fi
1810
1811   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1812     AC_LANG_PUSH(C++)
1813     CPPFLAGS_save="${CPPFLAGS}"
1814     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1815     if test "${SYS}" = "solaris"; then
1816       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1817     fi
1818     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1819
1820     AC_CHECK_HEADERS(liveMedia_version.hh, [
1821       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1822       AC_EGREP_CPP(yes,
1823         [#include <liveMedia_version.hh>
1824          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1825          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1826          yes
1827          #endif
1828          #endif],
1829         [AC_MSG_RESULT([no])
1830          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1831 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1832       ],[
1833          AC_MSG_RESULT([yes])
1834          ])
1835     ])
1836      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1837       if test "${SYS}" = "mingw32"; then
1838         # add ws2_32 for closesocket, select, recv
1839         other_libs="$other_libs -lws2_32"
1840       fi
1841     AC_CHECK_HEADERS(liveMedia.hh, [
1842       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1843         AC_CHECK_LIB(liveMedia, main, [
1844           VLC_ADD_PLUGIN([live555])
1845           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1846         ],[],[${other_libs}])
1847     ])
1848     CPPFLAGS="${CPPFLAGS_save}"
1849     AC_LANG_POP(C++)
1850   else
1851     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1852     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1853     if test -z "${real_live555_tree}"; then
1854       dnl  The given directory can't be found
1855       AC_MSG_RESULT(no)
1856       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1857     fi
1858     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1859       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1860
1861       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1862         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1863         AC_EGREP_CPP(yes,
1864           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1865            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1866            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1867            yes
1868            #endif
1869            #endif],
1870           [AC_MSG_RESULT([no])
1871            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1872 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1873         ],[
1874            AC_MSG_RESULT([yes])
1875            ])
1876       ])
1877
1878       VLC_ADD_PLUGIN([live555])
1879
1880       if test "${SYS}" = "mingw32"; then
1881         # add ws2_32 for closesocket, select, recv
1882         VLC_ADD_LIBS([live555],[-lws2_32])
1883       fi
1884
1885       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1886       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1887       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1888       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1889
1890       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1891       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1892       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1893       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1894       if test "${SYS}" = "solaris"; then
1895         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1896       fi
1897     else
1898       dnl  The given live555 wasn't built
1899         AC_MSG_RESULT(no)
1900       if test "${enable_live555}" = "yes"; then
1901         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1902       fi        
1903     fi
1904   fi
1905 fi
1906
1907 dnl
1908 dnl  special access module for dc1394 input
1909 dnl
1910 AC_ARG_ENABLE(dc1394,
1911   [  --enable-dc1394         dc1394 access module (default disabled)])
1912 if test "${enable_dc1394}" = "yes"
1913 then
1914   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1915     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1916         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1917 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1918               VLC_ADD_PLUGIN([dc1394])
1919               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1920 dnl         ],
1921 dnl         [
1922 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1923 dnl         ])
1924       ],
1925       [
1926         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1927       ])
1928     ],
1929     [
1930       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1931     ])
1932   ],
1933   [
1934     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1935   ])
1936 fi
1937
1938 dnl
1939 dnl dv module: digital video module check for libraw1394
1940 dnl
1941 AC_ARG_ENABLE(dv,
1942 [  --enable-dv             dv input module (default disabled)])
1943 if test "${enable_dv}" = "yes"
1944 then
1945   AC_ARG_WITH(dv-raw1394,
1946   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1947   AC_ARG_WITH(dv-raw1394-tree,
1948   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1949
1950   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1951   then
1952     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1953     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1954     then
1955       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1956       AC_MSG_RESULT(yes)
1957       VLC_ADD_PLUGIN([access_dv])
1958       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1959       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1960     else
1961       dnl  No libraw1394 could be found, sorry
1962       AC_MSG_RESULT(no)
1963       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1964     fi
1965   else
1966     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1967     [ VLC_ADD_PLUGIN([access_dv])
1968         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1969     ],[
1970         if test -n "${enable_dv}"
1971         then
1972           AC_MSG_ERROR([cannot find libraw1394 headers])
1973         fi
1974     ])
1975   fi
1976
1977   dnl Check for static linking of libraw1394
1978   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1979   then
1980     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1981     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1982     if test -z "${real_dv_raw1394_tree}"
1983     then
1984       dnl  The given directory can't be found
1985       AC_MSG_RESULT(no)
1986       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1987     fi
1988     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1989     then
1990       dnl  Use a custom libraw1394
1991       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1992       VLC_ADD_PLUGIN([access_dv])
1993       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1994       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1995     else
1996       dnl  The given libraw1394 wasn't built
1997       AC_MSG_RESULT(no)
1998       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1999     fi
2000   fi
2001
2002   dnl
2003   dnl Check for libavc1394
2004   dnl
2005
2006   AC_ARG_WITH(dv-avc1394,
2007   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2008   AC_ARG_WITH(dv-avc1394-tree,
2009   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2010
2011   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2012   then
2013     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2014     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2015     then
2016       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2017       AC_MSG_RESULT(yes)
2018       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2019       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2020     else
2021       dnl  No libavc1394 could be found, sorry
2022       AC_MSG_RESULT(no)
2023       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2024     fi
2025   else
2026     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2027     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2028     ],[
2029         if test -n "${enable_dv}"
2030         then
2031           AC_MSG_ERROR([cannot find libavc1394 headers])
2032         fi
2033     ])
2034   fi
2035
2036   dnl Check for static linking of libavc1394
2037   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2038   then
2039     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2040     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2041     if test -z "${real_dv_avc1394_tree}"
2042     then
2043       dnl  The given directory can't be found
2044       AC_MSG_RESULT(no)
2045       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2046     fi
2047     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2048     then
2049       dnl  Use a custom libavc1394
2050       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2051       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2052       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2053     else
2054       dnl  The given libavc1394 wasn't built
2055       AC_MSG_RESULT(no)
2056       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2057     fi
2058   fi
2059 fi
2060
2061 dnl
2062 dnl dvdread module: check for libdvdread
2063 dnl
2064 AC_ARG_ENABLE(dvdread,
2065 [  --enable-dvdread        dvdread input module (default disabled)])
2066 if test "${enable_dvdread}" != "no"
2067 then
2068   AC_ARG_WITH(dvdread,
2069   [    --with-dvdread=PATH   libdvdread headers and libraries])
2070   AC_ARG_WITH(dvdread-tree,
2071   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2072
2073   dnl Temporary hack (yeah, sure ;)
2074   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2075       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2076   fi
2077
2078   if test -z "${with_dvdread}"
2079   then
2080     if test -z "${with_dvdread_tree}"
2081     then
2082       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2083         [ VLC_ADD_PLUGIN([dvdread])
2084           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2085         ],[
2086           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2087             [ VLC_ADD_PLUGIN([dvdread])
2088               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2089             ],[
2090               if test -n "${enable_dvdread}"
2091               then
2092               AC_MSG_ERROR([cannot find libdvdread headers])
2093              fi
2094            ])
2095         ])
2096     else
2097       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2098       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2099       if test -z "${real_dvdread_tree}"
2100       then
2101         dnl  The given directory can't be found
2102         AC_MSG_RESULT(no)
2103         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2104       fi
2105       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2106       then
2107         dnl  Use a custom libdvdread
2108         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2109         VLC_ADD_PLUGIN([dvdread])
2110         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2111         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2112       else
2113         dnl  The given libdvdread wasn't built
2114         AC_MSG_RESULT(no)
2115         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2116       fi
2117     fi
2118   else
2119     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2120     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2121     then
2122       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2123       AC_MSG_RESULT(yes)
2124       VLC_ADD_PLUGIN([dvdread])
2125       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2126       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2127     else
2128       dnl  No libdvdread could be found, sorry
2129       AC_MSG_RESULT(no)
2130       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2131     fi
2132   fi
2133 fi
2134
2135 dnl
2136 dnl  libdvdnav plugin
2137 dnl
2138 AC_ARG_ENABLE(dvdnav,
2139   [  --enable-dvdnav         dvdnav input module (default enabled)])
2140 if test "${enable_dvdnav}" != "no"
2141 then
2142   dnl Same hack than dvdread
2143   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2144       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2145   fi
2146
2147   DVDNAV_PATH="${PATH}"
2148   AC_ARG_WITH(dvdnav-config-path,
2149     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2150     [ if test "${with_dvdnav_config_path}" != "no"
2151       then
2152         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2153       fi ])
2154   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2155   if test "${DVDNAV_CONFIG}" != "no"
2156   then
2157     VLC_ADD_PLUGIN([dvdnav])
2158     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2159     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2160   fi
2161 fi
2162
2163 dnl
2164 dnl  Windows DirectShow access module
2165 dnl
2166 AC_ARG_ENABLE(dshow,
2167   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2168 if test "${enable_dshow}" != "no"
2169 then
2170   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2171   then
2172     AC_LANG_PUSH(C++)
2173       AC_CHECK_HEADERS(dshow.h,
2174       [ VLC_ADD_PLUGIN([dshow])
2175         VLC_ADD_CXXFLAGS([dshow],[])
2176         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2177     AC_LANG_POP(C++)
2178   fi
2179 fi
2180
2181 dnl
2182 dnl  Windows DirectShow BDA access module
2183 dnl
2184 AC_ARG_ENABLE(bda,
2185   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default 
2186                   enabled on Win32)]))
2187 if test "${enable_bda}" != "no"
2188 then
2189   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2190   then
2191       AC_CHECK_HEADERS(dshow.h,
2192       [ VLC_ADD_PLUGIN([bda])
2193         VLC_ADD_CXXFLAGS([bda],[])
2194         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2195   fi
2196 fi
2197
2198
2199 dnl
2200 dnl  OpenCV wrapper and example filters
2201 dnl
2202 AC_ARG_ENABLE(opencv,
2203   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2204 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2205 then
2206   AC_ARG_WITH(opencv-tree,
2207   [    --with-opencv-tree=PATH opencv tree for linking])
2208     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2209     then
2210       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2211           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2212           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2213             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2214       then
2215         AC_MSG_RESULT(yes)
2216         VLC_ADD_PLUGIN([opencv_wrapper])
2217         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2218         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])
2219         AC_LANG_PUSH(C++)
2220         VLC_ADD_PLUGIN([opencv_example])
2221         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2222         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])
2223         AC_LANG_POP(C++)        
2224           else
2225         dnl  No opencv could be found, sorry
2226         AC_MSG_RESULT(no)
2227         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2228           fi
2229     else
2230       PKG_CHECK_MODULES(OPENCV, opencv,
2231         [
2232           VLC_ADD_PLUGIN([opencv_example])
2233           VLC_ADD_PLUGIN([opencv_wrapper])
2234           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2235           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2236           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2237         ],
2238         [AC_MSG_ERROR([libopencv not found!])]
2239       )
2240     fi
2241 fi
2242
2243
2244 dnl
2245 dnl  libsmbclient plugin
2246 dnl
2247 AC_ARG_ENABLE(smb,
2248   [  --enable-smb            smb input module (default enabled)])
2249 if test "${enable_smb}" != "no"; then
2250   AC_CHECK_HEADERS(libsmbclient.h,
2251     [ VLC_ADD_PLUGIN([access_smb])
2252       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2253     [ if test -n "${enable_smb}"; then
2254         AC_MSG_ERROR([cannot find libsmbclient headers])
2255      fi ])
2256   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2257     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2258     [#include <libsmbclient.h>])
2259 fi
2260
2261 dnl
2262 dnl  libdvbpsi ts demux/mux
2263 dnl
2264 AC_ARG_ENABLE(dvbpsi,
2265   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2266 if test "${enable_dvbpsi}" != "no"
2267 then
2268   AC_ARG_WITH(dvbpsi,
2269   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2270   AC_ARG_WITH(dvbpsi,
2271   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2272   case "${with_dvbpsi}" in
2273   ""|yes)
2274     if test -z "${with_dvbpsi_tree}"
2275     then
2276       AC_CHECK_HEADERS(dvbpsi/dr.h,
2277         [ VLC_ADD_PLUGIN([ts])
2278           if test "${enable_sout}" != "no"; then
2279             VLC_ADD_PLUGIN([mux_ts])
2280           fi
2281           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2282         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2283         [#if defined( HAVE_STDINT_H )
2284 #   include <stdint.h>
2285 #elif defined( HAVE_INTTYPES_H )
2286 #   include <inttypes.h>
2287 #endif
2288 #include <dvbpsi/dvbpsi.h>
2289 #include <dvbpsi/descriptor.h>
2290 #include <dvbpsi/pat.h>
2291 #include <dvbpsi/pmt.h>])
2292     else
2293       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2294       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2295       if test -z "${real_dvbpsi_tree}"
2296       then
2297         dnl  The given directory can't be found
2298         AC_MSG_RESULT(no)
2299         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2300       fi
2301       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2302       then
2303         dnl  Use a custom libdvbpsi
2304         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2305         VLC_ADD_PLUGIN([ts])
2306         if test "${enable_sout}" != "no"; then
2307           VLC_ADD_PLUGIN([mux_ts])
2308         fi
2309         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2310         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2311       else
2312         dnl  The given libdvbpsi wasn't built
2313         AC_MSG_RESULT(no)
2314         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2315       fi
2316     fi
2317   ;;
2318   no)
2319     dnl  Compile without dvbpsi
2320   ;;
2321   *)
2322     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2323     if test -z "${with_dvbpsi}"
2324     then
2325       LDFLAGS_test=""
2326       CPPFLAGS_test=""
2327     else
2328       LDFLAGS_test="-L${with_dvbpsi}/lib"
2329       CPPFLAGS_test="-I${with_dvbpsi}/include"
2330     fi
2331     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2332     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2333       VLC_ADD_PLUGIN([ts])
2334       if test "${enable_sout}" != "no"; then
2335         VLC_ADD_PLUGIN([mux_ts])
2336       fi
2337       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2338       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2339
2340     ],[
2341       if test -n "${enable_dvbpsi}"
2342       then
2343         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])
2344       fi
2345     ])
2346     CPPFLAGS="${CPPFLAGS_save}"
2347   ;;
2348   esac
2349   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2350     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2351   ], [], [${LIBS_ts}])
2352
2353 fi
2354
2355 dnl
2356 dnl  Video4Linux plugin
2357 dnl
2358 AC_ARG_ENABLE(v4l,
2359   [  --enable-v4l            Video4Linux input support (default disabled)])
2360 if test "${enable_v4l}" = "yes"
2361 then
2362   AC_ARG_WITH(v4l,
2363     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2364   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2365   then
2366     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2367   fi
2368
2369   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2370   AC_CHECK_HEADERS(linux/videodev.h, [
2371     VLC_ADD_PLUGIN([v4l])
2372   ],[])
2373   CPPFLAGS="${CPPFLAGS_save}"
2374 fi
2375
2376 dnl
2377 dnl  Video4Linux2 plugin
2378 dnl
2379 AC_ARG_ENABLE(v4l2,
2380   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2381 if test "${enable_v4l2}" != "no"
2382 then
2383   AC_ARG_WITH(v4l2,
2384     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2385   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2386   then
2387     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2388   fi
2389
2390   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2391   if test "${have_v4l2_alsa}" = "true"
2392   then
2393     CFLAGS="${CFLAGS_save}"
2394     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2395                     #define ALSA_PCM_NEW_SW_PARAMS_API
2396                     #include <alsa/asoundlib.h>],
2397        [snd_pcm_hw_params_get_period_time(0,0,0);],
2398         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2399     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2400     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2401   fi
2402
2403   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2404   AC_CHECK_HEADERS(linux/videodev2.h, [
2405     VLC_ADD_PLUGIN([v4l2])
2406   ],[])
2407   CPPFLAGS="${CPPFLAGS_save}"
2408 fi
2409
2410
2411 dnl
2412 dnl  special access module for Hauppauge PVR cards
2413 dnl
2414 AC_ARG_ENABLE(pvr,
2415   [  --enable-pvr            PVR cards access module (default disabled)])
2416 if test "${enable_pvr}" = "yes"
2417 then
2418   VLC_ADD_PLUGIN([pvr])
2419   AC_ARG_WITH(videodev2,
2420     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2421   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2422   then
2423     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2424   fi
2425     
2426
2427   AC_CACHE_CHECK([for new linux/videodev2.h],
2428       [ac_cv_new_linux_videodev2_h],
2429       [AC_TRY_COMPILE([
2430           #include <sys/types.h>
2431           #   ifdef VIDEODEV2_H_FILE
2432           #   include VIDEODEV2_H_FILE
2433           #   else
2434           #   include <linux/videodev2.h>
2435           #   endif
2436           ],
2437           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2438           ac_cv_new_linux_videodev2_h=yes,
2439           ac_cv_new_linux_videodev2_h=no)])
2440   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2441     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2442   fi
2443 fi
2444
2445 dnl
2446 dnl  gnomeVFS access module
2447 dnl
2448 AC_ARG_ENABLE(gnomevfs,
2449   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2450 if test "${enable_gnomevfs}" = "yes" 
2451 then
2452   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2453     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2454     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2455     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2456     VLC_ADD_PLUGIN([access_gnomevfs]),
2457     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2458 fi
2459
2460 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2461 AC_ARG_ENABLE(libcdio,
2462   [  --enable-libcdio        CD input and control library support (default enabled)])
2463
2464
2465 have_libcdio=no
2466 have_libvcdinfo=no
2467 if test "${enable_libcdio}" != "no"
2468 then
2469   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2470      have_libcdio=yes
2471      AC_DEFINE(HAVE_LIBCDIO, 1, 
2472      [Define if you have libcdio 0.78.2 or greater installed]),
2473      [AC_MSG_WARN(CD Reading and information library not found)])
2474
2475   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2476      [have_libvcdinfo=yes
2477      AC_DEFINE(HAVE_VCDINFO, 1, 
2478      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2479      [AC_MSG_WARN(VCD information library not found)])
2480 fi
2481
2482 dnl
2483 dnl  VCDX and CDDAX modules
2484 dnl
2485 AC_ARG_ENABLE(cddax,
2486   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2487                   via libcdio (default disabled)]))
2488  
2489 AC_ARG_ENABLE(libcddb,
2490   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2491  
2492 if test "${enable_cddax}" = "yes"
2493 then
2494   if test "$have_libcdio" = "yes"
2495   then
2496     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2497     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2498     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2499     VLC_ADD_PLUGIN([cddax])
2500     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2501     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2502     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2503   else 
2504     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2505     HAVE_CDDAX=no
2506   fi
2507
2508   if test "$enable_libcddb" != "no"; then
2509     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2510       HAVE_LIBCDDB=yes 
2511       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2512       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2513       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2514       ],
2515       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2516       HAVE_LIBCDDB=no])
2517   fi
2518  
2519 fi
2520
2521 AC_ARG_ENABLE(vcdx,
2522   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2523  
2524 if test "${enable_vcdx}" = "yes"
2525 then
2526   if test "${have_libvcdinfo}" = "yes"
2527   then
2528     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2529     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2530   else 
2531     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2532     HAVE_VCDX=no
2533   fi
2534
2535   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2536    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2537     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2538     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2539     HAVE_VCDX=no])
2540
2541   if test "$have_libvcdinfo" = "yes"
2542   then
2543     AC_DEFINE(HAVE_VCDX, 1, 
2544     [Define for the VCD plugin using libcdio/libvcdinfo])
2545     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2546     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2547     VLC_ADD_PLUGIN([vcdx])
2548   else 
2549     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2550     HAVE_VCDX=no
2551   fi
2552 fi
2553
2554 dnl
2555 dnl  Built-in CD-DA and VCD module
2556 dnl
2557 AC_ARG_ENABLE(cdda,           
2558   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2559  
2560 AC_ARG_ENABLE(vcd,
2561   [  --enable-vcd            built-in VCD (default enabled)])
2562
2563 if test "${enable_vcd}" != "no"
2564 then
2565   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2566   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2567     AC_MSG_RESULT(yes)
2568     VLC_ADD_PLUGIN([vcd])
2569     VLC_ADD_PLUGIN([cdda])
2570   ],[
2571     AC_MSG_RESULT(no)
2572   ])
2573
2574   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2575   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2576     AC_MSG_RESULT(yes)
2577     VLC_ADD_PLUGIN([vcd])
2578     VLC_ADD_PLUGIN([cdda])
2579     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2580   ],[
2581     AC_MSG_RESULT(no)
2582   ])
2583
2584   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2585   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2586     AC_MSG_RESULT(yes)
2587     VLC_ADD_PLUGIN([vcd])
2588     VLC_ADD_PLUGIN([cdda])
2589     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2590   ],[
2591     AC_MSG_RESULT(no)
2592   ])
2593
2594   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2595   then
2596     VLC_ADD_PLUGIN([vcd])
2597     VLC_ADD_PLUGIN([cdda])
2598   fi
2599
2600   if test "${SYS}" = "darwin"
2601   then
2602     VLC_ADD_PLUGIN([vcd])
2603     VLC_ADD_PLUGIN([cdda])
2604     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2605     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2606   fi
2607
2608   if test "$enable_libcddb" != "no"; then
2609     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2610       HAVE_LIBCDDB=yes 
2611       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2612       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2613       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2614       ],:
2615       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2616       HAVE_LIBCDDB=no])
2617   fi
2618 fi
2619
2620 dnl
2621 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2622 dnl
2623 AC_ARG_ENABLE(dvb,
2624   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2625
2626 if test "${enable_dvb}" != "no"
2627 then
2628   AC_ARG_WITH(dvb,
2629   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2630   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2631   then
2632     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2633   fi
2634   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2635   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2636   VLC_ADD_PLUGIN([dvb])
2637   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2638   CPPFLAGS="${CPPFLAGS_save}"
2639 fi
2640
2641 dnl
2642 dnl  Screen capture module
2643 dnl
2644 AC_ARG_ENABLE(screen,
2645   [  --enable-screen         Screen capture support (default enabled)])
2646 if test "${enable_screen}" != "no"; then
2647   if test "${SYS}" = "darwin"; then
2648     AC_CHECK_HEADERS(OpenGL/gl.h, [
2649       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2650         VLC_ADD_PLUGIN([screen])
2651         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2652       ])
2653     ])
2654   elif test "${SYS}" = "mingw32"; then
2655     VLC_ADD_PLUGIN([screen])
2656     VLC_ADD_LIBS([screen],[-lgdi32])
2657   elif test "${SYS}" = "mingwce"; then
2658     CPPFLAGS="${CPPFLAGS_save}"
2659   elif test "${SYS}" = "beos"; then
2660     VLC_ADD_PLUGIN([screen])
2661     VLC_ADD_CXXFLAGS([screen],[])
2662     VLC_ADD_LIBS([screen],[-lbe])
2663   else
2664     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2665     AC_CHECK_HEADERS(X11/Xlib.h, [
2666       VLC_ADD_PLUGIN([screen])
2667       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2668       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2669     ])
2670     CPPFLAGS="${CPPFLAGS_save}"
2671   fi
2672 fi
2673
2674 dnl
2675 dnl  ipv6 plugin - not for QNX yet
2676 dnl
2677 have_ipv6=no
2678 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2679   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2680 ])
2681
2682 AS_IF([test "${have_ipv6}" = "yes"], [
2683   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2684
2685
2686 AC_CHECK_FUNCS(inet_ntop,[
2687   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2688
2689
2690 dnl
2691 dnl  ogg demux plugin
2692 dnl
2693 AC_ARG_ENABLE(ogg,
2694   [  --enable-ogg            Ogg demux support (default enabled)])
2695 if test "${enable_ogg}" != "no"
2696 then
2697   AC_ARG_WITH(ogg-tree,
2698   [    --with-ogg-tree=PATH  ogg tree for static linking])
2699   if test -n "${with_ogg_tree}"
2700   then
2701     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2702     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2703     if test -z "${real_ogg_tree}"
2704     then
2705       dnl  The given directory can't be found
2706       AC_MSG_RESULT(no)
2707       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2708     fi
2709     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2710     then
2711       dnl  Use a custom ogg
2712       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2713       VLC_ADD_PLUGIN([ogg])
2714       if test "${enable_sout}" != "no"; then
2715         VLC_ADD_PLUGIN([mux_ogg])
2716       fi
2717       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2718       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2719     else
2720       dnl  The given ogg wasn't built
2721       AC_MSG_RESULT(no)
2722       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2723     fi
2724   else
2725     AC_CHECK_HEADERS(ogg/ogg.h, [
2726       AC_CHECK_LIB( ogg, oggpack_read, [
2727         VLC_ADD_PLUGIN([ogg])
2728         if test "${enable_sout}" != "no"; then
2729           VLC_ADD_PLUGIN([mux_ogg])
2730         fi
2731         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2732      ],[])
2733   fi
2734 fi
2735
2736 dnl
2737 dnl  matroska demux plugin
2738 dnl
2739 AC_ARG_ENABLE(mkv,
2740   [  --enable-mkv            Matroska demux support (default enabled)])
2741 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2742   AC_LANG_PUSH(C++)
2743   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2744     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2745     AC_EGREP_CPP(yes,
2746       [#include <ebml/EbmlVersion.h>
2747        #ifdef LIBEBML_VERSION
2748        #if LIBEBML_VERSION >= 0x000706
2749        yes
2750        #endif
2751        #endif],
2752       [AC_MSG_RESULT([yes])
2753         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2754           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2755           AC_EGREP_CPP(yes,
2756             [#include <matroska/KaxVersion.h>
2757              #ifdef LIBMATROSKA_VERSION
2758              #if LIBMATROSKA_VERSION >= 0x000705
2759              yes
2760              #endif
2761              #endif],
2762             [AC_MSG_RESULT([yes])
2763               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2764               VLC_ADD_CXXFLAGS([mkv],[])
2765               if test "${SYS}" = "darwin"; then
2766                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2767               fi
2768               AC_CHECK_LIB(ebml_pic, main, [
2769                 VLC_ADD_PLUGIN([mkv])
2770                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2771               ],
2772                 AC_CHECK_LIB(ebml, main, [
2773                   VLC_ADD_PLUGIN([mkv])
2774                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2775                 ]) 
2776               )
2777             ],
2778             [AC_MSG_RESULT([no])
2779               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.])
2780           ])
2781         ])
2782       ],
2783       [AC_MSG_RESULT([no])
2784         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.])
2785     ])
2786   ])
2787   AC_LANG_POP(C++)
2788 fi
2789
2790 dnl
2791 dnl  modplug demux plugin
2792 dnl
2793 AC_ARG_ENABLE(mod,
2794   [  --enable-mod            Mod demux support (default enabled)])
2795 if test "${enable_mod}" != "no"
2796 then
2797   AC_ARG_WITH(mod-tree,
2798   [    --with-mod-tree=PATH mod tree for static linking])
2799   if test -n "${with_mod_tree}"
2800   then
2801     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2802     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2803     if test -z "${real_mod_tree}"
2804     then
2805       dnl  The given directory can't be found
2806       AC_MSG_RESULT(no)
2807       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2808     fi
2809     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2810     then
2811       dnl  Use a custom mod
2812       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2813       VLC_ADD_PLUGIN([mod])
2814       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2815       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2816     else
2817       dnl  The given mod wasn't built
2818       AC_MSG_RESULT(no)
2819       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2820     fi
2821   else
2822     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2823       VLC_ADD_PLUGIN([mod])
2824       VLC_ADD_CXXFLAGS([mod],[])
2825       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2826   fi
2827 fi
2828
2829 dnl
2830 dnl  mpc demux plugin
2831 dnl
2832 AC_ARG_ENABLE(mpc,
2833   [  --enable-mpc            Mpc demux support (default enabled)])
2834 if test "${enable_mpc}" != "no"
2835 then
2836   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2837     VLC_ADD_PLUGIN([mpc])
2838     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2839 fi
2840
2841 dnl
2842 dnl  game music emu demux plugin
2843 dnl
2844 AC_ARG_ENABLE(gme,
2845   [  --enable-gme            Game Music Emu demux support (default enabled)])
2846 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2847 then
2848   AC_LANG_PUSH(C++)
2849   AC_ARG_WITH(gme-tree,
2850   [    --with-gme-tree=PATH gme tree for static linking])
2851   if test -n "${with_gme_tree}"
2852   then
2853     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2854     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2855     if test -z "${real_gme_tree}"
2856     then
2857       dnl  The given directory can't be found
2858       AC_MSG_RESULT(no)
2859       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2860     fi
2861     if test -f "${real_gme_tree}/gme/libgme.a"
2862     then
2863       dnl  Use a custom gme
2864       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2865       VLC_ADD_PLUGIN([gme])
2866       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2867       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2868     else
2869       dnl  The given gme wasn't built
2870       AC_MSG_RESULT(no)
2871       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2872     fi
2873   else
2874       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2875   fi
2876   AC_LANG_POP(C++)
2877 fi
2878
2879 dnl
2880 dnl  Codec plugins
2881 dnl
2882
2883 AC_ARG_WITH(,[Codec plugins:])
2884
2885 dnl
2886 dnl  mad plugin
2887 dnl
2888 AC_ARG_ENABLE(mad,
2889   [  --enable-mad            libmad module (default enabled)])
2890 if test "${enable_mad}" != "no"
2891 then
2892   AC_ARG_WITH(mad,
2893     [    --with-mad=PATH       path to libmad],[],[])
2894   if test "${with_mad}" != "no" -a -n "${with_mad}"
2895   then
2896     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2897     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2898   fi
2899
2900   AC_ARG_WITH(mad-tree,
2901     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2902   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2903   then
2904     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2905     if test -z "${real_mad_tree}"
2906     then
2907       dnl  The given directory can't be found
2908       AC_MSG_RESULT(no)
2909       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2910     fi
2911     dnl  Use a custom libmad
2912     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2913     if test -f ${real_mad_tree}/mad.h
2914     then
2915       AC_MSG_RESULT(yes)
2916       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2917       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2918       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2919       AC_CHECK_LIB(mad, mad_bit_init, [
2920         VLC_ADD_PLUGIN([mpgatofixed32])
2921         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2922         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2923       ],[])
2924       LDFLAGS="${LDFLAGS_save}"
2925     else
2926       AC_MSG_RESULT(no)
2927       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2928     fi
2929   else
2930     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2931     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2932     AC_CHECK_HEADERS(mad.h, ,
2933       [ 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.]) ])
2934     AC_CHECK_LIB(mad, mad_bit_init, [
2935       VLC_ADD_PLUGIN([mpgatofixed32])
2936       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2937       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2938     CPPFLAGS="${CPPFLAGS_save}"
2939     LDFLAGS="${LDFLAGS_save}"
2940   fi
2941 fi
2942
2943 dnl
2944 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2945 dnl
2946 AC_ARG_ENABLE( id3tag,
2947 [  --disable-id3tag        id3tag metadata reader plugin (default enabled)])
2948 AS_IF([test "${enable_id3tag}" != "no"], [
2949   AC_CHECK_HEADERS(id3tag.h, [
2950     AC_CHECK_HEADERS(zlib.h, [
2951       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2952       VLC_ADD_PLUGIN([id3tag])
2953     ])
2954   ])
2955 ])
2956
2957 dnl
2958 dnl  avcodec decoder/encoder plugin
2959 dnl
2960
2961 if test "${with_ffmpeg_tree}"
2962 then
2963   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2964 fi
2965
2966 AC_ARG_ENABLE(avcodec,
2967 [  --enable-avcodec        libavcodec codec (default enabled)])
2968 if test "${enable_avcodec}" != "no"
2969 then
2970   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2971     [
2972       VLC_SAVE_FLAGS
2973       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2974       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2975       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2976       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2977       VLC_ADD_PLUGIN([avcodec])
2978       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2979       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2980       VLC_RESTORE_FLAGS
2981     ],[
2982       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2983   ])
2984 fi
2985
2986 dnl
2987 dnl  avformat demuxer/muxer plugin
2988 dnl
2989
2990 AC_ARG_ENABLE(avformat,
2991 [  --enable-avformat       libavformat containers (default enabled)])
2992 if test "${enable_avformat}" != "no"
2993 then
2994   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2995     [
2996       VLC_SAVE_FLAGS
2997       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2998       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2999       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3000       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3001       VLC_ADD_PLUGIN([avformat])
3002       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3003       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3004       VLC_RESTORE_FLAGS
3005     ],[
3006       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3007   ])
3008 fi
3009
3010 dnl
3011 dnl  swscale image scaling and conversion plugin
3012 dnl
3013
3014 AC_ARG_ENABLE(swscale,
3015   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
3016                   (default enabled)]))
3017 if test "${enable_swscale}" != "no"
3018 then
3019   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3020     [
3021       VLC_SAVE_FLAGS
3022       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3023       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3024       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3025       VLC_ADD_PLUGIN([swscale])
3026       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3027       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3028       VLC_RESTORE_FLAGS
3029     ],[
3030       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3031       enable_imgresample=yes
3032   ])
3033 fi
3034
3035 dnl
3036 dnl  avcodec (deprecated API) image scaling and conversion plugin
3037 dnl
3038 dnl  This is build as a seperate module than the avcodec one to prevent
3039 dnl  stupid run time library load errors from disabling most codecs
3040 dnl  from VLC.
3041 dnl
3042
3043 AC_ARG_ENABLE(imgresample,
3044   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3045                   and conversion (default disabled)]))
3046 if test "${enable_imgresample}" = "yes"
3047 then
3048   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3049     [
3050       VLC_SAVE_FLAGS
3051       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3052       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3053       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3054       AC_CHECK_LIB(avcodec,img_resample,
3055         [
3056           VLC_ADD_PLUGIN([imgresample])
3057           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3058           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3059         ],[
3060           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3061           if test "${enable_swscale}" != "no"
3062           then
3063             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.)])
3064           fi
3065         # That sed hack to add -rpath is kind of ugly but at least it fixes
3066         # detection when linking against a shared libavcodec with
3067         # a libavutil not in one of your ld.so.conf directories.
3068         # (for example a local install)
3069         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3070       VLC_RESTORE_FLAGS
3071     ],[
3072       AC_MSG_WARN([Could not find libavcodec.])
3073   ])
3074 fi
3075
3076 dnl
3077 dnl  postproc plugin
3078 dnl
3079
3080 AC_ARG_ENABLE(postproc,
3081 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3082 if test "${enable_postproc}" != "no"
3083 then
3084   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3085     [
3086       VLC_SAVE_FLAGS
3087       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3088       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3089       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3090       VLC_ADD_PLUGIN([postproc])
3091       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3092       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3093       VLC_RESTORE_FLAGS
3094     ],[
3095       AC_MSG_ERROR([Could not find libpostproc.])
3096   ])
3097 fi
3098
3099 dnl
3100 dnl  faad decoder plugin
3101 dnl
3102 AC_ARG_ENABLE(faad,
3103 [  --enable-faad           faad codec (default disabled)])
3104 if test "${enable_faad}" = "yes"
3105 then
3106   AC_ARG_WITH(faad-tree,
3107   [    --with-faad-tree=PATH faad tree for static linking])
3108   if test -n "${with_faad_tree}"
3109   then
3110     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3111     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3112     if test -z "${real_faad_tree}"
3113     then
3114       dnl  The given directory can't be found
3115       AC_MSG_RESULT(no)
3116       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3117     fi
3118     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3119     then
3120       dnl  Use a custom faad
3121       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3122       VLC_ADD_PLUGIN([faad])
3123       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3124       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3125     else
3126       dnl  The given libfaad wasn't built
3127       AC_MSG_RESULT(no)
3128       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3129     fi
3130   else
3131     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3132     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3133     AC_CHECK_HEADERS(faad.h, ,
3134       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3135     AC_CHECK_LIB(faad, faacDecOpen, [
3136       VLC_ADD_PLUGIN([faad])
3137       VLC_ADD_LIBS([faad],[-lfaad]) ],
3138       AC_CHECK_LIB(faad, NeAACDecOpen, [
3139         VLC_ADD_PLUGIN([faad])
3140         VLC_ADD_LIBS([faad],[-lfaad]) ],
3141         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3142     LDFLAGS="${LDFLAGS_save}"
3143     CPPFLAGS="${CPPFLAGS_save}"
3144   fi
3145 fi
3146
3147 dnl
3148 dnl twolame encoder plugin
3149 dnl
3150 AC_ARG_ENABLE(twolame,
3151 [  --enable-twolame        twolame codec (default disabled)])
3152 if test "${enable_twolame}" = "yes"
3153 then
3154   AC_ARG_WITH(twolame-tree,
3155   [    --with-twolame-tree=PATH twolame tree for static linking])
3156   if test -n "${with_twolame_tree}"
3157   then
3158     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3159     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3160     if test -z "${real_twolame_tree}"
3161     then
3162       dnl  The given directory can't be found
3163       AC_MSG_RESULT(no)
3164       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3165     fi
3166     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3167     then
3168       dnl  Use a custom twolame
3169       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3170       VLC_ADD_PLUGIN([twolame])
3171       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3172       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3173     else
3174       dnl  The given libtwolame wasn't built
3175       AC_MSG_RESULT(no)
3176       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3177     fi
3178   else
3179     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3180     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3181     AC_CHECK_HEADERS(twolame.h, ,
3182       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3183     AC_CHECK_LIB(twolame, twolame_init, [
3184       VLC_ADD_PLUGIN([twolame])
3185       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3186       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3187         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3188     LDFLAGS="${LDFLAGS_save}"  
3189     CPPFLAGS="${CPPFLAGS_save}"
3190   fi
3191 fi
3192
3193 dnl
3194 dnl  QuickTime plugin
3195 dnl
3196 AC_ARG_ENABLE(quicktime,
3197   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3198 if test "${enable_quicktime}" != "no" &&
3199   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3200 then
3201   if test "${SYS}" = "mingw32"; then
3202     VLC_ADD_PLUGIN([quicktime])
3203   else
3204   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3205     [ VLC_ADD_PLUGIN([quicktime])
3206       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3207     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3208   fi
3209 fi
3210
3211 dnl
3212 dnl  Real plugin
3213 dnl
3214 AC_ARG_ENABLE(real,
3215   [  --enable-real           Real media module (default disabled)])
3216 if test "${enable_real}" = "yes"; then
3217   VLC_ADD_PLUGIN([realaudio])
3218   VLC_ADD_PLUGIN([realvideo])
3219 fi
3220
3221 dnl
3222 dnl  Real RTSP plugin
3223 dnl
3224 AC_ARG_ENABLE(realrtsp,
3225   [  --enable-realrtsp       Real RTSP module (default disabled)])
3226 if test "${enable_realrtsp}" = "yes"; then
3227   VLC_ADD_PLUGIN([access_realrtsp])
3228 fi
3229
3230 dnl
3231 dnl MP4 module
3232 dnl
3233 AC_CHECK_HEADERS(zlib.h, [
3234   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3235 ] )
3236
3237 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3238   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3239 ] )
3240
3241 dnl
3242 dnl skins2 module
3243 dnl
3244 AC_ARG_ENABLE(libtar,
3245   [  --enable-libtar support for skins2 (default enabled)])
3246
3247 AS_IF([test "${enable_libtar}" != "no"],[
3248   AC_CHECK_HEADERS(libtar.h, [
3249     VLC_ADD_LIBS([skins2],[-ltar])
3250   ] )
3251 ])
3252
3253 dnl
3254 dnl A52/AC3 decoder plugin
3255 dnl
3256 AC_ARG_ENABLE(a52,
3257   [  --enable-a52            A/52 support with liba52 (default enabled)])
3258 if test "${enable_a52}" != "no"
3259 then
3260   AC_ARG_WITH(a52,
3261     [    --with-a52=PATH       a52 headers and libraries])
3262   AC_ARG_WITH(a52-tree,
3263     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3264   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3265   then
3266     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3267     if test -z "${real_a52_tree}"
3268     then
3269       dnl  The given directory can't be found
3270       AC_MSG_RESULT(no)
3271       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3272     fi
3273     dnl  Use a custom a52dec
3274     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3275     if test -f ${real_a52_tree}/include/a52.h
3276     then
3277       AC_MSG_RESULT(yes)
3278       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3279       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3280       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3281       AC_CHECK_LIB(a52, a52_free, [
3282         VLC_ADD_PLUGIN([a52tofloat32])
3283         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3284         VLC_ADD_LIBS([a52tofloat32],[-la52])
3285         ],[
3286         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3287         then
3288           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3289         else
3290           AC_MSG_ERROR([the specified tree hasn't been compiled])
3291         fi
3292       ])
3293       LDFLAGS="${LDFLAGS_save}"
3294     else
3295       AC_MSG_RESULT(no)
3296       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3297     fi
3298   else
3299     if test -z "${with_a52}"
3300     then
3301       LDFLAGS_test=""
3302       CPPFLAGS_test=""
3303     else
3304       LDFLAGS_test="-L${with_a52}/lib"
3305       CPPFLAGS_test="-I${with_a52}/include"
3306     fi
3307     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3308     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3309     AC_CHECK_HEADERS(a52dec/a52.h, [
3310       AC_CHECK_LIB(a52, a52_free, [
3311         VLC_ADD_PLUGIN([a52tofloat32])
3312         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3313         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3314       ],[
3315         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.])
3316         ])
3317     ],[
3318       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.])
3319     ])
3320     CPPFLAGS="${CPPFLAGS_save}"
3321     LDFLAGS="${LDFLAGS_save}"
3322   fi
3323 fi
3324
3325 AC_ARG_WITH(a52-fixed,
3326       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3327       [
3328         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3329
3330 dnl
3331 dnl DTS Coherent Acoustics decoder plugin
3332 dnl
3333 AS_IF([test "x${enable_dts}" != "x"], [
3334   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3335 ])
3336 AS_IF([test "x${with_dts_tree}" != "x"], [
3337   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3338 ])
3339
3340 AC_ARG_ENABLE(dca,
3341   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3342                   (default enabled)]))
3343 AS_IF([test "${enable_dca}" != "no"], [
3344   AC_ARG_WITH(dca-tree,
3345     [    --with-dca-tree=PATH  libdca tree for static linking],,
3346     [with_dca_tree="no"])
3347   AS_IF([test "${with_dca_tree}" != "no"], [
3348     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3349     AS_IF([test -z "${real_dca_tree}"], [
3350       dnl  The given directory can't be found
3351       AC_MSG_RESULT(no)
3352       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3353     ])
3354     dnl  Use a custom libdca
3355     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3356     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3357       AC_MSG_RESULT(yes)
3358       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3359       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3360         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3361       ], [
3362         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3363       ])
3364     ], [
3365       AC_MSG_RESULT(no)
3366       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3367     ])
3368   ], [
3369     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3370       VLC_ADD_PLUGIN([dtstofloat32])
3371       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3372       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3373     ], [
3374       AS_IF([test "x${enable_dca}" != "x"], [
3375         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3376       ])
3377     ])
3378   ])
3379 ])
3380
3381 dnl
3382 dnl  Flac plugin
3383 dnl
3384 AC_ARG_ENABLE(flac,
3385   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3386 if test "${enable_flac}" = "yes"
3387 then
3388   AC_ARG_WITH(flac-tree,
3389   [    --with-flac-tree=PATH flac tree for static linking])
3390   if test -n "${with_flac_tree}"
3391   then
3392     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3393     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3394     if test -z "${real_flac_tree}"
3395     then
3396       dnl  The given directory can't be found
3397       AC_MSG_RESULT(no)
3398       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3399     fi
3400     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3401     then
3402       dnl  Use a custom flac
3403       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3404       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3405       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3406       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3407     else
3408       dnl  The given flac wasn't built
3409       AC_MSG_RESULT(no)
3410       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3411     fi
3412   else
3413     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3414       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3415      ],[])
3416   fi
3417 fi
3418
3419 dnl
3420 dnl  Libmpeg2 plugin
3421 dnl
3422 AC_ARG_ENABLE(libmpeg2,
3423   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3424 if test "${enable_libmpeg2}" != "no"
3425 then
3426   AC_ARG_WITH(libmpeg2-tree,
3427   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3428   AS_IF([test -n "${with_libmpeg2_tree}"],[
3429     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3430     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3431     if test -z "${real_libmpeg2_tree}"
3432     then
3433       dnl  The given directory can't be found
3434       AC_MSG_RESULT(no)
3435       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3436     fi
3437     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3438     then
3439       dnl  Use a custom libmpeg2
3440       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3441       VLC_ADD_PLUGIN([libmpeg2])
3442       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3443       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3444     else
3445       dnl  The given libmpeg2 wasn't built
3446       AC_MSG_RESULT(no)
3447       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3448     fi
3449   ],[
3450    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3451           VLC_ADD_PLUGIN([libmpeg2])
3452           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3453           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3454        ], 
3455       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.]))
3456   ])
3457 fi
3458
3459 dnl
3460 dnl  Vorbis plugin
3461 dnl
3462 AC_ARG_ENABLE(vorbis,
3463   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3464 if test "${enable_vorbis}" != "no"
3465 then
3466   AC_ARG_WITH(vorbis-tree,
3467   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3468   if test -n "${with_vorbis_tree}"
3469   then
3470     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3471     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3472     if test -z "${real_vorbis_tree}"
3473     then
3474       dnl  The given directory can't be found
3475       AC_MSG_RESULT(no)
3476       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3477     fi
3478     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3479     then
3480       dnl  Use a custom vorbis 
3481       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3482       VLC_ADD_PLUGIN([vorbis])
3483       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3484       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3485     else
3486       dnl  The given vorbis wasn't built
3487       AC_MSG_RESULT(no)
3488       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3489     fi
3490   else
3491     AC_CHECK_HEADERS(vorbis/codec.h, [
3492       VLC_ADD_PLUGIN([vorbis])
3493       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3494
3495     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3496       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3497   fi
3498 fi
3499
3500 dnl
3501 dnl  Tremor plugin
3502 dnl
3503 AC_ARG_ENABLE(tremor,
3504   [  --enable-tremor         Tremor decoder support (default disabled)])
3505 if test "${enable_tremor}" = "yes"
3506 then
3507   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3508     VLC_ADD_PLUGIN([tremor])
3509     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3510    ],[])
3511 fi
3512
3513 dnl
3514 dnl  Speex plugin
3515 dnl
3516 AC_ARG_ENABLE(speex,
3517   [  --enable-speex          Speex decoder support (default enabled)])
3518 if test "${enable_speex}" != "no"
3519 then
3520   AC_ARG_WITH(speex-tree,
3521   [    --with-speex-tree=PATH speex tree for static linking])
3522   if test -n "${with_speex_tree}"
3523   then
3524     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3525     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3526     if test -z "${real_speex_tree}"
3527     then
3528       dnl  The given directory can't be found
3529       AC_MSG_RESULT(no)
3530       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3531     fi
3532     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3533     then
3534       dnl  Use a custom speex
3535       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3536       VLC_ADD_PLUGIN([speex])
3537       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3538       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3539     else
3540       dnl  The given speex wasn't built
3541       AC_MSG_RESULT(no)
3542       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3543     fi
3544   else
3545     AC_CHECK_HEADERS(speex/speex.h, [
3546       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3547       AC_CHECK_LIB(speex, speex_decode_int, [
3548         VLC_ADD_PLUGIN([speex])
3549         VLC_ADD_LIBS([speex],[-lspeex]) ],
3550         [ AC_MSG_RESULT([no])
3551           AC_MSG_WARN([Your libspeex is too old, please get the development
3552                        version.]) ],[])
3553       LDFLAGS="${LDFLAGS_save}"
3554       ],[])
3555   fi
3556 fi
3557
3558 dnl
3559 dnl  tarkin decoder plugin
3560 dnl
3561 AC_ARG_ENABLE(tarkin,
3562 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3563 if test "${enable_tarkin}" = "yes"
3564 then
3565   AC_ARG_WITH(tarkin-tree,
3566   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3567   if test -n "${with_tarkin_tree}"
3568   then
3569     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3570     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3571     if test -f "${real_tarkin_tree}/tarkin.o"
3572     then
3573       VLC_ADD_PLUGIN([tarkin])
3574       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3575       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])
3576       AC_MSG_RESULT(yes)
3577     else
3578       dnl  The given tarkin tree wasn't built
3579       AC_MSG_RESULT(no)
3580       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3581                     make sure you compiled tarkin in ${with_tarkin_tree}])
3582     fi
3583   fi
3584 fi
3585
3586 dnl
3587 dnl  theora decoder plugin
3588 dnl
3589 AC_ARG_ENABLE(theora,
3590 [  --enable-theora         experimental theora codec (default disabled)])
3591 if test "${enable_theora}" = "yes"
3592 then
3593   AC_CHECK_HEADERS(theora/theora.h, [
3594     AC_CHECK_LIB(theora, theora_granule_time, [
3595       VLC_ADD_PLUGIN([theora])
3596       theora_libs="-ltheora -logg"
3597       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3598       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3599 You also need to check that you have a libogg posterior to the 1.0 release.])],
3600       [-logg])
3601   ])
3602 fi
3603
3604 dnl
3605 dnl  dirac decoder plugin
3606 dnl
3607 AC_ARG_ENABLE(dirac,
3608 [  --enable-dirac          experimental dirac codec (default disabled)])
3609 if test "${enable_dirac}" = "yes"; then
3610   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3611       VLC_ADD_PLUGIN([dirac])
3612       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3613       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3614       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3615   ])
3616 fi
3617
3618 dnl
3619 dnl  schroedinger decoder plugin (for dirac format video)
3620 dnl
3621 AC_ARG_ENABLE(schroedinger,
3622 [  --disable-schroedinger   high performance dirac codec (default enabled)])
3623 if test "${enable_schroedinger}" != "no"; then
3624   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3625       VLC_ADD_PLUGIN([schroedinger])
3626       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3627       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3628         AS_IF([test "x${enable_schroedinger}" != "x"], [
3629           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3630         ])
3631 ])
3632 fi
3633
3634 dnl
3635 dnl  PNG decoder module
3636 dnl
3637 AC_ARG_ENABLE(png,
3638   [  --enable-png            PNG support (default enabled)])
3639 if test "${enable_png}" != "no"; then
3640 AC_CHECK_HEADERS(png.h, [
3641   LDFLAGS="${LDFLAGS_save} -lz"
3642   AC_CHECK_LIB(png, png_set_rows, [
3643     VLC_ADD_LIBS([png],[-lpng -lz])
3644     VLC_ADD_PLUGIN([png])
3645     VLC_ADD_PLUGIN([osdmenu])
3646     VLC_ADD_PLUGIN([osd_parser])
3647     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3648     [],[-lz])
3649     LDFLAGS="${LDFLAGS_save}"
3650   ])
3651 fi
3652 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3653
3654 dnl
3655 dnl H264 encoder plugin (using libx264)
3656 dnl
3657 AC_ARG_ENABLE(x264,
3658   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3659 if test "${enable_x264}" != "no"; then
3660   AC_ARG_WITH(x264-tree,
3661     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3662   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3663   then
3664     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3665     if test -z "${real_x264_tree}"
3666     then
3667       dnl  The given directory can't be found
3668       AC_MSG_RESULT(no)
3669       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3670     fi
3671     dnl  Use a custom libx264
3672     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3673     if test -f ${real_x264_tree}/x264.h
3674     then
3675       AC_MSG_RESULT(yes)
3676       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3677       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3678       PKG_CHECK_MODULES(X264,x264, [
3679         VLC_ADD_PLUGIN([x264])
3680         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3681         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3682       ],[
3683         AC_MSG_ERROR([the specified tree hasn't been compiled])
3684       ])
3685       LDFLAGS="${LDFLAGS_save}"
3686     else
3687       AC_MSG_RESULT(no)
3688       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3689     fi
3690   else
3691       PKG_CHECK_MODULES(X264,x264, [
3692         VLC_ADD_PLUGIN([x264])
3693         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3694         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3695       ],[
3696         if test "${enable_x264}" = "yes"; then
3697             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3698           fi
3699       ])
3700     LDFLAGS="${LDFLAGS_save}"
3701   fi
3702 fi
3703
3704 dnl
3705 dnl libfluidsynth (MIDI synthetizer) plugin
3706 dnl
3707 AC_ARG_ENABLE(fluidsynth,
3708   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3709 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3710   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3711     VLC_ADD_PLUGIN(fluidsynth)
3712     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3713     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3714   ], [
3715     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3716       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3717     ])
3718   ])
3719 ])
3720
3721 dnl
3722 dnl Teletext Modules
3723 dnl vbi decoder plugin (using libzbvi)
3724 dnl telx module
3725 dnl uncompatible
3726 dnl
3727 AC_ARG_ENABLE(zvbi,
3728   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3729                   libzvbi (default enabled)]))
3730 AC_ARG_ENABLE(telx,
3731   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3732                   zvbi) (default disabled)]))
3733
3734 AS_IF( [test "${enable_zvbi}" != "no"],[
3735   AS_IF( [test "${enable_telx}" = "yes"],[
3736     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3737   ],[
3738     PKG_CHECK_MODULES(ZVBI,
3739         zvbi-0.2 >= 0.2.25,
3740         [
3741           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3742           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3743           VLC_ADD_PLUGIN([zvbi])
3744           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3745         ],[
3746           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3747           enable_telx="yes"
3748         ])
3749     ])  
3750   ])
3751 AS_IF( [test "${enable_telx}" = "yes"],[
3752   VLC_ADD_PLUGIN([telx])
3753   ])
3754
3755 dnl
3756 dnl asa/csri subtitle rendering module
3757 dnl
3758 AC_ARG_ENABLE(csri,
3759   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3760 AS_IF( [test "${enable_csri}" = "yes"], [
3761   PKG_CHECK_MODULES(CSRI,
3762       csri >= 0.1.0,
3763       [
3764         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3765         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3766         VLC_ADD_PLUGIN([csri])
3767       ],[
3768         AC_MSG_WARN([CSRI helper library not found])
3769       ])
3770   ])
3771
3772 dnl
3773 dnl libass subtitle rendering module
3774 dnl
3775 AC_ARG_ENABLE(libass,
3776   [  --enable-libass           Subtitle support using libass (default disabled)])
3777 AS_IF( [test "${enable_libass}" = "yes"], [
3778   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3779       [
3780         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3781         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3782         VLC_ADD_PLUGIN([libass])
3783
3784         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3785           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3786         if test "${SYS}" = "mingw32"; then
3787            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv  -lxml2])
3788         else
3789            VLC_ADD_LIBS([libass],[-lfontconfig])
3790         fi
3791        ])
3792       ],[
3793         AC_MSG_WARN([LIBASS library not found])
3794       ])
3795   ])
3796
3797 dnl
3798 dnl asa demuxer
3799 dnl
3800 AC_ARG_ENABLE(asademux,
3801   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3802 AS_IF( [test "${enable_asademux}" = "yes"], [
3803   PKG_CHECK_MODULES(PCRE,
3804       libpcre >= 6.5,
3805       [
3806         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3807         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3808         if test "${SYS}" = "mingw32"; then
3809                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3810         fi
3811         VLC_ADD_PLUGIN([asademux])
3812       ],[
3813         AC_MSG_WARN([PCRE library not found (required for asademux)])
3814       ])
3815   ])
3816
3817 dnl
3818 dnl  CMML plugin
3819 dnl
3820 AC_ARG_ENABLE(cmml,
3821   [  --enable-cmml           CMML support (default enabled)])
3822 if test "${enable_cmml}" != "no"
3823 then
3824   VLC_ADD_PLUGIN([cmml])
3825 fi
3826
3827 dnl
3828 dnl  kate decoder plugin
3829 dnl
3830 AC_ARG_ENABLE(kate,
3831 [  --enable-kate           kate codec (default enabled)])
3832 AS_IF([test "${enable_kate}" != "no"], [
3833   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3834       VLC_ADD_PLUGIN([kate])
3835       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3836       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3837         AC_CHECK_HEADERS(kate/kate.h, [
3838           AC_CHECK_LIB(kate, kate_decode_init, [
3839             VLC_ADD_PLUGIN([kate])
3840             kate_libs="-lkate -logg"
3841             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3842             AS_IF([test "x${enable_kate}" != "x"], [
3843               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3844               You also need to check that you have a libogg posterior to the 1.0 release.])
3845             ])
3846           ], [-lkate -logg])
3847         ],[
3848           AS_IF([test "x${enable_kate}" != "x"], [
3849             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3850             You also need to check that you have a libogg posterior to the 1.0 release.])
3851           ])
3852         ])
3853   ])
3854 ])
3855
3856
3857 dnl
3858 dnl  Video plugins
3859 dnl
3860
3861 AC_ARG_WITH(,[Video plugins:])
3862
3863 dnl Check for DPMS
3864 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3865   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3866   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3867     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3868     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3869       AC_MSG_RESULT(yes)
3870       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3871                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3872     ],[
3873       AC_MSG_RESULT(no)
3874     ])
3875   ],,[
3876     #include <X11/Xlib.h>
3877   ])
3878   CPPFLAGS="${CPPFLAGS_save}"
3879 fi
3880
3881 dnl
3882 dnl  X11 module
3883 dnl  (enabled by default except on win32)
3884 dnl
3885 AC_ARG_ENABLE(x11,
3886   [  --enable-x11            X11 support (default enabled)])
3887 if test "${enable_x11}" != "no" &&
3888   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3889    test "${enable_x11}" = "yes"); then
3890   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3891   AC_CHECK_HEADERS(X11/Xlib.h, [
3892     VLC_ADD_PLUGIN([panoramix])
3893     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3894     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3895     AC_CHECK_LIB(Xext, XShmAttach, [
3896       VLC_ADD_PLUGIN([x11])
3897       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3898       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3899     ])
3900   ])
3901   CPPFLAGS="${CPPFLAGS_save}"
3902 fi
3903
3904 dnl
3905 dnl  XVideo module
3906 dnl  (enabled by default except on win32)
3907 dnl
3908 AC_ARG_ENABLE(xvideo,
3909   [  --enable-xvideo         XVideo support (default enabled)])
3910 if test "${enable_xvideo}" != "no" &&
3911   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3912    test "${enable_xvideo}" = "yes"); then
3913   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3914   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3915     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3916     AC_CHECK_LIB(Xv,XvPutImage,[
3917         VLC_ADD_PLUGIN([xvideo])
3918         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3919         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3920     ])
3921     CFLAGS="${CFLAGS_save}"
3922   ]
3923   CPPFLAGS="${CPPFLAGS_save}")
3924 fi
3925
3926 dnl
3927 dnl  GLX module
3928 dnl  (enabled by default except on win32)
3929 dnl
3930 AC_ARG_ENABLE(glx,
3931   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3932 if test "${enable_glx}" != "no" &&
3933   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3934    test "${enable_glx}" = "yes"); then
3935   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3936   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3937   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3938     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3939     choke me
3940     #endif]]),
3941     [
3942       VLC_ADD_PLUGIN([glx])
3943       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3944       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3945     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3946   CPPFLAGS="${CPPFLAGS_save}"
3947 fi
3948
3949 dnl
3950 dnl  XVMC module
3951 dnl  (disabled by default except on win32)
3952 dnl
3953 AC_ARG_ENABLE(xvmc,
3954   [  --enable-xvmc           XVMC support (default disabled)])
3955 if test "${enable_xvmc}" = "yes" &&
3956   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3957    test "${enable_xvmc}" = "yes"); then
3958   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3959   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3960     VLC_ADD_PLUGIN([xvmc])
3961     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
3962     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3963   ])
3964   CPPFLAGS="${CPPFLAGS_save}"
3965 fi
3966
3967 dnl
3968 dnl  Check for the Xinerama extension
3969 dnl
3970 AC_ARG_ENABLE(xinerama,
3971   [  --enable-xinerama       Xinerama support (default enabled)])
3972 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3973   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3974    test "${enable_xvideo}" = "yes"); then
3975   ac_cv_have_xinerama="no"
3976   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3977   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3978   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3979     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3980       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3981       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3982       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3983       ac_cv_have_xinerama="yes"
3984     ],[
3985       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3986         VLC_ADD_LIBS([xvideo],[-lXinerama])
3987         VLC_ADD_LIBS([x11],[-lXinerama])
3988         VLC_ADD_LIBS([glx],[-lXinerama])
3989         ac_cv_have_xinerama="yes"
3990       ])
3991     ])
3992   ])
3993   if test "${ac_cv_have_xinerama}" = "yes"; then
3994     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3995   fi
3996   CFLAGS="${CFLAGS_save}"
3997   CPPFLAGS="${CPPFLAGS_save}"
3998
3999 dnl
4000 dnl  Check for XF86VidMode extension
4001 dnl
4002   ac_cv_have_xf86vidmode="no"
4003   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4004   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4005   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4006     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4007       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4008       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4009       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4010       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4011       ac_cv_have_xf86vidmode="yes"
4012     ],[
4013       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4014         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4015         VLC_ADD_LIBS([x11],[-lXxf86vm])
4016         VLC_ADD_LIBS([glx],[-lXxf86vm])
4017         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4018         ac_cv_have_xf86vidmode="yes"
4019       ])
4020     ])
4021   ],[true],
4022 [#ifdef HAVE_X11_XLIB_H
4023 # include <X11/Xlib.h>
4024 #endif]
4025    )
4026   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4027     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4028   ])
4029   CFLAGS="${CFLAGS_save}"
4030   CPPFLAGS="${CPPFLAGS_save}"
4031
4032 fi
4033
4034 dnl
4035 dnl  OpenGL module
4036 dnl  (enabled by default except on beos)
4037 dnl
4038 AC_ARG_ENABLE(opengl,
4039   [  --enable-opengl         OpenGL support (default enabled)])
4040 if test "${enable_opengl}" != "no" &&
4041    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4042   if test "${SYS}" != "darwin"; then
4043     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4044       VLC_ADD_PLUGIN([opengl])
4045       if test "${SYS}" != "mingw32"; then
4046         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4047       else
4048         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4049       fi
4050     ])
4051   else
4052     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4053     VLC_ADD_PLUGIN([opengl])
4054     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4055   fi
4056 fi
4057
4058 dnl
4059 dnl  SDL module
4060 dnl
4061 AC_ARG_ENABLE(sdl,
4062   [  --enable-sdl            SDL support (default enabled)])
4063 AC_ARG_ENABLE(sdl-image,
4064   [  --enable-sdl-image      SDL image support (default enabled)])
4065 if test "${enable_sdl}" != "no"
4066 then
4067   SDL_PATH="${PATH}"
4068   AC_ARG_WITH(sdl-config-path,
4069     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4070     [ if test "${with_sdl_config_path}" != "no"
4071       then
4072         SDL_PATH="${with_sdl_config_path}:${PATH}"
4073       fi ])
4074   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4075   SDL_CONFIG="${SDL12_CONFIG}"
4076   SDL_HEADER="SDL12/SDL.h"
4077   SDL_IMAGE="SDL12/SDL_image.h"
4078   if test "${SDL_CONFIG}" = "no"
4079   then
4080     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4081     SDL_CONFIG=${SDL11_CONFIG}
4082     SDL_HEADER="SDL11/SDL.h"
4083     SDL_IMAGE="SDL11/SDL_image.h"
4084   fi
4085   if test "${SDL_CONFIG}" = "no"
4086   then
4087     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4088     SDL_HEADER="SDL/SDL.h"
4089     SDL_IMAGE="SDL/SDL_image.h"
4090   fi
4091   # check for cross-compiling
4092   SDL_PREFIX=
4093   AC_ARG_WITH(sdl-prefix,
4094     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4095                                e.g use as:
4096                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4097   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4098   then
4099     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4100   fi
4101   if test "${SDL_CONFIG}" != "no"
4102   then
4103     # SDL on Darwin is heavily patched and can only run SDL_image
4104     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4105       VLC_ADD_PLUGIN([vout_sdl])
4106       VLC_ADD_PLUGIN([aout_sdl])
4107     fi
4108     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4109     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4110     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4111     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4112       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4113       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4114           As a last resort we also test for SDL.h presence),
4115       [ AC_MSG_ERROR([The development package for SDL is not installed.
4116 Please install it and try again. Alternatively you can also configure with
4117 --disable-sdl.])
4118       ])])
4119     AS_IF([ test "${enable_sdl_image}" != "no"],[
4120       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4121         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4122         VLC_ADD_PLUGIN([sdl_image])
4123         AC_CHECK_LIB(png, png_set_rows,
4124           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4125         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4126           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4127         AC_CHECK_LIB(tiff, TIFFClientOpen,
4128           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4129         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4130         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4131             As a last resort we also test for SDL_image.h presence),
4132         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4133   You should install it alongside your SDL package.])
4134         ])])
4135     ])
4136     CPPFLAGS="${CPPFLAGS_save}"
4137     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4138     then
4139       AC_MSG_ERROR([The development package for SDL is not installed.
4140 Please install it and try again. Alternatively you can also configure with
4141 --disable-sdl.])
4142     fi
4143
4144   elif test "${enable_sdl}" =  "yes"
4145   then
4146     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4147 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4148     ])
4149   fi
4150 fi
4151
4152 dnl
4153 dnl  freetype module
4154 dnl
4155 AC_ARG_ENABLE(freetype,
4156   [  --enable-freetype       freetype support (default enabled)])
4157 AC_ARG_ENABLE(fribidi,
4158   [  --enable-fribidi        fribidi support (default enabled)])
4159 if test "${enable_freetype}" != "no"
4160 then
4161    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4162       VLC_ADD_PLUGIN([freetype])
4163       have_freetype=yes
4164       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4165       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4166       if test "${SYS}" = "mingw32"; then
4167         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4168       fi
4169       if test "${SYS}" = "mingw32"; then
4170         VLC_ADD_LIBS([freetype],[-liconv])
4171       fi
4172     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4173       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4174        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4175     AC_CHECK_HEADERS(Carbon/Carbon.h,
4176       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4177   ],[
4178   have_freetype=no
4179   AS_IF([ test "${enable_freetype}" =  "yes"],[
4180     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4181 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4182       ])
4183     ])
4184   ])
4185
4186   dnl fribidi support
4187   if test "${enable_fribidi}" != "no"
4188   then
4189     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4190       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4191       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4192     ])
4193     fi
4194 fi
4195
4196 dnl
4197 dnl  libxml2 module
4198 dnl
4199 AC_ARG_ENABLE(libxml2,
4200   [  --enable-libxml2        libxml2 support (default enabled)])
4201 if test "${enable_libxml2}" != "no"
4202 then
4203   XML2_PATH="${PATH}"
4204   AC_ARG_WITH(xml2-config-path,
4205     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4206     [ if test "${with_xml2_config_path}" != "no"; then
4207         XML2_PATH="${with_xml2_config_path}:${PATH}"
4208       fi ])
4209   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4210   if test "${XML2_CONFIG}" != "no"; then
4211     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4212     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4213     dnl depends on the xmlTextReader extension
4214     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4215     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4216     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4217       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4218         VLC_ADD_PLUGIN([xml]) ],[
4219           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4220           if test "${enable_xml2}" = "yes"; then
4221             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4222           fi])
4223        ],[
4224       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4225       if test "${enable_xml2}" = "yes"; then
4226         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4227       fi])
4228     LDFLAGS="${LDFLAGS_save}"
4229     CPPFLAGS="${CPPFLAGS_save}"
4230   else
4231     if test "${enable_xml2}" = "yes"; then
4232       AC_MSG_ERROR([Could not find libxml2])
4233     fi
4234   fi
4235 fi
4236
4237 dnl
4238 dnl  SVG module
4239 dnl
4240 AC_ARG_ENABLE(svg,
4241   [  --enable-svg            SVG support (default disabled)])
4242 if test "${enable_svg}" = "yes"
4243 then
4244   PKG_CHECK_MODULES(SVG, 
4245         librsvg-2.0 >= 2.9.0,
4246         [
4247           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4248           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4249           VLC_ADD_PLUGIN([svg]) ],
4250         [AC_MSG_WARN(SVG library not found)])
4251 fi
4252
4253 dnl
4254 dnl Snapshot vout module (with cache)
4255 dnl
4256 AC_ARG_ENABLE(snapshot,
4257   [  --enable-snapshot       snapshot module (default disabled)])
4258 if test "${enable_snapshot}" = "yes"
4259 then
4260   VLC_ADD_PLUGIN([snapshot])
4261 fi
4262
4263 dnl
4264 dnl  Qt Embedded module
4265 dnl  (disabled by default)
4266 dnl
4267 AC_ARG_ENABLE(qte,
4268   [  --enable-qte            QT Embedded support (default disabled)])
4269 if test "${enable_qte}" = "yes"
4270 then
4271   AC_ARG_WITH(qte,
4272   [    --with-qte=PATH       Qt Embedded headers and libraries])
4273   if test "${with_qte}" != "no" -a -n "${with_qte}"
4274   then
4275     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4276     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])
4277   else
4278     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4279     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4280   fi
4281   VLC_ADD_PLUGIN([qte])
4282   NEED_QTE_MAIN=yes
4283   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4284   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4285     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4286   ] )
4287   CPPFLAGS="${CPPFLAGS_save}"
4288 fi
4289
4290 dnl
4291 dnl Roku HD1000 Video output module
4292 dnl
4293 AC_ARG_ENABLE(hd1000v,
4294   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4295 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4296   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4297    test "${enable_hd1000v}" = "yes"); then
4298   AC_LANG_PUSH([C++])
4299   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4300   [
4301     can_build_roku="yes"
4302   ],
4303   [
4304     can_build_roku="no"
4305     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4306   ])
4307   if test "$can_build_roku" = "yes"
4308   then
4309     VLC_ADD_PLUGIN([hd1000v])
4310     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4311   fi
4312   AC_LANG_POP([C++])
4313 fi
4314
4315 dnl
4316 dnl  Windows DirectX module
4317 dnl
4318
4319 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4320 then
4321   VLC_ADD_PLUGIN([panoramix])
4322 fi
4323
4324 AC_ARG_ENABLE(directx,
4325   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4326 if test "${enable_directx}" != "no"
4327 then
4328   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4329   then
4330     AC_ARG_WITH(directx,
4331     [    --with-directx=PATH   Win32 DirectX headers])
4332     if test -z "${with_directx}"
4333     then
4334       AC_CHECK_HEADERS(ddraw.h,
4335       [ VLC_ADD_PLUGIN([vout_directx])
4336         VLC_ADD_PLUGIN([aout_directx])
4337         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4338       ])
4339       AC_CHECK_HEADERS(GL/gl.h,
4340       [ VLC_ADD_PLUGIN([glwin32])
4341         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4342       ])
4343       AC_CHECK_HEADERS(d3d9.h,
4344       [ VLC_ADD_PLUGIN([direct3d])
4345         VLC_ADD_LIBS([direct3d],[-lgdi32])
4346       ])
4347     else
4348       AC_MSG_CHECKING(for directX headers in ${with_directx})
4349       if test -f ${with_directx}/ddraw.h
4350       then
4351         VLC_ADD_PLUGIN([vout_directx])
4352         VLC_ADD_PLUGIN([aout_directx])
4353         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4354         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4355         AC_MSG_RESULT(yes)
4356       else
4357         AC_MSG_RESULT(no)
4358         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4359       fi
4360     fi
4361   fi
4362 fi
4363
4364 dnl
4365 dnl  Linux framebuffer module
4366 dnl
4367 AC_ARG_ENABLE(fb,
4368   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4369     if test "${enable_fb}" != "no"
4370     then
4371       AC_CHECK_HEADERS(linux/fb.h, [
4372         VLC_ADD_PLUGIN([fb])
4373       ])
4374     fi
4375
4376 dnl
4377 dnl  Linux MGA module
4378 dnl
4379 AC_ARG_ENABLE(mga,
4380   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4381   [ if test "${enable_mga}" = "yes"
4382     then
4383       VLC_ADD_PLUGIN([mga])
4384     fi ])
4385
4386 dnl
4387 dnl  SVGAlib module
4388 dnl
4389 AC_ARG_ENABLE(svgalib,
4390   [  --enable-svgalib        SVGAlib support (default disabled)])
4391 if test "${enable_svgalib}" = "yes"
4392 then
4393   VLC_ADD_PLUGIN([svgalib])
4394   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4395 fi
4396
4397 dnl
4398 dnl  DirectFB module
4399 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4400 dnl  TODO: support for static linking
4401 dnl
4402 AC_ARG_ENABLE(directfb,
4403   [  --enable-directfb       DirectFB support (default disabled)])
4404 AC_ARG_WITH(directfb, 
4405   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4406
4407 if test "${enable_directfb}" = "yes"; then
4408     have_directfb="false"
4409     CPPFLAGS_mydirectfb=
4410     LIBS_mydirectfb=
4411     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4412         dnl Trying the given location
4413         CPPFLAGS_save="${CPPFLAGS}"
4414         LIBS_save="${LIBS}"
4415
4416         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4417         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4418         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4419
4420         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4421         LIBS="${LIBS} ${LIBS_new}"
4422
4423         dnl FIXME: too obscure
4424         AC_CHECK_HEADER([directfb.h], [
4425             AC_CHECK_LIB([direct],[direct_initialize], [
4426                 AC_CHECK_LIB([fusion], [fusion_enter], [
4427                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4428                 ], have_directfb="false")
4429             ], have_directfb="false")
4430         ], have_directfb="false")
4431
4432         dnl Restore flags
4433         CPPFLAGS="${CPPFLAGS_save}"
4434         LIBS="${LIBS_save}"
4435
4436         if test "${have_directfb}" = "true"; then
4437             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4438             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4439         fi
4440     else 
4441         dnl Look for directfb-config
4442         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4443         if test "${DIRECTFB_CONFIG}" != "no"; then
4444             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4445             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4446             have_directfb="true"
4447         else 
4448             dnl Trying with pkg-config
4449             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4450                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4451                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4452                 have_directfb="true"
4453                 ], [have_directfb="false"])
4454         fi
4455     fi
4456     if test "${have_directfb}" = "true"; then
4457         VLC_ADD_PLUGIN([directfb])
4458         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4459         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4460     else 
4461         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4462     fi
4463 fi
4464  
4465
4466
4467 dnl
4468 dnl  GGI module
4469 dnl
4470 AC_ARG_ENABLE(ggi,
4471   [  --enable-ggi            GGI support (default disabled)])
4472 if test "${enable_ggi}" = "yes"
4473 then
4474   VLC_ADD_PLUGIN([ggi])
4475   VLC_ADD_LIBS([ggi],[-lggi])
4476   AC_ARG_WITH(ggi,
4477     [    --with-ggi=PATH       path to libggi],
4478     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4479       then
4480         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4481         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4482       fi ])
4483 fi
4484
4485 dnl
4486 dnl  AA plugin
4487 dnl
4488 AC_ARG_ENABLE(aa,
4489   [  --enable-aa             aalib output (default disabled)])
4490 if test "${enable_aa}" = "yes"
4491 then
4492   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4493   if test "${have_aa}" = "true"
4494   then
4495     VLC_ADD_PLUGIN([aa])
4496     VLC_ADD_LIBS([aa],[-laa])
4497   fi
4498 fi
4499
4500 dnl
4501 dnl  libcaca plugin
4502 dnl
4503 AC_ARG_ENABLE(caca,
4504   [  --enable-caca           libcaca output (default disabled)])
4505 if test "${enable_caca}" = "yes"
4506 then
4507   CACA_PATH="${PATH}"
4508   AC_ARG_WITH(caca-config-path,
4509     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4510     [ if test "${with_caca_config_path}" != "no"
4511       then
4512         CACA_PATH="${with_caca_config_path}:${PATH}"
4513       fi ])
4514   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4515   if test "${CACA_CONFIG}" != "no"
4516   then
4517     VLC_ADD_PLUGIN([caca])
4518     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4519     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4520     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4521                                         caca_event_t ev;]],
4522                                         [[ev.type = 0;]]
4523                        )],
4524                        [],
4525       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4526     )
4527   fi
4528 fi
4529
4530 dnl
4531 dnl  win32 GDI plugin
4532 dnl
4533 AC_ARG_ENABLE(wingdi,
4534   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4535 if test "${enable_wingdi}" != "no"; then
4536   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4537     VLC_ADD_PLUGIN([wingdi])
4538     VLC_ADD_LIBS([wingdi],[-lgdi32])
4539   fi
4540   if test "${SYS}" = "mingwce"; then
4541     VLC_ADD_PLUGIN([wingdi])
4542     VLC_ADD_PLUGIN([wingapi])
4543   fi
4544 fi
4545
4546 dnl
4547 dnl  Audio plugins
4548 dnl
4549
4550 AC_ARG_WITH(,[Audio plugins:])
4551
4552 dnl
4553 dnl  OSS /dev/dsp module (enabled by default except on win32)
4554 dnl
4555 AC_ARG_ENABLE(oss,
4556   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4557
4558 if test "${enable_oss}" != "no" &&
4559   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4560    test "${enable_oss}" = "yes")
4561 then
4562   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4563     VLC_ADD_PLUGIN([oss])
4564     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4565   ])
4566 fi
4567
4568 dnl
4569 dnl  Esound module
4570 dnl
4571 AC_ARG_ENABLE(esd,
4572   [  --enable-esd            Esound library support (default disabled)],
4573   [if test "${enable_esd}" = "yes"
4574    then
4575      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4576      if test "${ESD_CONFIG}" != "no"
4577      then
4578        VLC_ADD_PLUGIN([esd])
4579        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4580        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4581      fi
4582    fi])
4583
4584 dnl
4585 dnl  Pulseaudio module
4586 dnl
4587 AC_ARG_ENABLE(pulse,
4588   [  --enable-pulse          Pulseaudio support (default enabled)])
4589   if test "${enable_pulse}" != "no"
4590    then
4591      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4592        [ VLC_ADD_PLUGIN([pulse])
4593         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4594         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4595        [AC_MSG_WARN(pulseaudio library not found)])
4596    fi
4597
4598 dnl
4599 dnl  Portaudio module
4600 dnl
4601 AC_ARG_ENABLE(portaudio,
4602   [  --enable-portaudio      Portaudio library support (default disabled)],
4603   [if test "${enable_portaudio}" = "yes"
4604    then
4605      VLC_ADD_PLUGIN([portaudio])
4606      VLC_ADD_CXXFLAGS([portaudio],[])
4607      if test "${SYS}" = "mingw32"; then
4608         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4609      else
4610         VLC_ADD_LIBS([portaudio],[-lportaudio])
4611      fi
4612    fi])
4613
4614 dnl
4615 dnl  aRts module
4616 dnl  broken? (froze wxWidgets back then)
4617 dnl
4618 AC_ARG_ENABLE(arts,
4619  [  --enable-arts           aRts sound server (default disabled)],
4620  [if test "${enable_arts}" = "yes"
4621   then
4622     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4623     if test "${ARTS_CONFIG}" != "no"
4624     then
4625       VLC_ADD_PLUGIN([arts])
4626       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4627       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4628     fi
4629   fi])
4630
4631 dnl
4632 dnl  ALSA module
4633 dnl
4634 AC_ARG_ENABLE(alsa,
4635   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4636 if test "${enable_alsa}" != "no"
4637 then
4638   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4639   if test "${have_alsa}" = "true"
4640   then
4641     CFLAGS="${CFLAGS_save}"
4642     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4643                     #define ALSA_PCM_NEW_SW_PARAMS_API
4644                     #include <alsa/asoundlib.h>],
4645        [snd_pcm_hw_params_get_period_time(0,0,0);],
4646         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4647     VLC_ADD_PLUGIN([alsa])
4648     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4649   else
4650     if test "${enable_alsa}" = "yes"; then
4651       AC_MSG_ERROR([Could not find ALSA development headers])
4652     fi
4653   fi
4654 fi
4655
4656 dnl
4657 dnl  win32 waveOut plugin
4658 dnl
4659 AC_ARG_ENABLE(waveout,
4660   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4661 if test "${enable_waveout}" != "no"; then
4662   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4663     VLC_ADD_PLUGIN([waveout])
4664     VLC_ADD_LIBS([waveout],[-lwinmm])
4665   fi
4666   if test "${SYS}" = "mingwce"; then
4667     VLC_ADD_PLUGIN([waveout])
4668   fi
4669 fi
4670
4671 dnl
4672 dnl  CoreAudio plugin
4673 dnl
4674 AC_ARG_ENABLE(macosx-audio,
4675   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4676 if test "${enable_macosx-audio}" != "no" &&
4677   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4678 then
4679   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4680     [ VLC_ADD_PLUGIN([auhal])
4681       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4682     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4683 fi
4684
4685 dnl
4686 dnl  Roku HD1000 audio
4687 dnl
4688 AC_ARG_ENABLE(hd1000a,
4689   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4690 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4691   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4692    test "${enable_hd1000a}" = "yes")
4693 then
4694   AC_LANG_PUSH([C++])
4695   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4696     VLC_ADD_PLUGIN([hd1000a])
4697     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4698   AC_LANG_POP([C++])
4699 fi
4700
4701 dnl
4702 dnl  JACK modules
4703 dnl
4704 AC_ARG_ENABLE(jack,
4705  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4706  [enable_jack="no"])
4707
4708 AS_IF([test "${enable_jack}" != "no"], [
4709   AC_CHECK_HEADERS(jack/jack.h, [
4710     VLC_ADD_PLUGIN([access_jack])
4711     VLC_ADD_PLUGIN([jack])
4712     VLC_ADD_LIBS([access_jack jack],[-ljack])
4713   ],[AC_MSG_ERROR([cannot find JACK headers])])
4714 ])
4715
4716 dnl
4717 dnl  CyberLink for C++ UPnP stack
4718 dnl
4719 AC_ARG_ENABLE(cyberlink,
4720   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4721   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4722   AC_ARG_WITH(cyberlink-tree,
4723     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4724
4725   dnl
4726   dnl test for --with-cyberlink-tree
4727   dnl
4728   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4729     AC_LANG_PUSH(C++)
4730     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4731     AS_IF([test -z "${real_cyberlink_tree}"], [
4732       dnl  The given directory can't be found
4733       AC_MSG_RESULT(no)
4734       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4735     ])
4736     CPPFLAGS_save="${CPPFLAGS}"
4737     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4738     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4739     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4740       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4741         VLC_ADD_PLUGIN([upnp_cc]) 
4742       ],[
4743         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4744       ])
4745     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4746     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4747       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4748       dnl The mere fact that we have to make such an ugly check sucks
4749       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4750       LIBS_save="$LIBS"
4751       LIBS_cclink="no"
4752       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4753         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4754         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4755 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4756 using namespace CyberLink;
4757
4758 class testclass : public SearchResponseListener, public MediaPlayer
4759 {
4760     virtual void deviceSearchResponseReceived( SSDPPacket *)
4761     {
4762     }
4763
4764     public:
4765       testclass (void)
4766       {
4767         addSearchResponseListener (this);
4768         start ();
4769       }
4770 };
4771 ],[testclass l;])],[LIBS_cclink="$l"])
4772       done
4773       LIBS="${LIBS_save}"
4774       dnl should not happen - otherwise this needs fixing - hence FAILURE
4775       AS_IF([test "${LIBS_cclink}" = "no"],
4776         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4777       AC_MSG_RESULT([${LIBS_cclink}])
4778       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4779     ], [
4780       AC_MSG_RESULT(no)
4781       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4782     ])
4783     CPPFLAGS="${CPPFLAGS_save}"
4784     AC_LANG_POP([C++])
4785   ])
4786 ])
4787
4788 dnl
4789 dnl UPnP Plugin (Intel SDK)
4790 dnl
4791 AC_ARG_ENABLE(upnp,
4792   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4793
4794 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4795 AS_IF([test "x${enable_upnp}" != "xno"], [
4796   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4797   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4798     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4799   ])
4800   AS_IF([test "${has_upnp}" = "yes"], [
4801     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4802   ])
4803 ], [
4804   has_upnp="no"
4805 ])
4806
4807 AS_IF([test "${has_upnp}" = "yes"], [
4808   VLC_ADD_PLUGIN([upnp_intel])
4809 ])
4810
4811
4812 dnl
4813 dnl  Interface plugins
4814 dnl
4815
4816 AC_ARG_WITH(,[Interface plugins:])
4817
4818 dnl special case for BeOS
4819 if test "${SYS}" = "beos"
4820 then
4821     VLC_ADD_PLUGIN([beos])
4822 fi
4823
4824 dnl
4825 dnl Skins2 module
4826 dnl
4827 AC_ARG_ENABLE(skins2,
4828   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4829    enabled except on MacOSX, BeOS and WinCE)])])
4830 if test "${enable_skins2}" = "yes" ||
4831   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4832    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4833
4834   dnl test for the required libraries
4835   skins2_missing_lib="no"
4836
4837   dnl freetype
4838   if test "${have_freetype}" != "yes"; then
4839     skins2_missing_lib="yes"
4840     if test "${enable_skins2}" = "yes"; then
4841       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4842     fi
4843   fi
4844
4845   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4846     VLC_ADD_PLUGIN([skins2])
4847     ALIASES="${ALIASES} svlc"
4848     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4849     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4850     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4851
4852   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4853     VLC_ADD_PLUGIN([skins2])
4854     ALIASES="${ALIASES} svlc"
4855     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4856     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4857     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4858
4859   else if test "${skins2_missing_lib}" = "no"; then
4860     VLC_ADD_PLUGIN([skins2])
4861     ALIASES="${ALIASES} svlc"
4862     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4863     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4864     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4865   fi fi fi
4866 fi
4867 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4868          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4869           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4870
4871 dnl
4872 dnl  PDA Gtk+2 module
4873 dnl
4874 AC_ARG_ENABLE(pda,
4875   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4876 if test "${enable_pda}" = "yes"
4877 then
4878   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4879   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4880   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4881   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4882   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4883   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4884   VLC_ADD_PLUGIN([pda])
4885   if test "${SYS}" != "mingw32"; then
4886     NEED_GTK2_MAIN=yes
4887     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4888     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4889   fi
4890 fi
4891 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4892
4893 dnl
4894 dnl QT 4
4895 dnl
4896 AC_ARG_ENABLE(qt4,
4897   [  --enable-qt4            QT 4 support (default enabled) ],, [
4898   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4899 ])
4900 AS_IF([test "${enable_qt4}" != "no"], [
4901   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0], [
4902     VLC_ADD_PLUGIN([qt4])
4903     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4904     ALIASES="${ALIASES} qvlc"
4905     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4906         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4907     ], [
4908         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
4909     ])
4910     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4911     AC_SUBST(QT4LOCALEDIR)
4912     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4913     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4914     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4915     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4916   ], [
4917     AS_IF([test "${enable_qt4}" = "yes"],[
4918       AC_MSG_ERROR([Qt 4 library not found])
4919     ],[
4920       AC_MSG_WARN([Qt 4 library not found])
4921     ])
4922     enable_qt4="no"
4923   ])
4924 ])
4925 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4926
4927 dnl
4928 dnl  WinCE GUI module
4929 dnl
4930 AC_ARG_ENABLE(wince,
4931   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4932 if test "${enable_wince}" != "no"; then
4933   if test "${SYS}" = "mingwce"; then
4934     VLC_ADD_PLUGIN([wince])
4935     VLC_ADD_CXXFLAGS([wince],[])
4936     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4937     dnl Gross hack
4938     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4939   elif test "${SYS}" = "mingw32"; then
4940     VLC_ADD_CXXFLAGS([wince],[])
4941     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4942     dnl Gross hack
4943     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4944   fi
4945 fi
4946
4947 dnl
4948 dnl Simple test for skins2 dependency
4949 dnl
4950 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4951   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.])
4952 ])
4953
4954 dnl
4955 dnl  Opie QT embedded module
4956 dnl
4957 AC_ARG_ENABLE(opie,
4958   [  --enable-opie           Qt embedded interface support (default disabled)],
4959   [if test "${enable_opie}" = "yes"; then
4960      AC_ARG_WITH(qte,
4961      [    --with-qte=PATH       Qt Embedded headers and libraries])
4962      if test "${with_qte}" != "no" -a -n "${with_qte}"
4963      then
4964        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4965        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])
4966      else
4967        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4968        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4969      fi
4970      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4971      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4972        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4973      ] )
4974      CPPFLAGS="${CPPFLAGS_save}"
4975
4976      VLC_ADD_PLUGIN([opie])
4977      NEED_QTE_MAIN=yes
4978      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4979      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4980      if test "${with_qte}" != "no" -a -n "${with_qte}"
4981      then
4982        MOC=${with_qte}/bin/moc
4983      else
4984        MOC=${QTDIR}/bin/moc
4985      fi
4986    fi])
4987
4988 dnl
4989 dnl  MacOS X video output/gui modules
4990 dnl
4991 AC_ARG_ENABLE(macosx,
4992   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4993 if test "x${enable_macosx}" = "xyes"
4994 then
4995   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4996   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4997   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4998   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4999   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5000   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5001   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5002   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5003   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
5004   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5005   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5006   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5007   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5008
5009   VLC_ADD_PLUGIN([access_eyetv])
5010   VLC_ADD_PLUGIN([qtcapture])
5011   VLC_ADD_PLUGIN([macosx])
5012   VLC_ADD_PLUGIN([minimal_macosx])
5013  
5014   ORIGCFLAGS=$CFLAGS
5015   CFLAGS="$CFLAGS -x objective-c"
5016   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>], 
5017   [VLC_ADD_PLUGIN([opengllayer])
5018   VLC_ADD_OBJCFLAGS([opengllayer], [-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5])])
5019   CFLAGS=$ORIGCFLAGS
5020 fi
5021
5022 dnl
5023 dnl  QNX RTOS module
5024 dnl
5025 AC_ARG_ENABLE(qnx,
5026   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5027     if test "${enable_qnx}" != "no"
5028     then
5029       AC_CHECK_HEADERS(Ph.h, [
5030         VLC_ADD_PLUGIN([qnx])
5031         VLC_ADD_LIBS([qnx],[-lasound -lph])
5032       ])
5033     fi
5034
5035 dnl
5036 dnl  ncurses module
5037 dnl
5038 AC_ARG_ENABLE(ncurses,
5039   [  --disable-ncurses       ncurses interface support (default enabled)],
5040   [if test "${enable_ncurses}" != "no"; then
5041     AC_CHECK_HEADER(ncurses.h,
5042       [AC_CHECK_LIB(ncursesw, mvprintw,
5043         [VLC_ADD_PLUGIN([ncurses])
5044         VLC_ADD_LIBS([ncurses],[-lncursesw])
5045         ALIASES="${ALIASES} nvlc"
5046         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5047         AC_CHECK_LIB(ncursesw, tgetent, [],
5048           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5049             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5050               [AS_IF([test "x${enable_ncurses}" != "x"],
5051                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5052                )])])
5053             ]
5054           )
5055         )
5056         ],
5057         [AC_CHECK_LIB( ncurses, mvprintw,
5058           [VLC_ADD_PLUGIN([ncurses])
5059           ALIASES="${ALIASES} nvlc"
5060           VLC_ADD_LIBS([ncurses],[-lncurses])
5061           AC_CHECK_LIB(ncurses, tgetent, [],
5062             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5063               [AS_IF([test "x${enable_ncurses}" != "x"],
5064                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5065             )]
5066           )],
5067           [AS_IF([test "x${enable_ncurses}" != "x"], [
5068             AC_MSG_ERROR([libncurses not found])])]
5069         )]
5070       )]
5071     )
5072   fi]
5073 )
5074
5075 dnl
5076 dnl  XOSD plugin
5077 dnl
5078 AC_ARG_ENABLE(xosd,
5079   [  --enable-xosd           xosd interface support (default disabled)])
5080 if test "${enable_xosd}" = "yes"
5081 then
5082   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5083   AC_CHECK_LIB(xosd,xosd_set_offset,
5084       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5085     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5086         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5087       AC_TRY_COMPILE([#include <xosd.h>],
5088          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5089           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5090   if test "${have_xosd}" = "true"
5091   then
5092     VLC_ADD_PLUGIN([xosd])
5093     VLC_ADD_LIBS([xosd],[-lxosd])
5094   fi
5095 fi
5096
5097 dnl
5098 dnl Framebuffer (overlay) plugin
5099 dnl
5100 AC_ARG_ENABLE(fbosd,
5101   [  --enable-fbosd          fbosd interface support (default disabled)])
5102 if test "${enable_fbosd}" = "yes"
5103 then
5104   AC_CHECK_HEADERS(linux/fb.h, [
5105     VLC_ADD_PLUGIN([fbosd])
5106  ])
5107 fi
5108
5109 dnl
5110 dnl Visualisation plugin
5111 dnl
5112 AC_ARG_ENABLE(visual,
5113   [  --enable-visual         visualisation plugin (default enabled)])
5114 if test "${enable_visual}" != "no"
5115 then
5116     VLC_ADD_PLUGIN([visual])
5117 fi
5118
5119 dnl
5120 dnl OpenGL visualisation plugin
5121 dnl
5122 AC_ARG_ENABLE(galaktos,
5123   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5124 if test "${enable_galaktos}" = "yes"
5125 then
5126   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5127     VLC_ADD_PLUGIN([galaktos])
5128     if test "${SYS}" != "mingw32"; then
5129       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5130     else
5131       VLC_ADD_LIBS([galaktos],[-lopengl32])
5132     fi
5133   ])
5134 fi
5135
5136 dnl
5137 dnl  goom visualization plugin
5138 dnl
5139 AC_ARG_ENABLE(goom,
5140 [  --enable-goom           goom visualisation plugin (default disabled)])
5141 if test "${enable_goom}" = "yes"
5142 then
5143   AC_ARG_WITH(goom-tree,
5144     [    --with-goom-tree=PATH goom tree for static linking (required)])
5145
5146   dnl
5147   dnl test for --with-goom-tree
5148   dnl
5149   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5150     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5151     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5152     if test -z "${real_goom_tree}"; then
5153       dnl  The given directory can't be found
5154       AC_MSG_RESULT(no)
5155       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5156     fi
5157     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5158       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5159       VLC_ADD_PLUGIN([goom])
5160       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5161       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5162     else
5163       dnl  The given libgoom2 wasn't built, try to look for the old goom
5164       AC_MSG_RESULT(no)
5165       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5166       if test -f "${real_goom_tree}/libgoom.a"; then
5167         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5168         VLC_ADD_PLUGIN([goom])
5169         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5170         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5171       else
5172         dnl  The given libgoom wasn't built
5173         AC_MSG_RESULT(no)
5174         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5175       fi
5176     fi
5177   else
5178     AC_CHECK_HEADERS(goom/goom.h, [
5179       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5180       AC_CHECK_LIB(goom2, goom_init, [
5181         VLC_ADD_PLUGIN([goom])
5182         VLC_ADD_LIBS([goom],[-lgoom2])
5183       ],[
5184         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5185       ])
5186       LDFLAGS="${LDFLAGS_save}"
5187     ])
5188   fi
5189 fi
5190
5191 dnl
5192 dnl  AtmoLight (homebrew AmbiLight)
5193 dnl
5194 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5195    AC_ARG_ENABLE(atmo,
5196 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight) 
5197                 (default enabled)]))
5198    if test "${enable_atmo}" != "no"; then
5199       AC_LANG_PUSH(C++)
5200       VLC_ADD_PLUGIN([atmo])
5201       AC_LANG_POP(C++)
5202    fi
5203 fi
5204
5205 dnl
5206 dnl  Bonjour services discovery
5207 dnl
5208 AC_ARG_ENABLE(bonjour,
5209   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5210 if test "${enable_bonjour}" != "no"
5211 then
5212   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5213     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5214        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5215       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5216       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5217       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5218       VLC_ADD_PLUGIN([bonjour]) ],
5219     [AC_MSG_WARN(avahi-client library not found)])
5220 fi
5221
5222 dnl
5223 dnl  Lirc plugin
5224 dnl
5225 AC_ARG_ENABLE(lirc,
5226   [  --enable-lirc           lirc support (default disabled)])
5227 if test "${enable_lirc}" = "yes"
5228 then
5229   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5230   if test "${have_lirc}" = "true"
5231   then
5232     VLC_ADD_PLUGIN([lirc])
5233     VLC_ADD_LIBS([lirc],[-llirc_client])
5234   fi
5235 fi
5236
5237
5238 AC_ARG_WITH(,[Misc options:])
5239
5240 dnl
5241 dnl libgcrypt
5242 dnl
5243 AC_ARG_ENABLE(libgcrypt,
5244   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5245 AS_IF([test "${enable_libgcrypt}" != "no"], [
5246   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5247 ])
5248 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5249   AS_IF([test "${have_libgcrypt}" = "yes"],[
5250     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5251   ])
5252 fi
5253 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5254
5255 dnl
5256 dnl TLS/SSL
5257 dnl
5258 AC_ARG_ENABLE(gnutls,
5259   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5260
5261 AS_IF([test "${enable_gnutls}" != "no"], [
5262   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5263     VLC_ADD_PLUGIN([gnutls])
5264     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5265     AS_IF([test "${SYS}" = "mingw32"], [
5266       dnl pkg-config --libs gnutls omits these
5267       VLC_ADD_LIBS([gnutls], [-lz])
5268       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5269     ])
5270     dnl The GnuTLS plugin invokes gcry_control directly.
5271     AS_IF([test "${have_libgcrypt}" = "yes"],[
5272       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5273       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5274     ])
5275     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5276   ], [
5277     AS_IF([test "${enable_gnutls}" = "yes"], [
5278       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5279     ])
5280   ])
5281 ])
5282
5283
5284 dnl
5285 dnl RemoteOSD plugin (VNC client as video filter)
5286 dnl
5287 AC_ARG_ENABLE(remoteosd,
5288   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5289
5290 AS_IF([test "${enable_remoteosd}" != "no"], [
5291   AS_IF([test "${have_libgcrypt}" = "yes"],[
5292     VLC_ADD_PLUGIN([remoteosd])
5293     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5294     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5295   ], [
5296     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5297   ])
5298 ])
5299
5300
5301 dnl
5302 dnl update checking system
5303 dnl
5304 AC_ARG_ENABLE(update-check,
5305   [  --enable-update-check   update checking system (default disabled)])
5306 if test "${enable_update_check}" = "yes"
5307 then
5308   if test "${have_libgcrypt}" != "yes"
5309   then
5310     AC_MSG_ERROR([libgcrypt is required for update checking system])
5311   fi
5312   VLC_ADD_LIBS([libvlc], [${LIBGCRYPT_LIBS}])
5313   VLC_ADD_CFLAGS([libvlc], [${LIBGCRYPT_CFLAGS}])
5314   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5315 fi
5316
5317 dnl
5318 dnl  Endianness check
5319 dnl
5320 AC_C_BIGENDIAN
5321 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5322   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5323 ], [
5324   DEFS_BIGENDIAN=""
5325 ])
5326 AC_SUBST(DEFS_BIGENDIAN)
5327
5328 dnl
5329 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5330 dnl
5331 loader=false
5332 AC_ARG_ENABLE(loader,
5333   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms 
5334                   (default disabled)]))
5335 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5336 AS_IF([test "${enable_loader}" = "yes"],
5337   [ VLC_ADD_PLUGIN([dmo])
5338     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5339     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5340     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5341     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5342     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5343     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5344     VLC_ADD_CPPFLAGS([realvideo],[-I../../@top_srcdir@/libs/loader -DLOADER])
5345     VLC_ADD_LIBS([realvideo],[../../libs/loader/libloader.la])
5346   ])
5347
5348 AC_ARG_WITH(,[Components:])
5349
5350 dnl
5351 dnl  the VLC binary
5352 dnl
5353 AC_ARG_ENABLE(vlc,
5354   [  --enable-vlc            build the VLC media player (default enabled)])
5355 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5356
5357 dnl
5358 dnl  Microsoft ActiveX support
5359 dnl
5360 activex=false
5361 AC_ARG_ENABLE(activex,
5362   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control 
5363                   (default enabled on Win32)]))
5364 AC_ARG_WITH(wine-sdk-path,
5365   [    --with-wine-sdk-path=PATH path to wine sdk])
5366 if test "${enable_activex}" != "no"
5367 then
5368   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5369   then
5370     AC_CHECK_PROGS(MIDL, [midl], no)
5371     if test "${with_wine_sdk_path}" != ""
5372     then
5373        WINE_SDK_PATH=${with_wine_sdk_path}
5374        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5375     else
5376        WIDL=no
5377     fi
5378     AC_LANG_PUSH(C++)
5379     AC_CHECK_HEADERS(ole2.h, 
5380       [AC_CHECK_HEADERS(olectl.h,
5381         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5382           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5383           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5384           AC_CHECK_HEADERS(objsafe.h,
5385             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5386             [
5387              #if HAVE_OLE2_H
5388              #   include <ole2.h>
5389              #endif
5390             ]
5391           )
5392           activex=:
5393           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5394         ],
5395         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5396       )],
5397       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5398     )
5399     AC_LANG_POP(C++)
5400   fi
5401 fi
5402 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5403 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5404 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5405 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5406 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5407
5408 dnl
5409 dnl  Mozilla plugin
5410 dnl
5411 mozilla=false
5412 AC_ARG_ENABLE(mozilla,
5413   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5414                   (default disabled)]))
5415 AC_ARG_WITH(mozilla-sdk-path,
5416   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5417 AC_LANG_PUSH(C++)
5418 if test "${enable_mozilla}" = "yes" 
5419 then
5420   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5421   need_xpcom_libs=false
5422
5423   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5424   then
5425     dnl New firefox-1.5 SDK api
5426     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5427       [
5428         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5429           [],
5430           [
5431             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5432               [],
5433               [
5434                 PKG_CHECK_MODULES([NSPR], [nspr],
5435                   [],
5436                   [
5437                     AC_MSG_ERROR([Please install the nspr development tools.])
5438                   ]
5439                 )
5440               ]
5441             )
5442           ])
5443         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5444         MOZILLA_REQUIRED_HEADERS=1
5445         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5446         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5447         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5448           [#if HAVE_NPAPI_H
5449            # include <npapi.h>
5450            #endif
5451           ])
5452         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5453             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5454         fi
5455         MOZILLA_REQUIRED_HEADERS=
5456         mozilla=:
5457         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5458         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5459             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5460         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5461             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5462         else
5463             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5464         fi
5465         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5466             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5467             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
5468         fi
5469         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5470         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5471         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5472         VLC_ADD_PLUGIN([mozilla])
5473         MOZILLA_CONFIG=
5474         CPPFLAGS="${CPPFLAGS_save}"
5475       ],
5476       [
5477         PKG_CHECK_MODULES([XULRUNNER], [libxul],
5478           [
5479             PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5480               [],
5481               [
5482                 PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5483                   [],
5484                   [
5485                     PKG_CHECK_MODULES([NSPR], [nspr],
5486                       [],
5487                       [
5488                         AC_MSG_ERROR([Please install the nspr development tools.])
5489                       ]
5490                     )
5491                   ]
5492                 )
5493               ]
5494             )
5495             CPPFLAGS="${CPPFLAGS_save} ${XULRUNNER_CFLAGS} ${XULRUNNER_CPPFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5496             MOZILLA_REQUIRED_HEADERS=1
5497             AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5498             AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5499               [#if HAVE_NPAPI_H
5500                # include <npapi.h>
5501                #endif
5502               ])
5503             if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5504                 AC_MSG_ERROR([Please install the Mozilla runtime package xulrunner-devel; plugplugin/npapi.h and plugin/npruntime.h were not found.])
5505             fi
5506             MOZILLA_REQUIRED_HEADERS=
5507             mozilla=:
5508             AC_DEFINE([XP_UNIX],[1],[Defined for Mozilla as we are Unix])
5509             AC_DEFINE([MOZ_X11],[1],[Defined as Unix mozilla uses X11])
5510             AC_DEFINE([OJI],[1],[Java Runtime Interface])
5511             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5512             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
5513             VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5514             VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5515             VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5516             VLC_ADD_PLUGIN([mozilla])
5517             MOZILLA_CONFIG=
5518             CPPFLAGS="${CPPFLAGS_save}"
5519           ],
5520           [
5521             AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5522             if test "${MOZILLA_CONFIG}" = "no"
5523             then
5524               AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5525               if test "${SEAMONKEY_CONFIG}" = "no"
5526               then
5527                 AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5528                 if test "${XULRUNNER_CONFIG}" = "no"
5529                 then
5530                   AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5531                 else
5532                   have_xul=true
5533                   MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5534                 fi
5535               else
5536                 MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5537               fi
5538             fi
5539           ]
5540         )
5541       ]
5542     )
5543     if test ! -z "${MOZILLA_CONFIG}"
5544     then
5545       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5546         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5547         AC_CHECK_LIB(Xt,XtStrings,
5548          [
5549            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5550            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5551          ],
5552          [],
5553          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5554         ])
5555         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5556         LDFLAGS="${LDFLAGS_save}"
5557       fi
5558
5559       mozilla=:
5560       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5561       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5562       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5563       if ${need_xpcom_libs}; then
5564          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5565       else
5566          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5567       fi
5568       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5569       MOZILLA_REQUIRED_HEADERS=1
5570       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5571       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5572       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5573         [#if HAVE_NPAPI_H
5574          # include <npapi.h>
5575          #endif
5576         ])
5577       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5578       then
5579         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5580       fi
5581       MOZILLA_REQUIRED_HEADERS=
5582       CPPFLAGS="${CPPFLAGS_save}"
5583       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5584     fi
5585     dnl End of moz_sdk = ""
5586   else
5587     dnl special case for mingw32
5588     if test "${SYS}" = "mingw32"
5589     then
5590       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5591       dnl latest gecko sdk does not have an xpcom directory
5592       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5593           mozilla_sdk_xpcom="/xpcom"
5594       fi
5595     fi
5596
5597     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5598     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5599     MOZILLA_REQUIRED_HEADERS=1
5600     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5601     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5602     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5603         [#if HAVE_NPAPI_H
5604           #include <npapi.h>
5605           #endif
5606         ])
5607     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5608     then
5609         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5610     fi
5611     MOZILLA_REQUIRED_HEADERS=
5612     mozilla=:
5613     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5614     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])
5615     if ${need_xpcom_libs}; then
5616        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])
5617       if test "${SYS}" = "mingw32"; then
5618         dnl latest gecko sdk does not have embedstring
5619         if test -d "${real_mozilla_sdk}/embedstring/bin"
5620         then
5621           VLC_ADD_LIBS([mozilla],[-lembedstring])
5622         fi
5623       fi
5624     fi
5625     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5626
5627     if test -n "${CYGPATH}"; then
5628       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5629     fi
5630     CPPFLAGS="${CPPFLAGS_save}"
5631   fi
5632 fi
5633 AC_LANG_POP(C++)
5634 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5635
5636 dnl Tests for Osso and Xsp
5637 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5638   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5639     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5640     VLC_ADD_LIBS([x11 xvideo xvmc glx],[-losso])
5641  ])
5642 ])
5643 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5644   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5645   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5646 ])
5647
5648 dnl
5649 dnl  test plugins
5650 dnl
5651 AC_ARG_ENABLE(testsuite,
5652   [  --enable-testsuite      build test modules (default disabled)])
5653 if test "${enable_testsuite}" = "yes"
5654 then
5655   TESTS="test1 test2 test3 test4"
5656
5657   dnl  we define those so that bootstrap sets the right linker
5658   VLC_ADD_CXXFLAGS([test2],[])
5659   VLC_ADD_OBJCFLAGS([test3],[])
5660   dnl  this one is needed until automake knows what to do
5661   VLC_ADD_LIBS([test3],[-lobjc])
5662
5663   VLC_ADD_PLUGIN([test1])
5664   VLC_ADD_PLUGIN([test2])
5665   VLC_ADD_PLUGIN([test3])
5666   VLC_ADD_PLUGIN([test4])
5667 fi
5668
5669 dnl
5670 dnl  gtk_main plugin
5671 dnl
5672 if test "${NEED_GTK_MAIN}" != "no"
5673 then
5674     VLC_ADD_PLUGIN([gtk_main])
5675     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5676     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5677 fi
5678
5679 if test "${NEED_GNOME_MAIN}" != "no"
5680 then
5681     VLC_ADD_PLUGIN([gnome_main])
5682     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5683     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5684 fi
5685
5686 if test "${NEED_GTK2_MAIN}" != "no"
5687 then
5688     VLC_ADD_PLUGIN([gtk2_main])
5689     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5690     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5691     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5692     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5693 fi
5694
5695 if test "${NEED_GNOME2_MAIN}" != "no"
5696 then
5697     VLC_ADD_PLUGIN([gnome2_main])
5698     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5699     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5700 fi
5701
5702 dnl
5703 dnl  qte_main plugin
5704 dnl
5705 if test "${NEED_QTE_MAIN}" != "no"
5706 then
5707     VLC_ADD_PLUGIN([qte_main])
5708     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5709     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5710     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5711 fi
5712
5713 dnl
5714 dnl  Plugin and builtin checks
5715 dnl
5716 plugin_support=yes
5717
5718 dnl Automagically disable plugins if there is no system support for
5719 dnl dynamically loadable files (.so, .dll, .dylib).
5720 dnl don't forget vlc-win32 still can load .dll as plugins
5721 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5722   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5723   plugin_support=no
5724 ])
5725
5726 AS_IF([test "${enable_shared}" = "no"], [
5727   plugin_support=no
5728 ])
5729
5730 AS_IF([test "${plugin_support}" != "no"], [
5731   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5732 ])
5733 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5734
5735 dnl Temporary(?) hack for plugins/builtins transition
5736 dnl VLC_ADD_PLUGIN([${BUILTINS}])
5737 dnl BUILTINS=""
5738
5739 dnl
5740 dnl Pic and shared libvlc stuff
5741 dnl
5742 AS_IF([test "${SYS}" = "mingw32"], [
5743   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5744   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5745 ])
5746
5747 dnl
5748 dnl  Stuff used by the program
5749 dnl
5750 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5751 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5752 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5753 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5754 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5755 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5756 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5757 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5758 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5759 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5760 AC_SUBST(COPYRIGHT_MESSAGE)
5761 AC_SUBST(VERSION_MESSAGE)
5762 AC_SUBST(VERSION_MAJOR)
5763 AC_SUBST(VERSION_MINOR)
5764 AC_SUBST(VERSION_REVISION)
5765 AC_SUBST(COPYRIGHT_YEARS)
5766 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5767 if test "${build_os}" = "cygwin"
5768 then
5769     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5770 else
5771     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5772 fi
5773 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5774 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5775 dnl Win32 need s a numerical version_extra.
5776 case $( echo ${VERSION_EXTRA}|wc -m ) in 
5777        "1") VERSION_EXTRA_RC="0";;
5778        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5779        *) VERSION_EXTRA_RC="99"
5780 esac
5781 AC_SUBST(VERSION_EXTRA_RC)
5782 dnl
5783 dnl  Handle substvars that use $(top_srcdir)
5784 dnl
5785 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5786 AC_SUBST(VLC_CONFIG)
5787 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5788
5789 dnl
5790 dnl  Restore *FLAGS
5791 dnl
5792 VLC_RESTORE_FLAGS
5793
5794 dnl
5795 dnl Sort the modules list
5796 dnl 
5797 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5798
5799 dnl
5800 dnl  Create the vlc-config script
5801 dnl
5802 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5803
5804 dnl
5805 dnl  Configuration is finished
5806 dnl
5807 AC_SUBST(SYS)
5808 AC_SUBST(ARCH)
5809 AC_SUBST(ALIASES)
5810 AC_SUBST(ASM)
5811 AC_SUBST(MOC)
5812 AC_SUBST(RCC)
5813 AC_SUBST(UIC)
5814 AC_SUBST(WINDRES)
5815 AC_SUBST(MOZILLA_SDK_PATH)
5816 AC_SUBST(WINE_SDK_PATH)
5817 AC_SUBST(LIBEXT)
5818 AC_SUBST(AM_CPPFLAGS)
5819 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5820 AC_SUBST(FILE_LIBVLCCORE_DLL)
5821 AC_SUBST(FILE_LIBVLC_DLL)
5822
5823 dnl Create vlc-config.in
5824 VLC_OUTPUT_VLC_CONFIG_IN
5825
5826 AC_CONFIG_FILES([
5827   extras/package/win32/vlc.win32.nsi
5828   extras/package/macosx/Info.plist
5829   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5830   extras/package/macosx/plugin/Info.plist
5831   extras/package/macosx/plugin/InstallerInfo.plist
5832   extras/package/macosx/plugin/English.lproj/InfoPlist.strings
5833   Makefile
5834   projects/activex/Makefile
5835   projects/activex/axvlc.inf
5836   doc/Makefile
5837   extras/package/ipkg/Makefile
5838   libs/loader/Makefile
5839   libs/srtp/Makefile
5840   modules/Makefile
5841   projects/mozilla/Makefile
5842   m4/Makefile
5843   po/Makefile.in
5844   projects/activex/axvlc_rc.rc
5845   projects/mozilla/npvlc_rc.rc
5846   share/Makefile
5847   share/vlc_win32_rc.rc
5848   share/libvlc_win32_rc.rc
5849   src/Makefile
5850   test/Makefile
5851 ])
5852
5853 AC_CONFIG_FILES([
5854   modules/access/Makefile
5855   modules/access/bda/Makefile
5856   modules/access/dshow/Makefile
5857   modules/access/dvb/Makefile
5858   modules/access/mms/Makefile
5859   modules/access/cdda/Makefile
5860   modules/access/rtsp/Makefile
5861   modules/access/rtmp/Makefile
5862   modules/access/v4l2/Makefile
5863   modules/access/vcd/Makefile
5864   modules/access/vcdx/Makefile
5865   modules/access/screen/Makefile
5866   modules/access_filter/Makefile
5867   modules/access_output/Makefile
5868   modules/audio_filter/Makefile
5869   modules/audio_filter/channel_mixer/Makefile
5870   modules/audio_filter/converter/Makefile
5871   modules/audio_filter/resampler/Makefile
5872   modules/audio_filter/spatializer/Makefile
5873   modules/audio_mixer/Makefile
5874   modules/audio_output/Makefile
5875   modules/codec/Makefile
5876   modules/codec/avcodec/Makefile
5877   modules/codec/cmml/Makefile
5878   modules/codec/dmo/Makefile
5879   modules/codec/subtitles/Makefile
5880   modules/codec/spudec/Makefile
5881   modules/codec/xvmc/Makefile
5882   modules/control/Makefile
5883   modules/control/http/Makefile
5884   modules/demux/Makefile
5885   modules/demux/asf/Makefile
5886   modules/demux/avformat/Makefile
5887   modules/demux/avi/Makefile
5888   modules/demux/mp4/Makefile
5889   modules/demux/mpeg/Makefile
5890   modules/demux/playlist/Makefile
5891   modules/gui/Makefile
5892   modules/gui/beos/Makefile
5893   modules/gui/pda/Makefile
5894   modules/gui/macosx/Makefile
5895   modules/gui/minimal_macosx/Makefile
5896   modules/gui/qnx/Makefile
5897   modules/gui/qt4/Makefile
5898   modules/gui/skins2/Makefile
5899   modules/gui/wince/Makefile
5900   modules/meta_engine/Makefile
5901   modules/misc/Makefile
5902   modules/misc/dummy/Makefile
5903   modules/misc/lua/Makefile
5904   modules/misc/memcpy/Makefile
5905   modules/misc/notify/Makefile
5906   modules/misc/testsuite/Makefile
5907   modules/misc/playlist/Makefile
5908   modules/misc/osd/Makefile
5909   modules/misc/stats/Makefile
5910   modules/misc/xml/Makefile
5911   modules/misc/probe/Makefile
5912   modules/mux/Makefile
5913   modules/mux/mpeg/Makefile
5914   modules/packetizer/Makefile
5915   modules/services_discovery/Makefile
5916   modules/stream_out/Makefile
5917   modules/stream_out/transrate/Makefile
5918   modules/video_chroma/Makefile
5919   modules/video_filter/Makefile
5920   modules/video_filter/atmo/Makefile
5921   modules/video_filter/dynamicoverlay/Makefile
5922   modules/video_output/Makefile
5923   modules/video_output/msw/Makefile
5924   modules/video_output/qte/Makefile
5925   modules/video_output/x11/Makefile
5926   modules/visualization/Makefile
5927   modules/visualization/visual/Makefile
5928   modules/visualization/galaktos/Makefile
5929 ])
5930
5931 dnl Generate makefiles
5932 AC_OUTPUT
5933
5934 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5935 # not provided with the source
5936 ${SHELL} ./config.status --file=vlc-config
5937 chmod 0755 vlc-config
5938
5939 /bin/echo -n "Enabled modules: "
5940 ./vlc-config --list plugin
5941
5942 dnl Shortcut to nice compile message
5943 rm -f compile
5944 echo '#! /bin/sh' >compile
5945 echo rm -f .error\$\$ >>compile
5946 echo ERROR=0 >>compile
5947 echo export PATH=$PATH LANG=C >>compile
5948 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5949 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5950 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5951 echo rm -f .error\$\$ >>compile
5952 echo exit \$ERROR >>compile
5953 chmod a+x compile
5954
5955 printf "
5956 libvlc configuration
5957 --------------------
5958 version               : ${VERSION}
5959 system                : ${SYS}
5960 architecture          : ${ARCH}
5961 build flavour         : "
5962 test "${enable_debug}" = "yes" && printf "debug "
5963 test "${enable_cprof}" = "yes" && printf "cprof "
5964 test "${enable_gprof}" = "yes" && printf "gprof "
5965 test "${enable_optimizations}" = "yes" && printf "optim "
5966 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5967 echo ""
5968 if test "${enable_vlc}" != "no"; then
5969 echo "vlc aliases           :${ALIASES}"
5970 else
5971 echo "build vlc executable  : no"
5972 fi
5973 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5974
5975 You can tune the compiler flags in vlc-config.
5976 To build vlc and its plugins, type \`./compile' or \`make'.
5977 "
5978 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5979    echo ""
5980    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5981    echo "         turned off."
5982    echo "         FFmpeg will be REALLY slow."
5983    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5984    echo ""
5985 fi