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