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