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