Missing checks for alloca and mmap
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
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.59) dnl this really should be 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
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  Save *FLAGS
34 dnl
35 VLC_SAVE_FLAGS
36
37 dnl
38 dnl Check for tools
39 dnl
40 AC_PROG_CC_C99
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then 
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104     if test -z $with_live555_tree; then
105        with_live555_tree=${topdir}/extras/contrib/src/live
106     fi
107     if test -z $with_goom_tree; then
108        with_goom_tree=${topdir}/extras/contrib/src/goom
109     fi
110     if test -z $with_mozilla_sdk_path; then
111        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
112     fi
113     if test -z $with_cyberlink_tree; then
114        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
115     fi
116     if test -z $with_libmpeg2_tree; then
117        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
118     fi
119     if test -z $with_a52_tree; then
120        with_a52_tree=${topdir}/extras/contrib/src/a52dec
121     fi
122
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
173     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
175     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
176     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
177     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx],[-Wl,-read_only_relocs,suppress])
178     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
179     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
180     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
181     AC_ARG_ENABLE(macosx-defaults,
182         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
183     if test "x${enable_macosx_defaults}" != "xno"
184     then
185         echo ""
186         echo "Building with Mac OS X defaults:"
187         with_macosx_version_min="10.4"
188         echo "  Assuming --with-macosx-version-min=10.4"
189         build_dir=`pwd`
190         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
191         ac_default_prefix="${build_dir}/vlc_install_dir"
192         enable_macosx="yes"
193         echo "  Assuming --enable-macosx"
194         enable_faad="yes"
195         echo "  Assuming --enable-faad"
196         enable_flac="yes"
197         echo "  Assuming --enable-flac"
198         enable_theora="yes"
199         echo "  Assuming --enable-theora"
200         enable_shout="yes"
201         echo "  Assuming --enable-shout"
202         enable_cddax="yes"
203         echo "  Assuming --enable-cddax"
204         enable_vcdx="yes"
205         echo "  Assuming --enable-vcdx"
206         enable_caca="yes"
207         echo "  Assuming --enable-caca"
208         enable_goom="yes"
209         echo "  Assuming --enable-goom"
210         enable_ncurses="yes"
211         echo "  Assuming --enable-ncurses"
212         enable_twolame="yes"
213         echo "  Assuming --enable-twolame"
214         enable_realrtsp="yes"
215         echo "  Assuming --enable-realrtsp"
216
217         enable_skins2="no"
218         echo "  Assuming --disable-skins2"
219         enable_x11="no"
220         echo "  Assuming --disable-x11"
221         enable_glx="no"
222         echo "  Assuming --disable-glx"
223         enable_xvideo="no"
224         echo "  Assuming --disable-xvideo"
225
226         with_macosx_sdk=""
227         echo "  Compiling with default SDK"
228     fi
229     if test ".`uname -p`" = ".i386"; then
230         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
231         dnl without hacking it a lot, we disable mmx and sse.
232         dnl (that bug is about ld being unable to handle
233         dnl text relocation)
234         save_cflags="$CFLAGS"
235         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
236         AC_TRY_LINK(
237             [int a;], [asm("movq _a,%mm0\n");],
238             ac_ld_does_not_support_text_reloc=no,
239             ac_ld_does_not_support_text_reloc=yes)
240         CFLAGS="$save_cflags"
241
242         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
243             enable_mmx="no"
244             echo "  Assuming --disable-mmx (due to a bug in ld)"
245             enable_sse="no"
246             echo "  Assuming --disable-sse (due to a bug in ld)"
247         fi
248     fi
249     dnl
250     dnl  Check for Mac OS X SDK settings
251     dnl
252     AC_ARG_WITH(macosx-sdk,
253        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
254     if test "${with_macosx_sdk}" != "" ; then
255         CC="${CC} -isysroot ${with_macosx_sdk}" 
256         CXX="${CXX} -isysroot ${with_macosx_sdk}"
257         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
258         LD="${LD} -syslibroot ${with_macosx_sdk}"
259     fi
260     AC_ARG_WITH(macosx-version-min,
261        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
262     if test "${with_macosx_version_min}" != "" ; then
263         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
264         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
265         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
266         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
267         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
268         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
269         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
270         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
271         export MACOSX_DEPLOYMENT_TARGET
272     fi
273     ;;
274   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
275     AC_CHECK_TOOL(WINDRES, windres, :)
276
277     case "${host_os}" in
278       *mingw32*)
279         SYS=mingw32
280         ;;
281       *cygwin*)
282         dnl Check if we are using the mno-cygwin mode in which case we are
283         dnl actually dealing with a mingw32 compiler.
284         AC_EGREP_CPP(yes,
285             [#ifdef WIN32
286              yes
287              #endif],
288             SYS=mingw32, SYS=cygwin)
289         ;;
290       *wince* | *mingwce* | *pe*)
291         SYS=mingwce
292         ;;
293     esac
294
295     if test "${SYS}" = "mingw32"; then
296         # add ws2_32 for closesocket, select, recv
297         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
298         VLC_ADD_LDFLAGS([vlc],[-mwindows])
299         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
300         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
301         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl flac ts audioscrobbler lua],[-lws2_32])
302     fi
303     if test "${SYS}" = "mingwce"; then
304         # add ws2 for closesocket, select, recv
305         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
306         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
307         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
308    fi
309     ;;
310   *nto*)
311     SYS=nto
312     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
313     ;;
314   solaris*)
315     SYS=solaris
316     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
317     # Perhaps it is useful other places as well? 
318     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
319     ;;
320   hpux*)
321     SYS=hpux
322     ;;
323   beos)
324     SYS=beos
325     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
326     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
327     VLC_ADD_CXXFLAGS([beos],[])
328     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
329     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
330     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
331     VLC_ADD_LIBS([access_file],[-lpoll])
332     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
333     dnl Check for BONE
334     if test -f /boot/beos/system/lib/libbind.so; then
335         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket])
336     else
337         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet])
338     fi
339
340     dnl Ugly check for Zeta
341     if test -f /boot/beos/system/lib/libzeta.so; then
342         VLC_ADD_LIBS([beos],[-lzeta])
343     fi
344     ;;
345   *)
346     SYS="${host_os}"
347     ;;
348 esac
349 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
350 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
351 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
352 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
353
354 dnl
355 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
356 dnl for program foo on win32
357
358 case "${build_os}" in
359     cygwin|msys)
360         ac_executable_extensions=".exe"
361     ;;
362     *)
363     ;;
364 esac
365
366 dnl 
367 dnl  Libtool
368 dnl  It's very bad, but our former custom system was worst
369 dnl  -- Courmisch
370 dnl
371
372 dnl override platform specific check for dependent libraries
373 dnl otherwise libtool linking of shared libraries will
374 dnl fail on anything other than pass_all.
375 AC_CACHE_VAL(lt_cv_deplibs_check_method,
376     [lt_cv_deplibs_check_method=pass_all])
377
378 AC_DISABLE_STATIC
379 AC_DISABLE_FAST_INSTALL
380 AC_LIBTOOL_DLOPEN
381 AC_LIBTOOL_WIN32_DLL
382 m4_undefine([AC_PROG_F77])
383 m4_defun([AC_PROG_F77],[])
384 AC_PROG_LIBTOOL
385
386 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
387 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
388
389 lt_cv_deplibs_check_method=pass_all
390
391
392 dnl
393 dnl Gettext stuff
394 dnl
395 AM_GNU_GETTEXT_VERSION(0.16.1)
396 AM_GNU_GETTEXT([external])
397 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
398
399 dnl
400 dnl Iconv stuff
401 dnl
402 AM_ICONV
403 AS_IF([test "$am_cv_func_iconv" != "yes"],
404         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
405 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
406 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
407
408 dnl Check for the need to include the mingwex lib for mingw32
409 if test "${SYS}" = "mingw32"
410 then
411     AC_CHECK_LIB(mingwex,opendir,
412         AC_CHECK_LIB(mingw32,opendir,,
413             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
414     )
415 fi
416
417 dnl Check for fnative-struct or mms-bitfields support for mingw32
418 if test "${SYS}" = "mingw32"
419 then
420     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
421         [ac_cv_c_mms_bitfields],
422         [CFLAGS="${CFLAGS_save} -mms-bitfields"
423          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
424     if test "${ac_cv_c_mms_bitfields}" != "no"; then
425         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
426         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
427     else
428         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
429             [ac_cv_c_fnative_struct],
430             [CFLAGS="${CFLAGS_save} -fnative-struct"
431              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
432         if test "${ac_cv_c_fnative_struct}" != "no"; then
433             CFLAGS_save="${CFLAGS_save} -fnative-struct";
434             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
435         fi
436     fi
437
438     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
439 fi
440
441 dnl Check for fvtable-thunks support for mingw32
442 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
443 then
444 AC_LANG_PUSH(C++)
445     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
446         [ac_cv_cxx_fvtable_thunks],
447         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
448          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
449                         ac_cv_cxx_fvtable_thunks=no)])
450     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
451         CXXFLAGS_mingw32_special="-fvtable-thunks"
452     fi
453
454     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
455 AC_LANG_POP(C++)
456 fi
457
458 dnl Plugin compilation stuff
459
460 VLC_LIBRARY_SUFFIX
461
462 VLC_SYMBOL_PREFIX
463 AC_SUBST(SYMPREF)
464
465 dnl The -DSYS_FOO flag
466 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
467
468 dnl Check for system libs needed
469 need_libc=false
470
471 dnl Check for usual libc functions
472 AC_CHECK_FUNCS([gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid 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 mmap])
473 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
474 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
475 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
476 AC_FUNC_ALLOCA
477
478 AH_BOTTOM([#include <vlc_fixups.h>])
479
480 AS_IF([test "${SYS}" = "linux"], [
481   AC_CHECK_FUNCS(tee)
482 ])
483
484 dnl Check for setlocal and langinfo
485 AC_CHECK_FUNCS(setlocale)
486 AC_CHECK_HEADERS(langinfo.h)
487 AC_CHECK_FUNCS(nl_langinfo)
488
489 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
490   [AC_TRY_LINK([#include <langinfo.h>],
491     [char* cs = nl_langinfo(CODESET);],
492     ac_cv_langinfo_codeset=yes,
493     ac_cv_langinfo_codeset=no)
494   ])
495 if test ${ac_cv_langinfo_codeset} = yes; then
496   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
497     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
498 fi
499
500 AC_CHECK_FUNCS(connect,,[
501   AC_CHECK_LIB(socket,connect,[
502     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
503     LIBS_socket="-lsocket"
504   ])
505 ])
506
507 AC_CHECK_FUNCS(send,,[
508   AC_CHECK_LIB(socket,send,[
509     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
510   ])
511 ])
512
513 AC_CHECK_FUNCS(gethostbyname,,[
514   AC_CHECK_LIB(nsl,gethostbyname,[
515     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
516   ],[
517     AC_CHECK_LIB(bind,gethostbyname,[
518       VLC_ADD_LIBS([access_mms],[-lbind])
519     ])
520   ])
521 ])
522
523 AC_CHECK_HEADERS(zlib.h, [
524   VLC_ADD_LIBS([access_http],[-lz])
525 ])
526
527 dnl Check for socklen_t
528 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
529 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
530 ac_cv_type_socklen_t,
531 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
532 [#include <sys/types.h>
533 #ifdef WIN32
534 # include <winsock2.h>
535 # include <ws2tcpip.h>
536 #else
537 # include <sys/socket.h>
538 #endif]], [[socklen_t len; len = 0;]])],
539 ac_cv_type_socklen_t=yes,
540 ac_cv_type_socklen_t=no)])
541 AS_IF([test "$ac_cv_type_socklen_t" = no],
542  [AC_DEFINE(socklen_t, int)])
543
544 dnl Check for struct sockaddr_storage
545 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
546 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
547 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
548   [AC_TRY_COMPILE(
549     [#include <sys/types.h>
550      #if defined( UNDER_CE )
551      # include <winsock.h>
552      #elif defined( WIN32 )
553      # include <winsock2.h>
554      #else
555      # include <sys/socket.h>
556      #endif], [struct sockaddr_storage addr;],
557      ac_cv_struct_sockaddr_storage=yes,
558      ac_cv_struct_sockaddr_storage=no)])
559 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
560   AC_DEFINE(sockaddr_storage, sockaddr)
561   AC_DEFINE(ss_family, sa_family)
562 ])
563
564 dnl getaddrinfo, getnameinfo and gai_strerror check
565 dnl  -lnsl and -lsocket are needed on Solaris;
566 dnl  we purposedly make the test fail on Windows
567 LIBS_save="${LIBS}"
568 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
569 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
570
571 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
572 dnl are
573 LIBS="${LIBS_gai}"
574 AC_CHECK_FUNCS([getnameinfo gai_strerror])
575 LIBS="${LIBS_save}"
576
577 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
578 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
579 [#include <sys/types.h>
580 #if defined( WIN32 ) || defined( UNDER_CE )
581 # if defined(UNDER_CE) && defined(sockaddr_storage)
582 #  undef sockaddr_storage
583 # endif
584 # include <winsock2.h>
585 # include <ws2tcpip.h>
586 #else
587 # include <netdb.h>
588 #endif])
589
590 dnl Check for va_copy
591 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
592   AC_TRY_LINK(
593     [#include <stdarg.h>],
594     [va_list ap1, ap2; va_copy(ap1,ap2);],
595     [ac_cv_c_va_copy="yes"],
596     [ac_cv_c_va_copy="no"]))
597 if test "${ac_cv_c_va_copy}" = "yes"; then
598   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
599 fi
600 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
601   AC_TRY_LINK(
602     [#include <stdarg.h>],
603     [va_list ap1, ap2; __va_copy(ap1,ap2);],
604     [ac_cv_c___va_copy="yes"],
605     [ac_cv_c___va_copy="no"]))
606 if test "${ac_cv_c___va_copy}" = "yes"; then
607   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
608 fi
609
610 AC_CHECK_FUNCS(inet_aton,,[
611   AC_CHECK_LIB(resolv,inet_aton,[
612     VLC_ADD_LIBS([libvlc],[-lresolv])
613   ])
614 ])
615
616 dnl Check for getopt (always use builtin one on win32)
617 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
618 need_getopt=:
619 else
620 need_getopt=false
621 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
622 [ # FreeBSD has a gnugetopt library for this:
623   AC_CHECK_LIB([gnugetopt],[getopt_long],
624     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
625      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
626     [need_getopt=:])])
627 fi
628 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
629
630 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
631 AC_TYPE_SIGNAL
632 AC_CHECK_LIB(m,cos,[
633   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
634 ])
635 AC_CHECK_LIB(m,pow,[
636   VLC_ADD_LIBS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm])
637 ])
638 AC_CHECK_LIB(m,sqrt,[
639   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
640 ])
641 AC_CHECK_LIB(m,ceil,[
642   VLC_ADD_LIBS([mosaic],[-lm])
643 ])
644 AC_CHECK_LIB(m,exp,[
645   VLC_ADD_LIBS([gaussianblur],[-lm])
646 ])
647 AC_CHECK_LIB(mx,sqrtf,[
648   VLC_ADD_LIBS([x264],[-lmx])
649 ])
650 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
651
652 dnl Check for dynamic plugins
653 ac_cv_have_plugins=no
654
655 # OS X style
656 AC_CHECK_HEADERS(mach-o/dyld.h,
657   [AC_CHECK_FUNCS(NSLinkModule,
658     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
659      ac_cv_have_plugins=yes])])
660
661 # HP-UX style
662 if test "${ac_cv_have_plugins}" = "no"; then
663   AC_CHECK_HEADERS(dl.h)
664   ac_cv_my_have_shl_load=no
665   AC_CHECK_FUNC(shl_load,
666    [ac_cv_my_have_shl_load=yes,
667     AC_CHECK_LIB(dld, shl_load,
668      [ac_cv_my_have_shl_load=yes
669       VLC_ADD_LIBS([libvlc],[-ldld])])])
670   if test "${ac_cv_my_have_shl_load}" = "yes"; then
671     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
672     ac_cv_have_plugins=yes
673   fi
674 fi
675
676 # Whatever style
677 if test "${ac_cv_have_plugins}" = "no"; then
678   AC_CHECK_LIB(dld, dld_link,
679    [VLC_ADD_LIBS([libvlc],[-ldld])
680     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
681     ac_cv_have_plugins=yes])
682 fi
683
684 # Win32 style
685 if test "${ac_cv_have_plugins}" = "no"; then
686   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
687     AC_CHECK_LIB(kernel32, main,
688      [VLC_ADD_LIBS([libvlc],[-lkernel32])
689       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
690       ac_cv_have_plugins=yes])
691   fi
692 fi
693
694 # WinCE style
695 if test "${ac_cv_have_plugins}" = "no"; then
696   if test "${SYS}" = "mingwce"; then
697     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
698     ac_cv_have_plugins=yes
699   fi
700 fi
701
702 # BeOS style
703 if test "${ac_cv_have_plugins}" = "no"; then
704   AC_CHECK_HEADERS(image.h)
705   AC_CHECK_FUNCS(load_add_on,
706    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
707     ac_cv_have_plugins=yes])
708 fi
709
710 # Only test for dlopen() if the others didn't work
711 if test "${ac_cv_have_plugins}" = "no"; then
712   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
713   ac_cv_my_have_dlopen=no
714   AC_CHECK_FUNC(dlopen,
715     ac_cv_my_have_dlopen=yes,
716     AC_CHECK_LIB(dl, dlopen,
717       ac_cv_my_have_dlopen=yes
718       VLC_ADD_LIBS([libvlc realaudio],[-ldl]),
719       AC_CHECK_LIB(svld, dlopen,
720         ac_cv_my_have_dlopen=yes
721         VLC_ADD_LIBS([libvlc],[-lsvld]))))
722   if test "${ac_cv_my_have_dlopen}" = "yes"; then
723     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
724     ac_cv_have_plugins=yes
725   fi
726 fi
727
728 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
729 dnl Check for pthreads - borrowed from XMMS
730 THREAD_LIB=error
731 if test "${THREAD_LIB}" = "error"; then
732   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
733 fi
734 if test "${THREAD_LIB}" = "error"; then
735   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
736 fi
737 if test "${THREAD_LIB}" = "error"; then
738   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
739 fi
740 if test "${THREAD_LIB}" = "error"; then
741   AC_CHECK_FUNCS(pthread_mutex_lock)
742   THREAD_LIB=""
743 fi
744
745 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
746
747 AC_CHECK_LIB(rt, clock_nanosleep, [
748   VLC_ADD_LIBS([libvlc],[-lrt])
749   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
750 ], [
751   dnl HP/UX port
752   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
753 ])
754
755 have_nanosleep=false
756 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
757   AC_CHECK_LIB(rt,nanosleep,
758     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
759     [AC_CHECK_LIB(posix4,nanosleep,
760         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
761   )
762 ])
763 if ${have_nanosleep}; then
764   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
765 fi
766 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
767
768 dnl Check for misc headers
769 AC_MSG_CHECKING(for strncasecmp in strings.h)
770 AC_EGREP_HEADER(strncasecmp,strings.h,[
771   AC_MSG_RESULT(yes)
772   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
773             Define if <strings.h> defines strncasecmp.)],[
774   AC_MSG_RESULT(no)])
775
776 dnl Check for headers
777 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)
778 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
779 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h])
780 AC_CHECK_HEADERS([net/if.h], [], [],
781   [
782     #include <sys/socket.h>
783   ])
784 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
785 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
786 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
787 AC_CHECK_HEADERS(syslog.h)
788 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
789
790 AC_HEADER_TIME
791
792 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
793 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
794 AC_CHECK_TYPE(ssize_t,, [
795   AC_DEFINE(ssize_t, int)
796 ])
797
798 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
799
800 dnl Check for dirent
801 need_dirent=false
802 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
803 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
804
805 dnl Mac OS X and other OSes don't have declaration for nanosleep
806 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
807 AC_MSG_CHECKING(for nanosleep in time.h)
808 AC_EGREP_HEADER(nanosleep,time.h,[
809   AC_MSG_RESULT(yes)
810   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
811             Define if <time.h> defines nanosleep.)
812 ],[
813   AC_MSG_RESULT(no)
814 ])
815 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
816
817 dnl Make sure we have timespecs
818 AC_MSG_CHECKING(for timespec in sys/time.h)
819 AC_EGREP_HEADER(timespec,sys/time.h,[
820   AC_MSG_RESULT(yes)
821   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
822             Define if <sys/time.h> defines struct timespec.)
823 ],[
824   AC_MSG_RESULT(no)
825 ])
826
827 dnl Check for threads library
828 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
829 AC_CHECK_HEADERS(pthread.h kernel/scheduler.h kernel/OS.h)
830 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
831
832 dnl Find where are the X headers and libraries
833 AC_PATH_XTRA()
834
835 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.
836
837 PKG_PROG_PKG_CONFIG()
838
839 dnl Check for hal
840 AC_ARG_ENABLE(hal,
841   [  --enable-hal            Linux HAL services discovery (default enabled)])
842  
843 if test "${enable_hal}" != "no"
844 then
845   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
846     [ AC_DEFINE( HAVE_HAL_1, 1 , [Define if you have the new HAL library API])
847       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
848       VLC_ADD_PLUGINS([hal probe_hal]) 
849       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
850       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
851     dnl No hal 0.5 Test for 0.2
852     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
853        [AC_DEFINE(HAVE_HAL, 1, [Define if you have the HAL library])
854         VLC_ADD_PLUGINS([hal])
855         VLC_ADD_LIBS([libvlc hal],[$HAL_LIBS])
856         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
857        [AC_MSG_WARN(HAL library not found)])
858     ]
859   )
860 fi
861
862 dnl Check for dbus
863 AC_ARG_ENABLE(dbus,
864   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
865 case "${SYS}" in
866     linux*|*bsd*)
867 if test "${enable_dbus}" != "no"
868 then
869   dnl api stable dbus
870   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
871     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
872       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
873       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
874       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
875       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
876       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
877       dnl Check for dbus control interface
878         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
879         if test "${enable_dbus_control}" != "no"
880         then
881           VLC_ADD_PLUGINS([dbus])
882           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
883           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
884         fi
885       dnl Check for Telepathy
886         AC_ARG_ENABLE(telepathy, [  --enable-telepathy      Telepathy Presence plugin through DBus(default enabled)])
887         if test "${enable_telepathy}" != "no"; then
888           VLC_ADD_PLUGINS([telepathy])
889           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
890           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
891         fi
892         dnl Power Management Inhibiter
893         VLC_ADD_PLUGINS([inhibit])
894         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
895         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
896         ],
897     if ${PKG_CONFIG} --exists dbus-1
898     then
899       [AC_ARG_ENABLE(old-dbus,
900         [  --enable-old-dbus       Deprecated D-Bus support (default disabled)])]
901
902       if test "${enable_old_dbus}" != "yes"
903       then
904         echo ""
905         echo "****** WARNING **** WARNING ***** WARNING *************"
906         echo "*** Your D-Bus version is < 1.0.0"
907         echo "*** You are using old and buggy software and so"
908         echo "*** D-Bus support has been disabled."
909         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
910         echo "*** Alternatively you can force the use of your old and"
911         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
912         echo "*******************************************************"
913         echo ""
914       else
915         dnl not too old dbus
916         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
917           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
918             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
919             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
920             VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
921             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
922           dnl older dbus
923           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
924             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
925               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
926               VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
927               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
928             dnl much older dbus
929             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
930                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
931                 VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
932                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
933                [AC_MSG_WARN(DBUS library not found)])
934             ]
935           )]
936         )]
937       fi
938     fi
939   )
940 fi
941 ;;
942 esac
943
944 dnl Build the gtk_main plugins?
945 NEED_GTK_MAIN=no
946 NEED_GNOME_MAIN=no
947 NEED_GTK2_MAIN=no
948 NEED_GNOME2_MAIN=no
949
950 dnl build the qte plugin ?
951 NEED_QTE_MAIN=no
952
953 dnl Check for ntohl, etc.
954 AC_CACHE_CHECK([for ntohl in sys/param.h],
955     [ac_cv_c_ntohl_sys_param_h],
956     [CFLAGS="${CFLAGS_save} -Wall -Werror"
957      AC_TRY_COMPILE([#include <sys/param.h>],
958         [int meuh; ntohl(meuh);],
959         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
960 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
961     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
962 fi
963 CFLAGS="${CFLAGS_save}"
964
965 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
966 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
967
968 dnl This helps detect broken plugins with undefined symbols
969 dnl Better fail loudly at build-time than silenty at run-time.
970 dnl Unfortunately, this sucks on FreeBSD (won't even link with -lc)
971 if test `uname -s` != FreeBSD; then
972   RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
973     VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
974   ])
975 fi
976
977 dnl Check for various optimization flags
978 AC_CACHE_CHECK([if \$CC accepts -Os],
979     [ac_cv_c_os],
980     [CFLAGS="${CFLAGS_save} -Os"
981      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
982 if test "${ac_cv_c_os}" != "no"; then
983     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
984 else 
985     AC_CACHE_CHECK([if \$CC accepts -O],
986         [ac_cv_c_o],
987         [CFLAGS="${CFLAGS_save} -O"
988          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
989     if test "${ac_cv_c_o}" != "no"; then
990         if test "${ac_cv_c_o3}" = "no"; then
991             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
992         fi
993     fi
994 fi
995
996 AC_CACHE_CHECK([if \$CC accepts -O3],
997     [ac_cv_c_o3],
998     [CFLAGS="${CFLAGS_save} -O3"
999      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1000 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1001     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1002 else
1003     AC_CACHE_CHECK([if \$CC accepts -O2],
1004         [ac_cv_c_o2],
1005         [CFLAGS="${CFLAGS_save} -O2"
1006          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1007     if test "${ac_cv_c_o2}" != "no"; then
1008         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1009     else
1010         AC_CACHE_CHECK([if \$CC accepts -O],
1011             [ac_cv_c_o],
1012             [CFLAGS="${CFLAGS_save} -O"
1013              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1014         if test "${ac_cv_c_o}" != "no"; then
1015             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1016         fi
1017     fi
1018 fi
1019
1020 AC_CACHE_CHECK([if \$CC accepts -O0],
1021     [ac_cv_c_o0],
1022     [CFLAGS="${CFLAGS_save} -O0"
1023      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1024 if test "${ac_cv_c_o0}" != "no"; then
1025     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1026 fi
1027
1028 dnl Check for -ffast-math
1029 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1030     [ac_cv_c_fast_math],
1031     [CFLAGS="${CFLAGS_save} -ffast-math"
1032      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1033 if test "${ac_cv_c_fast_math}" != "no"; then
1034     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1035 fi
1036
1037 dnl Check for -funroll-loops
1038 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1039 if test "${SYS}" != "beos"
1040 then
1041   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1042       [ac_cv_c_unroll_loops],
1043       [CFLAGS="${CFLAGS_save} -funroll-loops"
1044        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1045   if test "${ac_cv_c_unroll_loops}" != "no"; then
1046       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1047   fi
1048 fi
1049
1050 dnl Check for -fomit-frame-pointer
1051 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1052     [ac_cv_c_omit_frame_pointer],
1053     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1054      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1055 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1056     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1057 fi
1058
1059 dnl Check for -fvisibility=hidden
1060 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1061     [ac_cv_c_visibility_hidden],
1062     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1063      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1064 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1065     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1066 fi
1067
1068 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
1069
1070 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1071 dnl AC_LANG_PUSH(C++)
1072 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1073 dnl         [ac_cv_c_visibility_inlines_hidden],
1074 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1075 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1076 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1077 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1078 dnl     fi
1079 dnl     CXXFLAGS="${CXXFLAGS_save}"
1080 dnl AC_LANG_POP(C++)
1081
1082 dnl Check for -mdynamic-no-pic
1083 dnl AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1084 dnl     [ac_cv_c_dynamic_no_pic],
1085 dnl     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1086 dnl      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1087 dnl AS_IF([test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1088 dnl     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1089 dnl     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1090 dnl ])
1091
1092 dnl Check for Darwin plugin linking flags
1093 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1094     [ac_cv_ld_darwin],
1095     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1096      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1097 if test "${ac_cv_ld_darwin}" != "no"; then
1098     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1099 fi
1100
1101 dnl Check for standard plugin linking flags
1102 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1103 dnl AS_IF([test "${SYS}" = "beos"], [
1104 dnl   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1105 dnl ], [
1106 dnl   AC_CACHE_CHECK([if \$CC accepts -shared],
1107 dnl         [ac_cv_ld_plugins],
1108 dnl         [CFLAGS="${CFLAGS_save} -shared"
1109 dnl        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1110 dnl   AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1111 dnl     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1112 dnl   ])
1113 dnl ])
1114
1115 dnl Checks for __attribute__(aligned()) directive
1116 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1117     [ac_cv_c_attribute_aligned],
1118     [ac_cv_c_attribute_aligned=0
1119         CFLAGS="${CFLAGS_save} -Werror"
1120     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1121         AC_TRY_COMPILE([],
1122         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1123         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1124     done
1125         CFLAGS="${CFLAGS_save}"])
1126 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1127     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1128         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1129 fi
1130
1131 dnl Checks for __attribute__(format()) directive
1132 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1133     [ac_cv_c_attribute_format],
1134     [ac_cv_c_attribute_format=no
1135         CFLAGS="${CFLAGS_save} -Werror"
1136         AC_TRY_COMPILE([],
1137         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1138         [ac_cv_c_attribute_format=yes])
1139         CFLAGS="${CFLAGS_save}"])
1140 if test "${ac_cv_c_attribute_format}" != "no"; then
1141     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1142 fi
1143
1144 dnl Check for __attribute__((packed))
1145 AC_CACHE_CHECK([for __attribute__((packed))],
1146   [ac_cv_c_attribute_packed],
1147   [ac_cv_c_attribute_packed=no
1148    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1149                     [ac_cv_c_attribute_packed=yes])])
1150 if test "${ac_cv_c_attribute_packed}" != "no"; then
1151   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1152 fi
1153
1154 dnl Check for __attribute__((visibility()))
1155 AC_CACHE_CHECK([for __attribute__((visibility()))],
1156   [ac_cv_c_attribute_visibility],
1157   [ac_cv_c_attribute_visibility=no
1158    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1159                     [ac_cv_c_attribute_visibility=yes])])
1160 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1161   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1162 fi
1163
1164 dnl
1165 dnl  Check the CPU
1166 dnl
1167 case "${host_cpu}" in
1168   "")
1169     ARCH=unknown
1170     ;;
1171   *)
1172     ARCH="${host_cpu}"
1173     ;;
1174 esac
1175
1176 dnl
1177 dnl  Enable profiling
1178 dnl
1179 AC_ARG_ENABLE(gprof,
1180 [  --enable-gprof          gprof profiling (default disabled)])
1181 AC_ARG_ENABLE(cprof,
1182 [  --enable-cprof          cprof profiling (default disabled)])
1183 test "${enable_gprof}" != "yes" && enable_gprof="no"
1184 test "${enable_cprof}" != "yes" && enable_cprof="no"
1185
1186 dnl
1187 dnl  default modules
1188 dnl
1189 VLC_ADD_PLUGINS([dummy logger memcpy])
1190 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 vc1 demux_cdg cdg ps pva avi asf mp4 rawdv rawvid nsv real aiff mjpeg demuxdump flacsys tta])
1191 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec subsusf t140 dvbsub cc mpeg_audio lpcm a52 dts cinepak flac])
1192 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise grain extract sharpen seamcarving])
1193 VLC_ADD_PLUGINS([converter_fixed mono])
1194 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1195 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1196 VLC_ADD_PLUGINS([playlist export nsc xtag])
1197 VLC_ADD_PLUGINS([i420_rgb grey_yuv rawvideo blend scale image logo magnify puzzle colorthres])
1198 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv smf])
1199 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1200 VLC_ADD_PLUGINS([access_http access_mms access_ftp])
1201 VLC_ADD_PLUGINS([access_filter_bandwidth])
1202 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1203 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1204 VLC_ADD_PLUGINS([packetizer_vc1])
1205
1206 ALIASES="${ALIASES} cvlc"
1207
1208 dnl
1209 dnl default modules that need g++
1210 dnl
1211 AC_LANG_PUSH(C++)
1212 VLC_ADD_PLUGINS([spatializer])
1213 AC_LANG_POP(C++)
1214
1215 if test "${SYS}" != "mingwce"; then
1216   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
1217   VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap fake folder])
1218   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
1219   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga i422_i420 yuy2_i422 yuy2_i420 chroma_chain])
1220   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1221   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1222   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1223   VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif 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_PLUGINS([screensaver motion])
1232 elif test "${SYS}" != "mingwce"; then
1233     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1234     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1235 else
1236     VLC_ADD_PLUGINS([win32text])
1237 fi
1238 if test "${SYS}" = "darwin"; then
1239     VLC_ADD_PLUGINS([quartztext])
1240     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1241 fi
1242
1243 dnl
1244 dnl  Accelerated modules
1245 dnl
1246 MMX_MODULES="memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
1247 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1248 MMXEXT_MODULES="memcpymmxext"
1249 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1250 THREEDNOW_MODULES="memcpy3dn"
1251 SSE_MODULES=""
1252 SSE2_MODULES="i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2"
1253 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1254 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1255
1256 dnl  Check for fully workin MMX intrinsics
1257 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1258 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1259 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1260     [ac_cv_c_mmx_intrinsics],
1261     [CFLAGS="${CFLAGS_save} -O -mmmx"
1262      AC_TRY_COMPILE([#include <mmintrin.h>
1263                      #include <stdint.h>
1264                      uint64_t frobzor;],
1265                     [__m64 a, b, c;
1266                      a = b = c = (__m64)frobzor;
1267                      a = _mm_slli_pi16(a, 3);
1268                      a = _mm_adds_pi16(a, b);
1269                      c = _mm_srli_pi16(c, 8);
1270                      c = _mm_slli_pi16(c, 3);
1271                      b = _mm_adds_pi16(b, c);
1272                      a = _mm_unpacklo_pi8(a, b);
1273                      frobzor = (uint64_t)a;],
1274                     [ac_cv_c_mmx_intrinsics=yes],
1275                     [ac_cv_c_mmx_intrinsics=no])])
1276 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1277   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1278   VLC_ADD_CFLAGS([${MMX_MODULES}],[-mmmx])
1279 fi
1280
1281 dnl  Check for fully workin SSE2 intrinsics
1282 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1283 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1284 AC_CACHE_CHECK([if \$CC groks SSE2 intrinsics],
1285     [ac_cv_c_sse2_intrinsics],
1286     [CFLAGS="${CFLAGS_save} -O -msse2"
1287      AC_TRY_COMPILE([#include <emmintrin.h>
1288                      #include <stdint.h>
1289                      uint64_t frobzor;],
1290                     [__m128i a, b, c;
1291                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1292                      a = _mm_slli_epi16(a, 3);
1293                      a = _mm_adds_epi16(a, b);
1294                      c = _mm_srli_epi16(c, 8);
1295                      c = _mm_slli_epi16(c, 3);
1296                      b = _mm_adds_epi16(b, c);
1297                      a = _mm_unpacklo_epi8(a, b);
1298                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1299                     [ac_cv_c_sse2_intrinsics=yes],
1300                     [ac_cv_c_sse2_intrinsics=no])])
1301 if test "${ac_cv_c_sse2_intrinsics}" != "no"; then
1302   AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, Define if SSE2 intrinsics are available.)
1303   VLC_ADD_CFLAGS([${SSE2_MODULES}],[-msse2])
1304 fi
1305
1306 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1307     [ac_cv_mmx_inline],
1308     [CFLAGS="${CFLAGS_save}"
1309      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1310                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1311 if test "${ac_cv_mmx_inline}" != "no"; then
1312   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1313   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1314 fi
1315
1316 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1317     [ac_cv_mmxext_inline],
1318     [CFLAGS="${CFLAGS_save}"
1319      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1320                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1321 if test "${ac_cv_mmxext_inline}" != "no"; then
1322   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1323   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1324 fi
1325
1326 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1327     [ac_cv_3dnow_inline],
1328     [CFLAGS="${CFLAGS_save}"
1329      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1330                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1331 if test "${ac_cv_3dnow_inline}" != "no"; then
1332   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1333   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1334 fi
1335
1336 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1337     [ac_cv_sse_inline],
1338     [CFLAGS="${CFLAGS_save}"
1339      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1340                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1341 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1342   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1343   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1344 fi
1345
1346 AC_CACHE_CHECK([if \$CC groks SSE2 inline assembly],
1347     [ac_cv_sse2_inline],
1348     [CFLAGS="${CFLAGS_save}"
1349      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1350                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1351 if test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"; then
1352   AC_DEFINE(CAN_COMPILE_SSE2, 1, Define if \$CC groks SSE2 inline assembly.)
1353   ACCEL_MODULES="${ACCEL_MODULES} ${SSE2_MODULES}"
1354 fi
1355
1356 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1357 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1358     [ac_cv_altivec_inline],
1359     [CFLAGS="${CFLAGS_save}"
1360      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1361          ac_cv_altivec_inline=yes,
1362          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1363           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1364             [ac_cv_altivec_inline="-Wa,-m7400"],
1365             ac_cv_altivec_inline=no)
1366          ])])
1367 if test "${ac_cv_altivec_inline}" != "no"; then
1368   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1369   if test "${ac_cv_altivec_inline}" != "yes"; then
1370     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1371     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1372     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1373     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1374     VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1375   fi
1376   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1377 fi
1378
1379 dnl The AltiVec C extensions
1380 dnl
1381 dnl There are several possible cases:
1382 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1383 dnl                      need <altivec.h>
1384 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1385 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1386 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1387 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1388 dnl - Others: test should fail
1389 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1390   [ac_cv_c_altivec],
1391   [# OS X/PPC test (gcc 4.x)
1392    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1393    AC_TRY_COMPILE([vector unsigned char foo;],
1394      [vec_ld(0, (unsigned char *)0);],
1395      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1396      [# OS X/PPC test (gcc 3.x)
1397       CFLAGS="${CFLAGS_save} -faltivec"
1398       AC_TRY_COMPILE([vector unsigned char foo;],
1399         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1400         [ac_cv_c_altivec="-faltivec"],
1401         dnl Below this are the Linux tests
1402         [# Linux/PPC test (gcc 4.x)
1403          CFLAGS="${CFLAGS_save} -maltivec"
1404          AC_TRY_COMPILE([#include <altivec.h>],
1405            [vec_ld(0, (unsigned char *)0);],
1406            [ac_cv_c_altivec="-maltivec"],
1407            [# Linux/PPC test (gcc 3.3)
1408             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1409             AC_TRY_COMPILE([#include <altivec.h>],
1410               [vec_ld(0, (unsigned char *)0);],
1411               [ac_cv_c_altivec=""
1412                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1413               [# Linux/PPC test (gcc 3.3)
1414                CFLAGS="${CFLAGS_save} -fvec"
1415                AC_TRY_COMPILE([#include <altivec.h>],
1416                  [vec_ld(0, (unsigned char *)0);],
1417                  [ac_cv_c_altivec="-fvec"],
1418                  [ac_cv_c_altivec=no])
1419               ])
1420            ])
1421         ])
1422      ])
1423    CFLAGS="${CFLAGS_save}"
1424   ])
1425
1426 if test "${ac_cv_c_altivec}" != "no"; then
1427   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1428 fi
1429
1430 AS_IF( test "${enable_altivec}" != "no",
1431 [
1432   AC_CHECK_HEADERS(altivec.h)
1433   CPPFLAGS="${CPPFLAGS_save}"
1434   
1435   if test "${ac_cv_c_altivec}" != "no"; then
1436     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1437     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1438     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1439     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1440     if test "${ac_cv_altivec_inline}" = "no"; then
1441       ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1442     fi
1443   fi
1444 ],[
1445   CPPFLAGS="${CPPFLAGS_save}"
1446 ])
1447
1448 AC_CACHE_CHECK([if linker needs -framework vecLib],
1449     [ac_cv_ld_altivec],
1450     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1451      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1452      LDFLAGS="${LDFLAGS_save}"
1453     ])
1454 if test "${ac_cv_ld_altivec}" != "no"; then
1455   VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1456 fi
1457 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1458
1459 AC_ARG_WITH(,[])
1460 AC_ARG_WITH(,[Optimization options:])
1461
1462 dnl
1463 dnl  Special arch tuning
1464 dnl
1465 AC_ARG_WITH(tuning,
1466 [  --with-tuning=ARCH      enable special tuning for an architecture
1467                           (default Pentium 2 on IA-32 and G4 on PPC)])
1468 if test -n "${with_tuning}"; then
1469     if test "${with_tuning}" != "no"; then
1470         CFLAGS_TUNING="-mtune=${with_tuning}"
1471     fi
1472 else
1473     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1474         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1475     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1476         CFLAGS_TUNING="-mtune=pentium2"
1477     elif test "${host_cpu}" = "x86_64"; then
1478         CFLAGS_TUNING="-mtune=athlon64"
1479     elif test "${host_cpu}" = "powerpc"; then
1480         CFLAGS_TUNING="-mtune=G4";
1481     fi
1482 fi
1483
1484 dnl NOTE: this can't be cached cleanly
1485 AS_IF([test "${CFLAGS_TUNING}"],
1486    [CFLAGS_save="${CFLAGS}"
1487     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1488
1489     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1490     AC_COMPILE_IFELSE([ ],
1491                       [tuning="yes"],
1492                       [CFLAGS_TUNING=""; tuning="no"
1493                        AS_IF([test "${with_tuning}"],
1494                              [AC_MSG_ERROR([requested tuning not supported])])])
1495
1496     AC_MSG_RESULT([$tuning])
1497     CFLAGS="${CFLAGS_save}"
1498 ])
1499
1500 dnl
1501 dnl  x86 accelerations
1502 dnl
1503 AC_ARG_ENABLE(mmx,
1504 [  --disable-mmx       disable MMX optimizations (default enabled on x86)],
1505 [ if test "${enable_mmx}" = "yes"; then ARCH="${ARCH} mmx";
1506     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1507 [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "x86_64"; then
1508     ARCH="${ARCH} mmx"
1509     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1510
1511 AC_ARG_ENABLE(sse,
1512 [  --disable-sse       disable SSE (1 and 2) optimizations (default enabled on i686 and x86_64)],
1513 [ if test "${enable_sse}" = "yes"; then ARCH="${ARCH} sse sse2";
1514     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1515 [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "x86_64"; then ARCH="${ARCH} sse sse2";
1516     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1517
1518 dnl
1519 dnl  Memory usage
1520 dnl
1521 AC_ARG_ENABLE(optimize-memory,
1522 [  --enable-optimize-memory optimize memory usage over performance])
1523 if test "${enable_optimize_memory}" = "yes"; then
1524   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1525 fi
1526
1527 dnl
1528 dnl  Enable/disable optimizations
1529 dnl
1530 AC_ARG_ENABLE(optimizations,
1531 [  --disable-optimizations disable compiler optimizations (default enabled)])
1532 if test "${enable_optimizations}" != "no"; then
1533    if test "${enable_optimize_memory}" = "yes"; then
1534       enable_optimizations="size"
1535    else
1536       enable_optimizations="speed"
1537    fi
1538 fi
1539
1540 dnl
1541 dnl  AltiVec acceleration
1542 dnl
1543 AC_ARG_ENABLE(altivec,
1544 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1545 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1546     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1547 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1548     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1549
1550 dnl
1551 dnl  Debugging mode
1552 dnl
1553 AC_ARG_ENABLE(debug,
1554 [  --enable-debug          debug mode (default disabled)])
1555 test "${enable_debug}" != "yes" && enable_debug="no"
1556 AH_TEMPLATE(NDEBUG,
1557             [Define to 1 if debug code should NOT be compiled])
1558 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1559
1560 dnl
1561 dnl  Test coverage
1562 dnl
1563 AC_ARG_ENABLE(coverage,
1564         [  --enable-coverage       build for test coverage (default disabled)],,
1565         [enable_coverage="no"])
1566 AS_IF([test "${enable_coverage}" != "no"], [
1567         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1568         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1569         LDFLAGS="-lgcov ${LDFLAGS}"
1570         dnl ugly...
1571         CFLAGS_save="${CFLAGS}"
1572         CXXFLAGS_save="${CXXFLAGS}"
1573         LDFLAGS_save="${LDFLAGS}"
1574 ])
1575
1576 dnl
1577 dnl  Enable release-specific flags
1578 dnl
1579 AC_ARG_ENABLE(release,
1580 [  --enable-release        activate extra optimizations (default disabled)])
1581 test "${enable_release}" != "yes" && enable_release="no"
1582
1583 dnl
1584 dnl Stream output
1585 dnl
1586 AC_ARG_ENABLE(sout,
1587   [  --enable-sout           Stream output modules (default enabled)])
1588 if test "${enable_sout}" != "no"
1589 then
1590   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1591   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1592   VLC_ADD_PLUGINS([packetizer_copy])
1593
1594   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1595   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel])
1596   VLC_ADD_PLUGINS([stream_out_gather])
1597 #  VLC_ADD_PLUGINS([stream_out_transrate])
1598 #  VLC_ADD_PLUGINS([rtcp])
1599   VLC_ADD_PLUGINS([profile_parser])
1600
1601   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1602 fi
1603
1604 AC_ARG_ENABLE(switcher,
1605   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1606
1607 dnl Check for libshout
1608 AC_ARG_ENABLE(shout,
1609   [  --enable-shout          libshout output plugin (default disabled)])
1610 if test "${enable_shout}" = "yes"; then
1611   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1612     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1613      VLC_ADD_PLUGINS([access_output_shout])
1614      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1615      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1616     [AC_MSG_WARN(libshout library not found)])
1617 fi
1618
1619 dnl Lua modules
1620 AC_ARG_ENABLE(lua,
1621   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1622 if test "${enable_lua}" != "no"
1623 then
1624   PKG_CHECK_MODULES(LUA, lua5.1,
1625     [ have_lua=yes ],
1626     [
1627     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1628     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1629       [ have_lua=yes ],
1630       [ 
1631         have_lua=yes
1632         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h], 
1633           [],  
1634           [ have_lua=no ] )
1635         AC_CHECK_LIB(  lua5.1 , luaL_newstate, 
1636           [LUA_LIBS="-llua5.1"],
1637           AC_CHECK_LIB( lua51 , luaL_newstate, 
1638             [LUA_LIBS="-llua51"],
1639                   AC_CHECK_LIB( lua , luaL_newstate, 
1640                     [LUA_LIBS="-llua"],
1641               [ have_lua=no
1642                 AC_MSG_WARN([lua >= 5.1 not found!])
1643               ])
1644             )
1645           )
1646       ])
1647     ])
1648   if test "x${have_lua}" = "xyes" ;  then
1649      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1650      VLC_ADD_PLUGINS([lua])
1651      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1652      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1653   fi
1654 fi
1655
1656 dnl
1657 dnl HTTP daemon
1658 dnl
1659 AC_ARG_ENABLE(httpd,
1660   [  --enable-httpd          HTTP daemon (default enabled)])
1661 if test "${enable_httpd}" != "no"
1662 then
1663   VLC_ADD_PLUGINS([http])
1664   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1665 fi
1666
1667 dnl
1668 dnl VideoLAN manager
1669 dnl
1670 AC_ARG_ENABLE(vlm,
1671   [  --enable-vlm            VideoLAN manager (default enabled)])
1672 if test "${enable_vlm}" != "no"
1673 then
1674   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1675 fi
1676
1677 dnl
1678 dnl Growl notification plugin
1679 dnl
1680 AC_ARG_ENABLE(growl,
1681   [  --enable-growl          growl notification plugin (default enabled)])
1682 AS_IF([test "${enable_growl}" != "no"], [
1683     VLC_ADD_PLUGINS([growl])
1684   ]
1685 )
1686
1687 dnl
1688 dnl Libnotify notification plugin
1689 dnl
1690
1691 AC_ARG_ENABLE(notify,
1692   [  --enable-notify         libnotify notification plugin (default enabled)])
1693 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1694     PKG_CHECK_MODULES(NOTIFY, libnotify,
1695       [
1696         VLC_ADD_PLUGINS([notify])
1697         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1698         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1699       ],[
1700     AS_IF([test "${enable_notify}" = "yes"],[
1701         AC_MSG_WARN( libnotify not found) ])
1702       ])
1703   ])
1704
1705 dnl
1706 dnl Audioscrobbler plugin
1707 dnl
1708
1709 AC_ARG_ENABLE(audioscrobbler,
1710   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1711 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1712         VLC_ADD_PLUGINS([audioscrobbler])
1713   ])
1714
1715 dnl
1716 dnl Musicbrainz plugin
1717 dnl
1718 AC_ARG_ENABLE(musicbrainz,
1719   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1720   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1721       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1722     [ VLC_ADD_PLUGINS([musicbrainz])
1723       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1724       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1725        [AC_MSG_WARN(MusicBrainz library not found)])
1726    ])
1727
1728
1729 dnl
1730 dnl Taglibplugin
1731 dnl
1732 AC_ARG_ENABLE(taglib,
1733   [  --disable-taglib Taglib support (default enabled) ])
1734   AS_IF([test "${enable_taglib}" != "no"],[
1735     PKG_CHECK_MODULES(TAGLIB, taglib,
1736       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1737         VLC_ADD_PLUGINS([taglib])
1738         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1739        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1740       [AC_MSG_WARN(TagLib library not found)])
1741   ])
1742
1743
1744 dnl
1745 dnl  Input plugins
1746 dnl
1747
1748 AC_ARG_WITH(,[Input plugins:])
1749
1750 dnl  live555 input
1751 dnl
1752 if test "${enable_livedotcom}" 
1753 then
1754   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1755 fi
1756
1757 if test "${enable_livedotcom}" = "no"
1758 then
1759   enable_live555="no"
1760 fi
1761 AC_ARG_ENABLE(live555,
1762 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1763 if test "${enable_live555}" != "no"; then
1764   AC_ARG_WITH(live555-tree,
1765     [    --with-live555-tree=PATH live.com tree for static linking])
1766
1767   dnl
1768   dnl test for --with-live555-tree
1769   dnl
1770   if test "${with_livedotcom_tree}" 
1771   then
1772     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1773   with_live555_tree="${with_livedotcom_tree}"
1774   fi
1775
1776   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1777     AC_LANG_PUSH(C++)
1778     CPPFLAGS_save="${CPPFLAGS}"
1779     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1780     if test "${SYS}" = "solaris"; then
1781       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1782     fi
1783     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1784     AC_CHECK_HEADERS(liveMedia.hh, [
1785       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1786       AC_CHECK_LIB(liveMedia_pic, main, [
1787         # We have -lliveMedia_pic, build plugins
1788         VLC_ADD_PLUGINS([live555])
1789         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1790       ], [
1791         AC_CHECK_LIB(liveMedia, main, [
1792           # We only have -lliveMedia, do builtins
1793           VLC_ADD_BUILTINS([live555])
1794           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1795         ])
1796       ])
1797       if test "${SYS}" = "mingw32"; then
1798         # add ws2_32 for closesocket, select, recv
1799         VLC_ADD_LIBS([live555],[-lws2_32])
1800       fi
1801     ])
1802     CPPFLAGS="${CPPFLAGS_save}"
1803     AC_LANG_POP(C++)
1804   else
1805     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1806     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1807     if test -z "${real_live555_tree}"; then
1808       dnl  The given directory can't be found
1809       AC_MSG_RESULT(no)
1810       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1811     fi
1812     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1813       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1814
1815       VLC_ADD_BUILTINS([live555])
1816
1817       if test "${SYS}" = "mingw32"; then
1818         # add ws2_32 for closesocket, select, recv
1819         VLC_ADD_LIBS([live555],[-lws2_32])
1820       fi
1821
1822       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1823       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1824       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1825       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1826
1827       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1828       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1829       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1830       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1831       if test "${SYS}" = "solaris"; then
1832         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1833       fi
1834     else
1835       dnl  The given live555 wasn't built
1836         AC_MSG_RESULT(no)
1837       if test "${enable_live555}" = "yes"; then
1838         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1839       fi        
1840     fi
1841   fi
1842 fi
1843
1844 dnl
1845 dnl  special access module for dc1394 input
1846 dnl
1847 AC_ARG_ENABLE(dc1394,
1848   [  --enable-dc1394         dc1394 access module (default disabled)])
1849 if test "${enable_dc1394}" = "yes"
1850 then
1851   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1852     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1853         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1854 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1855               VLC_ADD_PLUGINS([dc1394])
1856               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1857 dnl         ],
1858 dnl         [
1859 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1860 dnl         ])
1861       ],
1862       [
1863         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1864       ])
1865     ],
1866     [
1867       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1868     ])
1869   ],
1870   [
1871     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1872   ])
1873 fi
1874
1875 dnl
1876 dnl dv module: digital video module check for libraw1394
1877 dnl
1878 AC_ARG_ENABLE(dv,
1879 [  --enable-dv             dv input module (default disabled)])
1880 if test "${enable_dv}" = "yes"
1881 then
1882   AC_ARG_WITH(dv-raw1394,
1883   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1884   AC_ARG_WITH(dv-raw1394-tree,
1885   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1886
1887   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1888   then
1889     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1890     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1891     then
1892       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1893       AC_MSG_RESULT(yes)
1894       VLC_ADD_PLUGINS([access_dv])
1895       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1896       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1897     else
1898       dnl  No libraw1394 could be found, sorry
1899       AC_MSG_RESULT(no)
1900       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1901     fi
1902   else
1903     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1904     [ VLC_ADD_PLUGINS([access_dv])
1905         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1906     ],[
1907         if test -n "${enable_dv}"
1908         then
1909           AC_MSG_ERROR([cannot find libraw1394 headers])
1910         fi
1911     ])
1912   fi
1913
1914   dnl Check for static linking of libraw1394
1915   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1916   then
1917     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1918     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1919     if test -z "${real_dv_raw1394_tree}"
1920     then
1921       dnl  The given directory can't be found
1922       AC_MSG_RESULT(no)
1923       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1924     fi
1925     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1926     then
1927       dnl  Use a custom libraw1394
1928       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1929       VLC_ADD_BUILTINS([access_dv])
1930       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1931       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1932     else
1933       dnl  The given libraw1394 wasn't built
1934       AC_MSG_RESULT(no)
1935       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1936     fi
1937   fi
1938
1939   dnl
1940   dnl Check for libavc1394
1941   dnl
1942
1943   AC_ARG_WITH(dv-avc1394,
1944   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1945   AC_ARG_WITH(dv-avc1394-tree,
1946   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1947
1948   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1949   then
1950     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1951     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1952     then
1953       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1954       AC_MSG_RESULT(yes)
1955       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1956       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1957     else
1958       dnl  No libavc1394 could be found, sorry
1959       AC_MSG_RESULT(no)
1960       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1961     fi
1962   else
1963     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1964     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1965     ],[
1966         if test -n "${enable_dv}"
1967         then
1968           AC_MSG_ERROR([cannot find libavc1394 headers])
1969         fi
1970     ])
1971   fi
1972
1973   dnl Check for static linking of libavc1394
1974   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1975   then
1976     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1977     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1978     if test -z "${real_dv_avc1394_tree}"
1979     then
1980       dnl  The given directory can't be found
1981       AC_MSG_RESULT(no)
1982       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1983     fi
1984     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1985     then
1986       dnl  Use a custom libavc1394
1987       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1988       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1989       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1990     else
1991       dnl  The given libavc1394 wasn't built
1992       AC_MSG_RESULT(no)
1993       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1994     fi
1995   fi
1996 fi
1997
1998 dnl
1999 dnl dvdread module: check for libdvdread
2000 dnl
2001 AC_ARG_ENABLE(dvdread,
2002 [  --enable-dvdread        dvdread input module (default disabled)])
2003 if test "${enable_dvdread}" != "no"
2004 then
2005   AC_ARG_WITH(dvdread,
2006   [    --with-dvdread=PATH   libdvdread headers and libraries])
2007   AC_ARG_WITH(dvdread-tree,
2008   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2009
2010   dnl Temporary hack (yeah, sure ;)
2011   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2012       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2013   fi
2014
2015   if test -z "${with_dvdread}"
2016   then
2017     if test -z "${with_dvdread_tree}"
2018     then
2019       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2020         [ VLC_ADD_PLUGINS([dvdread])
2021           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2022         ],[
2023           if test -n "${enable_dvdread}"
2024           then
2025             AC_MSG_ERROR([cannot find libdvdread headers])
2026           fi
2027         ])
2028     else
2029       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2030       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2031       if test -z "${real_dvdread_tree}"
2032       then
2033         dnl  The given directory can't be found
2034         AC_MSG_RESULT(no)
2035         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2036       fi
2037       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2038       then
2039         dnl  Use a custom libdvdread
2040         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2041         VLC_ADD_BUILTINS([dvdread])
2042         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2043         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2044       else
2045         dnl  The given libdvdread wasn't built
2046         AC_MSG_RESULT(no)
2047         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2048       fi
2049     fi
2050   else
2051     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2052     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2053     then
2054       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2055       AC_MSG_RESULT(yes)
2056       VLC_ADD_PLUGINS([dvdread])
2057       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2058       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2059     else
2060       dnl  No libdvdread could be found, sorry
2061       AC_MSG_RESULT(no)
2062       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2063     fi
2064   fi
2065 fi
2066
2067 dnl
2068 dnl  libdvdnav plugin
2069 dnl
2070 AC_ARG_ENABLE(dvdnav,
2071   [  --enable-dvdnav         dvdnav input module (default enabled)])
2072 if test "${enable_dvdnav}" != "no"
2073 then
2074   dnl Same hack than dvdread
2075   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2076       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2077   fi
2078
2079   DVDNAV_PATH="${PATH}"
2080   AC_ARG_WITH(dvdnav-config-path,
2081     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2082     [ if test "${with_dvdnav_config_path}" != "no"
2083       then
2084         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2085       fi ])
2086   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2087   if test "${DVDNAV_CONFIG}" != "no"
2088   then
2089     VLC_ADD_PLUGINS([dvdnav])
2090     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2091     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2092   fi
2093 fi
2094
2095 dnl
2096 dnl  Windows DirectShow access module
2097 dnl
2098 AC_ARG_ENABLE(dshow,
2099   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2100 if test "${enable_dshow}" != "no"
2101 then
2102   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2103   then
2104     AC_LANG_PUSH(C++)
2105       AC_CHECK_HEADERS(dshow.h,
2106       [ VLC_ADD_PLUGINS([dshow])
2107         VLC_ADD_CXXFLAGS([dshow],[])
2108         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2109     AC_LANG_POP(C++)
2110   fi
2111 fi
2112
2113 dnl
2114 dnl  Windows DirectShow BDA access module
2115 dnl
2116 AC_ARG_ENABLE(bda,
2117   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2118 if test "${enable_bda}" != "no"
2119 then
2120   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2121   then
2122       AC_CHECK_HEADERS(dshow.h,
2123       [ VLC_ADD_PLUGINS([bda])
2124         VLC_ADD_CXXFLAGS([bda],[])
2125         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2126   fi
2127 fi
2128
2129
2130 dnl
2131 dnl  OpenCV wrapper and example filters
2132 dnl
2133 AC_ARG_ENABLE(opencv,
2134   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2135 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2136 then
2137   AC_ARG_WITH(opencv-tree,
2138   [    --with-opencv-tree=PATH opencv tree for linking])
2139   if test -n "${with_opencv_tree}"
2140   then
2141     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2142     then
2143           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2144           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2145             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2146       then
2147         AC_MSG_RESULT(yes)
2148         VLC_ADD_PLUGINS([opencv_wrapper])
2149         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2150         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])
2151         AC_LANG_PUSH(C++)
2152         VLC_ADD_PLUGINS([opencv_example])
2153         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2154         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])
2155         AC_LANG_POP(C++)        
2156           else
2157         dnl  No opencv could be found, sorry
2158         AC_MSG_RESULT(no)
2159         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2160           fi
2161     else
2162           AC_MSG_WARN([--enable-opencv currently only works on windows])
2163     fi
2164   fi  
2165 fi
2166
2167
2168 dnl
2169 dnl  libsmbclient plugin
2170 dnl
2171 AC_ARG_ENABLE(smb,
2172   [  --enable-smb            smb input module (default enabled)])
2173 if test "${enable_smb}" != "no"; then
2174   AC_CHECK_HEADERS(libsmbclient.h,
2175     [ VLC_ADD_PLUGINS([access_smb])
2176       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2177     [ if test -n "${enable_smb}"; then
2178         AC_MSG_ERROR([cannot find libsmbclient headers])
2179      fi ])
2180   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2181     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2182     [#include <libsmbclient.h>])
2183 fi
2184
2185 dnl
2186 dnl  libdvbpsi ts demux/mux
2187 dnl
2188 AC_ARG_ENABLE(dvbpsi,
2189   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2190 if test "${enable_dvbpsi}" != "no"
2191 then
2192   AC_ARG_WITH(dvbpsi,
2193   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2194   AC_ARG_WITH(dvbpsi,
2195   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2196   case "${with_dvbpsi}" in
2197   ""|yes)
2198     if test -z "${with_dvbpsi_tree}"
2199     then
2200       AC_CHECK_HEADERS(dvbpsi/dr.h,
2201         [ VLC_ADD_PLUGINS([ts])
2202           if test "${enable_sout}" != "no"; then
2203             VLC_ADD_PLUGINS([mux_ts])
2204           fi
2205           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2206         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2207         [#if defined( HAVE_STDINT_H )
2208 #   include <stdint.h>
2209 #elif defined( HAVE_INTTYPES_H )
2210 #   include <inttypes.h>
2211 #endif
2212 #include <dvbpsi/dvbpsi.h>
2213 #include <dvbpsi/descriptor.h>
2214 #include <dvbpsi/pat.h>
2215 #include <dvbpsi/pmt.h>])
2216     else
2217       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2218       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2219       if test -z "${real_dvbpsi_tree}"
2220       then
2221         dnl  The given directory can't be found
2222         AC_MSG_RESULT(no)
2223         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2224       fi
2225       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2226       then
2227         dnl  Use a custom libdvbpsi
2228         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2229         VLC_ADD_BUILTINS([ts])
2230         if test "${enable_sout}" != "no"; then
2231           VLC_ADD_BUILTINS([mux_ts])
2232         fi
2233         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2234         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2235       else
2236         dnl  The given libdvbpsi wasn't built
2237         AC_MSG_RESULT(no)
2238         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2239       fi
2240     fi
2241   ;;
2242   no)
2243     dnl  Compile without dvbpsi
2244   ;;
2245   *)
2246     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2247     if test -z "${with_dvbpsi}"
2248     then
2249       LDFLAGS_test=""
2250       CPPFLAGS_test=""
2251     else
2252       LDFLAGS_test="-L${with_dvbpsi}/lib"
2253       CPPFLAGS_test="-I${with_dvbpsi}/include"
2254     fi
2255     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2256     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2257       VLC_ADD_PLUGINS([ts])
2258       if test "${enable_sout}" != "no"; then
2259         VLC_ADD_PLUGINS([mux_ts])
2260       fi
2261       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2262       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2263
2264     ],[
2265       if test -n "${enable_dvbpsi}"
2266       then
2267         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])
2268       fi
2269     ])
2270     CPPFLAGS="${CPPFLAGS_save}"
2271   ;;
2272   esac
2273   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2274     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2275   ], [], [${LIBS_ts}])
2276
2277 fi
2278
2279 dnl
2280 dnl  Video4Linux plugin
2281 dnl
2282 AC_ARG_ENABLE(v4l,
2283   [  --enable-v4l            Video4Linux input support (default disabled)])
2284 if test "${enable_v4l}" = "yes"
2285 then
2286   AC_ARG_WITH(v4l,
2287     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2288   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2289   then
2290     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2291   fi
2292
2293   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2294   AC_CHECK_HEADERS(linux/videodev.h, [
2295     VLC_ADD_PLUGINS([v4l])
2296   ],[])
2297   CPPFLAGS="${CPPFLAGS_save}"
2298 fi
2299
2300 dnl
2301 dnl  Video4Linux2 plugin
2302 dnl
2303 AC_ARG_ENABLE(v4l2,
2304   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2305 if test "${enable_v4l2}" = "yes"
2306 then
2307   AC_ARG_WITH(v4l2,
2308     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2309   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2310   then
2311     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2312   fi
2313
2314   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2315   if test "${have_v4l2_alsa}" = "true"
2316   then
2317     CFLAGS="${CFLAGS_save}"
2318     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2319                     #define ALSA_PCM_NEW_SW_PARAMS_API
2320                     #include <alsa/asoundlib.h>],
2321        [snd_pcm_hw_params_get_period_time(0,0,0);],
2322         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2323     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2324     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2325   fi
2326
2327   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2328   AC_CHECK_HEADERS(linux/videodev2.h, [
2329     VLC_ADD_PLUGINS([v4l2])
2330   ],[])
2331   CPPFLAGS="${CPPFLAGS_save}"
2332 fi
2333
2334
2335 dnl
2336 dnl  special access module for Hauppauge PVR cards
2337 dnl
2338 AC_ARG_ENABLE(pvr,
2339   [  --enable-pvr            PVR cards access module (default disabled)])
2340 if test "${enable_pvr}" = "yes"
2341 then
2342   VLC_ADD_PLUGINS([pvr])
2343   AC_ARG_WITH(videodev2,
2344     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2345   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2346   then
2347     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2348   fi
2349     
2350
2351   AC_CACHE_CHECK([for new linux/videodev2.h],
2352       [new_linux_videodev2_h],
2353       [AC_TRY_COMPILE([
2354           #include <sys/types.h>
2355           #   ifdef VIDEODEV2_H_FILE
2356           #   include VIDEODEV2_H_FILE
2357           #   else
2358           #   include <linux/videodev2.h>
2359           #   endif
2360           ],
2361           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2362           new_linux_videodev2_h=yes,
2363           new_linux_videodev2_h=no)])
2364   if test "${new_linux_videodev2_h}" != "no"; then
2365     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2366   fi
2367 fi
2368
2369 dnl
2370 dnl  gnomeVFS access module
2371 dnl
2372 AC_ARG_ENABLE(gnomevfs,
2373   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2374 if test "${enable_gnomevfs}" = "yes" 
2375 then
2376   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2377     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2378     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2379     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2380     VLC_ADD_PLUGINS([access_gnomevfs]),
2381     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2382 fi
2383
2384 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2385 AC_ARG_ENABLE(libcdio,
2386   [  --enable-libcdio        CD input and control library support (default enabled)])
2387
2388
2389 have_libcdio=no
2390 have_libvcdinfo=no
2391 if test "${enable_libcdio}" != "no"
2392 then
2393   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2394      have_libcdio=yes
2395      AC_DEFINE(HAVE_LIBCDIO, 1, 
2396      [Define if you have libcdio 0.78.2 or greater installed]),
2397      [AC_MSG_WARN(CD Reading and information library not found)])
2398
2399   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2400      [have_libvcdinfo=yes
2401      AC_DEFINE(HAVE_VCDINFO, 1, 
2402      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2403      [AC_MSG_WARN(VCD information library not found)])
2404 fi
2405
2406 dnl
2407 dnl  VCDX and CDDAX modules
2408 dnl
2409 AC_ARG_ENABLE(cddax,
2410   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2411  
2412 AC_ARG_ENABLE(libcddb,
2413   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2414  
2415 if test "${enable_cddax}" = "yes"
2416 then
2417   if test "$have_libcdio" = "yes"
2418   then
2419     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2420     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2421     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2422     VLC_ADD_PLUGINS([cddax])
2423     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2424     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2425     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2426   else 
2427     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2428     HAVE_CDDAX=no
2429   fi
2430
2431   if test "$enable_libcddb" != "no"; then
2432     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2433       HAVE_LIBCDDB=yes 
2434       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2435       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2436       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2437       ],
2438       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2439       HAVE_LIBCDDB=no])
2440   fi
2441  
2442 fi
2443
2444 AC_ARG_ENABLE(vcdx,
2445   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2446  
2447 if test "${enable_vcdx}" = "yes"
2448 then
2449   if test "${have_libvcdinfo}" = "yes"
2450   then
2451     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2452     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2453   else 
2454     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2455     HAVE_VCDX=no
2456   fi
2457
2458   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2459    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2460     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2461     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2462     HAVE_VCDX=no])
2463
2464   if test "$have_libvcdinfo" = "yes"
2465   then
2466     AC_DEFINE(HAVE_VCDX, 1, 
2467     [Define for the VCD plugin using libcdio/libvcdinfo])
2468     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2469     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2470     VLC_ADD_PLUGINS([vcdx])
2471   else 
2472     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2473     HAVE_VCDX=no
2474   fi
2475 fi
2476
2477 dnl
2478 dnl  Built-in CD-DA and VCD module
2479 dnl
2480 AC_ARG_ENABLE(cdda,           
2481   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2482  
2483 AC_ARG_ENABLE(vcd,
2484   [  --enable-vcd            built-in VCD (default enabled)])
2485
2486 if test "${enable_vcd}" != "no"
2487 then
2488   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2489   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2490     AC_MSG_RESULT(yes)
2491     VLC_ADD_PLUGINS([vcd cdda])
2492   ],[
2493     AC_MSG_RESULT(no)
2494   ])
2495
2496   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2497   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2498     AC_MSG_RESULT(yes)
2499     VLC_ADD_PLUGINS([vcd cdda])
2500     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2501   ],[
2502     AC_MSG_RESULT(no)
2503   ])
2504
2505   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2506   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2507     AC_MSG_RESULT(yes)
2508     VLC_ADD_PLUGINS([vcd cdda])
2509     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2510   ],[
2511     AC_MSG_RESULT(no)
2512   ])
2513
2514   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2515   then
2516     VLC_ADD_PLUGINS([vcd cdda])
2517   fi
2518
2519   if test "${SYS}" = "darwin"
2520   then
2521     VLC_ADD_PLUGINS([vcd cdda])
2522     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2523     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2524   fi
2525
2526   if test "$enable_libcddb" != "no"; then
2527     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2528       HAVE_LIBCDDB=yes 
2529       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2530       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2531       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2532       ],:
2533       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2534       HAVE_LIBCDDB=no])
2535   fi
2536 fi
2537
2538 dnl
2539 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2540 dnl
2541 AC_ARG_ENABLE(dvb,
2542   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2543
2544 if test "${enable_dvb}" = "yes"
2545 then
2546   AC_ARG_WITH(dvb,
2547   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2548   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2549   then
2550     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2551   fi
2552   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2553   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2554     if test -z "${with_dvbpsi_tree}"
2555     then
2556       VLC_ADD_PLUGINS([dvb])
2557     else
2558       VLC_ADD_BUILTINS([dvb])
2559     fi
2560   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2561   CPPFLAGS="${CPPFLAGS_save}"
2562 fi
2563
2564 dnl
2565 dnl  Screen capture module
2566 dnl
2567 AC_ARG_ENABLE(screen,
2568   [  --enable-screen         Screen capture support (default enabled)])
2569 if test "${enable_screen}" != "no"; then
2570   if test "${SYS}" = "darwin"; then
2571     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2572       VLC_ADD_PLUGINS([screen])
2573       VLC_ADD_LDFLAGS([screen],[-Wl,-framework,ApplicationServices])
2574     ])
2575   elif test "${SYS}" = "mingw32"; then
2576     VLC_ADD_PLUGINS([screen])
2577     VLC_ADD_LIBS([screen],[-lgdi32])
2578   elif test "${SYS}" = "mingwce"; then
2579     CPPFLAGS="${CPPFLAGS_save}"
2580   elif test "${SYS}" = "beos"; then
2581     VLC_ADD_PLUGINS([screen])
2582     VLC_ADD_CXXFLAGS([screen],[])
2583     VLC_ADD_LIBS([screen],[-lbe])
2584   else
2585     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2586     AC_CHECK_HEADERS(X11/Xlib.h, [
2587       VLC_ADD_PLUGINS([screen])
2588       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2589       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2590     ])
2591     CPPFLAGS="${CPPFLAGS_save}"
2592   fi
2593 fi
2594
2595 dnl
2596 dnl  ipv6 plugin - not for QNX yet
2597 dnl
2598 have_ipv6=no
2599 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2600   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2601 ])
2602
2603 AS_IF([test "${have_ipv6}" = "yes"], [
2604   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2605
2606
2607 AC_CHECK_FUNCS(inet_ntop,[
2608   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2609
2610
2611 dnl
2612 dnl  ogg demux plugin
2613 dnl
2614 AC_ARG_ENABLE(ogg,
2615   [  --enable-ogg            Ogg demux support (default enabled)])
2616 if test "${enable_ogg}" != "no"
2617 then
2618   AC_ARG_WITH(ogg-tree,
2619   [    --with-ogg-tree=PATH  ogg tree for static linking])
2620   if test -n "${with_ogg_tree}"
2621   then
2622     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2623     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2624     if test -z "${real_ogg_tree}"
2625     then
2626       dnl  The given directory can't be found
2627       AC_MSG_RESULT(no)
2628       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2629     fi
2630     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2631     then
2632       dnl  Use a custom ogg
2633       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2634       VLC_ADD_PLUGINS([ogg])
2635       if test "${enable_sout}" != "no"; then
2636         VLC_ADD_PLUGINS([mux_ogg])
2637       fi
2638       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2639       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2640     else
2641       dnl  The given ogg wasn't built
2642       AC_MSG_RESULT(no)
2643       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2644     fi
2645   else
2646     AC_CHECK_HEADERS(ogg/ogg.h, [
2647       AC_CHECK_LIB( ogg, oggpack_read, [
2648         VLC_ADD_PLUGINS([ogg])
2649         if test "${enable_sout}" != "no"; then
2650           VLC_ADD_PLUGINS([mux_ogg])
2651         fi
2652         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2653      ],[])
2654   fi
2655 fi
2656
2657 dnl
2658 dnl  matroska demux plugin
2659 dnl
2660 AC_ARG_ENABLE(mkv,
2661   [  --enable-mkv            Matroska demux support (default enabled)])
2662 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2663   AC_LANG_PUSH(C++)
2664   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2665     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2666     AC_EGREP_CPP(yes,
2667       [#include <ebml/EbmlVersion.h>
2668        #ifdef LIBEBML_VERSION
2669        #if LIBEBML_VERSION >= 0x000706
2670        yes
2671        #endif
2672        #endif],
2673       [AC_MSG_RESULT([yes])
2674         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2675           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2676           AC_EGREP_CPP(yes,
2677             [#include <matroska/KaxVersion.h>
2678              #ifdef LIBMATROSKA_VERSION
2679              #if LIBMATROSKA_VERSION >= 0x000705
2680              yes
2681              #endif
2682              #endif],
2683             [AC_MSG_RESULT([yes])
2684               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2685               VLC_ADD_CXXFLAGS([mkv],[])
2686               if test "${SYS}" = "darwin"; then
2687                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2688               fi
2689               AC_CHECK_LIB(ebml_pic, main, [
2690                 VLC_ADD_PLUGINS([mkv])
2691                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2692               ],
2693                 AC_CHECK_LIB(ebml, main, [
2694                   VLC_ADD_PLUGINS([mkv])
2695                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2696                 ]) 
2697               )
2698             ],
2699             [AC_MSG_RESULT([no])
2700               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.])
2701           ])
2702         ])
2703       ],
2704       [AC_MSG_RESULT([no])
2705         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.])
2706     ])
2707   ])
2708   AC_LANG_POP(C++)
2709 fi
2710
2711 dnl
2712 dnl  modplug demux plugin
2713 dnl
2714 AC_ARG_ENABLE(mod,
2715   [  --enable-mod            Mod demux support (default enabled)])
2716 if test "${enable_mod}" != "no"
2717 then
2718   AC_ARG_WITH(mod-tree,
2719   [    --with-mod-tree=PATH mod tree for static linking])
2720   if test -n "${with_mod_tree}"
2721   then
2722     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2723     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2724     if test -z "${real_mod_tree}"
2725     then
2726       dnl  The given directory can't be found
2727       AC_MSG_RESULT(no)
2728       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2729     fi
2730     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2731     then
2732       dnl  Use a custom mod
2733       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2734       VLC_ADD_PLUGINS([mod])
2735       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2736       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2737     else
2738       dnl  The given mod wasn't built
2739       AC_MSG_RESULT(no)
2740       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2741     fi
2742   else
2743     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2744       VLC_ADD_PLUGINS([mod])
2745       VLC_ADD_CXXFLAGS([mod],[])
2746       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2747   fi
2748 fi
2749
2750 dnl
2751 dnl  mpc demux plugin
2752 dnl
2753 AC_ARG_ENABLE(mpc,
2754   [  --enable-mpc            Mpc demux support (default enabled)])
2755 if test "${enable_mpc}" != "no"
2756 then
2757   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2758     VLC_ADD_PLUGINS([mpc])
2759     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2760 fi
2761
2762 dnl
2763 dnl  game music emu demux plugin
2764 dnl
2765 AC_ARG_ENABLE(gme,
2766   [  --enable-gme            Game Music Emu demux support (default enabled)])
2767 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2768 then
2769   AC_LANG_PUSH(C++)
2770   AC_ARG_WITH(gme-tree,
2771   [    --with-gme-tree=PATH gme tree for static linking])
2772   if test -n "${with_gme_tree}"
2773   then
2774     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2775     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2776     if test -z "${real_gme_tree}"
2777     then
2778       dnl  The given directory can't be found
2779       AC_MSG_RESULT(no)
2780       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2781     fi
2782     if test -f "${real_gme_tree}/gme/libgme.a"
2783     then
2784       dnl  Use a custom gme
2785       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2786       VLC_ADD_PLUGINS([gme])
2787       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2788       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2789     else
2790       dnl  The given gme wasn't built
2791       AC_MSG_RESULT(no)
2792       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2793     fi
2794   else
2795       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2796   fi
2797   AC_LANG_POP(C++)
2798 fi
2799
2800 dnl
2801 dnl  Codec plugins
2802 dnl
2803
2804 AC_ARG_WITH(,[Codec plugins:])
2805
2806 dnl
2807 dnl  mad plugin
2808 dnl
2809 AC_ARG_ENABLE(mad,
2810   [  --enable-mad            libmad module (default enabled)])
2811 if test "${enable_mad}" != "no"
2812 then
2813   AC_ARG_WITH(mad,
2814     [    --with-mad=PATH       path to libmad],[],[])
2815   if test "${with_mad}" != "no" -a -n "${with_mad}"
2816   then
2817     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2818     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2819   fi
2820
2821   AC_ARG_WITH(mad-tree,
2822     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2823   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2824   then
2825     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2826     if test -z "${real_mad_tree}"
2827     then
2828       dnl  The given directory can't be found
2829       AC_MSG_RESULT(no)
2830       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2831     fi
2832     dnl  Use a custom libmad
2833     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2834     if test -f ${real_mad_tree}/mad.h
2835     then
2836       AC_MSG_RESULT(yes)
2837       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2838       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2839       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2840       AC_CHECK_LIB(mad, mad_bit_init, [
2841         VLC_ADD_BUILTINS([mpgatofixed32])
2842         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2843         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2844       ],[])
2845       LDFLAGS="${LDFLAGS_save}"
2846     else
2847       AC_MSG_RESULT(no)
2848       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2849     fi
2850   else
2851     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2852     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2853     AC_CHECK_HEADERS(mad.h, ,
2854       [ 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.]) ])
2855     AC_CHECK_LIB(mad, mad_bit_init, [
2856       VLC_ADD_PLUGINS([mpgatofixed32])
2857       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2858       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2859     CPPFLAGS="${CPPFLAGS_save}"
2860     LDFLAGS="${LDFLAGS_save}"
2861   fi
2862 fi
2863
2864 dnl
2865 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2866 dnl
2867 AC_ARG_ENABLE( id3tag,
2868   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
2869 AS_IF([test "${enable_id3tag}" != "no"], [
2870   AC_CHECK_HEADERS(id3tag.h, [
2871     AC_CHECK_HEADERS(zlib.h, [
2872       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2873       VLC_ADD_PLUGINS([id3tag])
2874     ])
2875   ])
2876 ])
2877
2878 dnl
2879 dnl  ffmpeg decoder/demuxer plugin
2880 dnl
2881 dnl we try to find ffmpeg using : 1- given tree, 2- pkg-config
2882 dnl                               3- default place,
2883
2884 AC_ARG_ENABLE(ffmpeg,
2885 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2886 if test "${enable_ffmpeg}" != "no"
2887 then
2888
2889 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2890
2891  AC_ARG_WITH(ffmpeg-mp3lame,
2892    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2893    [
2894      if test "$with_ffmpeg_mp3lame" = "yes";    then
2895         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
2896      fi])
2897
2898  AC_ARG_WITH(ffmpeg-faac,
2899    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2900    [
2901      if test "$with_ffmpeg_faac" = "yes"; then
2902         VLC_ADD_LIBS([ffmpeg],[-lfaac])
2903      fi])
2904
2905  AC_ARG_WITH(ffmpeg-dts,
2906    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2907    [
2908      if test "$with_ffmpeg_dts" = "yes"; then
2909              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
2910              AC_CHECK_LIB(dts_pic, dts_free, 
2911                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
2912                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
2913              LDFLAGS="${LDFLAGS_save}"
2914      fi])
2915
2916  AC_ARG_WITH(ffmpeg-vorbis,
2917    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2918    [
2919      if test "$with_ffmpeg_vorbis" = "yes"; then
2920         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
2921      fi])
2922
2923  AC_ARG_WITH(ffmpeg-theora,
2924    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2925    [
2926      if test "$with_ffmpeg_theora" = "yes"; then
2927         VLC_ADD_LIBS([ffmpeg],[-ltheora])
2928      fi])
2929
2930  AC_ARG_WITH(ffmpeg-ogg,
2931    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2932    [
2933      if test "$with_ffmpeg_ogg" = "yes"; then
2934         VLC_ADD_LIBS([ffmpeg],[-logg])
2935      fi])
2936
2937  AC_ARG_WITH(ffmpeg-zlib,
2938    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2939    [
2940      if test "$with_ffmpeg_zlib" = "yes"; then
2941         VLC_ADD_LIBS([ffmpeg],[-lz])
2942      fi])
2943
2944  AC_ARG_WITH(ffmpeg-amrnb,
2945    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
2946    [
2947      if test "$with_ffmpeg_amrnb" = "yes";      then
2948         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
2949      fi])
2950
2951  AC_ARG_WITH(ffmpeg-amrwb,
2952    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
2953    [
2954      if test "$with_ffmpeg_amrwb" = "yes";      then
2955         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
2956      fi])
2957
2958  AC_ARG_WITH(ffmpeg-x264,
2959    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libx264 support],
2960    [
2961      if test "$with_ffmpeg_x264" = "yes";       then
2962         VLC_ADD_LIBS([ffmpeg],[-lx264])
2963      fi])
2964
2965  AC_ARG_WITH(ffmpeg-a52,
2966    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
2967    [
2968      if test "$with_ffmpeg_a52" = "yes";        then
2969         VLC_ADD_LIBS([ffmpeg],[-la52])
2970      fi])
2971
2972  dnl
2973  dnl test for --with-ffmpeg-tree
2974  dnl
2975  AC_ARG_WITH(ffmpeg-tree,
2976    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2977
2978  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2979    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2980    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2981    if test -z "${real_ffmpeg_tree}"; then
2982      dnl  The given directory can't be found
2983      AC_MSG_RESULT(no)
2984      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2985    fi
2986    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2987      dnl  The given libavcodec wasn't built
2988      AC_MSG_RESULT(no)
2989      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2990    fi
2991    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2992      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2993        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
2994      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2995         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
2996         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
2997      else
2998        dnl  The given libavcodec wasn't built with --enable-pp
2999        AC_MSG_RESULT(no)
3000        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
3001      fi
3002    fi
3003    dnl  Use a custom libffmpeg
3004    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3005
3006    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3007    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3008    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3009    export PKG_CONFIG_PATH=""
3010    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3011
3012    PKG_CHECK_MODULES( [FFMPEG],[libavcodec libavformat libpostproc], [
3013         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3014         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3015       ,[])
3016    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3017          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3018    ],[
3019         unset PKG_CONFIG_PATH
3020    ])
3021    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[
3022         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3023    ],[
3024         unset PKG_CONFIG_LIBDIR
3025    ])
3026
3027    VLC_ADD_BUILTINS([ffmpeg])
3028    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3029      VLC_ADD_BUILTINS([stream_out_switcher])
3030    fi
3031
3032    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
3033      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3034      VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
3035      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
3036    fi
3037
3038     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3039       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3040       VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat -lavformat -lz])
3041       VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat])
3042     fi
3043 else
3044
3045
3046 dnl Trying with pkg-config
3047    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3048     [
3049      VLC_SAVE_FLAGS
3050      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3051      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3052      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3053      AC_CHECK_HEADERS(ffmpeg/avformat.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avformat.h.])] )
3054      AC_CHECK_HEADERS(ffmpeg/avutil.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avutil.h.])] )
3055      dnl newer ffmpeg have a separate libpostproc
3056      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3057        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3058        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3059        ],[ true ])
3060      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3061      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3062      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3063      if test "${SYS}" = "darwin"; then
3064         VLC_ADD_BUILTINS([ffmpeg])
3065      else
3066         VLC_ADD_PLUGINS([ffmpeg])
3067      fi
3068      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3069         if test "${SYS}" = "darwin"; then
3070             VLC_ADD_BUILTINS([stream_out_switcher])
3071         else
3072             VLC_ADD_PLUGINS([stream_out_switcher])
3073         fi
3074      fi
3075      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3076      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3077
3078      dnl even newer ffmpeg has a libswscale
3079      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3080        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3081        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3082 dnl    AC_CHECK_HEADERS(ffmpeg/swscale.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/swscale.h.])])
3083        AC_CHECK_LIB(swscale, sws_getContext,
3084          [AC_CHECK_HEADERS([ffmpeg/avutil.h, ffmpeg/swscale.h])],[],[-lavutil -lm])
3085        ],[ true ])
3086      VLC_RESTORE_FLAGS
3087     ],[
3088
3089     dnl
3090     dnl last chance: at the default place
3091     dnl
3092       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3093       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3094       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3095       AC_CHECK_HEADERS(ffmpeg/avformat.h)
3096       AC_CHECK_HEADERS(ffmpeg/avutil.h)
3097       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3098
3099       AC_CHECK_LIB(avutil, av_crc_init, [
3100         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3101         LDAVUTIL="-lavutil"])
3102
3103       AC_CHECK_LIB(avcodec, avcodec_init, [
3104         VLC_ADD_BUILTINS([ffmpeg])
3105         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3106         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3107             VLC_ADD_BUILTINS([stream_out_switcher])
3108         fi],
3109          [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (svn version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ], [$LDAVUTIL])
3110
3111       AC_CHECK_LIB(postproc, pp_postprocess, [
3112         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3113       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3114         [$LDAVUTIL])
3115
3116       AC_CHECK_LIB(avformat, av_open_input_stream, [
3117         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3118       LDFLAGS="${LDFLAGS_save}"
3119       CPPFLAGS="${CPPFLAGS_save}"
3120
3121       AC_CHECK_LIB(swscale, sws_getContext, [
3122         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3123         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3124       LDFLAGS="${LDFLAGS_save}"
3125       CPPFLAGS="${CPPFLAGS_save}"
3126     ])
3127   fi
3128 fi
3129
3130 dnl
3131 dnl  ffmpegaltivec plugin
3132 dnl
3133 AC_ARG_ENABLE(ffmpegaltivec,
3134 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3135 if test "${enable_ffmpegaltivec}" = "yes"
3136 then
3137   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3138     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3139     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3140     if test -z "${real_ffmpeg_tree}"; then
3141       dnl  The given directory can't be found
3142       AC_MSG_RESULT(no)
3143       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3144     fi
3145     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3146       dnl  The given libavcodecaltivec wasn't built
3147       AC_MSG_RESULT(no)
3148       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3149     fi
3150     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3151       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3152       AC_MSG_RESULT(no)
3153       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3154     fi
3155     dnl  Use a custom libffmpeg
3156     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3157     VLC_ADD_BUILTINS([ffmpegaltivec])
3158     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3159     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3160     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3161
3162     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3163       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3164       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3165       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3166     fi
3167     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3168     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3169   fi
3170 fi
3171
3172 dnl
3173 dnl  faad decoder plugin
3174 dnl
3175 AC_ARG_ENABLE(faad,
3176 [  --enable-faad           faad codec (default disabled)])
3177 if test "${enable_faad}" = "yes"
3178 then
3179   AC_ARG_WITH(faad-tree,
3180   [    --with-faad-tree=PATH faad tree for static linking])
3181   if test -n "${with_faad_tree}"
3182   then
3183     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3184     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3185     if test -z "${real_faad_tree}"
3186     then
3187       dnl  The given directory can't be found
3188       AC_MSG_RESULT(no)
3189       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3190     fi
3191     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3192     then
3193       dnl  Use a custom faad
3194       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3195       VLC_ADD_BUILTINS([faad])
3196       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3197       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3198     else
3199       dnl  The given libfaad wasn't built
3200       AC_MSG_RESULT(no)
3201       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3202     fi
3203   else
3204     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3205     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3206     AC_CHECK_HEADERS(faad.h, ,
3207       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3208     AC_CHECK_LIB(faad, faacDecOpen, [
3209       VLC_ADD_PLUGINS([faad])
3210       VLC_ADD_LIBS([faad],[-lfaad]) ],
3211       AC_CHECK_LIB(faad, NeAACDecOpen, [
3212         VLC_ADD_PLUGINS([faad])
3213         VLC_ADD_LIBS([faad],[-lfaad]) ],
3214         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3215     LDFLAGS="${LDFLAGS_save}"
3216     CPPFLAGS="${CPPFLAGS_save}"
3217   fi
3218 fi
3219
3220 dnl
3221 dnl twolame encoder plugin
3222 dnl
3223 AC_ARG_ENABLE(twolame,
3224 [  --enable-twolame        twolame codec (default disabled)])
3225 if test "${enable_twolame}" = "yes"
3226 then
3227   AC_ARG_WITH(twolame-tree,
3228   [    --with-twolame-tree=PATH twolame tree for static linking])
3229   if test -n "${with_twolame_tree}"
3230   then
3231     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3232     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3233     if test -z "${real_twolame_tree}"
3234     then
3235       dnl  The given directory can't be found
3236       AC_MSG_RESULT(no)
3237       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3238     fi
3239     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3240     then
3241       dnl  Use a custom twolame
3242       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3243       VLC_ADD_BUILTINS([twolame])
3244       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3245       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3246     else
3247       dnl  The given libtwolame wasn't built
3248       AC_MSG_RESULT(no)
3249       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3250     fi
3251   else
3252     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3253     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3254     AC_CHECK_HEADERS(twolame.h, ,
3255       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3256     AC_CHECK_LIB(twolame, twolame_init, [
3257       VLC_ADD_PLUGINS([twolame])
3258       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3259       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3260         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3261     LDFLAGS="${LDFLAGS_save}"  
3262     CPPFLAGS="${CPPFLAGS_save}"
3263   fi
3264 fi
3265
3266 dnl
3267 dnl  QuickTime plugin
3268 dnl
3269 AC_ARG_ENABLE(quicktime,
3270   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3271 if test "${enable_quicktime}" != "no" &&
3272   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3273 then
3274   if test "${SYS}" = "mingw32"; then
3275     VLC_ADD_BUILTINS([quicktime])
3276   else
3277   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3278     [ VLC_ADD_BUILTINS([quicktime])
3279       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3280     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3281   fi
3282 fi
3283
3284 dnl
3285 dnl  Real plugin
3286 dnl
3287 AC_ARG_ENABLE(real,
3288   [  --enable-real           Real audio module (default disabled)])
3289 if test "${enable_real}" = "yes"; then
3290   VLC_ADD_PLUGINS([realaudio])
3291 fi
3292
3293 dnl
3294 dnl  Real RTSP plugin
3295 dnl
3296 AC_ARG_ENABLE(realrtsp,
3297   [  --enable-realrtsp       Real RTSP module (default disabled)])
3298 if test "${enable_realrtsp}" = "yes"; then
3299   VLC_ADD_PLUGINS([access_realrtsp])
3300 fi
3301
3302 dnl
3303 dnl MP4 module
3304 dnl
3305 AC_CHECK_HEADERS(zlib.h, [
3306   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3307 ] )
3308
3309 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3310   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3311 ] )
3312
3313 dnl
3314 dnl skins2 module
3315 dnl
3316 AC_ARG_ENABLE(libtar,
3317   [  --enable-libtar support for skins2 (default enabled)])
3318
3319 AS_IF([test "${enable_libtar}" != "no"],[
3320   AC_CHECK_HEADERS(libtar.h, [
3321     VLC_ADD_LIBS([skins2],[-ltar])
3322   ] )
3323 ])
3324
3325 dnl
3326 dnl A52/AC3 decoder plugin
3327 dnl
3328 AC_ARG_ENABLE(a52,
3329   [  --enable-a52            A/52 support with liba52 (default enabled)])
3330 if test "${enable_a52}" != "no"
3331 then
3332   AC_ARG_WITH(a52,
3333     [    --with-a52=PATH       a52 headers and libraries])
3334   AC_ARG_WITH(a52-tree,
3335     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3336   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3337   then
3338     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3339     if test -z "${real_a52_tree}"
3340     then
3341       dnl  The given directory can't be found
3342       AC_MSG_RESULT(no)
3343       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3344     fi
3345     dnl  Use a custom a52dec
3346     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3347     if test -f ${real_a52_tree}/include/a52.h
3348     then
3349       AC_MSG_RESULT(yes)
3350       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3351       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3352       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3353       AC_CHECK_LIB(a52, a52_free, [
3354         VLC_ADD_BUILTINS([a52tofloat32])
3355         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3356         VLC_ADD_LIBS([a52tofloat32],[-la52])
3357         ],[
3358         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3359         then
3360           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3361         else
3362           AC_MSG_ERROR([the specified tree hasn't been compiled])
3363         fi
3364       ])
3365       LDFLAGS="${LDFLAGS_save}"
3366     else
3367       AC_MSG_RESULT(no)
3368       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3369     fi
3370   else
3371     if test -z "${with_a52}"
3372     then
3373       LDFLAGS_test=""
3374       CPPFLAGS_test=""
3375     else
3376       LDFLAGS_test="-L${with_a52}/lib"
3377       CPPFLAGS_test="-I${with_a52}/include"
3378     fi
3379     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3380     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3381     AC_CHECK_HEADERS(a52dec/a52.h, [
3382       AC_CHECK_LIB(a52, a52_free, [
3383         VLC_ADD_PLUGINS([a52tofloat32])
3384         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3385         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3386       ],[
3387         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.])
3388         ])
3389     ],[
3390       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.])
3391     ])
3392     CPPFLAGS="${CPPFLAGS_save}"
3393     LDFLAGS="${LDFLAGS_save}"
3394   fi
3395 fi
3396
3397 AC_ARG_WITH(a52-fixed,
3398       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3399       [
3400         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3401
3402 dnl
3403 dnl DTS Coherent Acoustics decoder plugin
3404 dnl
3405 AS_IF([test "x${enable_dts}" != "x"], [
3406   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3407 ])
3408 AS_IF([test "x${with_dts_tree}" != "x"], [
3409   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3410 ])
3411
3412 AC_ARG_ENABLE(dca,
3413   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3414 AS_IF([test "${enable_dca}" != "no"], [
3415   AC_ARG_WITH(dca-tree,
3416     [    --with-dca-tree=PATH  libdca tree for static linking],,
3417     [with_dca_tree="no"])
3418   AS_IF([test "${with_dca_tree}" != "no"], [
3419     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3420     AS_IF([test -z "${real_dca_tree}"], [
3421       dnl  The given directory can't be found
3422       AC_MSG_RESULT(no)
3423       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3424     ])
3425     dnl  Use a custom libdca
3426     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3427     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3428       AC_MSG_RESULT(yes)
3429       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3430       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3431         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3432       ], [
3433         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3434       ])
3435     ], [
3436       AC_MSG_RESULT(no)
3437       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3438     ])
3439   ], [
3440     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3441       VLC_ADD_PLUGINS([dtstofloat32])
3442       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3443       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3444     ], [
3445       AS_IF([test "x${enable_dca}" != "x"], [
3446         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3447       ])
3448     ])
3449   ])
3450 ])
3451
3452 dnl
3453 dnl  Flac plugin
3454 dnl
3455 AC_ARG_ENABLE(flac,
3456   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3457 if test "${enable_flac}" = "yes"
3458 then
3459   AC_ARG_WITH(flac-tree,
3460   [    --with-flac-tree=PATH flac tree for static linking])
3461   if test -n "${with_flac_tree}"
3462   then
3463     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3464     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3465     if test -z "${real_flac_tree}"
3466     then
3467       dnl  The given directory can't be found
3468       AC_MSG_RESULT(no)
3469       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3470     fi
3471     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3472     then
3473       dnl  Use a custom flac
3474       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3475       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3476       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3477       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3478     else
3479       dnl  The given flac wasn't built
3480       AC_MSG_RESULT(no)
3481       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3482     fi
3483   else
3484     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3485       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3486      ],[])
3487   fi
3488 fi
3489
3490 dnl
3491 dnl  Libmpeg2 plugin
3492 dnl
3493 AC_ARG_ENABLE(libmpeg2,
3494   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3495 if test "${enable_libmpeg2}" != "no"
3496 then
3497   AC_ARG_WITH(libmpeg2-tree,
3498   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3499   if test -n "${with_libmpeg2_tree}"
3500   then
3501     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3502     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3503     if test -z "${real_libmpeg2_tree}"
3504     then
3505       dnl  The given directory can't be found
3506       AC_MSG_RESULT(no)
3507       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3508     fi
3509     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3510     then
3511       dnl  Use a custom libmpeg2
3512       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3513       VLC_ADD_BUILTINS([libmpeg2])
3514       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3515       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3516       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3517     else
3518       dnl  The given libmpeg2 wasn't built
3519       AC_MSG_RESULT(no)
3520       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3521     fi
3522   else
3523     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3524       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3525       AC_EGREP_CPP(yes,
3526         [#include <mpeg2dec/mpeg2.h>
3527          #ifdef MPEG2_RELEASE
3528          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3529          yes
3530          #endif
3531          #endif],
3532         [AC_MSG_RESULT([yes])
3533           VLC_ADD_PLUGINS([libmpeg2])
3534           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3535         [AC_MSG_RESULT([no])
3536           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.])])],
3537
3538       [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.])]
3539     )
3540   fi
3541 fi
3542
3543 dnl
3544 dnl  Vorbis plugin
3545 dnl
3546 AC_ARG_ENABLE(vorbis,
3547   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3548 if test "${enable_vorbis}" != "no"
3549 then
3550   AC_ARG_WITH(vorbis-tree,
3551   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3552   if test -n "${with_vorbis_tree}"
3553   then
3554     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3555     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3556     if test -z "${real_vorbis_tree}"
3557     then
3558       dnl  The given directory can't be found
3559       AC_MSG_RESULT(no)
3560       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3561     fi
3562     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3563     then
3564       dnl  Use a custom vorbis 
3565       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3566       VLC_ADD_PLUGINS([vorbis])
3567       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3568       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3569     else
3570       dnl  The given vorbis wasn't built
3571       AC_MSG_RESULT(no)
3572       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3573     fi
3574   else
3575     AC_CHECK_HEADERS(vorbis/codec.h, [
3576       VLC_ADD_PLUGINS([vorbis])
3577       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3578
3579     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3580       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3581   fi
3582 fi
3583
3584 dnl
3585 dnl  Tremor plugin
3586 dnl
3587 AC_ARG_ENABLE(tremor,
3588   [  --enable-tremor         Tremor decoder support (default disabled)])
3589 if test "${enable_tremor}" = "yes"
3590 then
3591   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3592     VLC_ADD_PLUGINS([tremor])
3593     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3594    ],[])
3595 fi
3596
3597 dnl
3598 dnl  Speex plugin
3599 dnl
3600 AC_ARG_ENABLE(speex,
3601   [  --enable-speex          Speex decoder support (default enabled)])
3602 if test "${enable_speex}" != "no"
3603 then
3604   AC_ARG_WITH(speex-tree,
3605   [    --with-speex-tree=PATH speex tree for static linking])
3606   if test -n "${with_speex_tree}"
3607   then
3608     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3609     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3610     if test -z "${real_speex_tree}"
3611     then
3612       dnl  The given directory can't be found
3613       AC_MSG_RESULT(no)
3614       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3615     fi
3616     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3617     then
3618       dnl  Use a custom speex
3619       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3620       VLC_ADD_PLUGINS([speex])
3621       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3622       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3623     else
3624       dnl  The given speex wasn't built
3625       AC_MSG_RESULT(no)
3626       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3627     fi
3628   else
3629     AC_CHECK_HEADERS(speex/speex.h, [
3630       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3631       AC_CHECK_LIB(speex, speex_decode_int, [
3632         VLC_ADD_PLUGINS([speex])
3633         VLC_ADD_LIBS([speex],[-lspeex]) ],
3634         [ AC_MSG_RESULT([no])
3635           AC_MSG_WARN([Your libspeex is too old, please get the development
3636                        version.]) ],[])
3637       LDFLAGS="${LDFLAGS_save}"
3638       ],[])
3639   fi
3640 fi
3641
3642 dnl
3643 dnl  tarkin decoder plugin
3644 dnl
3645 AC_ARG_ENABLE(tarkin,
3646 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3647 if test "${enable_tarkin}" = "yes"
3648 then
3649   AC_ARG_WITH(tarkin-tree,
3650   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3651   if test -n "${with_tarkin_tree}"
3652   then
3653     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3654     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3655     if test -f "${real_tarkin_tree}/tarkin.o"
3656     then
3657       VLC_ADD_BUILTINS([tarkin])
3658       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3659       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])
3660       AC_MSG_RESULT(yes)
3661     else
3662       dnl  The given tarkin tree wasn't built
3663       AC_MSG_RESULT(no)
3664       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3665                     make sure you compiled tarkin in ${with_tarkin_tree}])
3666     fi
3667   fi
3668 fi
3669
3670 dnl
3671 dnl  theora decoder plugin
3672 dnl
3673 AC_ARG_ENABLE(theora,
3674 [  --enable-theora         experimental theora codec (default disabled)])
3675 if test "${enable_theora}" = "yes"
3676 then
3677   AC_CHECK_HEADERS(theora/theora.h, [
3678     AC_CHECK_LIB(theora, theora_granule_time, [
3679       VLC_ADD_PLUGINS([theora])
3680       theora_libs="-ltheora -logg"
3681       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3682       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3683 You also need to check that you have a libogg posterior to the 1.0 release.])],
3684       [-logg])
3685   ])
3686 fi
3687
3688 dnl
3689 dnl  dirac decoder plugin
3690 dnl
3691 AC_ARG_ENABLE(dirac,
3692 [  --enable-dirac          experimental dirac codec (default disabled)])
3693 if test "${enable_dirac}" = "yes"; then
3694   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.9.0], [
3695       VLC_ADD_PLUGINS([dirac])
3696       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3697       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3698       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3699   ])
3700 fi
3701
3702 dnl
3703 dnl  PNG decoder module
3704 dnl
3705 AC_ARG_ENABLE(png,
3706   [  --enable-png            PNG support (default enabled)])
3707 if test "${enable_png}" != "no"; then
3708 AC_CHECK_HEADERS(png.h, [
3709   LDFLAGS="${LDFLAGS_save} -lz"
3710   AC_CHECK_LIB(png, png_set_rows, [
3711     VLC_ADD_LIBS([png],[-lpng -lz])
3712     VLC_ADD_PLUGINS([png])
3713     VLC_ADD_PLUGINS([osdmenu osd_parser])
3714     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3715     [],[-lz])
3716   LDFLAGS="${LDFLAGS_save}"
3717   ])
3718 fi
3719
3720 dnl
3721 dnl H264 encoder plugin (using libx264)