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