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