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