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