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