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