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