]> git.sesse.net Git - vlc/blob - configure.ac
Add real SRTP unit test (85% coverage let alone SRTCP)
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11
12 AC_PREREQ(2.59) dnl this really should be 2.59c
13 AC_CONFIG_SRCDIR(src/libvlc.c)
14 AC_CONFIG_AUX_DIR(autotools)
15 AC_CANONICAL_BUILD
16 AC_CANONICAL_HOST
17
18 AM_INIT_AUTOMAKE([1.9 check-news dist-bzip2 no-dist-gzip -Wall])
19 AM_CONFIG_HEADER(config.h)
20
21 dnl Too many people are not aware of maintainer mode:
22 dnl If you want to use it, you definitely know what you are doing, so
23 dnl you can specify "--disable-maintainer-mode". But if you want the default
24 dnl automake behavior, you've likely never heard of maintainer mode, so we
25 dnl can't expect you to enable it manually.
26
27 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
28         [enable_maintainer_mode="yes"])
29 AM_MAINTAINER_MODE
30
31 dnl
32 dnl  Save *FLAGS
33 dnl
34 VLC_SAVE_FLAGS
35
36 dnl
37 dnl Check for tools
38 dnl
39 AC_PROG_CC_C99
40 AC_USE_SYSTEM_EXTENSIONS
41 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
42 AM_PROG_CC_C_O
43 AC_PROG_CXX
44 AC_PROG_CPP
45 AC_PROG_OBJC
46 _AM_DEPENDENCIES([OBJC])
47 AC_PROG_EGREP
48 AC_PROG_MAKE_SET
49 AC_PROG_INSTALL
50 AM_PROG_AS
51
52 dnl Find the right ranlib, even when cross-compiling
53 AC_CHECK_TOOL(RANLIB, ranlib, :)
54 AC_CHECK_TOOL(STRIP, strip, :)
55 AC_CHECK_TOOL(AR, ar, :)
56 AC_CHECK_TOOL(LD, ld, :)
57 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
58
59 dnl Check for compiler properties
60 AC_C_CONST
61 AC_C_INLINE
62 AC_C_RESTRICT
63
64 dnl
65 dnl  Check for the contrib directory
66 dnl
67 AC_ARG_WITH(contrib,
68     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
69   if test "${with_contrib}" != "no"; then 
70     AC_MSG_CHECKING([for libs in extras/contrib])
71     topdir="`dirname $0`"
72     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
73        topdir="`pwd`/$topdir"
74     fi
75    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
76       if test "${with_contrib}" = "yes"; then
77         AC_MSG_RESULT([no])
78         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
79       else
80         AC_MSG_RESULT([no])
81         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
82       fi
83      else
84   if test -d ${topdir}/extras/contrib/lib; then
85     AC_MSG_RESULT([yes])
86     export PATH=${topdir}/extras/contrib/bin:$PATH
87     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
88     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
89     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
90     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
91     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
92     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
93     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
95     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
96         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
97     else
98         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
99     fi
100     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
101     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
102
103 dnl kludge because only the debian package provides a ffmpeg-config
104     if test -z $with_ffmpeg_config_path; then 
105        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
106     fi
107     if test -z $with_live555_tree; then
108        with_live555_tree=${topdir}/extras/contrib/src/live
109     fi
110     if test -z $with_goom_tree; then
111       with_goom_tree=${topdir}/extras/contrib/src/goom
112     fi
113     if test -z $with_mozilla_sdk_path; then
114        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
115     fi
116     if test -z $with_cyberlink_tree; then
117        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
118     fi
119     if test -z $with_libmpeg2_tree; then
120         with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
121     fi
122
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
173     VLC_ADD_LDFLAGS([mkv mp4], [-framework IOKit -framework CoreFoundation])
174     VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c])
175     VLC_ADD_LDFLAGS([vlc],[-undefined dynamic_lookup])
176     ;;
177   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
178     AC_CHECK_TOOL(WINDRES, windres, :)
179     enable_libtool="no"
180
181     case "${host_os}" in
182       *mingw32*)
183         SYS=mingw32
184         ;;
185       *cygwin*)
186         dnl Check if we are using the mno-cygwin mode in which case we are
187         dnl actually dealing with a mingw32 compiler.
188         AC_EGREP_CPP(yes,
189             [#ifdef WIN32
190              yes
191              #endif],
192             SYS=mingw32, SYS=cygwin)
193         ;;
194       *wince* | *mingwce* | *pe*)
195         SYS=mingwce
196         ;;
197     esac
198
199     if test "${SYS}" = "mingw32"; then
200         # add ws2_32 for closesocket, select, recv
201         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
202         VLC_ADD_LDFLAGS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
203         VLC_ADD_LDFLAGS([vlc activex mozilla],[-mwindows])
204         VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
205         VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync growl flac ts audioscrobbler],[-lws2_32])
206     fi
207     if test "${SYS}" = "mingwce"; then
208         # add ws2 for closesocket, select, recv
209         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
210         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
211         VLC_ADD_LDFLAGS([libvlc vlc],[-lws2 -e WinMainCRTStartup])
212         VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
213    fi
214     ;;
215   *nto*)
216     SYS=nto
217     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
218     ;;
219   solaris*)
220     SYS=solaris
221     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
222     # Perhaps it is useful other places as well? 
223     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
224     ;;
225   hpux*)
226     SYS=hpux
227     ;;
228   beos)
229     SYS=beos
230     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
231     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
232     VLC_ADD_CXXFLAGS([beos],[])
233     VLC_ADD_LDFLAGS([vlc libvlc logger],[-lbe])
234     VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
235     VLC_ADD_LDFLAGS([dvdnav dvdread],[-ldl])
236     VLC_ADD_LDFLAGS([access_file],[-lpoll])
237     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
238     dnl Check for BONE
239     if test -f /boot/beos/system/lib/libbind.so; then
240         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket])
241     else
242         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet])
243     fi
244
245     dnl Ugly check for Zeta
246     if test -f /boot/beos/system/lib/libzeta.so; then
247         VLC_ADD_LDFLAGS([beos],[-lzeta])
248     fi
249     ;;
250   *)
251     SYS="${host_os}"
252     ;;
253 esac
254 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
255 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
256 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
257 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
258
259 dnl
260 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
261 dnl for program foo on win32
262
263 case "${build_os}" in
264     cygwin|msys)
265         ac_executable_extensions=".exe"
266         ;;
267     *)
268         ;;
269 esac
270
271 dnl 
272 dnl  Libtool
273 dnl  It's very bad, but our former custom system was worst
274 dnl  -- Courmisch
275 dnl
276 AC_DISABLE_STATIC
277 AC_LIBTOOL_DLOPEN
278 dnl AC_LIBTOOL_WIN32_DLL - couldn't get libtool to work on Win32 so far
279 m4_undefine([AC_PROG_F77])
280 m4_defun([AC_PROG_F77],[])
281 AC_PROG_LIBTOOL
282
283 AC_ARG_ENABLE(libtool,
284     [  --enable-libtool        use libtool (default enabled)])
285 AM_CONDITIONAL(USE_LIBTOOL, [test "x${enable_libtool}" != "xno"])
286
287
288 dnl
289 dnl  Check for Mac OS X SDK settings
290 dnl
291 AC_ARG_WITH(macosx-sdk,
292    [  --with-macosx-sdk       compile with the Mac OS X 10.4u SDK],[], with_macosx_sdk=no)
293 if test "${with_macosx_sdk}" != "no" ; then
294     CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4"; CFLAGS="${CFLAGS_save}"
295     CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4"; CXXFLAGS="${CXXFLAGS_save}"
296     OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4"; OBJCFLAGS="${OBJCFLAGS_save}"
297     LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.4u.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"; LDFLAGS="${LDFLAGS_save}"
298     export MACOSX_DEPLOYMENT_TARGET=10.4
299     MACOSX_DEPLOYMENT_TARGET="10.4"
300 fi
301
302 dnl
303 dnl Gettext stuff
304 dnl
305 ALL_LINGUAS="af ar bn ca co cs da de el en_GB es eu fa fr fur gl he hi hu it ja ka ko lt lv ms my ne nl no oc pa pl ps pt_BR pt_PT ro ru sk sl sq sv tet th tl tr zh_CN zh_TW"
306 AM_GNU_GETTEXT_VERSION(0.11.5)
307 AM_GNU_GETTEXT
308 AS_IF([test "${nls_cv_force_use_gnu_gettext}" = "yes"], [
309   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, [Define if we use the local libintl])
310   AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_builddir)/intl"
311   AS_IF([test "${enable_libtool}" != "no"], [
312     INCLUDED_LIBINTL="${LTLIBINTL}"
313   ],[
314     INCLUDED_LIBINTL="${LIBINTL}"
315   ])
316 ], [
317   AS_IF([test "${enable_libtool}" != "no"], [
318     VLC_ADD_LDFLAGS([libvlc vlc], [${LTLIBINTL}])
319   ], [
320     VLC_ADD_LDFLAGS([libvlc vlc], [${LIBINTL}])
321   ])
322 ])
323 AC_SUBST(INCLUDED_LIBINTL)
324 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS" 
325
326 dnl
327 dnl Iconv stuff
328 dnl
329 if test "${SYS}" != "mingwce"; then
330 AS_IF([test "$am_cv_func_iconv" != "yes"],
331         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
332 fi
333 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
334 AS_IF([test "${enable_libtool}" != "no"], [
335   VLC_ADD_LDFLAGS([libvlc vlc],[${LIBICONV}])
336 ],[
337   VLC_ADD_LDFLAGS([libvlc vlc],[${LTLIBICONV}])
338 ])
339
340 dnl Check for the need to include the mingwex lib for mingw32
341 if test "${SYS}" = "mingw32"
342 then
343     AC_CHECK_LIB(mingwex,opendir,
344         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([libvlc],[]),
345             [VLC_ADD_LDFLAGS([libvlc gtk],[-lmingwex])])
346     )
347 fi
348
349 dnl Check for fnative-struct or mms-bitfields support for mingw32
350 if test "${SYS}" = "mingw32"
351 then
352     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
353         [ac_cv_c_mms_bitfields],
354         [CFLAGS="${CFLAGS_save} -mms-bitfields"
355          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
356     if test "${ac_cv_c_mms_bitfields}" != "no"; then
357         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
358         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
359     else
360         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
361             [ac_cv_c_fnative_struct],
362             [CFLAGS="${CFLAGS_save} -fnative-struct"
363              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
364         if test "${ac_cv_c_fnative_struct}" != "no"; then
365             CFLAGS_save="${CFLAGS_save} -fnative-struct";
366             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
367         fi
368     fi
369
370     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
371 fi
372
373 dnl Check for fvtable-thunks support for mingw32
374 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
375 then
376 AC_LANG_PUSH(C++)
377     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
378         [ac_cv_cxx_fvtable_thunks],
379         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
380          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
381                         ac_cv_cxx_fvtable_thunks=no)])
382     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
383         CXXFLAGS_mingw32_special="-fvtable-thunks"
384     fi
385
386     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
387 AC_LANG_POP(C++)
388 fi
389
390 dnl Plugin compilation stuff
391
392 VLC_LIBRARY_SUFFIX
393
394 VLC_SYMBOL_PREFIX
395 AC_SUBST(SYMPREF)
396
397 AS_IF([test "${enable_libtool}" = "no"], [
398 case "${SYS}" in
399   mingw32|cygwin)
400     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
401     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
402     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
403     ;;
404   mingwce)
405     ;;
406   *)
407     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
408     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
409     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
410     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
411     ;;
412 esac
413 ])
414
415 dnl The -DSYS_FOO flag
416 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
417
418 dnl Check for system libs needed
419 need_libc=false
420
421 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)
422
423 dnl Check for usual libc functions
424 AC_CHECK_FUNCS(strdup strndup atof)
425 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
426 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
427 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
428
429 dnl Check for setlocal and langinfo
430 AC_CHECK_FUNCS(setlocale)
431 AC_CHECK_HEADERS(langinfo.h)
432 AC_CHECK_FUNCS(nl_langinfo)
433
434 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
435   [AC_TRY_LINK([#include <langinfo.h>],
436     [char* cs = nl_langinfo(CODESET);],
437     ac_cv_langinfo_codeset=yes,
438     ac_cv_langinfo_codeset=no)
439   ])
440 if test ${ac_cv_langinfo_codeset} = yes; then
441   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
442     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
443 fi
444
445 AC_CHECK_FUNCS(connect,,[
446   AC_CHECK_LIB(socket,connect,[
447     VLC_ADD_LDFLAGS([libvlc cdda cddax],-lsocket)
448     LIBS_socket="-lsocket"
449   ])
450 ])
451
452 AC_CHECK_FUNCS(send,,[
453   AC_CHECK_LIB(socket,send,[
454     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
455   ])
456 ])
457
458 AC_CHECK_FUNCS(gethostbyname,,[
459   AC_CHECK_LIB(nsl,gethostbyname,[
460     VLC_ADD_LDFLAGS([cdda cddax libvlc],[-lnsl])
461   ],[
462     AC_CHECK_LIB(bind,gethostbyname,[
463       VLC_ADD_LDFLAGS([access_mms],[-lbind])
464     ])
465   ])
466 ])
467
468 dnl Check for socklen_t
469 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
470   [AC_TRY_COMPILE(
471      [#include <sys/types.h>
472       #include <sys/socket.h>],
473      [socklen_t len = 42; return len;],
474      ac_cv_type_socklen_t=yes,
475      ac_cv_type_socklen_t=no)])
476 if test "${ac_cv_type_socklen_t}" != "no"; then
477   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
478 fi
479
480 dnl Check for struct sockaddr_storage
481 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
482 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
483 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
484   [AC_TRY_COMPILE(
485     [#include <sys/types.h>
486      #if defined( UNDER_CE )
487      # include <winsock.h>
488      #elif defined( WIN32 )
489      # include <winsock2.h>
490      #else
491      # include <sys/socket.h>
492      #endif], [struct sockaddr_storage addr;],
493      ac_cv_struct_sockaddr_storage=yes,
494      ac_cv_struct_sockaddr_storage=no)])
495 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
496   AC_DEFINE(sockaddr_storage, sockaddr)
497   AC_DEFINE(ss_family, sa_family)
498 ])
499
500 dnl getaddrinfo, getnameinfo and gai_strerror check
501 dnl  -lnsl and -lsocket are needed on Solaris;
502 dnl  we purposedly make the test fail on Windows
503 LIBS_save="${LIBS}"
504 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
505 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
506
507 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
508 dnl are
509 LIBS="${LIBS_gai}"
510 AC_CHECK_FUNCS([getnameinfo gai_strerror])
511 LIBS="${LIBS_save}"
512
513 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
514 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
515 [#include <sys/types.h>
516 #if defined( WIN32 ) || defined( UNDER_CE )
517 # if defined(UNDER_CE) && defined(sockaddr_storage)
518 #  undef sockaddr_storage
519 # endif
520 # include <winsock2.h>
521 # include <ws2tcpip.h>
522 #else
523 # include <netdb.h>
524 #endif])
525
526 dnl Check for va_copy
527 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
528   AC_TRY_LINK(
529     [#include <stdarg.h>],
530     [va_list ap1, ap2; va_copy(ap1,ap2);],
531     [ac_cv_c_va_copy="yes"],
532     [ac_cv_c_va_copy="no"]))
533 if test "${ac_cv_c_va_copy}" = "yes"; then
534   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
535 fi
536 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
537   AC_TRY_LINK(
538     [#include <stdarg.h>],
539     [va_list ap1, ap2; __va_copy(ap1,ap2);],
540     [ac_cv_c___va_copy="yes"],
541     [ac_cv_c___va_copy="no"]))
542 if test "${ac_cv_c___va_copy}" = "yes"; then
543   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
544 fi
545
546 AC_CHECK_FUNCS(inet_aton,,[
547   AC_CHECK_LIB(resolv,inet_aton,[
548     VLC_ADD_LDFLAGS([libvlc],[-lresolv])
549   ])
550 ])
551
552 dnl Check for getopt (always use builtin one on win32)
553 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
554 need_getopt=:
555 else
556 need_getopt=false
557 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
558 [ # FreeBSD has a gnugetopt library for this:
559   AC_CHECK_LIB([gnugetopt],[getopt_long],
560     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
561      VLC_ADD_LDFLAGS([libvlc],[-lgnugetopt])],
562     [need_getopt=:])])
563 fi
564 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
565
566 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
567 AC_TYPE_SIGNAL
568 AC_CHECK_LIB(m,cos,[
569   VLC_ADD_LDFLAGS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise],[-lm])
570 ])
571 AC_CHECK_LIB(m,pow,[
572   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm])
573 ])
574 AC_CHECK_LIB(m,sqrt,[
575   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
576 ])
577 AC_CHECK_LIB(m,ceil,[
578   VLC_ADD_LDFLAGS([mosaic],[-lm])
579 ])
580 AC_CHECK_LIB(m,exp,[
581   VLC_ADD_LDFLAGS([gaussianblur],[-lm])
582 ])
583 AC_CHECK_LIB(mx,sqrtf,[
584   VLC_ADD_LDFLAGS([x264],[-lmx])
585 ])
586 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
587
588 dnl Check for dynamic plugins
589 ac_cv_have_plugins=no
590
591 # OS X style
592 AC_CHECK_HEADERS(mach-o/dyld.h,
593   [AC_CHECK_FUNCS(NSLinkModule,
594     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
595      ac_cv_have_plugins=yes])])
596
597 # HP-UX style
598 if test "${ac_cv_have_plugins}" = "no"; then
599   AC_CHECK_HEADERS(dl.h)
600   ac_cv_my_have_shl_load=no
601   AC_CHECK_FUNC(shl_load,
602    [ac_cv_my_have_shl_load=yes,
603     AC_CHECK_LIB(dld, shl_load,
604      [ac_cv_my_have_shl_load=yes
605       VLC_ADD_LDFLAGS([libvlc],[-ldld])])])
606   if test "${ac_cv_my_have_shl_load}" = "yes"; then
607     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
608     ac_cv_have_plugins=yes
609   fi
610 fi
611
612 # Whatever style
613 if test "${ac_cv_have_plugins}" = "no"; then
614   AC_CHECK_LIB(dld, dld_link,
615    [VLC_ADD_LDFLAGS([libvlc],[-ldld])
616     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
617     ac_cv_have_plugins=yes])
618 fi
619
620 # Win32 style
621 if test "${ac_cv_have_plugins}" = "no"; then
622   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
623     AC_CHECK_LIB(kernel32, main,
624      [VLC_ADD_LDFLAGS([libvlc],[-lkernel32])
625       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
626       ac_cv_have_plugins=yes])
627   fi
628 fi
629
630 # WinCE style
631 if test "${ac_cv_have_plugins}" = "no"; then
632   if test "${SYS}" = "mingwce"; then
633     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
634     ac_cv_have_plugins=yes
635   fi
636 fi
637
638 # BeOS style
639 if test "${ac_cv_have_plugins}" = "no"; then
640   AC_CHECK_HEADERS(image.h)
641   AC_CHECK_FUNCS(load_add_on,
642    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
643     ac_cv_have_plugins=yes])
644 fi
645
646 # Only test for dlopen() if the others didn't work
647 if test "${ac_cv_have_plugins}" = "no"; then
648   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
649   ac_cv_my_have_dlopen=no
650   AC_CHECK_FUNC(dlopen,
651     ac_cv_my_have_dlopen=yes,
652     AC_CHECK_LIB(dl, dlopen,
653       ac_cv_my_have_dlopen=yes
654       VLC_ADD_LDFLAGS([libvlc],[-ldl]),
655       AC_CHECK_LIB(svld, dlopen,
656         ac_cv_my_have_dlopen=yes
657         VLC_ADD_LDFLAGS([libvlc],[-lsvld]))))
658   if test "${ac_cv_my_have_dlopen}" = "yes"; then
659     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
660     ac_cv_have_plugins=yes
661   fi
662 fi
663
664 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
665 dnl Check for pthreads - borrowed from XMMS
666 THREAD_LIB=error
667 if test "${THREAD_LIB}" = "error"; then
668   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
669 fi
670 if test "${THREAD_LIB}" = "error"; then
671   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
672 fi
673 if test "${THREAD_LIB}" = "error"; then
674   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
675 fi
676 if test "${THREAD_LIB}" = "error"; then
677   AC_CHECK_FUNCS(pthread_mutex_lock)
678   THREAD_LIB=""
679 fi
680
681 dnl Check for cthreads under GNU/Hurd for instance
682 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
683
684 dnl
685 dnl  GNU portable threads
686 dnl
687 AC_ARG_ENABLE(pth,
688   [  --enable-pth            GNU Pth support (default disabled)],
689   [ if test "${enable_pth}" = "yes"; then
690     AC_CHECK_LIB(pth,pth_init)
691     AC_MSG_CHECKING(for pth_init in pth.h)
692     AC_EGREP_HEADER(pth_init,pth.h,[
693       AC_MSG_RESULT(yes)
694       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
695                 Define if <pth.h> defines pth_init)
696       THREAD_LIB="-lpth"
697     ],[
698       AC_MSG_RESULT(no)
699     ])
700     fi
701 ])
702
703 dnl
704 dnl  State Threads
705 dnl
706 AC_ARG_ENABLE(st,
707   [  --enable-st             State Threads (default disabled)],
708   [ if test "${enable_st}" = "yes"; then
709     AC_CHECK_LIB(st,st_init)
710     AC_MSG_CHECKING(for st_init in st.h)
711     AC_EGREP_HEADER(st_init,st.h,[
712       AC_MSG_RESULT(yes)
713       AC_DEFINE(ST_INIT_IN_ST_H, 1,
714                 Define if <st.h> defines st_init)
715       THREAD_LIB="-lst"
716     ],[
717       AC_MSG_RESULT(yes)
718     ])
719     fi
720 ])
721
722 VLC_ADD_LDFLAGS([libvlc plugin],[${THREAD_LIB}])
723
724 dnl Don't link with rt when using GNU-pth
725 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
726   AC_CHECK_LIB(rt, clock_nanosleep, [
727     VLC_ADD_LDFLAGS([libvlc],[-lrt])
728     AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
729   ], [
730     dnl HP/UX port
731     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([libvlc],[-lrt])])
732   ])
733
734   have_nanosleep=false
735   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
736     AC_CHECK_LIB(rt,nanosleep,
737       [VLC_ADD_LDFLAGS([libvlc],[-lrt]) have_nanosleep=:],
738       [AC_CHECK_LIB(posix4,nanosleep,
739           [VLC_ADD_LDFLAGS([libvlc],[-lposix4]) have_nanosleep=:])]
740     )
741   ])
742   if ${have_nanosleep}; then
743     AC_DEFINE(HAVE_NANOSLEEP, 1,
744               Define if nanosleep is available.)
745   fi
746 fi
747
748 dnl Check for misc headers
749 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
750 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
751   AC_MSG_RESULT(yes)
752   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
753             Define if <pthread.h> defines pthread_cond_t.)],[
754   AC_MSG_RESULT(no)])
755
756 AC_MSG_CHECKING(for pthread_once in pthread.h)
757 AC_EGREP_HEADER(pthread_once,pthread.h,[
758   AC_MSG_RESULT(yes)
759   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
760             Define if <pthread.h> defines pthread_once.)],[
761   AC_MSG_RESULT(no)])
762 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
763
764 AC_MSG_CHECKING(for strncasecmp in strings.h)
765 AC_EGREP_HEADER(strncasecmp,strings.h,[
766   AC_MSG_RESULT(yes)
767   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
768             Define if <strings.h> defines strncasecmp.)],[
769   AC_MSG_RESULT(no)])
770
771 dnl Check for headers
772 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)
773 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
774 AC_CHECK_HEADERS([arpa/inet.h net/if.h netinet/in.h sys/socket.h netinet/udplite.h])
775 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
776 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
777 AC_CHECK_HEADERS(linux/version.h)
778 AC_CHECK_HEADERS(syslog.h)
779 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
780
781 AC_HEADER_TIME
782
783 AC_CHECK_TYPE(ssize_t, int)
784 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
785
786 dnl Check for dirent
787 need_dirent=false
788 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
789 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
790
791 dnl Mac OS X and other OSes don't have declaration for nanosleep
792 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
793 AC_MSG_CHECKING(for nanosleep in time.h)
794 AC_EGREP_HEADER(nanosleep,time.h,[
795   AC_MSG_RESULT(yes)
796   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
797             Define if <time.h> defines nanosleep.)
798 ],[
799   AC_MSG_RESULT(no)
800 ])
801 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
802
803 dnl Make sure we have timespecs
804 AC_MSG_CHECKING(for timespec in sys/time.h)
805 AC_EGREP_HEADER(timespec,sys/time.h,[
806   AC_MSG_RESULT(yes)
807   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
808             Define if <sys/time.h> defines struct timespec.)
809 ],[
810   AC_MSG_RESULT(no)
811 ])
812
813 dnl Check for threads library
814 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
815 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
816 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
817
818 dnl Find where are the X headers and libraries
819 AC_PATH_XTRA()
820
821 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.
822
823 PKG_PROG_PKG_CONFIG()
824
825 dnl Check for hal
826 AC_ARG_ENABLE(hal,
827   [  --enable-hal            Linux HAL services discovery (default enabled)])
828  
829 if test "${enable_hal}" != "no"
830 then
831   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
832     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
833       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
834       VLC_ADD_PLUGINS([hal probe_hal]) 
835       VLC_ADD_LDFLAGS([libvlc hal probe_hal],[$HAL_LIBS])
836       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
837     dnl No hal 0.5 Test for 0.2
838     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
839        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
840         VLC_ADD_PLUGINS([hal])
841         VLC_ADD_LDFLAGS([libvlc hal],[$HAL_LIBS])
842         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
843        [AC_MSG_WARN(HAL library not found)])
844     ]
845   )
846 fi
847
848 dnl Check for dbus
849 AC_ARG_ENABLE(dbus,
850   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
851 case "${SYS}" in
852     linux*|*bsd*)
853 if test "${enable_dbus}" != "no"
854 then
855   dnl api stable dbus
856   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
857     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
858       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
859       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
860       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
861       VLC_ADD_LDFLAGS([screensaver libvlc],[$DBUS_LIBS])
862       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
863       dnl Check for dbus control interface
864         AC_ARG_ENABLE(dbus-control, [  --enable-dbus-control   D-BUS control interface (default disabled)])
865         if test "${enable_dbus_control}" = "yes"
866         then
867           VLC_ADD_PLUGINS([dbus])
868           VLC_ADD_LDFLAGS([dbus],[$DBUS_LIBS])
869           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
870         fi],
871
872     if ${PKG_CONFIG} --exists dbus-1
873     then
874       [AC_ARG_ENABLE(old-dbus,
875         [  --enable-old-dbus      Deprecated D-Bus support (default disabled)])]
876
877       if test "${enable_old_dbus}" != "yes"
878       then
879         echo ""
880         echo "****** WARNING **** WARNING ***** WARNING *************"
881         echo "*** Your D-Bus version is < 1.0.0"
882         echo "*** You are using old and buggy software and so"
883         echo "*** D-Bus support has been disabled."
884         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
885         echo "*** Alternatively you can force the use of your old and"
886         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
887         echo "*******************************************************"
888         echo ""
889       else
890         dnl not too old dbus
891         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
892           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
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 older dbus
898           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
899             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
900               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
901               VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
902               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
903             dnl much older dbus
904             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
905                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
906                 VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
907                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
908                [AC_MSG_WARN(DBUS library not found)])
909             ]
910           )]
911         )]
912       fi
913     fi
914   )
915 fi
916 ;;
917 esac
918
919 dnl Build the gtk_main plugins?
920 NEED_GTK_MAIN=no
921 NEED_GNOME_MAIN=no
922 NEED_GTK2_MAIN=no
923 NEED_GNOME2_MAIN=no
924
925 dnl build the qte plugin ?
926 NEED_QTE_MAIN=no
927
928 dnl Check for ntohl, etc.
929 AC_CACHE_CHECK([for ntohl in sys/param.h],
930     [ac_cv_c_ntohl_sys_param_h],
931     [CFLAGS="${CFLAGS_save} -Wall -Werror"
932      AC_TRY_COMPILE([#include <sys/param.h>],
933         [int meuh; ntohl(meuh);],
934         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
935 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
936     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
937 fi
938 CFLAGS="${CFLAGS_save}"
939
940 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])
941 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
942
943 dnl This helps detect broken plugins with undefined symbols
944 dnl Better fail loudly at build-time than silenty at run-time.
945 dnl Unfortunately, this sucks on FreeBSD (won't even link with -lc)
946 dnl RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
947 dnl   VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
948 dnl ])
949
950 dnl Check for various optimization flags
951 AC_CACHE_CHECK([if \$CC accepts -Os],
952     [ac_cv_c_os],
953     [CFLAGS="${CFLAGS_save} -Os"
954      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
955 if test "${ac_cv_c_os}" != "no" -a "${host_cpu}" = "mipsel"; then
956     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
957 fi
958
959 AC_CACHE_CHECK([if \$CC accepts -O3],
960     [ac_cv_c_o3],
961     [CFLAGS="${CFLAGS_save} -O3"
962      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
963 if test "${ac_cv_c_o3}" != "no" -a "${host_cpu}" != "mipsel"; then
964     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
965 fi
966
967 AC_CACHE_CHECK([if \$CC accepts -O2],
968     [ac_cv_c_o2],
969     [CFLAGS="${CFLAGS_save} -O2"
970      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
971 if test "${ac_cv_c_o2}" != "no" -a "${host_cpu}" != "mipsel"; then
972     if test "${ac_cv_c_o3}" = "no"; then
973         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
974     fi
975     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
976 else 
977     AC_CACHE_CHECK([if \$CC accepts -O],
978         [ac_cv_c_o],
979         [CFLAGS="${CFLAGS_save} -O"
980          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
981     if test "${ac_cv_c_o}" != "no" -a "${host_cpu}" != "mipsel"; then
982         if test "${ac_cv_c_o3}" = "no"; then
983             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
984         fi
985         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
986     fi
987 fi
988
989 dnl Check for -ffast-math
990 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
991     [ac_cv_c_fast_math],
992     [CFLAGS="${CFLAGS_save} -ffast-math"
993      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
994 if test "${ac_cv_c_fast_math}" != "no"; then
995     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
996 fi
997
998 dnl Check for -funroll-loops
999 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1000 if test "${SYS}" != "beos"
1001 then
1002   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1003       [ac_cv_c_unroll_loops],
1004       [CFLAGS="${CFLAGS_save} -funroll-loops"
1005        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1006   if test "${ac_cv_c_unroll_loops}" != "no"; then
1007       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
1008   fi
1009 fi
1010
1011 dnl Check for -fomit-frame-pointer
1012 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1013     [ac_cv_c_omit_frame_pointer],
1014     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1015      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1016 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1017     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1018     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
1019     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
1020 fi
1021
1022 dnl Check for -fvisibility=hidden
1023 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1024     [ac_cv_c_visibility_hidden],
1025     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1026      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1027 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1028     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1029 fi
1030
1031 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1032 dnl AC_LANG_PUSH(C++)
1033 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1034 dnl         [ac_cv_c_visibility_inlines_hidden],
1035 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1036 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1037 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1038 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1039 dnl     fi
1040 dnl     CXXFLAGS="${CXXFLAGS_save}"
1041 dnl AC_LANG_POP(C++)
1042
1043 dnl Check for -mdynamic-no-pic
1044 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1045     [ac_cv_c_dynamic_no_pic],
1046     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1047      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1048 AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1049     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1050     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1051 ])
1052
1053 dnl Check for Darwin plugin linking flags
1054 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1055     [ac_cv_ld_darwin],
1056     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1057      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1058 if test "${ac_cv_ld_darwin}" != "no"; then
1059     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1060 fi
1061
1062 dnl Check for standard plugin linking flags
1063 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1064 AS_IF([test "${enable_libtool}" = "no"], [
1065   AS_IF([test "${SYS}" = "beos"], [
1066     VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1067   ], [
1068     AC_CACHE_CHECK([if \$CC accepts -shared],
1069           [ac_cv_ld_plugins],
1070           [CFLAGS="${CFLAGS_save} -shared"
1071          AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1072     AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1073       VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1074     ])
1075   ])
1076 ])
1077
1078 dnl Check for variadic macros
1079 AC_CACHE_CHECK([for variadic cpp macros],
1080     [ac_cv_cpp_variadic_macros],
1081     [CFLAGS="${CFLAGS_save}"
1082      AC_TRY_COMPILE(
1083          [#include <stdio.h>
1084           #define a(b,c...) printf(b,##c)],
1085          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1086          ac_cv_cpp_variadic_macros=yes,
1087          ac_cv_cpp_variadic_macros=no)])
1088 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1089     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1090 fi
1091
1092 dnl Checks for __attribute__(aligned()) directive
1093 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1094     [ac_cv_c_attribute_aligned],
1095     [ac_cv_c_attribute_aligned=0
1096         CFLAGS="${CFLAGS_save} -Werror"
1097     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1098         AC_TRY_COMPILE([],
1099         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1100         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1101     done
1102         CFLAGS="${CFLAGS_save}"])
1103 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1104     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1105         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1106 fi
1107
1108 dnl Checks for __attribute__(format()) directive
1109 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1110     [ac_cv_c_attribute_format],
1111     [ac_cv_c_attribute_format=no
1112         CFLAGS="${CFLAGS_save} -Werror"
1113         AC_TRY_COMPILE([],
1114         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1115         [ac_cv_c_attribute_format=yes])
1116         CFLAGS="${CFLAGS_save}"])
1117 if test "${ac_cv_c_attribute_format}" != "no"; then
1118     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1119 fi
1120
1121 dnl Check for __attribute__((packed))
1122 AC_CACHE_CHECK([for __attribute__((packed))],
1123   [ac_cv_c_attribute_packed],
1124   [ac_cv_c_attribute_packed=no
1125    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1126                     [ac_cv_c_attribute_packed=yes])])
1127 if test "${ac_cv_c_attribute_packed}" != "no"; then
1128   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1129 fi
1130
1131 dnl Check for __attribute__((visibility()))
1132 AC_CACHE_CHECK([for __attribute__((visibility()))],
1133   [ac_cv_c_attribute_visibility],
1134   [ac_cv_c_attribute_visibility=no
1135    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1136                     [ac_cv_c_attribute_visibility=yes])])
1137 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1138   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1139 fi
1140
1141 dnl
1142 dnl  Check the CPU
1143 dnl
1144 case "${host_cpu}" in
1145   "")
1146     ARCH=unknown
1147     ;;
1148   *)
1149     ARCH="${host_cpu}"
1150     ;;
1151 esac
1152
1153 dnl
1154 dnl  Enable profiling
1155 dnl
1156 AC_ARG_ENABLE(gprof,
1157 [  --enable-gprof          gprof profiling (default disabled)])
1158 AC_ARG_ENABLE(cprof,
1159 [  --enable-cprof          cprof profiling (default disabled)])
1160 test "${enable_gprof}" != "yes" && enable_gprof="no"
1161 test "${enable_cprof}" != "yes" && enable_cprof="no"
1162
1163 dnl
1164 dnl  default modules
1165 dnl
1166 VLC_ADD_PLUGINS([dummy logger memcpy])
1167 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 vc1 ps pva avi asf mp4 rawdv rawvid nsv real aiff mjpeg demuxdump flacsys tta])
1168 VLC_ADD_PLUGINS([cvdsub svcdsub spudec telx subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flac])
1169 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise extract sharpen])
1170 VLC_ADD_PLUGINS([converter_fixed mono])
1171 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1172 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1173 VLC_ADD_PLUGINS([playlist export sgimb nsc xtag])
1174 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify puzzle colorthres])
1175 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1176 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1177 VLC_ADD_PLUGINS([access_http access_mms access_ftp])
1178 VLC_ADD_PLUGINS([access_filter_bandwidth])
1179 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1180 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1181 VLC_ADD_PLUGINS([packetizer_vc1])
1182
1183
1184 if test "${SYS}" != "mingwce"; then
1185   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
1186   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf marq podcast shout sap fake folder])
1187   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
1188   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1189   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1190   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1191   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1192   VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format])
1193 fi
1194
1195 dnl
1196 dnl  Switch to enable a version of VLC where most modules will be builtin
1197 dnl
1198 AC_ARG_ENABLE(mostly-builtin,
1199 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1200 if test "${enable_mostly_builtin}" = "yes"; then
1201   VLC_ADD_BUILTINS([${PLUGINS}])
1202   PLUGINS=""
1203 fi
1204
1205 dnl
1206 dnl Some plugins aren't useful on some platforms
1207 dnl
1208 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1209     VLC_ADD_PLUGINS([screensaver motion])
1210 elif test "${SYS}" != "mingwce"; then
1211     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1212     VLC_ADD_LDFLAGS([dmo],[-lole32])
1213 else
1214     VLC_ADD_PLUGINS([win32text])
1215 fi
1216 if test "${SYS}" = "darwin"; then
1217     VLC_ADD_PLUGINS([quartztext])
1218     VLC_ADD_LDFLAGS([quartztext],[-framework Carbon -framework ApplicationServices])
1219 fi
1220
1221 dnl
1222 dnl  Accelerated modules
1223 dnl
1224 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1225 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1226 MMXEXT_MODULES="memcpymmxext"
1227 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1228 THREEDNOW_MODULES="memcpy3dn"
1229 SSE_MODULES=""
1230 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1231 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1232
1233 if test "${enable_gprof}" != "yes" -a "${enable_debug}" != "yes"
1234 then
1235   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1236 fi
1237
1238 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1239     [ac_cv_mmx_inline],
1240     [CFLAGS="${CFLAGS_save}"
1241      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1242                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1243 if test "${ac_cv_mmx_inline}" != "no"; then
1244   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1245   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1246 fi
1247
1248 dnl  Check for fully workin MMX intrinsics
1249 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1250 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1251 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1252     [ac_cv_c_mmx_intrinsics],
1253     [CFLAGS="${CFLAGS_save} -O -mmmx"
1254      AC_TRY_COMPILE([#include <mmintrin.h>
1255                      #include <stdint.h>
1256                      uint64_t frobzor;],
1257                     [__m64 a, b, c;
1258                      a = b = c = (__m64)frobzor;
1259                      a = _mm_slli_pi16(a, 3);
1260                      a = _mm_adds_pi16(a, b);
1261                      c = _mm_srli_pi16(c, 8);
1262                      c = _mm_slli_pi16(c, 3);
1263                      b = _mm_adds_pi16(b, c);
1264                      a = _mm_unpacklo_pi8(a, b);
1265                      frobzor = (uint64_t)a;],
1266                     [ac_cv_c_mmx_intrinsics=yes],
1267                     [ac_cv_c_mmx_intrinsics=no])])
1268 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1269   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1270   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1271 fi
1272
1273 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1274     [ac_cv_mmxext_inline],
1275     [CFLAGS="${CFLAGS_save}"
1276      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1277                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1278 if test "${ac_cv_mmxext_inline}" != "no"; then
1279   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1280   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1281 fi
1282
1283 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1284     [ac_cv_3dnow_inline],
1285     [CFLAGS="${CFLAGS_save}"
1286      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1287                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1288 if test "${ac_cv_3dnow_inline}" != "no"; then
1289   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1290   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1291 fi
1292
1293 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1294     [ac_cv_sse_inline],
1295     [CFLAGS="${CFLAGS_save}"
1296      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1297                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1298 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1299   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1300   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1301 fi
1302
1303 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1304 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1305     [ac_cv_altivec_inline],
1306     [CFLAGS="${CFLAGS_save}"
1307      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1308          ac_cv_altivec_inline=yes,
1309          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1310           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1311             [ac_cv_altivec_inline="-Wa,-m7400"],
1312             ac_cv_altivec_inline=no)
1313          ])])
1314 if test "${ac_cv_altivec_inline}" != "no"; then
1315   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1316   if test "${ac_cv_altivec_inline}" != "yes"; then
1317     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1318     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1319     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1320     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1321     VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1322   fi
1323   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1324 fi
1325
1326 dnl The AltiVec C extensions
1327 dnl
1328 dnl There are several possible cases:
1329 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1330 dnl                      need <altivec.h>
1331 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1332 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1333 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1334 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1335 dnl - Others: test should fail
1336 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1337   [ac_cv_c_altivec],
1338   [# OS X/PPC test (gcc 4.x)
1339    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1340    AC_TRY_COMPILE([vector unsigned char foo;],
1341      [vec_ld(0, (unsigned char *)0);],
1342      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1343      [# OS X/PPC test (gcc 3.x)
1344       CFLAGS="${CFLAGS_save} -faltivec"
1345       AC_TRY_COMPILE([vector unsigned char foo;],
1346         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1347         [ac_cv_c_altivec="-faltivec"],
1348         dnl Below this are the Linux tests
1349         [# Linux/PPC test (gcc 4.x)
1350          CFLAGS="${CFLAGS_save} -maltivec"
1351          AC_TRY_COMPILE([#include <altivec.h>],
1352            [vec_ld(0, (unsigned char *)0);],
1353            [ac_cv_c_altivec="-maltivec"],
1354            [# Linux/PPC test (gcc 3.3)
1355             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1356             AC_TRY_COMPILE([#include <altivec.h>],
1357               [vec_ld(0, (unsigned char *)0);],
1358               [ac_cv_c_altivec=""
1359                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1360               [# Linux/PPC test (gcc 3.3)
1361                CFLAGS="${CFLAGS_save} -fvec"
1362                AC_TRY_COMPILE([#include <altivec.h>],
1363                  [vec_ld(0, (unsigned char *)0);],
1364                  [ac_cv_c_altivec="-fvec"],
1365                  [ac_cv_c_altivec=no])
1366               ])
1367            ])
1368         ])
1369      ])
1370    CFLAGS="${CFLAGS_save}"
1371   ])
1372
1373 if test "${ac_cv_c_altivec}" != "no"; then
1374   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1375 fi
1376
1377 AS_IF( test "${enable_altivec}" != "no",
1378 [
1379   AC_CHECK_HEADERS(altivec.h)
1380   CPPFLAGS="${CPPFLAGS_save}"
1381   
1382   if test "${ac_cv_c_altivec}" != "no"; then
1383     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1384     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1385     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1386     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1387     if test "${ac_cv_altivec_inline}" = "no"; then
1388       ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1389     fi
1390   fi
1391 ],[
1392   CPPFLAGS="${CPPFLAGS_save}"
1393 ])
1394
1395 AC_CACHE_CHECK([if linker needs -framework vecLib],
1396     [ac_cv_ld_altivec],
1397     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1398      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1399      LDFLAGS="${LDFLAGS_save}"
1400     ])
1401 if test "${ac_cv_ld_altivec}" != "no"; then
1402   VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1403 fi
1404 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1405
1406 AC_ARG_WITH(,[])
1407 AC_ARG_WITH(,[Optimization options:])
1408
1409 dnl
1410 dnl  Special arch tuning
1411 dnl
1412 AC_ARG_WITH(tuning,
1413 [  --with-tuning=ARCH      enable special tuning for an architecture
1414                           (default Pentium 2 on IA-32 and G4 on PPC)])
1415 if test -n "${with_tuning}"; then
1416     if test "${with_tuning}" != "no"; then
1417         CFLAGS_TUNING="-mtune=${with_tuning}"
1418     fi
1419 else
1420     if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1421         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1422     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1423         CFLAGS_TUNING="-mtune=pentium2"
1424     elif test "${host_cpu}" = "x86_64"; then
1425         CFLAGS_TUNING="-mtune=athlon64"
1426     elif test "${host_cpu}" = "powerpc"; then
1427         CFLAGS_TUNING="-mtune=G4";
1428     fi
1429 fi
1430
1431 dnl NOTE: this can't be cached cleanly
1432 AS_IF([test "${CFLAGS_TUNING}"],
1433    [CFLAGS_save="${CFLAGS}"
1434     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1435
1436     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1437     AC_COMPILE_IFELSE([ ],
1438                       [tuning="yes"],
1439                       [CFLAGS_TUNING=""; tuning="no"
1440                        AS_IF([test "${with_tuning}"],
1441                              [AC_MSG_ERROR([requested tuning not supported])])])
1442
1443     AC_MSG_RESULT([$tuning])
1444     CFLAGS="${CFLAGS_save}"
1445 ])
1446
1447 dnl
1448 dnl  x86 accelerations
1449 dnl
1450 if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}"="i486" -o "${host_cpu}" = "x86_64"
1451 then
1452     ARCH="${ARCH} mmx"
1453     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1454 fi
1455
1456 dnl
1457 dnl  Memory usage
1458 dnl
1459 AC_ARG_ENABLE(optimize-memory,
1460 [  --enable-optimize-memory      optimize memory usage over performance])
1461 if test "${enable_optimize_memory}" = "yes"; then
1462   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1463 fi
1464
1465 dnl
1466 dnl  Enable/disable optimizations
1467 dnl
1468 AC_ARG_ENABLE(optimizations,
1469 [  --disable-optimizations disable compiler optimizations (default enabled)])
1470 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1471
1472 dnl
1473 dnl  AltiVec acceleration
1474 dnl
1475 AC_ARG_ENABLE(altivec,
1476 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1477 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1478     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1479 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1480     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1481
1482 dnl
1483 dnl  Debugging mode
1484 dnl
1485 AC_ARG_ENABLE(debug,
1486 [  --enable-debug          debug mode (default disabled)])
1487 test "${enable_debug}" != "yes" && enable_debug="no"
1488 AH_TEMPLATE(NDEBUG,
1489             [Define to 1 if debug code should NOT be compiled])
1490 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1491
1492 dnl
1493 dnl  Test coverage
1494 dnl
1495 AC_ARG_ENABLE(coverage,
1496         [  --enable-coverage       build for test coverage (default disabled)],,
1497         [enable_coverage="no"])
1498 AS_IF([test "${enable_coverage}" != "no"], [
1499         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1500         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1501         LDFLAGS="-lgcov ${LDFLAGS}"
1502         dnl ugly...
1503         CFLAGS_save="${CFLAGS}"
1504         CXXFLAGS_save="${CXXFLAGS}"
1505         LDFLAGS_save="${LDFLAGS}"
1506 ])
1507
1508 dnl
1509 dnl  Enable release-specific flags
1510 dnl
1511 AC_ARG_ENABLE(release,
1512 [  --enable-release        activate extra optimizations (default disabled)])
1513 test "${enable_release}" != "yes" && enable_release="no"
1514
1515 dnl
1516 dnl Stream output
1517 dnl
1518 AC_ARG_ENABLE(sout,
1519   [  --enable-sout           Stream output modules (default enabled)])
1520 if test "${enable_sout}" != "no"
1521 then
1522   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1523   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1524   VLC_ADD_PLUGINS([packetizer_copy])
1525
1526   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1527   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel])
1528   VLC_ADD_PLUGINS([stream_out_gather])
1529 #  VLC_ADD_PLUGINS([stream_out_transrate])
1530 #  VLC_ADD_PLUGINS([rtcp])
1531   VLC_ADD_PLUGINS([profile_parser])
1532
1533   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1534 fi
1535
1536 AC_ARG_ENABLE(switcher,
1537   [  --enable-switcher       Stream-out switcher plugin (default disabled)])    
1538
1539 dnl Check for libshout
1540 AC_ARG_ENABLE(shout,
1541   [  --enable-shout          libshout output plugin (default disabled)])
1542 if test "${enable_shout}" = "yes"; then
1543   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1544     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1545      VLC_ADD_PLUGINS([access_output_shout])
1546      VLC_ADD_LDFLAGS([access_output_shout],[$SHOUT_LIBS])
1547      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1548     [AC_MSG_WARN(libshout library not found)])
1549 fi
1550
1551 dnl Lua playlist demux
1552 AC_ARG_ENABLE(luaplaylist,
1553   [  --enable-lua            lua playlist demux plugin (default enabled)])
1554 if test "${enable_lua}" != "no"
1555 then
1556   PKG_CHECK_MODULES(LUA, lua5.1,
1557     [ have_lua=yes ],
1558     [
1559     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1560     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1561       [ have_lua=yes ],
1562       [ 
1563        AC_MSG_WARN([lua >= 5.1 not found!])
1564       ])
1565     ])
1566   if test "x${have_lua}" = "xyes"; then
1567      AC_DEFINE(HAVE_LUA, [], [Define if you have the lua library])
1568      VLC_ADD_PLUGINS([luaplaylist])
1569      VLC_ADD_LDFLAGS([luaplaylist],[$LUA_LIBS])
1570      VLC_ADD_CFLAGS([luaplaylist],[$LUA_CFLAGS])
1571   fi
1572 fi
1573
1574 dnl
1575 dnl HTTP daemon
1576 dnl
1577 AC_ARG_ENABLE(httpd,
1578   [  --enable-httpd          HTTP daemon (default enabled)])
1579 if test "${enable_httpd}" != "no"
1580 then
1581   VLC_ADD_PLUGINS([http])
1582   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1583 fi
1584
1585 dnl
1586 dnl VideoLAN manager
1587 dnl
1588 AC_ARG_ENABLE(vlm,
1589   [  --enable-vlm            VideoLAN manager (default enabled)])
1590 if test "${enable_vlm}" != "no"
1591 then
1592   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1593 fi
1594
1595 dnl
1596 dnl Growl notification plugin
1597 dnl
1598 AC_ARG_ENABLE(growl,
1599   [  --enable-growl          growl notification plugin (default enabled)])
1600 AS_IF([test "${enable_growl}" != "no"], [
1601     VLC_ADD_PLUGINS([growl])
1602   ]
1603 )
1604
1605 dnl
1606 dnl Libnotify notification plugin
1607 dnl
1608
1609 AC_ARG_ENABLE(notify,
1610   [  --enable-notify         libnotify notification plugin (default enabled)])
1611 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1612     PKG_CHECK_MODULES(NOTIFY, libnotify,
1613       [
1614         VLC_ADD_PLUGINS([notify])
1615         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1616         VLC_ADD_LDFLAGS(notify, [$NOTIFY_LIBS])
1617       ],[
1618         AS_IF([test "${enable_notify}" = "yes"],[
1619                AC_MSG_WARN( libnotify not found) ])
1620       ])
1621   ])
1622
1623 dnl
1624 dnl Audioscrobbler plugin
1625 dnl
1626
1627 AC_ARG_ENABLE(audioscrobbler,
1628   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1629 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1630         VLC_ADD_PLUGINS([audioscrobbler])
1631   ])
1632
1633 dnl
1634 dnl Musicbrainz plugin
1635 dnl
1636 AC_ARG_ENABLE(musicbrainz,
1637   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1638   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1639       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1640         [ VLC_ADD_PLUGINS([musicbrainz])
1641           VLC_ADD_LDFLAGS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1642           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1643        [AC_MSG_WARN(MusicBrainz library not found)])
1644    ])
1645
1646
1647 dnl
1648 dnl Taglibplugin
1649 dnl
1650 AC_ARG_ENABLE(taglib,
1651   [  --enable-taglib Taglib support (default disabled) ])
1652   AS_IF([test "${enable_taglib}" = "yes"],[
1653     PKG_CHECK_MODULES(TAGLIB, taglib,
1654       [ VLC_ADD_PLUGINS([taglib])
1655         VLC_ADD_LDFLAGS([taglib],[$TAGLIB_LIBS])
1656        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1657       [AC_MSG_WARN(TagLib library not found)])
1658   ])
1659
1660
1661 dnl
1662 dnl  Input plugins
1663 dnl
1664
1665 AC_ARG_WITH(,[Input plugins:])
1666
1667 dnl  live555 input
1668 dnl
1669 if test "${enable_livedotcom}" 
1670 then
1671   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1672 fi
1673
1674 if test "${enable_livedotcom}" = "no"
1675 then
1676   enable_live555="no"
1677 fi
1678 AC_ARG_ENABLE(live555,
1679 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1680 if test "${enable_live555}" != "no"; then
1681   AC_ARG_WITH(live555-tree,
1682     [    --with-live555-tree=PATH live.com tree for static linking])
1683
1684   dnl
1685   dnl test for --with-live555-tree
1686   dnl
1687   if test "${with_livedotcom_tree}" 
1688   then
1689     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1690   with_live555_tree="${with_livedotcom_tree}"
1691   fi
1692
1693   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1694     AC_LANG_PUSH(C++)
1695     CPPFLAGS_save="${CPPFLAGS}"
1696     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1697     if test "${SYS}" = "solaris"; then
1698       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1699     fi
1700     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1701     AC_CHECK_HEADERS(liveMedia.hh, [
1702       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1703       AC_CHECK_LIB(liveMedia_pic, main, [
1704         # We have -lliveMedia_pic, build plugins
1705         VLC_ADD_PLUGINS([live555])
1706         VLC_ADD_LDFLAGS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1707       ], [
1708         AC_CHECK_LIB(liveMedia, main, [
1709           # We only have -lliveMedia, do builtins
1710           VLC_ADD_BUILTINS([live555])
1711           VLC_ADD_LDFLAGS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1712         ])
1713       ])
1714       if test "${SYS}" = "mingw32"; then
1715         # add ws2_32 for closesocket, select, recv
1716         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1717       fi
1718     ])
1719     CPPFLAGS="${CPPFLAGS_save}"
1720     AC_LANG_POP(C++)
1721   else
1722     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1723     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1724     if test -z "${real_live555_tree}"; then
1725       dnl  The given directory can't be found
1726       AC_MSG_RESULT(no)
1727       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1728     fi
1729     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1730       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1731
1732       VLC_ADD_BUILTINS([live555])
1733
1734       if test "${SYS}" = "mingw32"; then
1735         # add ws2_32 for closesocket, select, recv
1736         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1737       fi
1738
1739       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1740       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1741       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1742       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1743
1744       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1745       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1746       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1747       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1748       if test "${SYS}" = "solaris"; then
1749         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1750       fi
1751     else
1752       dnl  The given live555 wasn't built
1753         AC_MSG_RESULT(no)
1754       if test "${enable_live555}" = "yes"; then
1755         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1756       fi        
1757     fi
1758   fi
1759 fi
1760
1761 dnl
1762 dnl  special access module for dc1394 input
1763 dnl
1764 AC_ARG_ENABLE(dc1394,
1765   [  --enable-dc1394       dc1394 access module (default disabled)])
1766 if test "${enable_dc1394}" = "yes"
1767 then
1768   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1769     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1770         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1771 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1772               VLC_ADD_PLUGINS([dc1394])
1773               VLC_ADD_LDFLAGS([dc1394],[-ldc1394_control -lraw1394])
1774 dnl         ],
1775 dnl         [
1776 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1777 dnl         ])
1778       ],
1779       [
1780         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1781       ])
1782     ],
1783     [
1784       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1785     ])
1786   ],
1787   [
1788     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1789   ])
1790 fi
1791
1792 dnl
1793 dnl dv module: digital video module check for libraw1394
1794 dnl
1795 AC_ARG_ENABLE(dv,
1796 [  --enable-dv             dv input module (default disabled)])
1797 if test "${enable_dv}" = "yes"
1798 then
1799   AC_ARG_WITH(dv-raw1394,
1800   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1801   AC_ARG_WITH(dv-raw1394-tree,
1802   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1803
1804   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1805   then
1806     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1807     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1808     then
1809       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1810       AC_MSG_RESULT(yes)
1811       VLC_ADD_PLUGINS([access_dv])
1812       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1813       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1814     else
1815       dnl  No libraw1394 could be found, sorry
1816       AC_MSG_RESULT(no)
1817       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1818     fi
1819   else
1820     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1821     [ VLC_ADD_PLUGINS([access_dv])
1822         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1823     ],[
1824         if test -n "${enable_dv}"
1825         then
1826           AC_MSG_ERROR([cannot find libraw1394 headers])
1827         fi
1828     ])
1829   fi
1830
1831   dnl Check for static linking of libraw1394
1832   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1833   then
1834     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1835     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1836     if test -z "${real_dv_raw1394_tree}"
1837     then
1838       dnl  The given directory can't be found
1839       AC_MSG_RESULT(no)
1840       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1841     fi
1842     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1843     then
1844       dnl  Use a custom libraw1394
1845       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1846       VLC_ADD_BUILTINS([access_dv])
1847       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1848       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1849     else
1850       dnl  The given libraw1394 wasn't built
1851       AC_MSG_RESULT(no)
1852       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1853     fi
1854   fi
1855
1856   dnl
1857   dnl Check for libavc1394
1858   dnl
1859
1860   AC_ARG_WITH(dv-avc1394,
1861   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1862   AC_ARG_WITH(dv-avc1394-tree,
1863   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1864
1865   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1866   then
1867     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1868     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1869     then
1870       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1871       AC_MSG_RESULT(yes)
1872       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1873       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1874     else
1875       dnl  No libavc1394 could be found, sorry
1876       AC_MSG_RESULT(no)
1877       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1878     fi
1879   else
1880     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1881     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1882     ],[
1883         if test -n "${enable_dv}"
1884         then
1885           AC_MSG_ERROR([cannot find libavc1394 headers])
1886         fi
1887     ])
1888   fi
1889
1890   dnl Check for static linking of libavc1394
1891   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1892   then
1893     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1894     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1895     if test -z "${real_dv_avc1394_tree}"
1896     then
1897       dnl  The given directory can't be found
1898       AC_MSG_RESULT(no)
1899       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1900     fi
1901     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1902     then
1903       dnl  Use a custom libavc1394
1904       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1905       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1906       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1907     else
1908       dnl  The given libavc1394 wasn't built
1909       AC_MSG_RESULT(no)
1910       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1911     fi
1912   fi
1913 fi
1914
1915 dnl
1916 dnl dvdread module: check for libdvdread
1917 dnl
1918 AC_ARG_ENABLE(dvdread,
1919 [  --enable-dvdread        dvdread input module (default disabled)])
1920 if test "${enable_dvdread}" != "no"
1921 then
1922   AC_ARG_WITH(dvdread,
1923   [    --with-dvdread=PATH   libdvdread headers and libraries])
1924   AC_ARG_WITH(dvdread-tree,
1925   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1926
1927   dnl Temporary hack (yeah, sure ;)
1928   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1929       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1930   fi
1931
1932   if test -z "${with_dvdread}"
1933   then
1934     if test -z "${with_dvdread_tree}"
1935     then
1936       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1937         [ VLC_ADD_PLUGINS([dvdread])
1938           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1939         ],[
1940           if test -n "${enable_dvdread}"
1941           then
1942             AC_MSG_ERROR([cannot find libdvdread headers])
1943           fi
1944         ])
1945     else
1946       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1947       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1948       if test -z "${real_dvdread_tree}"
1949       then
1950         dnl  The given directory can't be found
1951         AC_MSG_RESULT(no)
1952         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1953       fi
1954       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1955       then
1956         dnl  Use a custom libdvdread
1957         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1958         VLC_ADD_BUILTINS([dvdread])
1959         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1960         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1961       else
1962         dnl  The given libdvdread wasn't built
1963         AC_MSG_RESULT(no)
1964         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1965       fi
1966     fi
1967   else
1968     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1969     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1970     then
1971       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1972       AC_MSG_RESULT(yes)
1973       VLC_ADD_PLUGINS([dvdread])
1974       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1975       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1976     else
1977       dnl  No libdvdread could be found, sorry
1978       AC_MSG_RESULT(no)
1979       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1980     fi
1981   fi
1982 fi
1983
1984 dnl
1985 dnl  libdvdnav plugin
1986 dnl
1987 AC_ARG_ENABLE(dvdnav,
1988   [  --enable-dvdnav         dvdnav input module (default enabled)])
1989 if test "${enable_dvdnav}" != "no"
1990 then
1991   dnl Same hack than dvdread
1992   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1993       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1994   fi
1995
1996   DVDNAV_PATH="${PATH}"
1997   AC_ARG_WITH(dvdnav-config-path,
1998     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1999     [ if test "${with_dvdnav_config_path}" != "no"
2000       then
2001         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2002       fi ])
2003   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2004   if test "${DVDNAV_CONFIG}" != "no"
2005   then
2006     VLC_ADD_PLUGINS([dvdnav])
2007     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2008     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2009   fi
2010 fi
2011
2012 dnl
2013 dnl  Windows DirectShow access module
2014 dnl
2015 AC_ARG_ENABLE(dshow,
2016   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2017 if test "${enable_dshow}" != "no"
2018 then
2019   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2020   then
2021     AC_LANG_PUSH(C++)
2022       AC_CHECK_HEADERS(dshow.h,
2023       [ VLC_ADD_PLUGINS([dshow])
2024         VLC_ADD_CXXFLAGS([dshow],[])
2025         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
2026     AC_LANG_POP(C++)
2027   fi
2028 fi
2029
2030 dnl
2031 dnl  Windows DirectShow BDA access module
2032 dnl
2033 AC_ARG_ENABLE(bda,
2034   [  --enable-bda          Win32 DirectShow BDA support (default enabled on Win32)])
2035 if test "${enable_bda}" != "no"
2036 then
2037   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2038   then
2039       AC_CHECK_HEADERS(dshow.h,
2040       [ VLC_ADD_PLUGINS([bda])
2041         VLC_ADD_CXXFLAGS([bda],[])
2042         VLC_ADD_LDFLAGS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2043   fi
2044 fi
2045
2046
2047 dnl
2048 dnl  OpenCV wrapper and example filters
2049 dnl
2050 AC_ARG_ENABLE(opencv,
2051   [  --enable-opencv            OpenCV (computer vision) filter (default disabled)])
2052 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2053 then
2054   AC_ARG_WITH(opencv-tree,
2055   [    --with-opencv-tree=PATH opencv tree for linking])
2056   if test -n "${with_opencv_tree}"
2057   then
2058     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2059     then
2060           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2061           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2062             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2063       then
2064         AC_MSG_RESULT(yes)
2065         VLC_ADD_PLUGINS([opencv_wrapper])
2066         VLC_ADD_LDFLAGS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2067         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])
2068         AC_LANG_PUSH(C++)
2069         VLC_ADD_PLUGINS([opencv_example])
2070         VLC_ADD_LDFLAGS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2071         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])
2072         AC_LANG_POP(C++)        
2073           else
2074         dnl  No opencv could be found, sorry
2075         AC_MSG_RESULT(no)
2076         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2077           fi
2078     else
2079           AC_MSG_WARN([--enable-opencv currently only works on windows])
2080     fi
2081   fi  
2082 fi
2083
2084
2085 dnl
2086 dnl  libsmbclient plugin
2087 dnl
2088 AC_ARG_ENABLE(smb,
2089   [  --enable-smb            smb input module (default enabled)])
2090 if test "${enable_smb}" != "no"; then
2091   AC_CHECK_HEADERS(libsmbclient.h,
2092     [ VLC_ADD_PLUGINS([access_smb])
2093       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
2094     [ if test -n "${enable_smb}"; then
2095         AC_MSG_ERROR([cannot find libsmbclient headers])
2096      fi ])
2097   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2098     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
2099     [#include <libsmbclient.h>])
2100 fi
2101
2102 dnl
2103 dnl  libdvbpsi ts demux/mux
2104 dnl
2105 AC_ARG_ENABLE(dvbpsi,
2106   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2107 if test "${enable_dvbpsi}" != "no"
2108 then
2109   AC_ARG_WITH(dvbpsi,
2110   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2111   AC_ARG_WITH(dvbpsi,
2112   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2113   case "${with_dvbpsi}" in
2114   ""|yes)
2115     if test -z "${with_dvbpsi_tree}"
2116     then
2117       AC_CHECK_HEADERS(dvbpsi/dr.h,
2118         [ VLC_ADD_PLUGINS([ts])
2119           if test "${enable_sout}" != "no"; then
2120             VLC_ADD_PLUGINS([mux_ts])
2121           fi
2122           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
2123         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2124         [#if defined( HAVE_STDINT_H )
2125 #   include <stdint.h>
2126 #elif defined( HAVE_INTTYPES_H )
2127 #   include <inttypes.h>
2128 #endif
2129 #include <dvbpsi/dvbpsi.h>
2130 #include <dvbpsi/descriptor.h>
2131 #include <dvbpsi/pat.h>
2132 #include <dvbpsi/pmt.h>])
2133     else
2134       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2135       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2136       if test -z "${real_dvbpsi_tree}"
2137       then
2138         dnl  The given directory can't be found
2139         AC_MSG_RESULT(no)
2140         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2141       fi
2142       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2143       then
2144         dnl  Use a custom libdvbpsi
2145         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2146         VLC_ADD_BUILTINS([ts])
2147         if test "${enable_sout}" != "no"; then
2148           VLC_ADD_BUILTINS([mux_ts])
2149         fi
2150         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2151         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2152       else
2153         dnl  The given libdvbpsi wasn't built
2154         AC_MSG_RESULT(no)
2155         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2156       fi
2157     fi
2158   ;;
2159   no)
2160     dnl  Compile without dvbpsi
2161   ;;
2162   *)
2163     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2164     if test -z "${with_dvbpsi}"
2165     then
2166       LDFLAGS_test=""
2167       CPPFLAGS_test=""
2168     else
2169       LDFLAGS_test="-L${with_dvbpsi}/lib"
2170       CPPFLAGS_test="-I${with_dvbpsi}/include"
2171     fi
2172     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2173     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2174       VLC_ADD_PLUGINS([ts])
2175       if test "${enable_sout}" != "no"; then
2176         VLC_ADD_PLUGINS([mux_ts])
2177       fi
2178       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2179       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2180
2181     ],[
2182       if test -n "${enable_dvbpsi}"
2183       then
2184         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])
2185       fi
2186     ])
2187     CPPFLAGS="${CPPFLAGS_save}"
2188   ;;
2189   esac
2190   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2191     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2192   ], [], [${LDFLAGS_ts}])
2193
2194 fi
2195
2196 dnl
2197 dnl  Video4Linux plugin
2198 dnl
2199 AC_ARG_ENABLE(v4l,
2200   [  --enable-v4l            Video4Linux input support (default disabled)])
2201 if test "${enable_v4l}" = "yes"
2202 then
2203   AC_ARG_WITH(v4l,
2204     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2205   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2206   then
2207     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2208   fi
2209
2210   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2211   AC_CHECK_HEADERS(linux/videodev.h, [
2212     VLC_ADD_PLUGINS([v4l])
2213   ],[])
2214   CPPFLAGS="${CPPFLAGS_save}"
2215 fi
2216
2217 dnl
2218 dnl  Video4Linux plugin
2219 dnl
2220 AC_ARG_ENABLE(v4l2,
2221   [  --enable-v4l2            Video4Linux2 input support (default disabled)])
2222 if test "${enable_v4l2}" = "yes"
2223 then
2224   AC_ARG_WITH(v4l2,
2225     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2226   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2227   then
2228     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2229   fi
2230
2231   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2232   AC_CHECK_HEADERS(linux/videodev2.h, [
2233     VLC_ADD_PLUGINS([v4l2])
2234   ],[])
2235   CPPFLAGS="${CPPFLAGS_save}"
2236 fi
2237
2238
2239 dnl
2240 dnl  special access module for Hauppauge PVR cards
2241 dnl
2242 AC_ARG_ENABLE(pvr,
2243   [  --enable-pvr            PVR cards access module (default disabled)])
2244 if test "${enable_pvr}" = "yes"
2245 then
2246   VLC_ADD_PLUGINS([pvr])
2247   AC_ARG_WITH(videodev2,
2248     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2249   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2250   then
2251     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2252   else
2253     AC_DEFINE(VIDEODEV2_H_FILE, <linux/videodev2.h>, [Location of videodev2.h])
2254   fi
2255     
2256
2257   AC_CACHE_CHECK([for new linux/videodev2.h],
2258       [new_linux_videodev2_h],
2259       [AC_TRY_COMPILE([#include <sys/types.h>
2260           #include VIDEODEV2_H_FILE],
2261           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2262           new_linux_videodev2_h=yes,
2263           new_linux_videodev2_h=no)])
2264   if test "${new_linux_videodev2_h}" != "no"; then
2265     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2266   fi
2267 fi
2268
2269 dnl
2270 dnl  gnomeVFS access module
2271 dnl
2272 AC_ARG_ENABLE(gnomevfs,
2273   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2274 if test "${enable_gnomevfs}" = "yes" 
2275 then
2276   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2277     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
2278     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2279     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2280     VLC_ADD_PLUGINS([access_gnomevfs]),
2281     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2282 fi
2283
2284 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2285 AC_ARG_ENABLE(libcdio,
2286   [  --enable-libcdio        CD input and control library support (default enabled)])
2287
2288
2289 have_libcdio=no
2290 have_libvcdinfo=no
2291 if test "${enable_libcdio}" != "no"
2292 then
2293   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2294      have_libcdio=yes
2295      AC_DEFINE(HAVE_LIBCDIO, [], 
2296      [Define if you have libcdio 0.78.2 or greater installed]),
2297      [AC_MSG_WARN(CD Reading and information library not found)])
2298
2299   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2300      [have_libvcdinfo=yes
2301      AC_DEFINE(HAVE_VCDINFO, [], 
2302      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2303      [AC_MSG_WARN(VCD information library not found)])
2304 fi
2305
2306 dnl
2307 dnl  VCDX and CDDAX modules
2308 dnl
2309 AC_ARG_ENABLE(cddax,
2310   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2311  
2312 AC_ARG_ENABLE(libcddb,
2313   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2314  
2315 if test "${enable_cddax}" = "yes"
2316 then
2317   if test "$have_libcdio" = "yes"
2318   then
2319     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
2320     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
2321     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2322     VLC_ADD_PLUGINS([cddax])
2323     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2324     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2325     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2326   else 
2327     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2328     HAVE_CDDAX=no
2329   fi
2330
2331   if test "$enable_libcddb" != "no"; then
2332     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2333       HAVE_LIBCDDB=yes 
2334       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2335       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
2336       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2337       ],
2338       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2339       HAVE_LIBCDDB=no])
2340   fi
2341  
2342 fi
2343
2344 AC_ARG_ENABLE(vcdx,
2345   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2346  
2347 if test "${enable_vcdx}" = "yes"
2348 then
2349   if test "${have_libvcdinfo}" = "yes"
2350   then
2351     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2352     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2353   else 
2354     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2355     HAVE_VCDX=no
2356   fi
2357
2358   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2359    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2360     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2361     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2362     HAVE_VCDX=no])
2363
2364   if test "$have_libvcdinfo" = "yes"
2365   then
2366     AC_DEFINE(HAVE_VCDX, [], 
2367     [Define for the VCD plugin using libcdio/libvcdinfo])
2368     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2369     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2370     VLC_ADD_PLUGINS([vcdx])
2371   else 
2372     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2373     HAVE_VCDX=no
2374   fi
2375 fi
2376
2377 dnl
2378 dnl  Built-in CD-DA and VCD module
2379 dnl
2380 AC_ARG_ENABLE(cdda,           
2381   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2382  
2383 AC_ARG_ENABLE(vcd,
2384   [  --enable-vcd            built-in VCD (default enabled)])
2385
2386 if test "${enable_vcd}" != "no"
2387 then
2388   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2389   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2390     AC_MSG_RESULT(yes)
2391     VLC_ADD_PLUGINS([vcd cdda])
2392   ],[
2393     AC_MSG_RESULT(no)
2394   ])
2395
2396   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2397   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2398     AC_MSG_RESULT(yes)
2399     VLC_ADD_PLUGINS([vcd cdda])
2400     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2401   ],[
2402     AC_MSG_RESULT(no)
2403   ])
2404
2405   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2406   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2407     AC_MSG_RESULT(yes)
2408     VLC_ADD_PLUGINS([vcd cdda])
2409     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2410   ],[
2411     AC_MSG_RESULT(no)
2412   ])
2413
2414   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2415   then
2416     VLC_ADD_PLUGINS([vcd cdda])
2417   fi
2418
2419   if test "${SYS}" = "darwin"
2420   then
2421     VLC_ADD_PLUGINS([vcd cdda])
2422     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2423     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2424   fi
2425
2426   if test "$enable_libcddb" != "no"; then
2427     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2428       HAVE_LIBCDDB=yes 
2429       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2430       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2431       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2432       ],:
2433       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2434       HAVE_LIBCDDB=no])
2435   fi
2436 fi
2437
2438 dnl
2439 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2440 dnl
2441 AC_ARG_ENABLE(dvb,
2442   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2443
2444 if test "${enable_dvb}" = "yes"
2445 then
2446   AC_ARG_WITH(dvb,
2447   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2448   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2449   then
2450     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2451   fi
2452   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2453   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2454     if test -z "${with_dvbpsi_tree}"
2455     then
2456       VLC_ADD_PLUGINS([dvb])
2457     else
2458       VLC_ADD_BUILTINS([dvb])
2459     fi
2460   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2461   CPPFLAGS="${CPPFLAGS_save}"
2462 fi
2463
2464 dnl
2465 dnl  Screen capture module
2466 dnl
2467 AC_ARG_ENABLE(screen,
2468   [  --enable-screen         Screen capture support (default enabled)])
2469 if test "${enable_screen}" != "no"; then
2470   if test "${SYS}" = "darwin"; then
2471     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2472       VLC_ADD_PLUGINS([screen])
2473       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2474     ])
2475   elif test "${SYS}" = "mingw32"; then
2476     VLC_ADD_PLUGINS([screen])
2477     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2478   elif test "${SYS}" = "mingwce"; then
2479     CPPFLAGS="${CPPFLAGS_save}"
2480   elif test "${SYS}" = "beos"; then
2481     VLC_ADD_PLUGINS([screen])
2482     VLC_ADD_CXXFLAGS([screen],[])
2483     VLC_ADD_LDFLAGS([screen],[-lbe])
2484   else
2485     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2486     AC_CHECK_HEADERS(X11/Xlib.h, [
2487       VLC_ADD_PLUGINS([screen])
2488       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2489       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2490     ])
2491     CPPFLAGS="${CPPFLAGS_save}"
2492   fi
2493 fi
2494
2495 dnl
2496 dnl  ipv6 plugin - not for QNX yet
2497 dnl
2498 have_ipv6=no
2499 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2500   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2501 ])
2502
2503 AS_IF([test "${have_ipv6}" = "yes"], [
2504   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2505
2506
2507 AC_CHECK_FUNCS(inet_ntop,[
2508   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2509
2510
2511 dnl
2512 dnl  ogg demux plugin
2513 dnl
2514 AC_ARG_ENABLE(ogg,
2515   [  --enable-ogg            Ogg demux support (default enabled)])
2516 if test "${enable_ogg}" != "no"
2517 then
2518   AC_ARG_WITH(ogg-tree,
2519   [    --with-ogg-tree=PATH  ogg tree for static linking])
2520   if test -n "${with_ogg_tree}"
2521   then
2522     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2523     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2524     if test -z "${real_ogg_tree}"
2525     then
2526       dnl  The given directory can't be found
2527       AC_MSG_RESULT(no)
2528       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2529     fi
2530     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2531     then
2532       dnl  Use a custom ogg
2533       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2534       VLC_ADD_PLUGINS([ogg])
2535       if test "${enable_sout}" != "no"; then
2536         VLC_ADD_PLUGINS([mux_ogg])
2537       fi
2538       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2539       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2540     else
2541       dnl  The given ogg wasn't built
2542       AC_MSG_RESULT(no)
2543       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2544     fi
2545   else
2546     AC_CHECK_HEADERS(ogg/ogg.h, [
2547       AC_CHECK_LIB( ogg, oggpack_read, [
2548         VLC_ADD_PLUGINS([ogg])
2549         if test "${enable_sout}" != "no"; then
2550           VLC_ADD_PLUGINS([mux_ogg])
2551         fi
2552         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2553      ],[])
2554   fi
2555 fi
2556
2557 dnl
2558 dnl  matroska demux plugin
2559 dnl
2560 AC_ARG_ENABLE(mkv,
2561   [  --enable-mkv            Matroska demux support (default enabled)])
2562 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2563   AC_LANG_PUSH(C++)
2564   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2565     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2566     AC_EGREP_CPP(yes,
2567       [#include <ebml/EbmlVersion.h>
2568        #ifdef LIBEBML_VERSION
2569        #if LIBEBML_VERSION >= 0x000706
2570        yes
2571        #endif
2572        #endif],
2573       [AC_MSG_RESULT([yes])
2574         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2575           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2576           AC_EGREP_CPP(yes,
2577             [#include <matroska/KaxVersion.h>
2578              #ifdef LIBMATROSKA_VERSION
2579              #if LIBMATROSKA_VERSION >= 0x000705
2580              yes
2581              #endif
2582              #endif],
2583             [AC_MSG_RESULT([yes])
2584               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2585               VLC_ADD_CXXFLAGS([mkv],[])
2586               if test "${SYS}" = "darwin"; then
2587                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2588               fi
2589               AC_CHECK_LIB(ebml_pic, main, [
2590                 VLC_ADD_PLUGINS([mkv])
2591                 VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml_pic])
2592               ],
2593                 AC_CHECK_LIB(ebml, main, [
2594                   VLC_ADD_PLUGINS([mkv])
2595                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2596                 ]) 
2597               )
2598             ],
2599             [AC_MSG_RESULT([no])
2600               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.])
2601           ])
2602         ])
2603       ],
2604       [AC_MSG_RESULT([no])
2605         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.])
2606     ])
2607   ])
2608   AC_LANG_POP(C++)
2609 fi
2610
2611 dnl
2612 dnl  modplug demux plugin
2613 dnl
2614 AC_ARG_ENABLE(mod,
2615   [  --enable-mod            Mod demux support (default enabled)])
2616 if test "${enable_mod}" != "no"
2617 then
2618   AC_ARG_WITH(mod-tree,
2619   [    --with-mod-tree=PATH mod tree for static linking])
2620   if test -n "${with_mod_tree}"
2621   then
2622     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2623     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2624     if test -z "${real_mod_tree}"
2625     then
2626       dnl  The given directory can't be found
2627       AC_MSG_RESULT(no)
2628       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2629     fi
2630     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2631     then
2632       dnl  Use a custom mod
2633       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2634       VLC_ADD_PLUGINS([mod])
2635       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2636       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2637     else
2638       dnl  The given mod wasn't built
2639       AC_MSG_RESULT(no)
2640       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2641     fi
2642   else
2643     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2644       VLC_ADD_PLUGINS([mod])
2645       VLC_ADD_CXXFLAGS([mod],[])
2646       VLC_ADD_LDFLAGS([mod],[-lmodplug -lstdc++])])
2647   fi
2648 fi
2649
2650 dnl
2651 dnl  mpc demux plugin
2652 dnl
2653 AC_ARG_ENABLE(mpc,
2654   [  --enable-mpc            Mpc demux support (default enabled)])
2655 if test "${enable_mpc}" != "no"
2656 then
2657   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2658     VLC_ADD_PLUGINS([mpc])
2659     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2660 fi
2661
2662 dnl
2663 dnl  game music emu demux plugin
2664 dnl
2665 AC_ARG_ENABLE(gme,
2666   [  --enable-gme            Game Music Emu demux support (default enabled)])
2667 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2668 then
2669   AC_LANG_PUSH(C++)
2670   AC_ARG_WITH(gme-tree,
2671   [    --with-gme-tree=PATH gme tree for static linking])
2672   if test -n "${with_gme_tree}"
2673   then
2674     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2675     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2676     if test -z "${real_gme_tree}"
2677     then
2678       dnl  The given directory can't be found
2679       AC_MSG_RESULT(no)
2680       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2681     fi
2682     if test -f "${real_gme_tree}/gme/libgme.a"
2683     then
2684       dnl  Use a custom gme
2685       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2686       VLC_ADD_PLUGINS([gme])
2687       VLC_ADD_LDFLAGS([gme],[${real_gme_tree}/gme/libgme.a])
2688       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2689     else
2690       dnl  The given gme wasn't built
2691       AC_MSG_RESULT(no)
2692       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2693     fi
2694   else
2695       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2696   fi
2697   AC_LANG_POP(C++)
2698 fi
2699
2700 dnl
2701 dnl  Codec plugins
2702 dnl
2703
2704 AC_ARG_WITH(,[Codec plugins:])
2705
2706 dnl
2707 dnl  mad plugin
2708 dnl
2709 AC_ARG_ENABLE(mad,
2710   [  --enable-mad            libmad module (default enabled)])
2711 if test "${enable_mad}" != "no"
2712 then
2713   AC_ARG_WITH(mad,
2714     [    --with-mad=PATH       path to libmad],[],[])
2715   if test "${with_mad}" != "no" -a -n "${with_mad}"
2716   then
2717     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2718     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2719   fi
2720
2721   AC_ARG_WITH(mad-tree,
2722     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2723   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2724   then
2725     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2726     if test -z "${real_mad_tree}"
2727     then
2728       dnl  The given directory can't be found
2729       AC_MSG_RESULT(no)
2730       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2731     fi
2732     dnl  Use a custom libmad
2733     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2734     if test -f ${real_mad_tree}/mad.h
2735     then
2736       AC_MSG_RESULT(yes)
2737       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2738       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2739       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2740       AC_CHECK_LIB(mad, mad_bit_init, [
2741         VLC_ADD_BUILTINS([mpgatofixed32])
2742         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2743         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2744       ],[])
2745       LDFLAGS="${LDFLAGS_save}"
2746     else
2747       AC_MSG_RESULT(no)
2748       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2749     fi
2750   else
2751     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2752     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2753     AC_CHECK_HEADERS(mad.h, ,
2754       [ 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.]) ])
2755     AC_CHECK_LIB(mad, mad_bit_init, [
2756       VLC_ADD_PLUGINS([mpgatofixed32])
2757       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2758       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2759     CPPFLAGS="${CPPFLAGS_save}"
2760     LDFLAGS="${LDFLAGS_save}"
2761   fi
2762 fi
2763
2764 dnl
2765 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2766 dnl
2767 AC_CHECK_HEADERS(id3tag.h, [
2768   AC_CHECK_HEADERS(zlib.h, [
2769     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2770     VLC_ADD_PLUGINS([id3tag])]) ])
2771
2772 dnl
2773 dnl  ffmpeg decoder/demuxer plugin
2774 dnl
2775 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2776 dnl                             4- default place, 
2777
2778 AC_ARG_ENABLE(ffmpeg,
2779 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2780 if test "${enable_ffmpeg}" != "no"
2781 then
2782
2783 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2784
2785  AC_ARG_WITH(ffmpeg-mp3lame,
2786    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2787    [
2788      if test "$with_ffmpeg_mp3lame" = "yes";    then
2789         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2790      fi])
2791
2792  AC_ARG_WITH(ffmpeg-faac,
2793    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2794    [
2795      if test "$with_ffmpeg_faac" = "yes"; then
2796         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2797      fi])
2798
2799  AC_ARG_WITH(ffmpeg-dts,
2800    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2801    [
2802      if test "$with_ffmpeg_dts" = "yes"; then
2803              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2804              AC_CHECK_LIB(dts_pic, dts_free, 
2805                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2806                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2807              LDFLAGS="${LDFLAGS_save}"
2808      fi])
2809
2810  AC_ARG_WITH(ffmpeg-vorbis,
2811    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2812    [
2813      if test "$with_ffmpeg_vorbis" = "yes"; then
2814         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2815      fi])
2816
2817  AC_ARG_WITH(ffmpeg-theora,
2818    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2819    [
2820      if test "$with_ffmpeg_theora" = "yes"; then
2821         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2822      fi])
2823
2824  AC_ARG_WITH(ffmpeg-ogg,
2825    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2826    [
2827      if test "$with_ffmpeg_ogg" = "yes"; then
2828         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2829      fi])
2830
2831  AC_ARG_WITH(ffmpeg-zlib,
2832    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2833    [
2834      if test "$with_ffmpeg_zlib" = "yes"; then
2835                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2836      fi])
2837
2838  dnl
2839  dnl test for --with-ffmpeg-tree
2840  dnl
2841  AC_ARG_WITH(ffmpeg-tree,
2842    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2843
2844  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2845    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2846    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2847    if test -z "${real_ffmpeg_tree}"; then
2848      dnl  The given directory can't be found
2849      AC_MSG_RESULT(no)
2850      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2851    fi
2852    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2853      dnl  The given libavcodec wasn't built
2854      AC_MSG_RESULT(no)
2855      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2856    fi
2857    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2858      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2859        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2860      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2861         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
2862         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
2863      else
2864        dnl  The given libavcodec wasn't built with --enable-pp
2865        AC_MSG_RESULT(no)
2866        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
2867      fi
2868    fi
2869    dnl  Use a custom libffmpeg
2870    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2871
2872    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2873      if test "${with_ffmpeg_zlib}" != "yes"; then
2874        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2875      fi
2876    fi
2877    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2878      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2879        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2880      fi
2881    fi
2882    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2883      if test "${with_ffmpeg_faac}" != "yes"; then
2884        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2885      fi
2886    fi
2887    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2888      if test "${with_ffmpeg_dts}" != "yes"; then
2889        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2890        AC_CHECK_LIB(dts_pic, dts_free, 
2891          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2892          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2893        LDFLAGS="${LDFLAGS_save}"
2894      fi
2895    fi
2896    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2897      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2898    fi
2899    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2900      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2901    fi
2902    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2903      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2904    fi
2905
2906    VLC_ADD_BUILTINS([ffmpeg])
2907    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
2908      VLC_ADD_BUILTINS([stream_out_switcher])
2909    fi
2910
2911    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2912      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2913      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2914    fi
2915
2916    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2917    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2918
2919    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2920      AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2921      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2922      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2923    fi
2924
2925    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
2926      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
2927      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
2928      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
2929    fi
2930 else    
2931     
2932 dnl Look for a ffmpeg-config (we are on debian )
2933  
2934   FFMPEG_PATH="${PATH}"
2935   AC_ARG_WITH(ffmpeg-config-path,
2936     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2937     [ if test "${with_ffmpeg_config_path}" != "no"
2938       then
2939         FFMPEG_PATH="${with_ffmpeg_config_path}"
2940       fi ])
2941   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2942   if test "${FFMPEG_CONFIG}" != "no"
2943   then
2944     AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2945     AC_CHECK_HEADERS(ffmpeg/avformat.h)
2946     AC_CHECK_HEADERS(ffmpeg/avutil.h)
2947     AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2948     VLC_ADD_PLUGINS([ffmpeg])
2949     if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2950         VLC_ADD_PLUGINS([stream_out_switcher])
2951     fi
2952     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2953     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2954  
2955  else
2956
2957 dnl Trying with pkg-config
2958    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2959     [
2960      VLC_SAVE_FLAGS
2961      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
2962      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
2963      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2964      AC_CHECK_HEADERS(ffmpeg/avformat.h)
2965      AC_CHECK_HEADERS(ffmpeg/avutil.h)
2966      dnl newer ffmpeg have a separate libpostproc
2967      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2968        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
2969        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2970        ],[ true ])
2971      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2972      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2973      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2974      if test "${SYS}" = "darwin"; then
2975         VLC_ADD_BUILTINS([ffmpeg])
2976      else
2977         VLC_ADD_PLUGINS([ffmpeg])
2978      fi
2979      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2980         if test "${SYS}" = "darwin"; then
2981             VLC_ADD_BUILTINS([stream_out_switcher])
2982         else
2983             VLC_ADD_PLUGINS([stream_out_switcher])
2984         fi
2985      fi
2986      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2987      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
2988      dnl even newer ffmpeg has a libswscale
2989      PKG_CHECK_MODULES(SWSCALE, libswscale,[
2990        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}]) 
2991        VLC_ADD_LDFLAGS([ffmpeg],[${SWSCALE_LIBS}]) 
2992        AC_CHECK_HEADERS(ffmpeg/swscale.h)
2993        ],[ true ])
2994      VLC_RESTORE_FLAGS
2995     ],[
2996      
2997     dnl
2998     dnl last chance: at the default place
2999     dnl
3000       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3001       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
3002       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3003       AC_CHECK_HEADERS(ffmpeg/avformat.h)
3004       AC_CHECK_HEADERS(ffmpeg/avutil.h)
3005       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3006
3007       AC_CHECK_LIB(avutil, av_crc_init, [
3008         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
3009         LDAVUTIL="-lavutil"])
3010
3011       AC_CHECK_LIB(avcodec, avcodec_init, [
3012         VLC_ADD_BUILTINS([ffmpeg])
3013         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
3014         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3015             VLC_ADD_BUILTINS([stream_out_switcher])
3016         fi],
3017          [ 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])
3018
3019       
3020       AC_CHECK_LIB(postproc, pp_postprocess, [
3021         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])],
3022         AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3023         [$LDAVUTIL])
3024
3025       AC_CHECK_LIB(avformat, av_open_input_stream, [
3026         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3027       LDFLAGS="${LDFLAGS_save}"
3028       CPPFLAGS="${CPPFLAGS_save}"
3029
3030       AC_CHECK_LIB(swscale, sws_getContext, [
3031         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3032         VLC_ADD_LDFLAGS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3033       LDFLAGS="${LDFLAGS_save}"
3034       CPPFLAGS="${CPPFLAGS_save}"
3035     ])
3036   fi
3037  fi 
3038 fi
3039
3040 dnl
3041 dnl  ffmpegaltivec plugin
3042 dnl
3043 AC_ARG_ENABLE(ffmpegaltivec,
3044 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3045 if test "${enable_ffmpegaltivec}" = "yes"
3046 then
3047   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3048     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3049     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3050     if test -z "${real_ffmpeg_tree}"; then
3051       dnl  The given directory can't be found
3052       AC_MSG_RESULT(no)
3053       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3054     fi
3055     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3056       dnl  The given libavcodecaltivec wasn't built
3057       AC_MSG_RESULT(no)
3058       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3059     fi
3060     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3061       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3062       AC_MSG_RESULT(no)
3063       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3064     fi
3065     dnl  Use a custom libffmpeg
3066     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3067     VLC_ADD_BUILTINS([ffmpegaltivec])
3068     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3069     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3070     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3071
3072     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3073       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3074       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3075       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3076     fi
3077     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3078     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3079   fi
3080 fi
3081
3082 dnl
3083 dnl  faad decoder plugin
3084 dnl
3085 AC_ARG_ENABLE(faad,
3086 [  --enable-faad           faad codec (default disabled)])
3087 if test "${enable_faad}" = "yes"
3088 then
3089   AC_ARG_WITH(faad-tree,
3090   [    --with-faad-tree=PATH faad tree for static linking])
3091   if test -n "${with_faad_tree}"
3092   then
3093     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3094     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3095     if test -z "${real_faad_tree}"
3096     then
3097       dnl  The given directory can't be found
3098       AC_MSG_RESULT(no)
3099       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3100     fi
3101     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3102     then
3103       dnl  Use a custom faad
3104       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3105       VLC_ADD_BUILTINS([faad])
3106       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3107       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3108     else
3109       dnl  The given libfaad wasn't built
3110       AC_MSG_RESULT(no)
3111       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3112     fi
3113   else
3114     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3115     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
3116     AC_CHECK_HEADERS(faad.h, ,
3117       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3118     AC_CHECK_LIB(faad, faacDecOpen, [
3119       VLC_ADD_PLUGINS([faad])
3120       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
3121       AC_CHECK_LIB(faad, NeAACDecOpen, [
3122         VLC_ADD_PLUGINS([faad])
3123         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
3124         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3125     LDFLAGS="${LDFLAGS_save}"
3126     CPPFLAGS="${CPPFLAGS_save}"
3127   fi
3128 fi
3129
3130 dnl
3131 dnl twolame encoder plugin
3132 dnl
3133 AC_ARG_ENABLE(twolame,
3134 [  --enable-twolame        twolame codec (default disabled)])
3135 if test "${enable_twolame}" = "yes"
3136 then
3137   AC_ARG_WITH(twolame-tree,
3138   [    --with-twolame-tree=PATH twolame tree for static linking])
3139   if test -n "${with_twolame_tree}"
3140   then
3141     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3142     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3143     if test -z "${real_twolame_tree}"
3144     then
3145       dnl  The given directory can't be found
3146       AC_MSG_RESULT(no)
3147       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3148     fi
3149     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3150     then
3151       dnl  Use a custom twolame
3152       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3153       VLC_ADD_BUILTINS([twolame])
3154       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3155       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3156     else
3157       dnl  The given libtwolame wasn't built
3158       AC_MSG_RESULT(no)
3159       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3160     fi
3161   else
3162     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3163     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
3164     AC_CHECK_HEADERS(twolame.h, ,
3165       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3166     AC_CHECK_LIB(twolame, twolame_init, [
3167       VLC_ADD_PLUGINS([twolame])
3168       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3169       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
3170         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3171     LDFLAGS="${LDFLAGS_save}"  
3172     CPPFLAGS="${CPPFLAGS_save}"
3173   fi
3174 fi
3175
3176 dnl
3177 dnl  QuickTime plugin
3178 dnl
3179 AC_ARG_ENABLE(quicktime,
3180   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3181 if test "${enable_quicktime}" != "no" &&
3182   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3183 then
3184   if test "${SYS}" = "mingw32"; then
3185     VLC_ADD_BUILTINS([quicktime])
3186   else
3187   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3188     [ VLC_ADD_BUILTINS([quicktime])
3189       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
3190     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3191   fi
3192 fi
3193
3194 dnl
3195 dnl  Real plugin
3196 dnl
3197 AC_ARG_ENABLE(real,
3198   [  --enable-real           Real audio module (default disabled)])
3199 if test "${enable_real}" = "yes"; then
3200   VLC_ADD_PLUGINS([realaudio])
3201 fi
3202
3203 dnl
3204 dnl  Real RTSP plugin
3205 dnl
3206 AC_ARG_ENABLE(realrtsp,
3207   [  --enable-realrtsp       Real RTSP module (default disabled)])
3208 if test "${enable_realrtsp}" = "yes"; then
3209   VLC_ADD_PLUGINS([access_realrtsp])
3210 fi
3211
3212 dnl
3213 dnl MP4 module
3214 dnl
3215 AC_CHECK_HEADERS(zlib.h, [
3216   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv gme],[-lz])
3217 ] )
3218
3219 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3220   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
3221 ] )
3222
3223 dnl
3224 dnl skins2 module
3225 dnl
3226 AC_ARG_ENABLE(libtar,
3227   [  --enable libtar support for skins2 (default enabled)])
3228
3229 AS_IF([test "${enable_libtar}" != "no"],[
3230   AC_CHECK_HEADERS(libtar.h, [
3231     VLC_ADD_LDFLAGS([skins2],[-ltar])
3232   ] )
3233 ])
3234
3235
3236 dnl
3237 dnl A52/AC3 decoder plugin
3238 dnl
3239 AC_ARG_ENABLE(a52,
3240   [  --enable-a52            A/52 support with liba52 (default enabled)])
3241 if test "${enable_a52}" != "no"
3242 then
3243   AC_ARG_WITH(a52,
3244     [    --with-a52=PATH       a52 headers and libraries])
3245   AC_ARG_WITH(a52-tree,
3246     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3247   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3248   then
3249     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3250     if test -z "${real_a52_tree}"
3251     then
3252       dnl  The given directory can't be found
3253       AC_MSG_RESULT(no)
3254       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3255     fi
3256     dnl  Use a custom a52dec
3257     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3258     if test -f ${real_a52_tree}/include/a52.h
3259     then
3260       AC_MSG_RESULT(yes)
3261       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3262       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3263       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
3264       AC_CHECK_LIB(a52, a52_free, [
3265         VLC_ADD_BUILTINS([a52tofloat32])
3266         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3267         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
3268         ],[
3269         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3270         then
3271           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
3272         else
3273           AC_MSG_ERROR([the specified tree hasn't been compiled])
3274         fi
3275       ])
3276       LDFLAGS="${LDFLAGS_save}"
3277     else
3278       AC_MSG_RESULT(no)
3279       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3280     fi
3281   else
3282     if test -z "${with_a52}"
3283     then
3284       LDFLAGS_test=""
3285       CPPFLAGS_test=""
3286     else
3287       LDFLAGS_test="-L${with_a52}/lib"
3288       CPPFLAGS_test="-I${with_a52}/include"
3289     fi
3290     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3291     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
3292     AC_CHECK_HEADERS(a52dec/a52.h, [
3293       AC_CHECK_LIB(a52, a52_free, [
3294         VLC_ADD_PLUGINS([a52tofloat32])
3295         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
3296         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3297       ],[
3298         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.])
3299         ])
3300     ],[
3301       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.])
3302     ])
3303     CPPFLAGS="${CPPFLAGS_save}"
3304     LDFLAGS="${LDFLAGS_save}"
3305   fi
3306 fi
3307
3308 AC_ARG_WITH(a52-fixed,
3309       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3310       [
3311         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3312
3313 dnl
3314 dnl DTS Coherent Acoustics decoder plugin
3315 dnl
3316 AS_IF([test "x${enable_dts}" != "x"], [
3317   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3318 ])
3319 AS_IF([test "x${with_dts_tree}" != "x"], [
3320   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3321 ])
3322
3323 AC_ARG_ENABLE(dca,
3324   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3325 AS_IF([test "${enable_dca}" != "no"], [
3326   AC_ARG_WITH(dca-tree,
3327     [    --with-dca-tree=PATH  libdca tree for static linking],,
3328     [with_dca_tree="no"])
3329   AS_IF([test "${with_dca_tree}" != "no"], [
3330     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3331     AS_IF([test -z "${real_dca_tree}"], [
3332       dnl  The given directory can't be found
3333       AC_MSG_RESULT(no)
3334       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3335     ])
3336     dnl  Use a custom libdca
3337     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3338     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3339       AC_MSG_RESULT(yes)
3340       VLC_ADD_LDFLAGS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3341       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3342         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3343       ], [
3344         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3345       ])
3346     ], [
3347       AC_MSG_RESULT(no)
3348       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3349     ])
3350   ], [
3351     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3352       VLC_ADD_PLUGINS([dtstofloat32])
3353       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3354       VLC_ADD_LDFLAGS([dtstofloat32], [${DCA_LIBS}])
3355     ], [
3356       AS_IF([test "x${enable_dca}" != "x"], [
3357         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3358       ])
3359     ])
3360   ])
3361 ])
3362
3363 dnl
3364 dnl  Flac plugin
3365 dnl
3366 AC_ARG_ENABLE(flac,
3367   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3368 if test "${enable_flac}" = "yes"
3369 then
3370   AC_ARG_WITH(flac-tree,
3371   [    --with-flac-tree=PATH flac tree for static linking])
3372   if test -n "${with_flac_tree}"
3373   then
3374     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3375     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3376     if test -z "${real_flac_tree}"
3377     then
3378       dnl  The given directory can't be found
3379       AC_MSG_RESULT(no)
3380       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3381     fi
3382     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3383     then
3384       dnl  Use a custom flac
3385       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3386       VLC_ADD_LDFLAGS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3387       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3388       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3389     else
3390       dnl  The given flac wasn't built
3391       AC_MSG_RESULT(no)
3392       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3393     fi
3394   else
3395     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3396       VLC_ADD_LDFLAGS([flac],[-lFLAC])
3397      ],[])
3398   fi
3399 fi
3400
3401 dnl
3402 dnl  Libmpeg2 plugin
3403 dnl
3404 AC_ARG_ENABLE(libmpeg2,
3405   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3406 if test "${enable_libmpeg2}" != "no"
3407 then
3408   AC_ARG_WITH(libmpeg2-tree,
3409   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3410   if test -n "${with_libmpeg2_tree}"
3411   then
3412     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3413     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3414     if test -z "${real_libmpeg2_tree}"
3415     then
3416       dnl  The given directory can't be found
3417       AC_MSG_RESULT(no)
3418       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3419     fi
3420     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3421     then
3422       dnl  Use a custom libmpeg2
3423       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3424       VLC_ADD_BUILTINS([libmpeg2])
3425       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3426       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3427       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3428     else
3429       dnl  The given libmpeg2 wasn't built
3430       AC_MSG_RESULT(no)
3431       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3432     fi
3433   else
3434     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3435       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3436       AC_EGREP_CPP(yes,
3437         [#include <mpeg2dec/mpeg2.h>
3438          #ifdef MPEG2_RELEASE
3439          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3440          yes
3441          #endif
3442          #endif],
3443         [AC_MSG_RESULT([yes])
3444           VLC_ADD_PLUGINS([libmpeg2])
3445           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3446         [AC_MSG_RESULT([no])
3447           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.])])],
3448
3449       [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.])]
3450     )
3451   fi
3452 fi
3453
3454 dnl
3455 dnl  Vorbis plugin
3456 dnl
3457 AC_ARG_ENABLE(vorbis,
3458   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3459 if test "${enable_vorbis}" != "no"
3460 then
3461   AC_ARG_WITH(vorbis-tree,
3462   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3463   if test -n "${with_vorbis_tree}"
3464   then
3465     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3466     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3467     if test -z "${real_vorbis_tree}"
3468     then
3469       dnl  The given directory can't be found
3470       AC_MSG_RESULT(no)
3471       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3472     fi
3473     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3474     then
3475       dnl  Use a custom vorbis 
3476       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3477       VLC_ADD_PLUGINS([vorbis])
3478       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3479       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3480     else
3481       dnl  The given vorbis wasn't built
3482       AC_MSG_RESULT(no)
3483       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3484     fi
3485   else
3486     AC_CHECK_HEADERS(vorbis/codec.h, [
3487       VLC_ADD_PLUGINS([vorbis])
3488       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg -lm]) ],[])
3489
3490     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3491       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc -lm]) ],[])
3492   fi
3493 fi
3494
3495 dnl
3496 dnl  Tremor plugin
3497 dnl
3498 AC_ARG_ENABLE(tremor,
3499   [  --enable-tremor         Tremor decoder support (default disabled)])
3500 if test "${enable_tremor}" = "yes"
3501 then
3502   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3503     VLC_ADD_PLUGINS([tremor])
3504     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3505    ],[])
3506 fi
3507
3508 dnl
3509 dnl  Speex plugin
3510 dnl
3511 AC_ARG_ENABLE(speex,
3512   [  --enable-speex          Speex decoder support (default enabled)])
3513 if test "${enable_speex}" != "no"
3514 then
3515   AC_ARG_WITH(speex-tree,
3516   [    --with-speex-tree=PATH speex tree for static linking])
3517   if test -n "${with_speex_tree}"
3518   then
3519     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3520     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3521     if test -z "${real_speex_tree}"
3522     then
3523       dnl  The given directory can't be found
3524       AC_MSG_RESULT(no)
3525       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3526     fi
3527     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3528     then
3529       dnl  Use a custom speex
3530       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3531       VLC_ADD_PLUGINS([speex])
3532       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3533       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3534     else
3535       dnl  The given speex wasn't built
3536       AC_MSG_RESULT(no)
3537       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3538     fi
3539   else
3540     AC_CHECK_HEADERS(speex/speex.h, [
3541       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3542       AC_CHECK_LIB(speex, speex_decode_int, [
3543         VLC_ADD_PLUGINS([speex])
3544         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3545         [ AC_MSG_RESULT([no])
3546           AC_MSG_WARN([Your libspeex is too old, please get the development
3547                        version.]) ],[])
3548       LDFLAGS="${LDFLAGS_save}"
3549       ],[])
3550   fi
3551 fi
3552
3553 dnl
3554 dnl  tarkin decoder plugin
3555 dnl
3556 AC_ARG_ENABLE(tarkin,
3557 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3558 if test "${enable_tarkin}" = "yes"
3559 then
3560   AC_ARG_WITH(tarkin-tree,
3561   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3562   if test -n "${with_tarkin_tree}"
3563   then
3564     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3565     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3566     if test -f "${real_tarkin_tree}/tarkin.o"
3567     then
3568       VLC_ADD_BUILTINS([tarkin])
3569       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3570       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])
3571       AC_MSG_RESULT(yes)
3572     else
3573       dnl  The given tarkin tree wasn't built
3574       AC_MSG_RESULT(no)
3575       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3576                     make sure you compiled tarkin in ${with_tarkin_tree}])
3577     fi
3578   fi
3579 fi
3580
3581 dnl
3582 dnl  theora decoder plugin
3583 dnl
3584 AC_ARG_ENABLE(theora,
3585 [  --enable-theora         experimental theora codec (default disabled)])
3586 if test "${enable_theora}" = "yes"
3587 then
3588   AC_CHECK_HEADERS(theora/theora.h, [
3589     AC_CHECK_LIB(theora, theora_granule_time, [
3590       VLC_ADD_PLUGINS([theora])
3591       theora_libs="-ltheora -logg"
3592       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3593       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3594 You also need to check that you have a libogg posterior to the 1.0 release.])],
3595       [-logg])
3596   ])
3597 fi
3598
3599 dnl
3600 dnl  dirac decoder plugin
3601 dnl
3602 AC_ARG_ENABLE(dirac,
3603 [  --enable-dirac          experimental dirac codec (default disabled)])
3604 if test "${enable_dirac}" = "yes"; then
3605   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.6.0], [
3606       VLC_ADD_PLUGINS([dirac])
3607       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3608       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3609       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3610   ])
3611 fi
3612
3613 dnl
3614 dnl  PNG decoder module
3615 dnl
3616 AC_ARG_ENABLE(png,
3617   [  --enable-png            PNG support (default enabled)])
3618 if test "${enable_png}" != "no"; then
3619 AC_CHECK_HEADERS(png.h, [
3620   LDFLAGS="${LDFLAGS_save} -lz"
3621   AC_CHECK_LIB(png, png_set_rows, [
3622     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3623     VLC_ADD_PLUGINS([png])
3624     VLC_ADD_PLUGINS([osdmenu])
3625     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3626     [],[-lz])
3627   LDFLAGS="${LDFLAGS_save}"
3628   ])
3629 fi
3630
3631 dnl
3632 dnl H264 encoder plugin (using libx264)
3633 dnl
3634 AC_ARG_ENABLE(x264,
3635   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3636 if test "${enable_x264}" != "no"; then
3637   AC_ARG_WITH(x264-tree,
3638     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3639   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3640   then
3641     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3642     if test -z "${real_x264_tree}"
3643     then
3644       dnl  The given directory can't be found
3645       AC_MSG_RESULT(no)
3646       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3647     fi
3648     dnl  Use a custom libx264
3649     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3650     if test -f ${real_x264_tree}/x264.h
3651     then
3652       AC_MSG_RESULT(yes)
3653       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3654       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3655       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3656       AC_CHECK_LIB(x264, x264_encoder_open, [
3657         VLC_ADD_BUILTINS([x264])
3658         VLC_ADD_LDFLAGS([x264],[-lx264])
3659       ],[
3660         AC_MSG_ERROR([the specified tree hasn't been compiled])
3661       ])
3662       LDFLAGS="${LDFLAGS_save}"
3663     else
3664       AC_MSG_RESULT(no)
3665       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3666     fi
3667   else
3668     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3669     AC_CHECK_HEADERS(x264.h, [
3670       AC_CHECK_LIB(x264, x264_encoder_open, [
3671         VLC_ADD_PLUGINS([x264])
3672         VLC_ADD_LDFLAGS([x264],[-lx264])
3673       ],[
3674         if test "${enable_x264}" = "yes"; then
3675             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3676           fi
3677       ])
3678     ])
3679     LDFLAGS="${LDFLAGS_save}"
3680   fi
3681 fi
3682
3683 dnl
3684 dnl  CMML plugin
3685 dnl
3686 AC_ARG_ENABLE(cmml,
3687   [  --enable-cmml           CMML support (default enabled)])
3688 if test "${enable_cmml}" != "no"
3689 then
3690   VLC_ADD_PLUGINS([cmml])
3691 fi
3692
3693
3694 dnl
3695 dnl  Video plugins
3696 dnl
3697
3698 AC_ARG_WITH(,[Video plugins:])
3699
3700 dnl Check for DPMS
3701 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3702   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3703   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3704     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3705     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3706       AC_MSG_RESULT(yes)
3707       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3708                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3709     ],[
3710       AC_MSG_RESULT(no)
3711     ])
3712   ],,[
3713     #include <X11/Xlib.h>
3714   ])
3715   CPPFLAGS="${CPPFLAGS_save}"
3716 fi
3717
3718 dnl
3719 dnl  X11 module
3720 dnl  (enabled by default except on win32)
3721 dnl
3722 AC_ARG_ENABLE(x11,
3723   [  --enable-x11            X11 support (default enabled)])
3724 if test "${enable_x11}" != "no" &&
3725   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3726    test "${enable_x11}" = "yes"); then
3727   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3728   AC_CHECK_HEADERS(X11/Xlib.h, [
3729     VLC_ADD_PLUGINS([panoramix])
3730     VLC_ADD_LDFLAGS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3731     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3732     AC_CHECK_LIB(Xext, XShmAttach, [
3733       VLC_ADD_PLUGINS([x11])
3734       VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3735       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3736     ])
3737   ])
3738   CPPFLAGS="${CPPFLAGS_save}"
3739 fi
3740
3741 dnl
3742 dnl  XVideo module
3743 dnl  (enabled by default except on win32)
3744 dnl
3745 AC_ARG_ENABLE(xvideo,
3746   [  --enable-xvideo         XVideo support (default enabled)])
3747 if test "${enable_xvideo}" != "no" &&
3748   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3749    test "${enable_xvideo}" = "yes"); then
3750   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3751   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3752     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3753     AC_CHECK_LIB(Xv,XvPutImage,[
3754       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3755       # test for libXv_pic.
3756       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3757         VLC_ADD_PLUGINS([xvideo])
3758         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3759         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3760       else
3761         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3762           VLC_ADD_PLUGINS([xvideo])
3763           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3764           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3765         ],[
3766           VLC_ADD_BUILTINS([xvideo])
3767           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3768           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3769         ])
3770       fi
3771     ])
3772     CFLAGS="${CFLAGS_save}"
3773   ]
3774   CPPFLAGS="${CPPFLAGS_save}")
3775 fi
3776
3777 dnl
3778 dnl  GLX module
3779 dnl  (enabled by default except on win32)
3780 dnl
3781 AC_ARG_ENABLE(glx,
3782   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3783 if test "${enable_glx}" != "no" &&
3784   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3785    test "${enable_glx}" = "yes"); then
3786   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3787   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3788   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3789     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3790     choke me
3791     #endif]]),
3792     [
3793       VLC_ADD_PLUGINS([glx])
3794       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3795       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3796     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3797   CPPFLAGS="${CPPFLAGS_save}"
3798 fi
3799
3800 dnl
3801 dnl  XVMC module
3802 dnl  (enabled by default except on win32)
3803 dnl
3804 AC_ARG_ENABLE(xvmc,
3805   [  --enable-xvmc            XVMC support (default disabled)])
3806 if test "${enable_xvmc}" = "yes" &&
3807   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3808    test "${enable_xvmc}" = "yes"); then
3809   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3810   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3811     VLC_ADD_PLUGINS([xvmc])
3812     VLC_ADD_LDFLAGS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3813     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3814   ])
3815   CPPFLAGS="${CPPFLAGS_save}"
3816 fi
3817
3818 dnl
3819 dnl  Check for the Xinerama extension
3820 dnl
3821 AC_ARG_ENABLE(xinerama,
3822   [  --enable-xinerama       Xinerama support (default enabled)])
3823 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3824   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3825    test "${enable_xvideo}" = "yes"); then
3826   ac_cv_have_xinerama="no"
3827   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3828   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3829   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3830     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3831       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3832       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3833       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3834       ac_cv_have_xinerama="yes"
3835     ],[
3836       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3837         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3838         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3839         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3840         ac_cv_have_xinerama="yes"
3841       ])
3842     ])
3843   ])
3844   if test "${ac_cv_have_xinerama}" = "yes"; then
3845     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3846   fi
3847   CFLAGS="${CFLAGS_save}"
3848   CPPFLAGS="${CPPFLAGS_save}"
3849
3850 dnl
3851 dnl  Check for XF86VidMode extension
3852 dnl
3853   ac_cv_have_xf86vidmode="no"
3854   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3855   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3856   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3857     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3858       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3859       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3860       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3861       ac_cv_have_xf86vidmode="yes"
3862     ],[
3863       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3864         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3865         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3866         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3867         ac_cv_have_xf86vidmode="yes"
3868       ])
3869     ])
3870   ],[true],
3871 [#ifdef HAVE_X11_XLIB_H
3872 # include <X11/Xlib.h>
3873 #endif]
3874    )
3875   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3876     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3877   ])
3878   CFLAGS="${CFLAGS_save}"
3879   CPPFLAGS="${CPPFLAGS_save}"
3880
3881 fi
3882
3883 dnl
3884 dnl  OpenGL module
3885 dnl  (enabled by default except on beos)
3886 dnl
3887 AC_ARG_ENABLE(opengl,
3888   [  --enable-opengl         OpenGL support (default enabled)])
3889 if test "${enable_opengl}" != "no" &&
3890    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3891   if test "${SYS}" != "darwin"; then
3892     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3893       VLC_ADD_PLUGINS([opengl])
3894       if test "${SYS}" != "mingw32"; then
3895         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3896       else
3897         VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32])
3898       fi
3899     ])
3900   else
3901     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3902     VLC_ADD_PLUGINS([opengl])
3903     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3904   fi
3905 fi
3906
3907 dnl
3908 dnl  SDL module
3909 dnl
3910 AC_ARG_ENABLE(sdl,
3911   [  --enable-sdl            SDL support (default enabled)])
3912 AC_ARG_ENABLE(sdl-image,
3913   [  --enable-sdl-image            SDL image support (default enabled)])
3914 if test "${enable_sdl}" != "no"
3915 then
3916   SDL_PATH="${PATH}"
3917   AC_ARG_WITH(sdl-config-path,
3918     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3919     [ if test "${with_sdl_config_path}" != "no"
3920       then
3921         SDL_PATH="${with_sdl_config_path}:${PATH}"
3922       fi ])
3923   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3924   SDL_CONFIG="${SDL12_CONFIG}"
3925   SDL_HEADER="SDL12/SDL.h"
3926   SDL_IMAGE="SDL12/SDL_image.h"
3927   if test "${SDL_CONFIG}" = "no"
3928   then
3929     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3930     SDL_CONFIG=${SDL11_CONFIG}
3931     SDL_HEADER="SDL11/SDL.h"
3932     SDL_IMAGE="SDL11/SDL_image.h"
3933   fi
3934   if test "${SDL_CONFIG}" = "no"
3935   then
3936     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3937     SDL_HEADER="SDL/SDL.h"
3938     SDL_IMAGE="SDL/SDL_image.h"
3939   fi
3940   # check for cross-compiling
3941   SDL_PREFIX=
3942   AC_ARG_WITH(sdl-prefix,
3943     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3944                                e.g use as:
3945                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3946   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3947   then
3948     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3949   fi
3950   if test "${SDL_CONFIG}" != "no"
3951   then
3952     # SDL on Darwin is heavily patched and can only run SDL_image
3953     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3954       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3955     fi
3956     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3957     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3958     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3959     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3960       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3961       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3962           As a last resort we also test for SDL.h presence),
3963       [ AC_MSG_ERROR([The development package for SDL is not installed.
3964 Please install it and try again. Alternatively you can also configure with
3965 --disable-sdl.])
3966       ])])
3967     AS_IF([ test "${enable_sdl_image}" != "no"],[
3968       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3969         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3970         VLC_ADD_PLUGINS([sdl_image])
3971         AC_CHECK_LIB(png, png_set_rows,
3972           [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3973         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3974           [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3975         AC_CHECK_LIB(tiff, TIFFClientOpen,
3976           [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3977         VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3978         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3979             As a last resort we also test for SDL_image.h presence),
3980         [ AC_MSG_WARN([The development package for SDL_image is not installed.
3981   You should install it alongside your SDL package.])
3982         ])])
3983     ])
3984     CPPFLAGS="${CPPFLAGS_save}"
3985     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3986     then
3987       AC_MSG_ERROR([The development package for SDL is not installed.
3988 Please install it and try again. Alternatively you can also configure with
3989 --disable-sdl.])
3990     fi
3991
3992   elif test "${enable_sdl}" =  "yes"
3993   then
3994     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3995 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3996     ])
3997   fi
3998 fi
3999
4000 dnl
4001 dnl  freetype module
4002 dnl
4003 AC_ARG_ENABLE(freetype,
4004   [  --enable-freetype       freetype support (default enabled)])
4005 AC_ARG_ENABLE(fribidi,
4006   [  --enable-fribidi        fribidi support (default enabled)])
4007 if test "${enable_freetype}" != "no"
4008 then
4009   FREETYPE_PATH="${PATH}"
4010   AC_ARG_WITH(freetype-config-path,
4011     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
4012     [ if test "${with_freetype_config_path}" != "no"
4013       then
4014         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
4015       fi ])
4016   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
4017
4018   if test "${FREETYPE_CONFIG}" != "no"
4019   then
4020     VLC_ADD_PLUGINS([freetype])
4021     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
4022     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
4023     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4024       [VLC_ADD_CFLAGS([freetype],[-DHAVE_FONTCONFIG])
4025        VLC_ADD_LDFLAGS([freetype],[-lfontconfig])])
4026     AC_CHECK_HEADERS(Carbon/Carbon.h,
4027       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
4028   elif test "${enable_freetype}" =  "yes"
4029   then
4030     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4031 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4032     ])
4033   fi
4034
4035   dnl fribidi support
4036   if test "${enable_fribidi}" != "no"
4037   then
4038     FRIBIDI_PATH="${PATH}"
4039     AC_ARG_WITH(fribidi-config-path,
4040       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
4041       [ if test "${with_fribidi_config_path}" != "no"
4042         then
4043           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
4044         fi ])
4045     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
4046
4047     if test "${FRIBIDI_CONFIG}" != "no"
4048     then
4049       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4050       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4051       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
4052       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
4053     fi
4054   fi
4055 fi
4056
4057 dnl
4058 dnl  libxml2 module
4059 dnl
4060 AC_ARG_ENABLE(libxml2,
4061   [  --enable-libxml2        libxml2 support (default enabled)])
4062 if test "${enable_libxml2}" != "no"
4063 then
4064   XML2_PATH="${PATH}"
4065   AC_ARG_WITH(xml2-config-path,
4066     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4067     [ if test "${with_xml2_config_path}" != "no"; then
4068         XML2_PATH="${with_xml2_config_path}:${PATH}"
4069       fi ])
4070   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4071   if test "${XML2_CONFIG}" != "no"; then
4072     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4073     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
4074     dnl depends on the xmlTextReader extension
4075     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4076     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
4077     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4078       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4079         VLC_ADD_PLUGINS([xml]) ],[
4080           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4081           if test "${enable_xml2}" = "yes"; then
4082             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4083           fi])
4084        ],[
4085       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4086       if test "${enable_xml2}" = "yes"; then
4087         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4088       fi])
4089     LDFLAGS="${LDFLAGS_save}"
4090     CPPFLAGS="${CPPFLAGS_save}"
4091   else
4092     if test "${enable_xml2}" = "yes"; then
4093       AC_MSG_ERROR([Could not find libxml2])
4094     fi
4095   fi
4096 fi
4097
4098 dnl
4099 dnl  SVG module
4100 dnl
4101 AC_ARG_ENABLE(svg,
4102   [  --enable-svg            SVG support (default disabled)])
4103 if test "${enable_svg}" = "yes"
4104 then
4105   PKG_CHECK_MODULES(SVG, 
4106         librsvg-2.0 >= 2.9.0,
4107         [
4108           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
4109           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4110           VLC_ADD_PLUGINS([svg]) ],
4111         [AC_MSG_WARN(SVG library not found)])
4112 fi
4113
4114 dnl
4115 dnl Snapshot vout module (with cache)
4116 dnl
4117 AC_ARG_ENABLE(snapshot,
4118   [  --enable-snapshot       snapshot module (default disabled)])
4119 if test "${enable_snapshot}" = "yes"
4120 then
4121   VLC_ADD_PLUGINS([snapshot])
4122 fi
4123
4124 dnl
4125 dnl  Qt Embedded module
4126 dnl  (disabled by default)
4127 dnl
4128 AC_ARG_ENABLE(qte,
4129   [  --enable-qte            QT Embedded support (default disabled)])
4130 if test "${enable_qte}" = "yes"
4131 then
4132   AC_ARG_WITH(qte,
4133   [    --with-qte=PATH       Qt Embedded headers and libraries])
4134   if test "${with_qte}" != "no" -a -n "${with_qte}"
4135   then
4136     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4137     VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4138   else
4139     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4140     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4141   fi
4142   VLC_ADD_PLUGINS([qte])
4143   NEED_QTE_MAIN=yes
4144   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4145   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4146     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4147   ] )
4148   CPPFLAGS="${CPPFLAGS_save}"
4149 fi
4150
4151 dnl
4152 dnl  Qt Video output module
4153 dnl  (disabled by default)
4154 dnl
4155 dnl AC_ARG_ENABLE(qt_video,
4156 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4157 dnl if test "${enable_qt_video}" = "yes"
4158 dnl then
4159 dnl  VLC_ADD_PLUGINS([qt_video])
4160 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
4161 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4162 dnl   AC_CHECK_LIB(qt-mt,main,[
4163 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
4164 dnl  ],[
4165 dnl    AC_CHECK_LIB(qt,main,[
4166 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
4167 dnl    ])
4168 dnl  ])
4169 dnl  NEED_QTE_MAIN=yes
4170 dnl  LDFLAGS="${LDFLAGS_save}"
4171 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4172 dnl fi
4173
4174 dnl
4175 dnl Roku HD1000 Video output module
4176 dnl
4177 AC_ARG_ENABLE(hd1000v,
4178   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4179 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4180   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4181    test "${enable_hd1000v}" = "yes"); then
4182   AC_LANG_PUSH([C++])
4183   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4184   [
4185     can_build_roku="yes"
4186   ],
4187   [
4188     can_build_roku="no"
4189     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4190   ])
4191   if test "$can_build_roku" = "yes"
4192   then
4193     VLC_ADD_PLUGINS([hd1000v])
4194     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
4195   fi
4196   AC_LANG_POP([C++])
4197 fi
4198
4199 dnl
4200 dnl  Windows DirectX module
4201 dnl
4202
4203 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4204 then
4205   VLC_ADD_PLUGINS([panoramix])
4206 fi
4207
4208 AC_ARG_ENABLE(directx,
4209   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4210 if test "${enable_directx}" != "no"
4211 then
4212   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4213   then
4214     AC_ARG_WITH(directx,
4215     [    --with-directx=PATH   Win32 DirectX headers])
4216     if test -z "${with_directx}"
4217     then
4218       AC_CHECK_HEADERS(ddraw.h,
4219       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4220         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4221       ])
4222       AC_CHECK_HEADERS(GL/gl.h,
4223       [ VLC_ADD_PLUGINS([glwin32])
4224         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4225       ])
4226       AC_CHECK_HEADERS(d3d9.h,
4227       [ VLC_ADD_PLUGINS([direct3d])
4228         VLC_ADD_LDFLAGS([direct3d],[-lgdi32])
4229       ])
4230     else
4231       AC_MSG_CHECKING(for directX headers in ${with_directx})
4232       if test -f ${with_directx}/ddraw.h
4233       then
4234         VLC_ADD_PLUGINS([vout_directx aout_directx])
4235         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4236         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4237         AC_MSG_RESULT(yes)
4238       else
4239         AC_MSG_RESULT(no)
4240         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4241       fi
4242     fi
4243   fi
4244 fi
4245
4246 dnl
4247 dnl  Linux framebuffer module
4248 dnl
4249 AC_ARG_ENABLE(fb,
4250   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4251     if test "${enable_fb}" != "no"
4252     then
4253       AC_CHECK_HEADERS(linux/fb.h, [
4254         VLC_ADD_PLUGINS([fb])
4255       ])
4256     fi
4257
4258 dnl
4259 dnl  Linux MGA module
4260 dnl
4261 AC_ARG_ENABLE(mga,
4262   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4263   [ if test "${enable_mga}" = "yes"
4264     then
4265       VLC_ADD_PLUGINS([mga])
4266     fi ])
4267
4268 dnl
4269 dnl  SVGAlib module
4270 dnl
4271 AC_ARG_ENABLE(svgalib,
4272   [  --enable-svgalib        SVGAlib support (default disabled)])
4273 if test "${enable_svgalib}" = "yes"
4274 then
4275   VLC_ADD_PLUGINS([svgalib])
4276   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4277 fi
4278
4279 dnl
4280 dnl  DirectFB module
4281 dnl
4282 AC_ARG_ENABLE(directfb,
4283   [  --enable-directfb       DirectFB support (default disabled)])
4284 if test "${enable_directfb}" = "yes"
4285 then
4286   if test "${with_directfb}" = "no"
4287   then
4288     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4289     if test "${have_directfb}"= "true"
4290     then
4291         VLC_ADD_PLUGINS([directfb])
4292         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4293         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
4294     else
4295         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
4296     fi
4297   else
4298     CPPFLAGS_save="${CPPFLAGS}"
4299     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
4300     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4301     CPPFLAGS="${CPPFLAGS_save}"
4302     AC_ARG_WITH(directfb,
4303         [    --with-directfb=PATH  path to directfb],
4304         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
4305         then
4306             VLC_ADD_PLUGINS([directfb])
4307             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
4308             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4309         fi ],
4310         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
4311   fi
4312 fi
4313
4314 dnl
4315 dnl  GGI module
4316 dnl
4317 AC_ARG_ENABLE(ggi,
4318   [  --enable-ggi            GGI support (default disabled)])
4319 if test "${enable_ggi}" = "yes"
4320 then
4321   VLC_ADD_PLUGINS([ggi])
4322   VLC_ADD_LDFLAGS([ggi],[-lggi])
4323   AC_ARG_WITH(ggi,
4324     [    --with-ggi=PATH       path to libggi],
4325     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4326       then
4327         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4328         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
4329       fi ])
4330 fi
4331
4332 dnl
4333 dnl  Glide module
4334 dnl
4335 AC_ARG_ENABLE(glide,
4336   [  --enable-glide          Glide (3dfx) support (default disabled)])
4337 if test "${enable_glide}" = "yes"
4338 then
4339   CFLAGS_save="${CFLAGS}"
4340   AC_ARG_WITH(glide,
4341     [    --with-glide=PATH     path to libglide],
4342     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4343       then
4344         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4345         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
4346         CFLAGS="$CFLAGS -I${with_glide}/include"
4347     fi ])
4348    CFLAGS="$CFLAGS -I/usr/include/glide"
4349    AC_CHECK_HEADER(glide.h,[   
4350       VLC_ADD_PLUGINS([glide])
4351       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
4352       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4353     ],[
4354       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4355      ])
4356    CFLAGS="${CFLAGS_save}"
4357 fi
4358
4359 dnl
4360 dnl  AA plugin
4361 dnl
4362 AC_ARG_ENABLE(aa,
4363   [  --enable-aa             aalib output (default disabled)])
4364 if test "${enable_aa}" = "yes"
4365 then
4366   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4367   if test "${have_aa}" = "true"
4368   then
4369     VLC_ADD_PLUGINS([aa])
4370     VLC_ADD_LDFLAGS([aa],[-laa])
4371   fi
4372 fi
4373
4374 dnl
4375 dnl  libcaca plugin
4376 dnl
4377 AC_ARG_ENABLE(caca,
4378   [  --enable-caca           libcaca output (default disabled)])
4379 if test "${enable_caca}" = "yes"
4380 then
4381   CACA_PATH="${PATH}"
4382   AC_ARG_WITH(caca-config-path,
4383     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4384     [ if test "${with_caca_config_path}" != "no"
4385       then
4386         CACA_PATH="${with_caca_config_path}:${PATH}"
4387       fi ])
4388   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4389   if test "${CACA_CONFIG}" != "no"
4390   then
4391     VLC_ADD_PLUGINS([caca])
4392     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4393     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
4394   fi
4395 fi
4396
4397 dnl
4398 dnl  win32 GDI plugin
4399 dnl
4400 AC_ARG_ENABLE(wingdi,
4401   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4402 if test "${enable_wingdi}" != "no"; then
4403   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4404     VLC_ADD_PLUGINS([wingdi])
4405     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
4406   fi
4407   if test "${SYS}" = "mingwce"; then
4408     VLC_ADD_PLUGINS([wingdi wingapi])
4409   fi
4410 fi
4411
4412 dnl
4413 dnl  Audio plugins
4414 dnl
4415
4416 AC_ARG_WITH(,[Audio plugins:])
4417
4418 dnl
4419 dnl  OSS /dev/dsp module (enabled by default except on win32)
4420 dnl
4421 AC_ARG_ENABLE(oss,
4422   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4423
4424 if test "${enable_oss}" != "no" &&
4425   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4426    test "${enable_oss}" = "yes")
4427 then
4428   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4429     VLC_ADD_PLUGINS([oss])
4430     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4431   ])
4432 fi
4433
4434 dnl
4435 dnl  Esound module
4436 dnl
4437 AC_ARG_ENABLE(esd,
4438   [  --enable-esd            Esound library support (default disabled)],
4439   [if test "${enable_esd}" = "yes"
4440    then
4441      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4442      if test "${ESD_CONFIG}" != "no"
4443      then
4444        VLC_ADD_PLUGINS([esd])
4445        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4446        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4447      fi
4448    fi])
4449
4450 dnl
4451 dnl  Portaudio module
4452 dnl
4453 AC_ARG_ENABLE(portaudio,
4454   [  --enable-portaudio      Portaudio library support (default disabled)],
4455   [if test "${enable_portaudio}" = "yes"
4456    then
4457      VLC_ADD_PLUGINS([portaudio])
4458      VLC_ADD_CXXFLAGS([portaudio],[])
4459      if test "${SYS}" = "mingw32"; then
4460         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4461      else
4462         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4463      fi
4464    fi])
4465
4466 dnl
4467 dnl  aRts module -- broken (freeze wxWidgets)
4468 dnl
4469 AC_ARG_ENABLE(arts,
4470  [  --enable-arts           aRts sound server (default disabled)],
4471  [if test "${enable_arts}" = "yes"
4472   then
4473     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4474     if test "${ARTS_CONFIG}" != "no"
4475     then
4476       VLC_ADD_PLUGINS([arts])
4477       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4478       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4479     fi
4480   fi])
4481
4482 dnl
4483 dnl  ALSA module
4484 dnl
4485 AC_ARG_ENABLE(alsa,
4486   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4487 if test "${enable_alsa}" != "no"
4488 then
4489   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4490   if test "${have_alsa}" = "true"
4491   then
4492     CFLAGS="${CFLAGS_save}"
4493     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4494                     #define ALSA_PCM_NEW_SW_PARAMS_API
4495                     #include <alsa/asoundlib.h>],
4496        [snd_pcm_hw_params_get_period_time(0,0,0);],
4497         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4498     VLC_ADD_PLUGINS([alsa])
4499     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4500   else
4501     if test "${enable_alsa}" = "yes"; then
4502       AC_MSG_ERROR([Could not find ALSA development headers])
4503     fi
4504   fi
4505 fi
4506
4507 dnl
4508 dnl  win32 waveOut plugin
4509 dnl
4510 AC_ARG_ENABLE(waveout,
4511   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4512 if test "${enable_waveout}" != "no"; then
4513   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4514     VLC_ADD_PLUGINS([waveout])
4515     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4516   fi
4517   if test "${SYS}" = "mingwce"; then
4518     VLC_ADD_PLUGINS([waveout])
4519   fi
4520 fi
4521
4522 dnl
4523 dnl  CoreAudio plugin
4524 dnl
4525 AC_ARG_ENABLE(macosx-audio,
4526   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4527 if test "${enable_macosx-audio}" != "no" &&
4528   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4529 then
4530   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4531     [ VLC_ADD_BUILTINS([auhal])
4532       VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
4533     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4534 fi
4535
4536 dnl
4537 dnl  Roku HD1000 audio
4538 dnl
4539 AC_ARG_ENABLE(hd1000a,
4540   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4541 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4542   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4543    test "${enable_hd1000a}" = "yes")
4544 then
4545   AC_LANG_PUSH([C++])
4546   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4547     VLC_ADD_PLUGINS([hd1000a])
4548     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4549   AC_LANG_POP([C++])
4550 fi
4551
4552 dnl
4553 dnl  JACK modules
4554 dnl
4555 AC_ARG_ENABLE(jack,
4556  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4557  [enable_jack="no"])
4558
4559 AS_IF([test "${enable_jack}" != "no"], [
4560   AC_CHECK_HEADERS(jack/jack.h, [
4561     VLC_ADD_PLUGINS([access_jack jack])
4562     VLC_ADD_LDFLAGS([access_jack jack],[-ljack])
4563   ],[AC_MSG_ERROR([cannot find JACK headers])])
4564 ])
4565
4566 dnl
4567 dnl  CyberLink for C++ UPnP stack
4568 dnl
4569 AC_ARG_ENABLE(cyberlink,
4570   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4571   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4572   AC_ARG_WITH(cyberlink-tree,
4573     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4574
4575   dnl
4576   dnl test for --with-cyberlink-tree
4577   dnl
4578   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4579     AC_LANG_PUSH(C++)
4580     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4581     AS_IF([test -z "${real_cyberlink_tree}"], [
4582       dnl  The given directory can't be found
4583       AC_MSG_RESULT(no)
4584       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4585     ])
4586     CPPFLAGS_save="${CPPFLAGS}"
4587     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4588     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4589     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4590       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4591         VLC_ADD_PLUGINS([upnp_cc]) 
4592       ],[
4593         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4594       ])
4595     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4596     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4597       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4598       dnl The mere fact that we have to make such an ugly check sucks
4599       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4600       LIBS_save="$LIBS"
4601       LIBS_cclink="no"
4602       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4603         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4604         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4605 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4606 using namespace CyberLink;
4607
4608 class testclass : public SearchResponseListener, public MediaPlayer
4609 {
4610     virtual void deviceSearchResponseReceived( SSDPPacket *)
4611     {
4612     }
4613
4614     public:
4615       testclass (void)
4616       {
4617         addSearchResponseListener (this);
4618         start ();
4619       }
4620 };
4621 ],[testclass l;])],[LIBS_cclink="$l"])
4622       done
4623       LIBS="${LIBS_save}"
4624       dnl should not happen - otherwise this needs fixing - hence FAILURE
4625       AS_IF([test "${LIBS_cclink}" = "no"],
4626         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4627       AC_MSG_RESULT([${LIBS_cclink}])
4628       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4629     ], [
4630       AC_MSG_RESULT(no)
4631       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4632     ])
4633     CPPFLAGS="${CPPFLAGS_save}"
4634     AC_LANG_POP([C++])
4635   ])
4636 ])
4637
4638 dnl
4639 dnl UPnP Plugin (Intel SDK)
4640 dnl
4641 AC_ARG_ENABLE(upnp,
4642   [  --enable-upnp           Intel UPnP SDK (default auto)])
4643
4644 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4645 AS_IF([test "x${enable_upnp}" != "xno"], [
4646   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4647   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4648     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4649   ])
4650   AS_IF([test "${has_upnp}" = "yes"], [
4651     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp -lixml])
4652   ])
4653 ], [
4654   has_upnp="no"
4655 ])
4656
4657 AS_IF([test "${has_upnp}" = "yes"], [
4658   VLC_ADD_PLUGINS([upnp_intel])
4659 ])
4660
4661
4662 dnl
4663 dnl  Interface plugins
4664 dnl
4665
4666 AC_ARG_WITH(,[Interface plugins:])
4667
4668 dnl special case for BeOS
4669 if test "${SYS}" = "beos"
4670 then
4671     VLC_ADD_BUILTINS([beos])
4672 fi
4673
4674 dnl
4675 dnl Skins2 module
4676 dnl
4677 AC_ARG_ENABLE(skins2,
4678   [  --enable-skins2         Skins2 interface module (default disabled)])
4679 if test "${enable_skins2}" = "yes" ||
4680   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4681    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4682
4683   dnl test for the required libraries
4684   skins2_missing_lib="no"
4685
4686   dnl freetype
4687   if test "${FREETYPE_CONFIG}" != "no"; then
4688     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4689     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4690   else
4691     skins2_missing_lib="yes"
4692     if test "${enable_skins2}" = "yes"; then
4693       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4694     fi
4695   fi
4696
4697   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4698     VLC_ADD_PLUGINS([skins2])
4699     ALIASES="${ALIASES} svlc"
4700     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4701     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4702     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4703
4704   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4705     VLC_ADD_PLUGINS([skins2])
4706     ALIASES="${ALIASES} svlc"
4707     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4708     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4709     VLC_ADD_LDFLAGS([skins2],[-framework Carbon])
4710
4711   else if test "${skins2_missing_lib}" = "no"; then
4712     VLC_ADD_PLUGINS([skins2])
4713     ALIASES="${ALIASES} svlc"
4714     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4715     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4716     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4717   fi fi fi
4718 fi
4719
4720
4721 dnl dnl
4722 dnl dnl  Gtk+ module
4723 dnl dnl
4724 dnl AC_ARG_ENABLE(gtk,
4725 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4726 dnl if test "${enable_gtk}" != "no"
4727 dnl then
4728 dnl   GTK_PATH="${PATH}"
4729 dnl   AC_ARG_WITH(gtk-config-path,
4730 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4731 dnl     [ if test "${with_gtk_config_path}" != "no"
4732 dnl       then
4733 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4734 dnl       fi ])
4735 dnl   # look for gtk-config
4736 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4737 dnl   GTK_CONFIG=${GTK12_CONFIG}
4738 dnl   if test "${GTK_CONFIG}" = "no"
4739 dnl   then
4740 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4741 dnl   fi
4742 dnl   if test "${GTK_CONFIG}" != "no"
4743 dnl   then
4744 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4745 dnl     then
4746 dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
4747 dnl     fi
4748 dnl     if test "${SYS}" != "mingw32"; then
4749 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4750 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4751 dnl     else
4752 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4753 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4754 dnl     fi
4755 dnl     # now look for the gtk.h header
4756 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4757 dnl     ac_cv_gtk_headers=yes
4758 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4759 dnl       ac_cv_gtk_headers=no
4760 dnl       echo "Cannot find gtk development headers."
4761 dnl     ])
4762 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4763 dnl     then
4764 dnl       VLC_ADD_PLUGINS([gtk])
4765 dnl       if test "${SYS}" != "mingw32"; then
4766 dnl         NEED_GTK_MAIN=yes
4767 dnl       fi
4768 dnl       ALIASES="${ALIASES} gvlc"
4769 dnl     fi
4770 dnl     CPPFLAGS="${CPPFLAGS_save}"
4771 dnl   fi
4772 dnl fi
4773 dnl 
4774 dnl
4775 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4776 dnl
4777 dnl AC_ARG_ENABLE(gtk2,
4778 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4779 dnl if test "${enable_gtk2}" = "yes"
4780 dnl then
4781 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4782 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4783 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4784 dnl   VLC_ADD_PLUGINS([gtk2])
4785 dnl   if test "${SYS}" != "mingw32"; then
4786 dnl     NEED_GTK2_MAIN=yes
4787 dnl   fi
4788 dnl fi
4789
4790 dnl
4791 dnl  PDA Gtk+2 module
4792 dnl
4793 AC_ARG_ENABLE(pda,
4794   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4795 if test "${enable_pda}" = "yes"
4796 then
4797   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4798   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4799   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4800   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4801   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4802   VLC_ADD_PLUGINS([pda])
4803   if test "${SYS}" != "mingw32"; then
4804     NEED_GTK2_MAIN=yes
4805   fi
4806 fi
4807
4808 dnl dnl
4809 dnl dnl  Gnome module
4810 dnl dnl
4811 dnl AC_ARG_ENABLE(gnome,
4812 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4813 dnl   [if test "${enable_gnome}" = "yes"; then
4814 dnl     # look for gnome-config
4815 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4816 dnl     if test -x ${GNOME_CONFIG}
4817 dnl     then
4818 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4819 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4820 dnl     fi
4821 dnl     # now look for the gnome.h header
4822 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4823 dnl     AC_CHECK_HEADERS(gnome.h, [
4824 dnl       VLC_ADD_PLUGINS([gnome])
4825 dnl       NEED_GTK_MAIN=yes
4826 dnl       NEED_GNOME_MAIN=yes
4827 dnl       ALIASES="${ALIASES} gnome-vlc"
4828 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4829 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4830 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4831 dnl         AC_MSG_RESULT(yes)
4832 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4833 dnl                   Define if <gnome.h> defines strndup.)],[
4834 dnl         AC_MSG_RESULT(no)])
4835 dnl      ],[
4836 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4837 dnl developement tools or remove the --enable-gnome option])
4838 dnl      ])
4839 dnl     CPPFLAGS="${CPPFLAGS_save}"
4840 dnl   fi])
4841
4842 dnl
4843 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
4844 dnl
4845 dnl AC_ARG_ENABLE(gnome2,
4846 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
4847 dnl if test "${enable_gnome2}" = "yes"
4848 dnl then
4849 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
4850 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
4851 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
4852 dnl   VLC_ADD_PLUGINS([gnome2])
4853 dnl   if test "${SYS}" != "mingw32"; then
4854 dnl     NEED_GNOME2_MAIN=yes
4855 dnl   fi
4856 dnl fi
4857
4858 dnl
4859 dnl  wxWidgets module
4860 dnl
4861 AC_ARG_ENABLE(wxwidgets,
4862   [  --enable-wxwidgets      wxWidgets support (default disabled)])
4863
4864 if test "${enable_wxwidgets}" = "yes"
4865 then
4866   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
4867   WXWIDGETS_PATH="${PATH}"
4868   AC_ARG_WITH(wx-config-path,
4869     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4870     [ if test "${with_wx_config_path}" != "no"
4871       then
4872         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4873       fi ])
4874   WXWIDGETS_NAME="wx-config"
4875   AC_ARG_WITH(wx-config,
4876     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4877     [ if test "${with_wx_config}" != "no"
4878       then
4879         WXWIDGETS_NAME="${with_wx_config}"
4880       fi ])
4881   # look for wx-config
4882   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4883   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4884   then
4885     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null ||  expr 2.7.0 \<= `${WX_CONFIG} --version` >/dev/null
4886     then
4887       AC_MSG_ERROR([You need wxWidgets of the 2.6 branch. Please upgrade/downgrade and try again. Better yet, you can configure with --disable-wxwidgets.])
4888     fi
4889     AC_LANG_PUSH(C++)
4890     # Turn this error:
4891     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4892     # into a warning. However better would be to fix playlist.cpp
4893     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4894         [ac_cv_cxx_fpermissive],
4895         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4896          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4897                         ac_cv_cxx_fpermissive=no)])
4898     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
4899       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
4900     fi
4901     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
4902     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
4903     # check if we must link against gtk2 libs
4904     # if __WXGTK20__ && __WXGTK__ are defined
4905     # for modules/gui/wxwidgets/video.cpp
4906     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4907 #include <wx/wx.h>
4908 #ifdef __WXGTK20__
4909 #error ok, we need to link against gtk2
4910 #endif
4911         ])],[WXGTK=no],[WXGTK=yes])
4912     if test "$WXGTK" = "yes"; then
4913       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LDFLAGS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
4914     fi
4915     if ${WX_CONFIG} --unicode
4916     then 
4917       # wxwidgets should provide the following flags but does not
4918       # the following is required to compile for win32
4919       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
4920     else
4921       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
4922     fi
4923     if test "$have_libcdio" = "yes"
4924     then 
4925       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
4926       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
4927     else 
4928       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
4929     fi
4930
4931     if test "$have_libvcdinfo" = "yes"
4932     then 
4933       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
4934       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
4935     else 
4936       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
4937     fi
4938
4939     # now look for the wxprec.h header
4940     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
4941     ac_cv_wx_headers=yes
4942     AC_CHECK_HEADERS(wx/wxprec.h, , [
4943       ac_cv_wx_headers=no
4944       echo "Cannot find wxWidgets development headers."
4945     ])
4946     if test "${ac_cv_wx_headers}" = "yes"
4947     then
4948       VLC_ADD_PLUGINS([wxwidgets])
4949       ALIASES="${ALIASES} wxvlc"
4950     fi
4951     CPPFLAGS="${CPPFLAGS_save}"
4952     AC_LANG_POP(C++)
4953   fi
4954   dnl WxWidgets plugin will yield incorrect code without this
4955   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
4956 fi
4957
4958 dnl
4959 dnl QT 4
4960 dnl
4961 enableqt4=false
4962 AC_ARG_ENABLE(qt4,
4963   [  --enable-qt4            QT 4 support (default enabled) ])
4964 AS_IF([test "${enable_qt4}" != "no" &&
4965   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
4966   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
4967     [ VLC_ADD_PLUGINS([qt4])
4968       ALIASES="${ALIASES} qvlc"
4969       enableqt4=true
4970       VLC_ADD_LDFLAGS([qt4],[$QT4_LIBS])
4971       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS])
4972       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4973       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4974       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4975       ],
4976       AS_IF([test "${enable_qt4}" = "yes"],[
4977         AC_MSG_ERROR(QT4 library not found)
4978       ],[
4979          AC_MSG_WARN(QT4 library not found)
4980       ])
4981     )
4982 ])
4983 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
4984
4985 dnl
4986 dnl  WinCE GUI module
4987 dnl
4988 if test "${SYS}" = "mingwce"; then
4989   VLC_ADD_BUILTINS([wince])
4990   VLC_ADD_CXXFLAGS([wince],[])
4991   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
4992   dnl Gross hack
4993   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4994 elif test "${SYS}" = "mingw32"; then
4995   VLC_ADD_CXXFLAGS([wince],[])
4996   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4997   dnl Gross hack
4998   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4999 fi
5000
5001 dnl
5002 dnl Simple test for skins2 dependency
5003 dnl
5004 if test "${enable_skins2}" != "no"
5005 then
5006   if test "${WX_CONFIG}" = "no"
5007   then
5008     AC_MSG_ERROR([The skins2 module depends on the wxWidgets development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWidgets development package or alternatively you can also configure with: --disable-wxwidgets --disable-skins2.])
5009   fi
5010 fi
5011
5012 dnl dnl
5013 dnl dnl  Qt module
5014 dnl dnl
5015 dnl AC_ARG_ENABLE(qt,
5016 dnl   [  --enable-qt             Qt interface support (default disabled)],
5017 dnl   [if test "${enable_qt}" = "yes"; then
5018 dnl      VLC_ADD_PLUGINS([qt])
5019 dnl      ALIASES="${ALIASES} qvlc"
5020 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
5021 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5022 dnl      AC_CHECK_LIB(qt-mt,main,[
5023 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
5024 dnl      ],[
5025 dnl        AC_CHECK_LIB(qt,main,[
5026 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
5027 dnl        ])
5028 dnl      ])
5029 dnl      LDFLAGS="${LDFLAGS_save}"
5030 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5031 dnl      if test -x ${QTDIR}/bin/moc
5032 dnl      then
5033 dnl        MOC=${QTDIR}/bin/moc
5034 dnl      else
5035 dnl        MOC=moc
5036 dnl      fi
5037 dnl    fi])
5038 dnl 
5039 dnl dnl
5040 dnl dnl  KDE module
5041 dnl dnl
5042 dnl AC_ARG_ENABLE(kde,
5043 dnl   [  --enable-kde            KDE interface support (default disabled)],
5044 dnl   [if test "${enable_kde}" = "yes"; then
5045 dnl      VLC_ADD_PLUGINS([kde])
5046 dnl      ALIASES="${ALIASES} kvlc"
5047 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
5048 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5049 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5050 dnl      AC_CHECK_LIB(kfile,main,[
5051 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
5052 dnl      ])
5053 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5054 dnl      AC_CHECK_LIB(kdeui,main,[
5055 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
5056 dnl      ])
5057 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5058 dnl      AC_CHECK_LIB(kio,main,[
5059 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
5060 dnl      ])
5061 dnl      LDFLAGS="${LDFLAGS_save}"
5062 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5063 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5064 dnl      if test -x ${QTDIR}/bin/moc
5065 dnl      then
5066 dnl        MOC=${QTDIR}/bin/moc
5067 dnl      else
5068 dnl        MOC=moc
5069 dnl      fi
5070 dnl    fi])
5071
5072 dnl
5073 dnl  Opie QT embedded module
5074 dnl
5075 AC_ARG_ENABLE(opie,
5076   [  --enable-opie           Qt embedded interface support (default disabled)],
5077   [if test "${enable_opie}" = "yes"; then
5078      AC_ARG_WITH(qte,
5079      [    --with-qte=PATH       Qt Embedded headers and libraries])
5080      if test "${with_qte}" != "no" -a -n "${with_qte}"
5081      then
5082        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5083        VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
5084      else
5085        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5086        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5087      fi
5088      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5089      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5090        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5091      ] )
5092      CPPFLAGS="${CPPFLAGS_save}"
5093
5094      VLC_ADD_PLUGINS([opie])
5095      NEED_QTE_MAIN=yes
5096      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
5097      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5098      if test "${with_qte}" != "no" -a -n "${with_qte}"
5099      then
5100        MOC=${with_qte}/bin/moc
5101      else
5102        MOC=${QTDIR}/bin/moc
5103      fi
5104    fi])
5105
5106 dnl
5107 dnl  MacOS X module
5108 dnl
5109 ORIGCFLAGS=$CFLAGS
5110 CFLAGS="$CFLAGS -x objective-c"
5111 AC_ARG_ENABLE(macosx,
5112   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
5113   [if test "${enable_macosx}" = "yes"
5114    then
5115      VLC_ADD_PLUGINS([access_eyetv])
5116      VLC_ADD_LDFLAGS([access_eyetv], [-framework CoreFoundation])
5117      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL -framework QTKit])
5118      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
5119    fi],
5120   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
5121      VLC_ADD_PLUGINS([access_eyetv])
5122      VLC_ADD_LDFLAGS([access_eyetv], [-framework CoreFoundation])
5123      VLC_ADD_BUILTINS([macosx])
5124      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL -framework QTKit])
5125      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
5126    )])
5127 CFLAGS=$ORIGCFLAGS
5128
5129 dnl
5130 dnl  QNX RTOS module
5131 dnl
5132 AC_ARG_ENABLE(qnx,
5133   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5134     if test "${enable_qnx}" != "no"
5135     then
5136       AC_CHECK_HEADERS(Ph.h, [
5137         VLC_ADD_PLUGINS([qnx])
5138         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
5139       ])
5140     fi
5141
5142 dnl
5143 dnl  ncurses module
5144 dnl
5145 AC_ARG_ENABLE(ncurses,
5146   [  --enable-ncurses        ncurses interface support (default disabled)],
5147   [if test "${enable_ncurses}" = "yes"; then
5148      VLC_ADD_PLUGINS([ncurses])
5149      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
5150    fi])
5151
5152 dnl
5153 dnl  XOSD plugin
5154 dnl
5155 AC_ARG_ENABLE(xosd,
5156   [  --enable-xosd           xosd interface support (default disabled)])
5157 if test "${enable_xosd}" = "yes"
5158 then
5159   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5160   AC_CHECK_LIB(xosd,xosd_set_offset,
5161       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5162     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5163         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5164       AC_TRY_COMPILE([#include <xosd.h>],
5165          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5166           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5167   if test "${have_xosd}" = "true"
5168   then
5169     VLC_ADD_PLUGINS([xosd])
5170     VLC_ADD_LDFLAGS([xosd],[-lxosd])
5171   fi
5172 fi
5173
5174 dnl
5175 dnl Visualisation plugin
5176 dnl
5177 AC_ARG_ENABLE(visual,
5178   [  --enable-visual         visualisation plugin (default enabled)])
5179 if test "${enable_visual}" != "no"
5180 then
5181     VLC_ADD_PLUGINS([visual])
5182 fi
5183
5184 dnl
5185 dnl OpenGL visualisation plugin
5186 dnl
5187 AC_ARG_ENABLE(galaktos,
5188   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5189 if test "${enable_galaktos}" = "yes"
5190 then
5191   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5192     VLC_ADD_PLUGINS([galaktos])
5193     if test "${SYS}" != "mingw32"; then
5194       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
5195     else
5196       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
5197     fi
5198   ])
5199 fi
5200
5201 dnl
5202 dnl  goom visualization plugin
5203 dnl
5204 AC_ARG_ENABLE(goom,
5205 [  --enable-goom           goom visualisation plugin (default disabled)])
5206 if test "${enable_goom}" = "yes"
5207 then
5208   AC_ARG_WITH(goom-tree,
5209     [    --with-goom-tree=PATH goom tree for static linking (required)])
5210
5211   dnl
5212   dnl test for --with-goom-tree
5213   dnl
5214   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5215     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5216     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5217     if test -z "${real_goom_tree}"; then
5218       dnl  The given directory can't be found
5219       AC_MSG_RESULT(no)
5220       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5221     fi
5222     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5223       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5224       VLC_ADD_BUILTINS([goom])
5225       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5226       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5227     else
5228       dnl  The given libgoom2 wasn't built, try to look for the old goom
5229       AC_MSG_RESULT(no)
5230       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5231       if test -f "${real_goom_tree}/libgoom.a"; then
5232         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5233         VLC_ADD_BUILTINS([goom])
5234         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
5235         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5236       else
5237         dnl  The given libgoom wasn't built
5238         AC_MSG_RESULT(no)
5239         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5240       fi
5241     fi
5242   else
5243     AC_CHECK_HEADERS(goom/goom.h, [
5244       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
5245       AC_CHECK_LIB(goom2, goom_init, [
5246         VLC_ADD_PLUGINS([goom])
5247         VLC_ADD_LDFLAGS([goom],[-lgoom2])
5248       ],[
5249         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5250       ])
5251       LDFLAGS="${LDFLAGS_save}"
5252     ])
5253   fi
5254 fi
5255
5256 dnl
5257 dnl  Bonjour services discovery
5258 dnl
5259 AC_ARG_ENABLE(bonjour,
5260   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5261 if test "${enable_bonjour}" != "no"
5262 then
5263   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5264     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5265        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
5266       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
5267       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
5268       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5269       VLC_ADD_PLUGINS([bonjour]) ],
5270     [AC_MSG_WARN(avahi-client library not found)])
5271 fi
5272
5273 dnl
5274 dnl  Lirc plugin
5275 dnl
5276 AC_ARG_ENABLE(lirc,
5277   [  --enable-lirc           lirc support (default disabled)])
5278 if test "${enable_lirc}" = "yes"
5279 then
5280   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5281   if test "${have_lirc}" = "true"
5282   then
5283     VLC_ADD_PLUGINS([lirc])
5284     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
5285   fi
5286 fi
5287
5288
5289 AC_ARG_WITH(,[Misc options:])
5290
5291 dnl
5292 dnl TLS/SSL
5293 dnl
5294 AC_ARG_ENABLE(gnutls,
5295   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5296
5297 AS_IF([test "${enable_gnutls}" != "no"], [
5298   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2.9], [have_gnutls="yes"], [have_gnutls="no"])
5299
5300   AS_IF([test "${have_gnutls}" = "yes"], [
5301     VLC_ADD_PLUGINS([gnutls])
5302     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5303     VLC_ADD_LDFLAGS([gnutls], [$GNUTLS_LIBS])
5304   ], [
5305     AS_IF([test "${enable_gnutls}" = "yes"], [
5306       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5307     ])
5308   ])
5309   AC_CHECK_LIB([gcrypt], [gcry_control], [
5310     VLC_ADD_LDFLAGS([gnutls], [-lgcrypt])
5311   ])
5312 ])
5313
5314 AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5315 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5316
5317
5318 dnl
5319 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5320 dnl
5321 dnl  We give the user the opportunity to specify
5322 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5323 dnl
5324 AC_ARG_WITH(words,
5325   [    --with-words=endianness set endianness (big or little)])
5326   case "${with_words}" in
5327     big)
5328       ac_cv_c_bigendian=yes
5329       ;;
5330     little)
5331       ac_cv_c_bigendian=no
5332       ;;
5333     *)
5334       dnl  Try to guess endianness by matching patterns on a compiled
5335       dnl  binary, by looking for an ASCII or EBCDIC string
5336       AC_CACHE_CHECK([whether the byte order is big-endian],
5337         [ac_cv_c_bigendian],
5338         [ac_cv_c_bigendian="unknown"
5339         [cat >conftest.c <<EOF
5340         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5341         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5342         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5343         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5344         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5345         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5346         int main(void) { _a(); _e(); return 0; }
5347 EOF
5348         ]
5349         if test -f conftest.c
5350         then
5351           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5352               && test -f conftest.o
5353           then
5354             if test "`strings conftest.o | grep BIGenDianSyS`"
5355             then
5356               ac_cv_c_bigendian="yes"
5357             fi
5358             if test "`strings conftest.o | grep LiTTleEnDian`"
5359             then
5360               ac_cv_c_bigendian="no"
5361             fi
5362           fi
5363         fi
5364       ])
5365       if test "${ac_cv_c_bigendian}" = "unknown"
5366       then
5367         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5368       fi
5369       ;;
5370   esac
5371 dnl  Now we know what to use for endianness, just put it in the header
5372 if test "${ac_cv_c_bigendian}" = "yes"
5373 then
5374   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5375 fi
5376
5377 dnl
5378 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5379 dnl
5380 loader=false
5381 AC_ARG_ENABLE(loader,
5382   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5383 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5384 AS_IF([test "${enable_loader}" = "yes"],
5385   [ VLC_ADD_PLUGINS([dmo])
5386     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5387     VLC_ADD_LDFLAGS([dmo],[../../../libs/loader/libloader.la -lpthread])
5388     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5389     VLC_ADD_LDFLAGS([quicktime],[../../libs/loader/libloader.la -lpthread])
5390     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5391     VLC_ADD_LDFLAGS([realaudio],[../../libs/loader/libloader.la -ldl -lpthread])
5392   ])
5393
5394 dnl
5395 dnl  Microsoft ActiveX support
5396 dnl
5397 activex=false
5398 AC_ARG_ENABLE(activex,
5399   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5400 AC_ARG_WITH(wine-sdk-path,
5401   [    --with-wine-sdk-path=PATH path to wine sdk])
5402 if test "${enable_activex}" != "no"
5403 then
5404   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5405   then
5406     AC_CHECK_PROGS(MIDL, [midl], no)
5407     if test "${with_wine_sdk_path}" != ""
5408     then
5409        WINE_SDK_PATH=${with_wine_sdk_path}
5410        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5411     else
5412        WIDL=no
5413     fi
5414     AC_LANG_PUSH(C++)
5415     AC_CHECK_HEADERS(ole2.h, 
5416       [AC_CHECK_HEADERS(olectl.h,
5417         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5418           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5419           VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5420           AC_CHECK_HEADERS(objsafe.h,
5421             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5422             [
5423              #if HAVE_OLE2_H
5424              #   include <ole2.h>
5425              #endif
5426              ]
5427           )
5428           activex=:
5429           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5430         ],
5431         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5432       )],
5433       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5434     )
5435     AC_LANG_POP(C++)
5436   fi
5437 fi
5438 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5439 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5440 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5441 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5442 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5443
5444 dnl
5445 dnl  Mozilla plugin
5446 dnl
5447 mozilla=false
5448 AC_ARG_ENABLE(mozilla,
5449   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5450 AC_ARG_WITH(mozilla-sdk-path,
5451   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5452 AC_LANG_PUSH(C++)
5453 if test "${enable_mozilla}" = "yes" 
5454 then
5455   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5456   need_xpcom_libs=false
5457
5458   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5459   then
5460     dnl New firefox-1.5 SDK api
5461     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5462       [
5463         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5464           [],
5465           [
5466             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5467               [],
5468               [
5469                 PKG_CHECK_MODULES([NSPR], [nspr],
5470                   [],
5471                   [
5472                     AC_MSG_ERROR([Please install the nspr development tools.])
5473                   ]
5474                 )
5475               ]
5476             )
5477           ])
5478         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5479         MOZILLA_REQUIRED_HEADERS=1
5480         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5481         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5482         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5483           [#if HAVE_NPAPI_H
5484            # include <npapi.h>
5485            #endif
5486           ])
5487         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5488             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5489         fi
5490         MOZILLA_REQUIRED_HEADERS=
5491         mozilla=:
5492         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5493         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5494             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5495         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5496             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5497         else
5498             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5499         fi
5500         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5501             VLC_ADD_LDFLAGS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt])
5502         fi
5503         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5504         VLC_ADD_LDFLAGS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS} ${MOZILLA_LDFLAGS}])
5505         VLC_ADD_PLUGINS([mozilla])
5506         MOZILLA_CONFIG=
5507         CPPFLAGS="${CPPFLAGS_save}"
5508       ],
5509       [
5510         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5511         if test "${MOZILLA_CONFIG}" = "no"
5512         then
5513           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5514           if test "${SEAMONKEY_CONFIG}" = "no"
5515           then
5516             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5517             if test "${XULRUNNER_CONFIG}" = "no"
5518             then
5519               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5520             else
5521               have_xul=true
5522               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5523             fi
5524           else
5525             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5526           fi
5527         fi
5528       ]
5529     )
5530     if test ! -z "${MOZILLA_CONFIG}"
5531     then
5532       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5533         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5534         AC_CHECK_LIB(Xt,XtStrings,
5535          [
5536            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5537            VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])
5538          ],
5539          [],
5540          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5541         ])
5542         LDFLAGS="${LDFLAGS_save}"
5543       fi
5544
5545       mozilla=:
5546       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5547       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5548       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5549       if ${need_xpcom_libs}; then
5550          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5551       else
5552          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5553       fi
5554       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5555       MOZILLA_REQUIRED_HEADERS=1
5556       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5557       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5558       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5559         [#if HAVE_NPAPI_H
5560          # include <npapi.h>
5561          #endif
5562         ])
5563       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5564       then
5565         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5566       fi
5567       MOZILLA_REQUIRED_HEADERS=
5568       CPPFLAGS="${CPPFLAGS_save}"
5569       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5570     fi
5571     dnl End of moz_sdk = ""
5572   else
5573     dnl special case for mingw32
5574     if test "${SYS}" = "mingw32"
5575     then
5576       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5577       dnl latest gecko sdk does not have an xpcom directory
5578       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5579           mozilla_sdk_xpcom="/xpcom"
5580       fi
5581     fi
5582
5583     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5584     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5585     MOZILLA_REQUIRED_HEADERS=1
5586     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5587     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5588     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5589         [#if HAVE_NPAPI_H
5590           #include <npapi.h>
5591           #endif
5592         ])
5593     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5594     then
5595         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5596     fi
5597     MOZILLA_REQUIRED_HEADERS=
5598     mozilla=:
5599     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5600     VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
5601     if ${need_xpcom_libs}; then
5602        VLC_ADD_LDFLAGS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
5603       if test "${SYS}" = "mingw32"; then
5604         dnl latest gecko sdk does not have embedstring
5605         if test -d "${real_mozilla_sdk}/embedstring/bin"
5606         then
5607           VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
5608         fi
5609       fi
5610     fi
5611     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5612
5613     if test -n "${CYGPATH}"; then
5614       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5615     fi
5616     CPPFLAGS="${CPPFLAGS_save}"
5617   fi
5618 fi
5619 AC_LANG_POP(C++)
5620 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5621
5622 dnl Tests for Osso and Xsp
5623 AC_CHECK_LIB(osso, osso_display_blanking_pause,[
5624    PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                           
5625        VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5626        VLC_ADD_LDFLAGS([x11],[-losso])
5627    ])
5628 ])
5629 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5630    VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
5631    VLC_ADD_LDFLAGS([x11],[-lXsp])
5632 ])
5633
5634 dnl
5635 dnl  Mediacontrol Python bindings
5636 dnl
5637 AC_ARG_ENABLE(python-bindings,
5638   [  --enable-python-bindings    Enable Python bindings (default disabled)])
5639 dnl TODO: look for python dev headers
5640 AS_IF([test "${enable_python_bindings}" = "yes"],
5641       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
5642      ) 
5643
5644 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5645
5646 dnl
5647 dnl  Java bindings
5648 dnl
5649 AC_ARG_ENABLE(java-bindings,
5650   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5651 if test "${enable_java_bindings}" = "yes"
5652 then
5653   AS_IF([test "x${JAVA_HOME}" == "x"],
5654         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5655   AC_PROG_JAVAC
5656   AC_PROG_JAVA
5657   PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
5658   if test "${JAVAC}" == "javac${EXEEXT}"
5659   then
5660     JAVAC="javac${EXEEXT} -cp ./ "
5661   fi
5662 fi
5663 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5664
5665 dnl
5666 dnl  test plugins
5667 dnl
5668 AC_ARG_ENABLE(testsuite,
5669   [  --enable-testsuite      build test modules (default disabled)])
5670 if test "${enable_testsuite}" = "yes"
5671 then
5672   TESTS="test1 test2 test3 test4"
5673
5674   dnl  we define those so that bootstrap sets the right linker
5675   VLC_ADD_CXXFLAGS([test2],[])
5676   VLC_ADD_OBJCFLAGS([test3],[])
5677   dnl  this one is needed until automake knows what to do
5678   VLC_ADD_LDFLAGS([test3],[-lobjc])
5679
5680   VLC_ADD_PLUGINS([${TESTS}])
5681   #VLC_ADD_BUILTINS([${TESTS}])
5682 fi
5683
5684 dnl
5685 dnl Microsoft Layer for Unicode for WIN9x/ME
5686 dnl
5687 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5688 then
5689     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5690         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5691     ])
5692 fi
5693
5694 dnl
5695 dnl  gtk_main plugin
5696 dnl
5697 if test "${NEED_GTK_MAIN}" != "no"
5698 then
5699     VLC_ADD_PLUGINS([gtk_main])
5700     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5701     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5702 fi
5703
5704 if test "${NEED_GNOME_MAIN}" != "no"
5705 then
5706     VLC_ADD_PLUGINS([gnome_main])
5707     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5708     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5709 fi
5710
5711 if test "${NEED_GTK2_MAIN}" != "no"
5712 then
5713     VLC_ADD_PLUGINS([gtk2_main])
5714     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5715     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5716     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5717     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5718 fi
5719
5720 if test "${NEED_GNOME2_MAIN}" != "no"
5721 then
5722     VLC_ADD_PLUGINS([gnome2_main])
5723     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5724     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5725 fi
5726
5727 dnl
5728 dnl  qte_main plugin
5729 dnl
5730 if test "${NEED_QTE_MAIN}" != "no"
5731 then
5732     VLC_ADD_PLUGINS([qte_main])
5733     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5734     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5735     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5736 fi
5737
5738
5739 dnl
5740 dnl  Plugin and builtin checks
5741 dnl
5742 builtin_support=false
5743 plugin_support=:
5744
5745 dnl Support for plugins - this must be AT THE END
5746 AC_ARG_ENABLE(plugins,
5747   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
5748   [if test "${enable_plugins}" = "no"
5749    then
5750      plugin_support=false
5751    fi])
5752
5753 dnl Automagically disable plugins if there is no system support for
5754 dnl dynamically loadable files (.so, .dll, .dylib).
5755 dnl don't forget vlc-win32 still can load .dll as plugins
5756 if test "${ac_cv_have_plugins}" = "no"
5757 then
5758   echo "*** Your system doesn't have plugin support. All plugins will be built"
5759   echo "statically."
5760   plugin_support=false
5761 fi
5762
5763 AS_IF([${plugin_support}], [
5764   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5765 ], [
5766   VLC_ADD_BUILTINS([${PLUGINS}])
5767   PLUGINS=""
5768 ])
5769
5770 dnl
5771 dnl Pic and shared libvlc stuff
5772 dnl
5773 AS_IF([test "${SYS}" = "mingw32" || test "${enable_libtool}" != "no"], [
5774   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
5775   VLC_ADD_PLUGINS([${BUILTINS}])
5776   AS_IF([test "${SYS}" = "mingw32"], [
5777     FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5778     VLC_ADD_CPPFLAGS([libvlc],[-DDLL_EXPORT])
5779   ])
5780   BUILTINS=""
5781 ], [
5782   LDFLAGS_vlc="${LDFLAGS_vlc} ${LDFLAGS_libvlc}"
5783   FILE_LIBVLC_DLL=""
5784 ])
5785
5786  dnl Import conditional variables generated by bootstrap
5787 VLC_CONDITIONALS
5788
5789 dnl
5790 dnl  Stuff used by the program
5791 dnl
5792 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5793 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2007 the VideoLAN team", [Copyright string])
5794 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5795 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5796 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5797 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5798 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5799 AC_SUBST(VERSION_MAJOR)
5800 AC_SUBST(VERSION_MINOR)
5801 AC_SUBST(VERSION_REVISION)
5802 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5803 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5804 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5805 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5806
5807 dnl Old definitions for version-dependant plugins
5808 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
5809 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
5810 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
5811
5812 dnl New definitions with value matching 0.9.0 release
5813 module_symbol="0_9_0b"
5814 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
5815 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
5816 VLC_ENTRY="vlc_entry__${module_symbol}"
5817 AC_SUBST(VLC_ENTRY)
5818
5819 dnl
5820 dnl  Handle substvars that use $(top_srcdir)
5821 dnl
5822 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5823 AC_SUBST(VLC_CONFIG)
5824 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
5825
5826 dnl
5827 dnl  Restore *FLAGS
5828 dnl
5829 VLC_RESTORE_FLAGS
5830
5831 dnl
5832 dnl  Create the vlc-config script
5833 dnl
5834 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5835
5836 dnl
5837 dnl  Configuration is finished
5838 dnl
5839 AC_SUBST(SYS)
5840 AC_SUBST(ARCH)
5841 AC_SUBST(ALIASES)
5842 AC_SUBST(ASM)
5843 AC_SUBST(MOC)
5844 AC_SUBST(RCC)
5845 AC_SUBST(UIC)
5846 AC_SUBST(WINDRES)
5847 AC_SUBST(MOZILLA_SDK_PATH)
5848 AC_SUBST(WINE_SDK_PATH)
5849 AC_SUBST(LIBEXT)
5850 AC_SUBST(AM_CPPFLAGS)
5851 AC_SUBST(ALL_LINGUAS)
5852 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5853 AC_SUBST(FILE_LIBVLC_DLL)
5854
5855 dnl Import substitutions generated by bootstrap
5856 VLC_SUBSTS
5857
5858 dnl Create vlc-config.in
5859 VLC_OUTPUT_VLC_CONFIG_IN
5860
5861 AC_CONFIG_FILES([
5862   vlc.win32.nsi
5863   Makefile
5864   activex/Makefile
5865   activex/axvlc.inf
5866   bindings/Makefile
5867   bindings/java/Makefile
5868   bindings/java/src/Makefile
5869   bindings/python/Makefile
5870   doc/Makefile
5871   intl/Makefile
5872   ipkg/Makefile
5873   libs/loader/Makefile
5874   libs/srtp/Makefile
5875   modules/Makefile
5876   mozilla/Makefile
5877   m4/Makefile
5878   po/Makefile.in
5879   share/Makefile
5880   src/Makefile
5881 ])
5882
5883 AC_CONFIG_FILES([
5884   modules/access/Makefile
5885   modules/access/bda/Makefile
5886   modules/access/dshow/Makefile
5887   modules/access/dvb/Makefile
5888   modules/access/mms/Makefile
5889   modules/access/cdda/Makefile
5890   modules/access/rtsp/Makefile
5891   modules/access/vcd/Makefile
5892   modules/access/vcdx/Makefile
5893   modules/access/screen/Makefile
5894   modules/access_filter/Makefile
5895   modules/access_output/Makefile
5896   modules/audio_filter/Makefile
5897   modules/audio_filter/channel_mixer/Makefile
5898   modules/audio_filter/converter/Makefile
5899   modules/audio_filter/resampler/Makefile
5900   modules/audio_mixer/Makefile
5901   modules/audio_output/Makefile
5902   modules/codec/Makefile
5903   modules/codec/cmml/Makefile
5904   modules/codec/dmo/Makefile
5905   modules/codec/ffmpeg/Makefile
5906   modules/codec/spudec/Makefile
5907   modules/codec/xvmc/Makefile
5908   modules/control/Makefile
5909   modules/control/http/Makefile
5910   modules/demux/Makefile
5911   modules/demux/asf/Makefile
5912   modules/demux/avi/Makefile
5913   modules/demux/mp4/Makefile
5914   modules/demux/mpeg/Makefile
5915   modules/demux/playlist/Makefile
5916   modules/gui/Makefile
5917   modules/gui/beos/Makefile
5918   modules/gui/pda/Makefile
5919   modules/gui/macosx/Makefile
5920   modules/gui/qnx/Makefile
5921   modules/gui/qt4/Makefile
5922   modules/gui/skins2/Makefile
5923   modules/gui/wxwidgets/Makefile
5924   modules/gui/wince/Makefile
5925   modules/meta_engine/Makefile
5926   modules/misc/Makefile
5927   modules/misc/dummy/Makefile
5928   modules/misc/memcpy/Makefile
5929   modules/misc/notify/Makefile
5930   modules/misc/testsuite/Makefile
5931   modules/misc/playlist/Makefile
5932   modules/misc/xml/Makefile
5933   modules/misc/probe/Makefile
5934   modules/mux/Makefile
5935   modules/mux/mpeg/Makefile
5936   modules/mux/rtp/Makefile
5937   modules/packetizer/Makefile
5938   modules/services_discovery/Makefile
5939   modules/stream_out/Makefile
5940   modules/stream_out/transrate/Makefile
5941   modules/video_chroma/Makefile
5942   modules/video_filter/Makefile
5943   modules/video_output/Makefile
5944   modules/video_output/msw/Makefile
5945   modules/video_output/qte/Makefile
5946   modules/video_output/x11/Makefile
5947   modules/visualization/Makefile
5948   modules/visualization/visual/Makefile
5949   modules/visualization/galaktos/Makefile
5950 ])
5951
5952 dnl Generate makefiles
5953 AC_OUTPUT
5954
5955 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5956 # not provided with the source
5957 ${SHELL} ./config.status --file=vlc-config
5958 chmod 0755 vlc-config
5959
5960 dnl echo "Enabled builtin modules :"
5961 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
5962
5963 dnl echo "Enabled plugin modules :"
5964 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
5965
5966 dnl Shortcut to nice compile message
5967 rm -f compile
5968 echo '#! /bin/sh' >compile
5969
5970 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
5971 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
5972 chmod a+x compile
5973
5974 printf "
5975 vlc configuration
5976 --------------------
5977 vlc version           : ${VERSION}
5978 system                : ${SYS}
5979 architecture          : ${ARCH}
5980 build flavour         : "
5981 test "${enable_debug}" = "yes" && printf "debug "
5982 test "${enable_cprof}" = "yes" && printf "cprof "
5983 test "${enable_gprof}" = "yes" && printf "gprof "
5984 test "${enable_optimizations}" = "yes" && printf "optim "
5985 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5986 echo "
5987 vlc aliases           :${ALIASES}
5988 plugins/bindings      :${PLUGINS_BINDINGS}
5989
5990 You can tune the compiler flags in vlc-config.
5991 To build vlc and its plugins, type \`./compile' or \`make'.
5992 "
5993