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