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