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