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