]> git.sesse.net Git - vlc/blob - configure.ac
basic support for Kate streams as subtitles
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-git)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="git"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59c)
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE(tar-ustar)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Save *FLAGS
34 dnl
35 VLC_SAVE_FLAGS
36
37 dnl
38 dnl Check for tools
39 dnl
40 AC_PROG_CC_C99
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then 
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104     if test -z $with_live555_tree; then
105        with_live555_tree=${topdir}/extras/contrib/src/live
106     fi
107     if test -z $with_goom_tree; then
108        with_goom_tree=${topdir}/extras/contrib/src/goom
109     fi
110     if test -z $with_mozilla_sdk_path; then
111        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
112     fi
113     if test -z $with_cyberlink_tree; then
114        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
115     fi
116     if test -z $with_libmpeg2_tree; then
117        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
118     fi
119     if test -z $with_a52_tree; then
120        with_a52_tree=${topdir}/extras/contrib/src/a52dec
121     fi
122
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
173     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
175     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
176     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
177     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
178     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
179     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
180     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
181     AC_ARG_ENABLE(macosx-defaults,
182         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
183     if test "x${enable_macosx_defaults}" != "xno"
184     then
185         echo ""
186         echo "Building with Mac OS X defaults:"
187         with_macosx_version_min="10.4"
188         echo "  Assuming --with-macosx-version-min=10.4"
189         build_dir=`pwd`
190         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
191         ac_default_prefix="${build_dir}/vlc_install_dir"
192         enable_macosx="yes"
193         echo "  Assuming --enable-macosx"
194         enable_faad="yes"
195         echo "  Assuming --enable-faad"
196         enable_flac="yes"
197         echo "  Assuming --enable-flac"
198         enable_theora="yes"
199         echo "  Assuming --enable-theora"
200         enable_shout="yes"
201         echo "  Assuming --enable-shout"
202         enable_cddax="yes"
203         echo "  Assuming --enable-cddax"
204         enable_vcdx="yes"
205         echo "  Assuming --enable-vcdx"
206         enable_caca="yes"
207         echo "  Assuming --enable-caca"
208         enable_goom="yes"
209         echo "  Assuming --enable-goom"
210         enable_ncurses="yes"
211         echo "  Assuming --enable-ncurses"
212         enable_twolame="yes"
213         echo "  Assuming --enable-twolame"
214         enable_realrtsp="yes"
215         echo "  Assuming --enable-realrtsp"
216
217         enable_skins2="no"
218         echo "  Assuming --disable-skins2"
219         enable_x11="no"
220         echo "  Assuming --disable-x11"
221         enable_glx="no"
222         echo "  Assuming --disable-glx"
223         enable_xvideo="no"
224         echo "  Assuming --disable-xvideo"
225     fi
226     if test ".`uname -p`" = ".i386"; then
227         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
228         dnl without hacking it a lot, we disable mmx and sse.
229         dnl (that bug is about ld being unable to handle
230         dnl text relocation)
231         save_cflags="$CFLAGS"
232         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
233         AC_TRY_LINK(
234             [int a;], [asm("movq _a,%mm0\n");],
235             ac_ld_does_not_support_text_reloc=no,
236             ac_ld_does_not_support_text_reloc=yes)
237         CFLAGS="$save_cflags"
238
239         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
240             enable_mmx="no"
241             echo "  Assuming --disable-mmx (due to a bug in ld)"
242             enable_sse="no"
243             echo "  Assuming --disable-sse (due to a bug in ld)"
244         fi
245     fi
246     dnl
247     dnl  Check for Mac OS X SDK settings
248     dnl
249     AC_ARG_WITH(macosx-sdk,
250        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
251     if test "${with_macosx_sdk}" != "" ; then
252         CC="${CC} -isysroot ${with_macosx_sdk}" 
253         CXX="${CXX} -isysroot ${with_macosx_sdk}"
254         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
255         LD="${LD} -syslibroot ${with_macosx_sdk}"
256     fi
257     AC_ARG_WITH(macosx-version-min,
258        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
259     if test "${with_macosx_version_min}" != "" ; then
260         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
261         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
262         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
263         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
264         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
265         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
266         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
267         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
268         export MACOSX_DEPLOYMENT_TARGET
269     fi
270     ;;
271   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
272     AC_CHECK_TOOL(WINDRES, windres, :)
273
274     case "${host_os}" in
275       *wince* | *mingwce* | *mingw32ce* | *pe*)
276         SYS=mingwce
277         ;;
278       *mingw32*)
279         SYS=mingw32
280         ;;
281       *cygwin*)
282         dnl Check if we are using the mno-cygwin mode in which case we are
283         dnl actually dealing with a mingw32 compiler.
284         AC_EGREP_CPP(yes,
285             [#ifdef WIN32
286              yes
287              #endif],
288             SYS=mingw32, SYS=cygwin)
289         ;;
290     esac
291
292     if test "${SYS}" = "mingw32"; then
293         # add ws2_32 for closesocket, select, recv
294         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
295         VLC_ADD_LDFLAGS([vlc],[-mwindows])
296         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
297         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
298         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua],[-lws2_32])
299     fi
300     if test "${SYS}" = "mingwce"; then
301         # add ws2 for closesocket, select, recv
302         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
303         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
304         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp],[-lws2])
305         VLC_ADD_LIBS([libvlc],[-lmmtimer])
306    fi
307     ;;
308   *nto*)
309     SYS=nto
310     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
311     ;;
312   solaris*)
313     SYS=solaris
314     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
315     # Perhaps it is useful other places as well? 
316     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
317     ;;
318   hpux*)
319     SYS=hpux
320     ;;
321   beos)
322     SYS=beos
323     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
324     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
325     VLC_ADD_CXXFLAGS([beos],[])
326     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
327     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
328     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
329     VLC_ADD_LIBS([access_file],[-lpoll])
330     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
331     dnl Check for BONE
332     if test -f /boot/beos/system/lib/libbind.so; then
333         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
334     else
335         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
336     fi
337
338     dnl Ugly check for Zeta
339     if test -f /boot/beos/system/lib/libzeta.so; then
340         VLC_ADD_LIBS([beos],[-lzeta])
341     fi
342     ;;
343   *)
344     SYS="${host_os}"
345     ;;
346 esac
347 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
348 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
349 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
350 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
351
352 dnl
353 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
354 dnl for program foo on win32
355
356 case "${build_os}" in
357     cygwin|msys)
358         ac_executable_extensions=".exe"
359     ;;
360     *)
361     ;;
362 esac
363
364 dnl 
365 dnl  Libtool
366 dnl  It's very bad, but our former custom system was worst
367 dnl  -- Courmisch
368 dnl
369
370 dnl override platform specific check for dependent libraries
371 dnl otherwise libtool linking of shared libraries will
372 dnl fail on anything other than pass_all.
373 AC_CACHE_VAL(lt_cv_deplibs_check_method,
374     [lt_cv_deplibs_check_method=pass_all])
375
376 AC_DISABLE_STATIC
377 AC_DISABLE_FAST_INSTALL
378 AC_LIBTOOL_DLOPEN
379 AC_LIBTOOL_WIN32_DLL
380 m4_undefine([AC_PROG_F77])
381 m4_defun([AC_PROG_F77],[])
382 AC_PROG_LIBTOOL
383
384 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
385 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
386
387 lt_cv_deplibs_check_method=pass_all
388
389
390 dnl
391 dnl Gettext stuff
392 dnl
393 AM_GNU_GETTEXT_VERSION([0.17])
394 AM_GNU_GETTEXT([external])
395 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
396
397 dnl
398 dnl Iconv stuff
399 dnl
400 AM_ICONV
401 AS_IF([test "$am_cv_func_iconv" != "yes"],
402         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
403 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
404 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
405
406 dnl Check for the need to include the mingwex lib for mingw32
407 if test "${SYS}" = "mingw32"
408 then
409     AC_CHECK_LIB(mingwex,opendir,
410         AC_CHECK_LIB(mingw32,opendir,,
411             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
412     )
413 fi
414
415 dnl Check for fnative-struct or mms-bitfields support for mingw32
416 if test "${SYS}" = "mingw32"
417 then
418     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
419         [ac_cv_c_mms_bitfields],
420         [CFLAGS="${CFLAGS_save} -mms-bitfields"
421          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
422     if test "${ac_cv_c_mms_bitfields}" != "no"; then
423         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
424         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
425     else
426         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
427             [ac_cv_c_fnative_struct],
428             [CFLAGS="${CFLAGS_save} -fnative-struct"
429              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
430         if test "${ac_cv_c_fnative_struct}" != "no"; then
431             CFLAGS_save="${CFLAGS_save} -fnative-struct";
432             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
433         fi
434     fi
435
436     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
437 fi
438
439 dnl Check for fvtable-thunks support for mingw32
440 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
441 then
442 AC_LANG_PUSH(C++)
443     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
444         [ac_cv_cxx_fvtable_thunks],
445         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
446          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
447                         ac_cv_cxx_fvtable_thunks=no)])
448     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
449         CXXFLAGS_mingw32_special="-fvtable-thunks"
450     fi
451
452     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
453 AC_LANG_POP(C++)
454 fi
455
456 dnl Plugin compilation stuff
457
458 VLC_LIBRARY_SUFFIX
459
460 dnl The -DSYS_FOO flag
461 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
462
463 dnl Check for system libs needed
464 need_libc=false
465
466 dnl Check for usual libc functions
467 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 strdup strndup strnlen atof lldiv posix_fadvise posix_madvise])
468 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
469 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
470 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
471 AC_FUNC_ALLOCA
472
473 AH_BOTTOM([#include <vlc_fixups.h>])
474
475 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
476
477 AS_IF([test "${SYS}" = "linux"], [
478   AC_CHECK_FUNCS(tee)
479 ])
480
481 dnl Check for setlocal and langinfo
482 AC_CHECK_FUNCS(setlocale)
483 AC_CHECK_HEADERS(langinfo.h)
484 AC_CHECK_FUNCS(nl_langinfo)
485
486 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
487   [AC_TRY_LINK([#include <langinfo.h>],
488     [char* cs = nl_langinfo(CODESET);],
489     ac_cv_langinfo_codeset=yes,
490     ac_cv_langinfo_codeset=no)
491   ])
492 if test ${ac_cv_langinfo_codeset} = yes; then
493   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
494     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
495 fi
496
497 AC_CHECK_FUNCS(connect,,[
498   AC_CHECK_LIB(socket,connect,[
499     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
500     LIBS_socket="-lsocket"
501   ])
502 ])
503
504 AC_CHECK_FUNCS(send,,[
505   AC_CHECK_LIB(socket,send,[
506     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp stream_out_standard growl_udp],[-lsocket])
507   ])
508 ])
509
510 AC_CHECK_FUNCS(gethostbyname,,[
511   AC_CHECK_LIB(nsl,gethostbyname,[
512     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
513   ],[
514     AC_CHECK_LIB(bind,gethostbyname,[
515       VLC_ADD_LIBS([access_mms],[-lbind])
516     ])
517   ])
518 ])
519
520 AC_CHECK_HEADERS(zlib.h, [
521   VLC_ADD_LIBS([access_http],[-lz])
522 ])
523
524 dnl Check for socklen_t
525 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
526 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
527 ac_cv_type_socklen_t,
528 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
529 [#include <sys/types.h>
530 #ifdef WIN32
531 # include <winsock2.h>
532 # include <ws2tcpip.h>
533 #else
534 # include <sys/socket.h>
535 #endif]], [[socklen_t len; len = 0;]])],
536 ac_cv_type_socklen_t=yes,
537 ac_cv_type_socklen_t=no)])
538 AS_IF([test "$ac_cv_type_socklen_t" = no],
539  [AC_DEFINE(socklen_t, int)])
540
541 dnl Check for struct sockaddr_storage
542 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
543 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
544 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
545   [AC_TRY_COMPILE(
546     [#include <sys/types.h>
547      #if defined( UNDER_CE )
548      # include <winsock.h>
549      #elif defined( WIN32 )
550      # include <winsock2.h>
551      #else
552      # include <sys/socket.h>
553      #endif], [struct sockaddr_storage addr;],
554      ac_cv_struct_sockaddr_storage=yes,
555      ac_cv_struct_sockaddr_storage=no)])
556 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
557   AC_DEFINE(sockaddr_storage, sockaddr)
558   AC_DEFINE(ss_family, sa_family)
559 ])
560
561 dnl getaddrinfo, getnameinfo and gai_strerror check
562 dnl  -lnsl and -lsocket are needed on Solaris;
563 dnl  we purposedly make the test fail on Windows
564 LIBS_save="${LIBS}"
565 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
566 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
567
568 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
569 dnl are
570 LIBS="${LIBS_gai}"
571 AC_CHECK_FUNCS([getnameinfo gai_strerror])
572 LIBS="${LIBS_save}"
573
574 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
575 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
576 [#include <sys/types.h>
577 #if defined( WIN32 ) || defined( UNDER_CE )
578 # if defined(UNDER_CE) && defined(sockaddr_storage)
579 #  undef sockaddr_storage
580 # endif
581 # include <winsock2.h>
582 # include <ws2tcpip.h>
583 #else
584 # include <netdb.h>
585 #endif])
586
587 dnl Check for va_copy
588 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
589   AC_TRY_LINK(
590     [#include <stdarg.h>],
591     [va_list ap1, ap2; va_copy(ap1,ap2);],
592     [ac_cv_c_va_copy="yes"],
593     [ac_cv_c_va_copy="no"]))
594 if test "${ac_cv_c_va_copy}" = "yes"; then
595   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
596 fi
597 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
598   AC_TRY_LINK(
599     [#include <stdarg.h>],
600     [va_list ap1, ap2; __va_copy(ap1,ap2);],
601     [ac_cv_c___va_copy="yes"],
602     [ac_cv_c___va_copy="no"]))
603 if test "${ac_cv_c___va_copy}" = "yes"; then
604   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
605 fi
606
607 AC_CHECK_FUNCS(inet_aton,,[
608   AC_CHECK_LIB(resolv,inet_aton,[
609     VLC_ADD_LIBS([libvlc],[-lresolv])
610   ])
611 ])
612
613 dnl Check for getopt (always use builtin one on win32)
614 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
615 need_getopt=:
616 else
617 need_getopt=false
618 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
619 [ # FreeBSD has a gnugetopt library for this:
620   AC_CHECK_LIB([gnugetopt],[getopt_long],
621     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
622      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
623     [need_getopt=:])])
624 fi
625 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
626
627 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
628 AC_TYPE_SIGNAL
629 AC_CHECK_LIB(m,cos,[
630   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
631 ])
632 AC_CHECK_LIB(m,pow,[
633   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])
634 ])
635 AC_CHECK_LIB(m,sqrt,[
636   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
637 ])
638 AC_CHECK_LIB(m,ceil,[
639   VLC_ADD_LIBS([mosaic],[-lm])
640 ])
641 AC_CHECK_LIB(m,exp,[
642   VLC_ADD_LIBS([gaussianblur],[-lm])
643 ])
644 AC_CHECK_LIB(mx,sqrtf,[
645   VLC_ADD_LIBS([x264],[-lmx])
646 ])
647 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
648
649 dnl Check for dynamic plugins
650 ac_cv_have_plugins=no
651
652 # OS X style
653 AC_CHECK_HEADERS(mach-o/dyld.h,
654   [AC_CHECK_FUNCS(NSLinkModule,
655     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
656      ac_cv_have_plugins=yes])])
657
658 # HP-UX style
659 if test "${ac_cv_have_plugins}" = "no"; then
660   AC_CHECK_HEADERS(dl.h)
661   ac_cv_my_have_shl_load=no
662   AC_CHECK_FUNC(shl_load,
663    [ac_cv_my_have_shl_load=yes,
664     AC_CHECK_LIB(dld, shl_load,
665      [ac_cv_my_have_shl_load=yes
666       VLC_ADD_LIBS([libvlc],[-ldld])])])
667   if test "${ac_cv_my_have_shl_load}" = "yes"; then
668     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
669     ac_cv_have_plugins=yes
670   fi
671 fi
672
673 # Whatever style
674 if test "${ac_cv_have_plugins}" = "no"; then
675   AC_CHECK_LIB(dld, dld_link,
676    [VLC_ADD_LIBS([libvlc],[-ldld])
677     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
678     ac_cv_have_plugins=yes])
679 fi
680
681 # Win32 style
682 if test "${ac_cv_have_plugins}" = "no"; then
683   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
684     AC_CHECK_LIB(kernel32, main,
685      [VLC_ADD_LIBS([libvlc],[-lkernel32])
686       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
687       ac_cv_have_plugins=yes])
688   fi
689 fi
690
691 # WinCE style
692 if test "${ac_cv_have_plugins}" = "no"; then
693   if test "${SYS}" = "mingwce"; then
694     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
695     ac_cv_have_plugins=yes
696   fi
697 fi
698
699 # BeOS style
700 if test "${ac_cv_have_plugins}" = "no"; then
701   AC_CHECK_HEADERS(image.h)
702   AC_CHECK_FUNCS(load_add_on,
703    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
704     ac_cv_have_plugins=yes])
705 fi
706
707 # Only test for dlopen() if the others didn't work
708 if test "${ac_cv_have_plugins}" = "no"; then
709   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
710   ac_cv_my_have_dlopen=no
711   AC_CHECK_FUNC(dlopen,
712     ac_cv_my_have_dlopen=yes,
713     AC_CHECK_LIB(dl, dlopen,
714       ac_cv_my_have_dlopen=yes
715       VLC_ADD_LIBS([libvlc realaudio],[-ldl]),
716       AC_CHECK_LIB(svld, dlopen,
717         ac_cv_my_have_dlopen=yes
718         VLC_ADD_LIBS([libvlc],[-lsvld]))))
719   if test "${ac_cv_my_have_dlopen}" = "yes"; then
720     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
721     ac_cv_have_plugins=yes
722   fi
723 fi
724
725 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
726 dnl Check for pthreads - borrowed from XMMS
727 THREAD_LIB=error
728 if test "${THREAD_LIB}" = "error"; then
729   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
730 fi
731 if test "${THREAD_LIB}" = "error"; then
732   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
733 fi
734 if test "${THREAD_LIB}" = "error"; then
735   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
736 fi
737 if test "${THREAD_LIB}" = "error"; then
738   AC_CHECK_FUNCS(pthread_mutex_lock)
739   THREAD_LIB=""
740 fi
741
742 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
743
744 AC_CHECK_LIB(rt, clock_nanosleep, [
745   VLC_ADD_LIBS([libvlc],[-lrt])
746   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
747 ], [
748   dnl HP/UX port
749   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
750 ])
751
752 have_nanosleep=false
753 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
754   AC_CHECK_LIB(rt,nanosleep,
755     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
756     [AC_CHECK_LIB(posix4,nanosleep,
757         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
758   )
759 ])
760 if ${have_nanosleep}; then
761   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
762 fi
763 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
764
765 dnl Check for misc headers
766 AC_MSG_CHECKING(for strncasecmp in strings.h)
767 AC_EGREP_HEADER(strncasecmp,strings.h,[
768   AC_MSG_RESULT(yes)
769   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
770             Define if <strings.h> defines strncasecmp.)],[
771   AC_MSG_RESULT(no)])
772
773 dnl Check for headers
774 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)
775 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
776 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h])
777 AC_CHECK_HEADERS([net/if.h], [], [],
778   [
779     #include <sys/socket.h>
780   ])
781 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
782 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
783 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
784 AC_CHECK_HEADERS(syslog.h)
785 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
786
787 AC_HEADER_TIME
788
789 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
790 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
791 AC_CHECK_TYPE(ssize_t,, [
792   AC_DEFINE(ssize_t, int)
793 ])
794
795 dnl don't attemp to use poll on darwin, it can't poll a tty. select will do a better job.
796 if test "${SYS}" != "darwin"; then
797   AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
798 fi
799
800 dnl Check for dirent
801 need_dirent=false
802 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
803 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
804
805 dnl Mac OS X and other OSes don't have declaration for nanosleep
806 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
807 AC_MSG_CHECKING(for nanosleep in time.h)
808 AC_EGREP_HEADER(nanosleep,time.h,[
809   AC_MSG_RESULT(yes)
810   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
811             Define if <time.h> defines nanosleep.)
812 ],[
813   AC_MSG_RESULT(no)
814 ])
815 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
816
817 dnl Make sure we have timespecs
818 AC_MSG_CHECKING(for timespec in sys/time.h)
819 AC_EGREP_HEADER(timespec,sys/time.h,[
820   AC_MSG_RESULT(yes)
821   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
822             Define if <sys/time.h> defines struct timespec.)
823 ],[
824   AC_MSG_RESULT(no)
825 ])
826
827 dnl Check for threads library
828 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
829 AC_CHECK_HEADERS(pthread.h kernel/scheduler.h kernel/OS.h)
830 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
831
832 dnl Find where are the X headers and libraries
833 AC_PATH_XTRA()
834
835 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.
836
837 PKG_PROG_PKG_CONFIG()
838
839 dnl Check for hal
840 AC_ARG_ENABLE(hal,
841   [  --enable-hal            Linux HAL services discovery (default enabled)])
842  
843 if test "${enable_hal}" != "no"
844 then
845   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
846     [ AC_DEFINE( HAVE_HAL_1, 1 , [Define if you have the new HAL library API])
847       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
848       VLC_ADD_PLUGIN([hal])
849       VLC_ADD_PLUGIN([probe_hal])
850       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
851       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
852     dnl No hal 0.5 Test for 0.2
853     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
854        [AC_DEFINE(HAVE_HAL, 1, [Define if you have the HAL library])
855         VLC_ADD_PLUGIN([hal])
856         VLC_ADD_LIBS([libvlc hal],[$HAL_LIBS])
857         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
858        [AC_MSG_WARN(HAL library not found)])
859     ]
860   )
861 fi
862
863 dnl Check for dbus
864 AC_ARG_ENABLE(dbus,
865   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
866 case "${SYS}" in
867     linux*|*bsd*)
868 if test "${enable_dbus}" != "no"
869 then
870   dnl api stable dbus
871   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
872     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
873       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
874       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
875       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
876       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
877       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
878       dnl Check for dbus control interface
879         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
880         if test "${enable_dbus_control}" != "no"
881         then
882           VLC_ADD_PLUGIN([dbus])
883           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
884           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
885         fi
886       dnl Check for Telepathy
887         AC_ARG_ENABLE(telepathy, [  --enable-telepathy      Telepathy Presence plugin through DBus(default enabled)])
888         if test "${enable_telepathy}" != "no"; then
889           VLC_ADD_PLUGIN([telepathy])
890           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
891           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
892         fi
893         dnl Power Management Inhibiter
894         VLC_ADD_PLUGIN([inhibit])
895         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
896         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
897         ],
898     if ${PKG_CONFIG} --exists dbus-1
899     then
900       [AC_ARG_ENABLE(old-dbus,
901         [  --enable-old-dbus       Deprecated D-Bus support (default disabled)])]
902
903       if test "${enable_old_dbus}" != "yes"
904       then
905         echo ""
906         echo "****** WARNING **** WARNING ***** WARNING *************"
907         echo "*** Your D-Bus version is < 1.0.0"
908         echo "*** You are using old and buggy software and so"
909         echo "*** D-Bus support has been disabled."
910         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
911         echo "*** Alternatively you can force the use of your old and"
912         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
913         echo "*******************************************************"
914         echo ""
915       else
916         dnl not too old dbus
917         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
918           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
919             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
920             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
921             VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
922             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
923           dnl older dbus
924           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
925             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
926               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
927               VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
928               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
929             dnl much older dbus
930             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
931                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
932                 VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
933                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
934                [AC_MSG_WARN(DBUS library not found)])
935             ]
936           )]
937         )]
938       fi
939     fi
940   )
941 fi
942 ;;
943 esac
944
945 dnl Build the gtk_main plugins?
946 NEED_GTK_MAIN=no
947 NEED_GNOME_MAIN=no
948 NEED_GTK2_MAIN=no
949 NEED_GNOME2_MAIN=no
950
951 dnl build the qte plugin ?
952 NEED_QTE_MAIN=no
953
954 dnl Check for ntohl, etc.
955 AC_CACHE_CHECK([for ntohl in sys/param.h],
956     [ac_cv_c_ntohl_sys_param_h],
957     [CFLAGS="${CFLAGS_save} -Wall -Werror"
958      AC_TRY_COMPILE([#include <sys/param.h>],
959         [int meuh; ntohl(meuh);],
960         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
961 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
962     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
963 fi
964 CFLAGS="${CFLAGS_save}"
965
966 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
967 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
968
969 dnl Check for various optimization flags
970 AC_CACHE_CHECK([if \$CC accepts -Os],
971     [ac_cv_c_os],
972     [CFLAGS="${CFLAGS_save} -Os"
973      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
974 if test "${ac_cv_c_os}" != "no"; then
975     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
976 else 
977     AC_CACHE_CHECK([if \$CC accepts -O],
978         [ac_cv_c_o],
979         [CFLAGS="${CFLAGS_save} -O"
980          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
981     if test "${ac_cv_c_o}" != "no"; then
982         if test "${ac_cv_c_o3}" = "no"; then
983             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
984         fi
985     fi
986 fi
987
988 AC_CACHE_CHECK([if \$CC accepts -O3],
989     [ac_cv_c_o3],
990     [CFLAGS="${CFLAGS_save} -O3"
991      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
992 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
993     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
994 else
995     AC_CACHE_CHECK([if \$CC accepts -O2],
996         [ac_cv_c_o2],
997         [CFLAGS="${CFLAGS_save} -O2"
998          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
999     if test "${ac_cv_c_o2}" != "no"; then
1000         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1001     else
1002         AC_CACHE_CHECK([if \$CC accepts -O],
1003             [ac_cv_c_o],
1004             [CFLAGS="${CFLAGS_save} -O"
1005              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1006         if test "${ac_cv_c_o}" != "no"; then
1007             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1008         fi
1009     fi
1010 fi
1011
1012 AC_CACHE_CHECK([if \$CC accepts -O0],
1013     [ac_cv_c_o0],
1014     [CFLAGS="${CFLAGS_save} -O0"
1015      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1016 if test "${ac_cv_c_o0}" != "no"; then
1017     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1018 fi
1019
1020 dnl Check for -ffast-math
1021 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1022     [ac_cv_c_fast_math],
1023     [CFLAGS="${CFLAGS_save} -ffast-math"
1024      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1025 if test "${ac_cv_c_fast_math}" != "no"; then
1026     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1027 fi
1028
1029 dnl Check for -funroll-loops
1030 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1031 if test "${SYS}" != "beos"
1032 then
1033   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1034       [ac_cv_c_unroll_loops],
1035       [CFLAGS="${CFLAGS_save} -funroll-loops"
1036        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1037   if test "${ac_cv_c_unroll_loops}" != "no"; then
1038       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1039   fi
1040 fi
1041
1042 dnl Check for -fomit-frame-pointer
1043 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1044     [ac_cv_c_omit_frame_pointer],
1045     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1046      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1047 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1048     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1049 fi
1050
1051 dnl Check for -fvisibility=hidden
1052 dnl Don't test on mingw32, because it is going to work with just a warning
1053 dnl even if it doesn't support it
1054 if test "${SYS}" != "mingw32"
1055 then
1056 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1057     [ac_cv_c_visibility_hidden],
1058     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1059      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1060 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1061     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1062 fi
1063 fi
1064
1065 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
1066
1067 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1068 dnl AC_LANG_PUSH(C++)
1069 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1070 dnl         [ac_cv_c_visibility_inlines_hidden],
1071 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1072 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1073 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1074 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1075 dnl     fi
1076 dnl     CXXFLAGS="${CXXFLAGS_save}"
1077 dnl AC_LANG_POP(C++)
1078
1079 dnl Check for -mdynamic-no-pic
1080 dnl AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1081 dnl     [ac_cv_c_dynamic_no_pic],
1082 dnl     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1083 dnl      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1084 dnl AS_IF([test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1085 dnl     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1086 dnl     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1087 dnl ])
1088
1089 dnl Check for Darwin plugin linking flags
1090 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1091     [ac_cv_ld_darwin],
1092     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1093      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1094 if test "${ac_cv_ld_darwin}" != "no"; then
1095     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1096 fi
1097
1098 dnl Check for standard plugin linking flags
1099 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1100 dnl AS_IF([test "${SYS}" = "beos"], [
1101 dnl   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1102 dnl ], [
1103 dnl   AC_CACHE_CHECK([if \$CC accepts -shared],
1104 dnl         [ac_cv_ld_plugins],
1105 dnl         [CFLAGS="${CFLAGS_save} -shared"
1106 dnl        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1107 dnl   AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1108 dnl     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1109 dnl   ])
1110 dnl ])
1111
1112 dnl Checks for __attribute__(aligned()) directive
1113 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1114     [ac_cv_c_attribute_aligned],
1115     [ac_cv_c_attribute_aligned=0
1116         CFLAGS="${CFLAGS_save} -Werror"
1117     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1118         AC_TRY_COMPILE([],
1119         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1120         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1121     done
1122         CFLAGS="${CFLAGS_save}"])
1123 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1124     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1125         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1126 fi
1127
1128 dnl Checks for __attribute__(format()) directive
1129 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1130     [ac_cv_c_attribute_format],
1131     [ac_cv_c_attribute_format=no
1132         CFLAGS="${CFLAGS_save} -Werror"
1133         AC_TRY_COMPILE([],
1134         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1135         [ac_cv_c_attribute_format=yes])
1136         CFLAGS="${CFLAGS_save}"])
1137 if test "${ac_cv_c_attribute_format}" != "no"; then
1138     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1139 fi
1140
1141 dnl Check for __attribute__((packed))
1142 AC_CACHE_CHECK([for __attribute__((packed))],
1143   [ac_cv_c_attribute_packed],
1144   [ac_cv_c_attribute_packed=no
1145    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1146                     [ac_cv_c_attribute_packed=yes])])
1147 if test "${ac_cv_c_attribute_packed}" != "no"; then
1148   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1149 fi
1150
1151 dnl Check for __attribute__((visibility()))
1152 AC_CACHE_CHECK([for __attribute__((visibility()))],
1153   [ac_cv_c_attribute_visibility],
1154   [ac_cv_c_attribute_visibility=no
1155    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1156                     [ac_cv_c_attribute_visibility=yes])])
1157 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1158   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1159 fi
1160
1161 dnl
1162 dnl  Check the CPU
1163 dnl
1164 case "${host_cpu}" in
1165   "")
1166     ARCH=unknown
1167     ;;
1168   *)
1169     ARCH="${host_cpu}"
1170     ;;
1171 esac
1172
1173 dnl
1174 dnl  Enable profiling
1175 dnl
1176 AC_ARG_ENABLE(gprof,
1177 [  --enable-gprof          gprof profiling (default disabled)])
1178 AC_ARG_ENABLE(cprof,
1179 [  --enable-cprof          cprof profiling (default disabled)])
1180 test "${enable_gprof}" != "yes" && enable_gprof="no"
1181 test "${enable_cprof}" != "yes" && enable_cprof="no"
1182
1183 dnl
1184 dnl  default modules
1185 dnl
1186 VLC_ADD_PLUGIN([dummy])
1187 VLC_ADD_PLUGIN([logger])
1188 VLC_ADD_PLUGIN([memcpy])
1189 dnl Demuxers:
1190 VLC_ADD_PLUGIN([mpgv])
1191 VLC_ADD_PLUGIN([mpga])
1192 VLC_ADD_PLUGIN([m4v])
1193 VLC_ADD_PLUGIN([m4a])
1194 VLC_ADD_PLUGIN([h264])
1195 VLC_ADD_PLUGIN([vc1])
1196 VLC_ADD_PLUGIN([demux_cdg])
1197 VLC_ADD_PLUGIN([cdg])
1198 VLC_ADD_PLUGIN([ps])
1199 VLC_ADD_PLUGIN([pva])
1200 VLC_ADD_PLUGIN([avi])
1201 VLC_ADD_PLUGIN([asf])
1202 VLC_ADD_PLUGIN([mp4])
1203 VLC_ADD_PLUGIN([rawdv])
1204 VLC_ADD_PLUGIN([rawvid])
1205 VLC_ADD_PLUGIN([nsv])
1206 VLC_ADD_PLUGIN([real])
1207 VLC_ADD_PLUGIN([aiff])
1208 VLC_ADD_PLUGIN([mjpeg])
1209 VLC_ADD_PLUGIN([wav])
1210 VLC_ADD_PLUGIN([voc])
1211 VLC_ADD_PLUGIN([smf])
1212 VLC_ADD_PLUGIN([demuxdump])
1213 VLC_ADD_PLUGIN([flacsys])
1214 VLC_ADD_PLUGIN([tta])
1215 VLC_ADD_PLUGIN([subtitle])
1216 VLC_ADD_PLUGIN([vobsub])
1217 VLC_ADD_PLUGIN([a52sys])
1218 VLC_ADD_PLUGIN([dtssys])
1219 VLC_ADD_PLUGIN([au])
1220 VLC_ADD_PLUGIN([ty])
1221 VLC_ADD_PLUGIN([xa])
1222 VLC_ADD_PLUGIN([nuv])
1223 dnl Text codecs:
1224 VLC_ADD_PLUGIN([cvdsub])
1225 VLC_ADD_PLUGIN([svcdsub])
1226 VLC_ADD_PLUGIN([spudec])
1227 VLC_ADD_PLUGIN([subsdec])
1228 VLC_ADD_PLUGIN([subsusf])
1229 VLC_ADD_PLUGIN([t140])
1230 VLC_ADD_PLUGIN([dvbsub])
1231 VLC_ADD_PLUGIN([cc])
1232 dnl Video codecs:
1233 VLC_ADD_PLUGIN([cinepak])
1234 dnl Audio codecs:
1235 VLC_ADD_PLUGIN([araw])
1236 VLC_ADD_PLUGIN([adpcm])
1237 VLC_ADD_PLUGIN([mpeg_audio])
1238 VLC_ADD_PLUGIN([lpcm])
1239 VLC_ADD_PLUGIN([a52])
1240 VLC_ADD_PLUGIN([dts])
1241 VLC_ADD_PLUGIN([flac])
1242 dnl Video filters:
1243 VLC_ADD_PLUGIN([deinterlace])
1244 VLC_ADD_PLUGIN([invert])
1245 VLC_ADD_PLUGIN([adjust])
1246 VLC_ADD_PLUGIN([transform])
1247 VLC_ADD_PLUGIN([wave])
1248 VLC_ADD_PLUGIN([ripple])
1249 VLC_ADD_PLUGIN([psychedelic])
1250 VLC_ADD_PLUGIN([gradient])
1251 VLC_ADD_PLUGIN([motionblur])
1252 VLC_ADD_PLUGIN([rv32])
1253 VLC_ADD_PLUGIN([rotate])
1254 VLC_ADD_PLUGIN([noise])
1255 VLC_ADD_PLUGIN([grain])
1256 VLC_ADD_PLUGIN([extract])
1257 VLC_ADD_PLUGIN([sharpen])
1258 VLC_ADD_PLUGIN([seamcarving])
1259 VLC_ADD_PLUGIN([croppadd])
1260 VLC_ADD_PLUGIN([blendbench])
1261 VLC_ADD_PLUGIN([blend])
1262 VLC_ADD_PLUGIN([scale])
1263 VLC_ADD_PLUGIN([image])
1264 VLC_ADD_PLUGIN([vmem])
1265 VLC_ADD_PLUGIN([logo])
1266 VLC_ADD_PLUGIN([magnify])
1267 VLC_ADD_PLUGIN([puzzle])
1268 VLC_ADD_PLUGIN([colorthres])
1269 dnl Meta demuxers:
1270 VLC_ADD_PLUGIN([playlist])
1271 VLC_ADD_PLUGIN([export])
1272 VLC_ADD_PLUGIN([nsc])
1273 VLC_ADD_PLUGIN([xtag])
1274 dnl Channel mixing audio filters:
1275 VLC_ADD_PLUGIN([converter_fixed])
1276 VLC_ADD_PLUGIN([mono])
1277 VLC_ADD_PLUGIN([trivial_channel_mixer])
1278 dnl Resampling audio filters:
1279 VLC_ADD_PLUGIN([trivial_resampler])
1280 VLC_ADD_PLUGIN([ugly_resampler])
1281 dnl Audio mixers:
1282 VLC_ADD_PLUGIN([trivial_mixer])
1283 dnl Video chromas:
1284 VLC_ADD_PLUGIN([i420_rgb])
1285 VLC_ADD_PLUGIN([grey_yuv])
1286 dnl Video codecs:
1287 VLC_ADD_PLUGIN([rawvideo])
1288 dnl Access filters:
1289 VLC_ADD_PLUGIN([access_filter_timeshift])
1290 VLC_ADD_PLUGIN([access_filter_record])
1291 VLC_ADD_PLUGIN([access_filter_dump])
1292 VLC_ADD_PLUGIN([access_filter_bandwidth])
1293
1294 ALIASES="${ALIASES} cvlc"
1295
1296 dnl
1297 dnl default modules that need g++
1298 dnl
1299 AC_LANG_PUSH(C++)
1300 VLC_ADD_PLUGIN([spatializer])
1301 AC_LANG_POP(C++)
1302
1303 if test "${SYS}" != "mingwce"; then
1304   VLC_ADD_PLUGIN([gestures])
1305   VLC_ADD_PLUGIN([rc])
1306   VLC_ADD_PLUGIN([telnet])
1307   VLC_ADD_PLUGIN([hotkeys])
1308   VLC_ADD_PLUGIN([showintf])
1309   VLC_ADD_PLUGIN([marq])
1310   VLC_ADD_PLUGIN([podcast])
1311   VLC_ADD_PLUGIN([shout])
1312   VLC_ADD_PLUGIN([sap])
1313   VLC_ADD_PLUGIN([fake])
1314   VLC_ADD_PLUGIN([folder])
1315   VLC_ADD_PLUGIN([rss])
1316   VLC_ADD_PLUGIN([mosaic])
1317   VLC_ADD_PLUGIN([wall])
1318   VLC_ADD_PLUGIN([motiondetect])
1319   VLC_ADD_PLUGIN([clone])
1320   VLC_ADD_PLUGIN([crop])
1321   VLC_ADD_PLUGIN([erase])
1322   VLC_ADD_PLUGIN([bluescreen])
1323   VLC_ADD_PLUGIN([alphamask])
1324   VLC_ADD_PLUGIN([gaussianblur])
1325   VLC_ADD_PLUGIN([i420_yuy2])
1326   VLC_ADD_PLUGIN([i422_yuy2])
1327   VLC_ADD_PLUGIN([i420_ymga])
1328   VLC_ADD_PLUGIN([i422_i420])
1329   VLC_ADD_PLUGIN([yuy2_i422])
1330   VLC_ADD_PLUGIN([yuy2_i420])
1331   VLC_ADD_PLUGIN([chroma_chain])
1332   VLC_ADD_PLUGIN([aout_file])
1333   VLC_ADD_PLUGIN([linear_resampler])
1334   VLC_ADD_PLUGIN([bandlimited_resampler])
1335   VLC_ADD_PLUGIN([float32_mixer])
1336   VLC_ADD_PLUGIN([spdif_mixer])
1337   VLC_ADD_PLUGIN([simple_channel_mixer])
1338   VLC_ADD_PLUGIN([dolby_surround_decoder])
1339   VLC_ADD_PLUGIN([headphone_channel_mixer])
1340   VLC_ADD_PLUGIN([normvol])
1341   VLC_ADD_PLUGIN([equalizer])
1342   VLC_ADD_PLUGIN([param_eq])
1343   VLC_ADD_PLUGIN([converter_float])
1344   VLC_ADD_PLUGIN([a52tospdif])
1345   VLC_ADD_PLUGIN([dtstospdif])
1346   VLC_ADD_PLUGIN([audio_format])
1347   ALIASES="${ALIASES} rvlc"
1348 fi
1349
1350 dnl
1351 dnl Some plugins aren't useful on some platforms
1352 dnl
1353 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1354     VLC_ADD_PLUGIN([screensaver])
1355     VLC_ADD_PLUGIN([motion])
1356     VLC_ADD_PLUGIN([dynamicoverlay])
1357 elif test "${SYS}" != "mingwce"; then
1358     VLC_ADD_PLUGIN([ntservice])
1359     VLC_ADD_PLUGIN([access_smb])
1360     VLC_ADD_PLUGIN([dmo])
1361     VLC_ADD_PLUGIN([msn])
1362     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1363 else
1364     VLC_ADD_PLUGIN([win32text])
1365 fi
1366 if test "${SYS}" = "darwin"; then
1367     VLC_ADD_PLUGIN([quartztext])
1368     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1369 fi
1370
1371 dnl
1372 dnl  Accelerated modules
1373 dnl
1374 AC_ARG_WITH(,[])
1375 AC_ARG_WITH(,[Optimization options:])
1376
1377 dnl  Check for fully working MMX intrinsics
1378 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1379 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1380 AC_ARG_ENABLE(mmx,
1381 [  --disable-mmx       disable MMX optimizations (default auto)],,[
1382   case "${host_cpu}" in
1383     i?86|x86_64)
1384       enable_mmx="yes"
1385       ;;
1386     *)
1387       enable_mmx="no"
1388       ;;
1389   esac
1390 ])
1391 AS_IF([test "${enable_mmx}" != "no"], [
1392   ARCH="${ARCH} mmx"
1393
1394   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1395     [ac_cv_c_mmx_intrinsics],
1396     [CFLAGS="${CFLAGS_save} -O -mmmx"
1397      AC_TRY_COMPILE([#include <mmintrin.h>
1398                      #include <stdint.h>
1399                      uint64_t frobzor;],
1400                     [__m64 a, b, c;
1401                      a = b = c = (__m64)frobzor;
1402                      a = _mm_slli_pi16(a, 3);
1403                      a = _mm_adds_pi16(a, b);
1404                      c = _mm_srli_pi16(c, 8);
1405                      c = _mm_slli_pi16(c, 3);
1406                      b = _mm_adds_pi16(b, c);
1407                      a = _mm_unpacklo_pi8(a, b);
1408                      frobzor = (uint64_t)a;],
1409                     [ac_cv_c_mmx_intrinsics=yes],
1410                     [ac_cv_c_mmx_intrinsics=no])])
1411   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1412     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1413               [Define to 1 if MMX intrinsics are available.])
1414     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1415   ])
1416
1417   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1418     [ac_cv_mmx_inline],
1419     [CFLAGS="${CFLAGS_save}"
1420      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1421                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1422   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1423     AC_DEFINE(CAN_COMPILE_MMX, 1,
1424               [Define to 1 inline MMX assembly is available.])
1425     VLC_ADD_PLUGIN([memcpymmx])
1426     VLC_ADD_PLUGIN([i420_rgb_mmx])
1427     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1428     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1429     VLC_ADD_PLUGIN([i420_ymga_mmx])
1430   ])
1431
1432   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1433     [ac_cv_mmxext_inline],
1434     [CFLAGS="${CFLAGS_save}"
1435      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1436                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1437   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1438     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1439               [Define to 1 if MMX EXT inline assembly is available.])
1440     VLC_ADD_PLUGIN([memcpymmxext])
1441   ])
1442 ])
1443
1444 dnl  Check for fully workin SSE2 intrinsics
1445 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1446 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1447 AC_ARG_ENABLE(sse,
1448 [  --disable-sse       disable SSE (1 and 2) optimizations (default auto)],, [
1449   case "${host_cpu}" in
1450     i686|x86_64)
1451       enable_sse=yes
1452       ;;
1453     *)
1454       enable_sse=no
1455       ;;
1456   esac
1457 ])
1458 AS_IF([test "${enable_sse}" != "no"], [
1459   ARCH="${ARCH} sse sse2"
1460
1461   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1462     [ac_cv_c_sse2_intrinsics],
1463     [CFLAGS="${CFLAGS_save} -O -msse2"
1464      AC_TRY_COMPILE([#include <emmintrin.h>
1465                      #include <stdint.h>
1466                      uint64_t frobzor;],
1467                     [__m128i a, b, c;
1468                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1469                      a = _mm_slli_epi16(a, 3);
1470                      a = _mm_adds_epi16(a, b);
1471                      c = _mm_srli_epi16(c, 8);
1472                      c = _mm_slli_epi16(c, 3);
1473                      b = _mm_adds_epi16(b, c);
1474                      a = _mm_unpacklo_epi8(a, b);
1475                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1476                     [ac_cv_c_sse2_intrinsics=yes],
1477                     [ac_cv_c_sse2_intrinsics=no])])
1478   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1479     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1480               [Define to 1 if SSE2 intrinsics are available.])
1481     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1482   ])
1483
1484   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1485     [ac_cv_sse_inline],
1486     [CFLAGS="${CFLAGS_save}"
1487      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1488                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1489   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1490     AC_DEFINE(CAN_COMPILE_SSE, 1,
1491               [Define to 1 if SSE inline assembly is available.])
1492   ])
1493
1494   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1495     [ac_cv_sse2_inline],
1496     [CFLAGS="${CFLAGS_save}"
1497      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1498                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1499   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1500     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1501               [Define to 1 if SSE2 inline assembly is available.])
1502     VLC_ADD_PLUGIN([i420_rgb_sse2])
1503     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1504     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1505   ])
1506 ])
1507
1508 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1509     [ac_cv_3dnow_inline],
1510     [CFLAGS="${CFLAGS_save}"
1511      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1512                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1513 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1514   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1515             [Define to 1 if 3D Now! inline assembly is available.])
1516   VLC_ADD_PLUGIN([memcpy3dn])
1517 ])
1518
1519 AC_ARG_ENABLE(altivec,
1520 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1521   AS_IF([test "${host_cpu}" = "powerpc"],
1522         [enable_altivec=yes], [enable_altivec=no])
1523 ])
1524 AS_IF([test "${enable_altivec}" = "yes"], [
1525   ARCH="${ARCH} altivec";
1526   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1527     [ac_cv_altivec_inline],
1528     [CFLAGS="${CFLAGS_save}"
1529      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1530          ac_cv_altivec_inline="yes",
1531          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1532           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1533             [ac_cv_altivec_inline="-Wa,-m7400"],
1534             ac_cv_altivec_inline=no)
1535          ])])
1536   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1537     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1538               [Define to 1 if AltiVec inline assembly is available.])
1539     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1540       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1541       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1542       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1543       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1544       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1545     ])
1546     VLC_ADD_PLUGIN([memcpyaltivec])
1547     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1548   ])
1549
1550 dnl The AltiVec C extensions
1551 dnl
1552 dnl There are several possible cases:
1553 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1554 dnl                      need <altivec.h>
1555 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1556 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1557 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1558 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1559 dnl - Others: test should fail
1560   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1561   [ac_cv_c_altivec],
1562   [# OS X/PPC test (gcc 4.x)
1563    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1564    AC_TRY_COMPILE([vector unsigned char foo;],
1565      [vec_ld(0, (unsigned char *)0);],
1566      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1567      [# OS X/PPC test (gcc 3.x)
1568       CFLAGS="${CFLAGS_save} -faltivec"
1569       AC_TRY_COMPILE([vector unsigned char foo;],
1570         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1571         [ac_cv_c_altivec="-faltivec"],
1572         dnl Below this are the Linux tests
1573         [# Linux/PPC test (gcc 4.x)
1574          CFLAGS="${CFLAGS_save} -maltivec"
1575          AC_TRY_COMPILE([#include <altivec.h>],
1576            [vec_ld(0, (unsigned char *)0);],
1577            [ac_cv_c_altivec="-maltivec"],
1578            [# Linux/PPC test (gcc 3.3)
1579             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1580             AC_TRY_COMPILE([#include <altivec.h>],
1581               [vec_ld(0, (unsigned char *)0);],
1582               [ac_cv_c_altivec=""
1583                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1584               [# Linux/PPC test (gcc 3.3)
1585                CFLAGS="${CFLAGS_save} -fvec"
1586                AC_TRY_COMPILE([#include <altivec.h>],
1587                  [vec_ld(0, (unsigned char *)0);],
1588                  [ac_cv_c_altivec="-fvec"],
1589                  [ac_cv_c_altivec=no])
1590               ])
1591            ])
1592         ])
1593      ])
1594    CFLAGS="${CFLAGS_save}"
1595   ])
1596   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1597     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1598   ])
1599
1600   AC_CHECK_HEADERS(altivec.h)
1601   CPPFLAGS="${CPPFLAGS_save}"
1602   
1603   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1604     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1605               [Define to 1 if C AltiVec extensions are available.])
1606     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1607     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1608     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1609     VLC_ADD_PLUGIN([memcpyaltivec])
1610     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1611   ])
1612
1613   AC_CACHE_CHECK([if linker needs -framework vecLib],
1614     [ac_cv_ld_altivec],
1615     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1616      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1617      LDFLAGS="${LDFLAGS_save}"
1618     ])
1619   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1620     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1621   ])
1622 ])
1623
1624 dnl
1625 dnl  Special arch tuning
1626 dnl
1627 AC_ARG_WITH(tuning,
1628 [  --with-tuning=ARCH      enable special tuning for an architecture
1629                           (default Pentium 2 on IA-32 and G4 on PPC)])
1630 if test -n "${with_tuning}"; then
1631     if test "${with_tuning}" != "no"; then
1632         CFLAGS_TUNING="-mtune=${with_tuning}"
1633     fi
1634 else
1635     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1636         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1637     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1638         CFLAGS_TUNING="-mtune=pentium2"
1639     elif test "${host_cpu}" = "x86_64"; then
1640         CFLAGS_TUNING="-mtune=athlon64"
1641     elif test "${host_cpu}" = "powerpc"; then
1642         CFLAGS_TUNING="-mtune=G4";
1643     fi
1644 fi
1645
1646 dnl NOTE: this can't be cached cleanly
1647 AS_IF([test "${CFLAGS_TUNING}"],
1648    [CFLAGS_save="${CFLAGS}"
1649     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1650
1651     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1652     AC_COMPILE_IFELSE([ ],
1653                       [tuning="yes"],
1654                       [CFLAGS_TUNING=""; tuning="no"
1655                        AS_IF([test "${with_tuning}"],
1656                              [AC_MSG_ERROR([requested tuning not supported])])])
1657
1658     AC_MSG_RESULT([$tuning])
1659     CFLAGS="${CFLAGS_save}"
1660 ])
1661
1662 dnl
1663 dnl  Memory usage
1664 dnl
1665 AC_ARG_ENABLE(optimize-memory,
1666 [  --enable-optimize-memory optimize memory usage over performance])
1667 if test "${enable_optimize_memory}" = "yes"; then
1668   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1669 fi
1670
1671 dnl
1672 dnl  Enable/disable optimizations
1673 dnl
1674 AC_ARG_ENABLE(optimizations,
1675 [  --disable-optimizations disable compiler optimizations (default enabled)])
1676 if test "${enable_optimizations}" != "no"; then
1677    if test "${enable_optimize_memory}" = "yes"; then
1678       enable_optimizations="size"
1679    else
1680       enable_optimizations="speed"
1681    fi
1682 fi
1683
1684 dnl
1685 dnl  Debugging mode
1686 dnl
1687 AC_ARG_ENABLE(debug,
1688 [  --enable-debug          debug mode (default disabled)])
1689 test "${enable_debug}" != "yes" && enable_debug="no"
1690 AH_TEMPLATE(NDEBUG,
1691             [Define to 1 if debug code should NOT be compiled])
1692 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1693
1694 dnl
1695 dnl  Test coverage
1696 dnl
1697 AC_ARG_ENABLE(coverage,
1698         [  --enable-coverage       build for test coverage (default disabled)],,
1699         [enable_coverage="no"])
1700 AS_IF([test "${enable_coverage}" != "no"], [
1701         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1702         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1703         LDFLAGS="-lgcov ${LDFLAGS}"
1704         dnl ugly...
1705         CFLAGS_save="${CFLAGS}"
1706         CXXFLAGS_save="${CXXFLAGS}"
1707         LDFLAGS_save="${LDFLAGS}"
1708 ])
1709
1710 dnl
1711 dnl  Enable release-specific flags
1712 dnl
1713 AC_ARG_ENABLE(release,
1714 [  --enable-release        activate extra optimizations (default disabled)])
1715 test "${enable_release}" != "yes" && enable_release="no"
1716
1717 dnl
1718 dnl Stream output
1719 dnl
1720 AC_ARG_ENABLE(sout,
1721   [  --enable-sout           Stream output modules (default enabled)])
1722 AS_IF([test "${enable_sout}" != "no"], [
1723   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1724 ])
1725 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1726
1727 AC_ARG_ENABLE(switcher,
1728   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1729
1730 dnl Check for libshout
1731 AC_ARG_ENABLE(shout,
1732   [  --enable-shout          libshout output plugin (default disabled)])
1733 if test "${enable_shout}" = "yes"; then
1734   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1735     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1736      VLC_ADD_PLUGIN([access_output_shout])
1737      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1738      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1739     [AC_MSG_WARN(libshout library not found)])
1740 fi
1741
1742 dnl Lua modules
1743 AC_ARG_ENABLE(lua,
1744   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1745 if test "${enable_lua}" != "no"
1746 then
1747   PKG_CHECK_MODULES(LUA, lua5.1,
1748     [ have_lua=yes ],
1749     [
1750     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1751     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1752       [ have_lua=yes ],
1753       [
1754         have_lua=yes
1755         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1756           [],
1757           [ have_lua=no ] )
1758         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1759           [LUA_LIBS="-llua5.1"],
1760           AC_CHECK_LIB( lua51 , luaL_newstate,
1761             [LUA_LIBS="-llua51"],
1762             AC_CHECK_LIB( lua , luaL_newstate,
1763               [LUA_LIBS="-llua"],
1764               [ have_lua=no
1765                 AC_MSG_WARN([lua >= 5.1 not found!])
1766               ])
1767           )
1768         )
1769       ])
1770     ])
1771   if test "x${have_lua}" = "xyes" ;  then
1772      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1773      VLC_ADD_PLUGIN([lua])
1774      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1775      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1776   fi
1777 fi
1778 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1779
1780 dnl
1781 dnl HTTP daemon
1782 dnl
1783 AC_ARG_ENABLE(httpd,
1784   [  --enable-httpd          HTTP daemon (default enabled)])
1785 if test "${enable_httpd}" != "no"
1786 then
1787   VLC_ADD_PLUGIN([http])
1788   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1789 fi
1790 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1791
1792 dnl
1793 dnl VideoLAN manager
1794 dnl
1795 AC_ARG_ENABLE(vlm,
1796   [  --enable-vlm            VideoLAN manager (default enabled)])
1797 if test "${enable_vlm}" != "no"
1798 then
1799   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1800 fi
1801
1802 dnl
1803 dnl Growl notification plugin
1804 dnl
1805 AC_ARG_ENABLE(growl,
1806   [  --enable-growl          growl notification plugin (default enabled)])
1807 AS_IF([test "${enable_growl}" != "no"], [
1808     VLC_ADD_PLUGIN([growl_udp])
1809     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1810       VLC_ADD_PLUGIN([growl])
1811       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1812     ])
1813   ]
1814 )
1815
1816 dnl
1817 dnl Libnotify notification plugin
1818 dnl
1819
1820 AC_ARG_ENABLE(notify,
1821   [  --enable-notify         libnotify notification plugin (default enabled)])
1822 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1823     PKG_CHECK_MODULES(NOTIFY, libnotify,
1824       [
1825         VLC_ADD_PLUGIN([notify])
1826         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1827         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1828       ],[
1829     AS_IF([test "${enable_notify}" = "yes"],[
1830         AC_MSG_WARN( libnotify not found) ])
1831       ])
1832   ])
1833
1834 dnl
1835 dnl Audioscrobbler plugin
1836 dnl
1837
1838 AC_ARG_ENABLE(audioscrobbler,
1839   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1840 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1841         VLC_ADD_PLUGIN([audioscrobbler])
1842   ])
1843
1844 dnl
1845 dnl Musicbrainz plugin
1846 dnl
1847 AC_ARG_ENABLE(musicbrainz,
1848   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1849   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1850       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1851     [ VLC_ADD_PLUGIN([musicbrainz])
1852       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1853       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1854        [AC_MSG_WARN(MusicBrainz library not found)])
1855    ])
1856
1857
1858 dnl
1859 dnl Taglibplugin
1860 dnl
1861 AC_ARG_ENABLE(taglib,
1862   [  --disable-taglib Taglib support (default enabled) ])
1863   AS_IF([test "${enable_taglib}" != "no"],[
1864     PKG_CHECK_MODULES(TAGLIB, taglib,
1865       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1866         VLC_ADD_PLUGIN([taglib])
1867         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1868        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1869       [AC_MSG_WARN(TagLib library not found)])
1870   ])
1871
1872
1873 dnl
1874 dnl  Input plugins
1875 dnl
1876
1877 AC_ARG_WITH(,[Input plugins:])
1878
1879 dnl  live555 input
1880 dnl
1881 if test "${enable_livedotcom}" 
1882 then
1883   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1884 fi
1885
1886 if test "${enable_livedotcom}" = "no"
1887 then
1888   enable_live555="no"
1889 fi
1890 AC_ARG_ENABLE(live555,
1891 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1892 if test "${enable_live555}" != "no"; then
1893   AC_ARG_WITH(live555-tree,
1894     [    --with-live555-tree=PATH live.com tree for static linking])
1895
1896   dnl
1897   dnl test for --with-live555-tree
1898   dnl
1899   if test "${with_livedotcom_tree}" 
1900   then
1901     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1902   with_live555_tree="${with_livedotcom_tree}"
1903   fi
1904
1905   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1906     AC_LANG_PUSH(C++)
1907     CPPFLAGS_save="${CPPFLAGS}"
1908     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1909     if test "${SYS}" = "solaris"; then
1910       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1911     fi
1912     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1913     AC_CHECK_HEADERS(liveMedia.hh, [
1914       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1915       AC_CHECK_LIB(liveMedia_pic, main, [
1916         # We have -lliveMedia_pic, build plugins
1917         VLC_ADD_PLUGIN([live555])
1918         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1919       ], [
1920         AC_CHECK_LIB(liveMedia, main, [
1921           # We only have -lliveMedia, do builtins
1922           VLC_ADD_BUILTINS([live555])
1923           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1924         ])
1925       ])
1926       if test "${SYS}" = "mingw32"; then
1927         # add ws2_32 for closesocket, select, recv
1928         VLC_ADD_LIBS([live555],[-lws2_32])
1929       fi
1930     ])
1931     CPPFLAGS="${CPPFLAGS_save}"
1932     AC_LANG_POP(C++)
1933   else
1934     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1935     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1936     if test -z "${real_live555_tree}"; then
1937       dnl  The given directory can't be found
1938       AC_MSG_RESULT(no)
1939       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1940     fi
1941     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1942       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1943
1944       VLC_ADD_BUILTINS([live555])
1945
1946       if test "${SYS}" = "mingw32"; then
1947         # add ws2_32 for closesocket, select, recv
1948         VLC_ADD_LIBS([live555],[-lws2_32])
1949       fi
1950
1951       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1952       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1953       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1954       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1955
1956       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1957       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1958       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1959       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1960       if test "${SYS}" = "solaris"; then
1961         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1962       fi
1963     else
1964       dnl  The given live555 wasn't built
1965         AC_MSG_RESULT(no)
1966       if test "${enable_live555}" = "yes"; then
1967         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1968       fi        
1969     fi
1970   fi
1971 fi
1972
1973 dnl
1974 dnl  special access module for dc1394 input
1975 dnl
1976 AC_ARG_ENABLE(dc1394,
1977   [  --enable-dc1394         dc1394 access module (default disabled)])
1978 if test "${enable_dc1394}" = "yes"
1979 then
1980   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1981     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1982         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1983 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1984               VLC_ADD_PLUGIN([dc1394])
1985               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1986 dnl         ],
1987 dnl         [
1988 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1989 dnl         ])
1990       ],
1991       [
1992         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1993       ])
1994     ],
1995     [
1996       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1997     ])
1998   ],
1999   [
2000     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2001   ])
2002 fi
2003
2004 dnl
2005 dnl dv module: digital video module check for libraw1394
2006 dnl
2007 AC_ARG_ENABLE(dv,
2008 [  --enable-dv             dv input module (default disabled)])
2009 if test "${enable_dv}" = "yes"
2010 then
2011   AC_ARG_WITH(dv-raw1394,
2012   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
2013   AC_ARG_WITH(dv-raw1394-tree,
2014   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
2015
2016   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
2017   then
2018     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
2019     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
2020     then
2021       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
2022       AC_MSG_RESULT(yes)
2023       VLC_ADD_PLUGIN([access_dv])
2024       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
2025       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
2026     else
2027       dnl  No libraw1394 could be found, sorry
2028       AC_MSG_RESULT(no)
2029       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
2030     fi
2031   else
2032     AC_CHECK_HEADERS(libraw1394/raw1394.h,
2033     [ VLC_ADD_PLUGIN([access_dv])
2034         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
2035     ],[
2036         if test -n "${enable_dv}"
2037         then
2038           AC_MSG_ERROR([cannot find libraw1394 headers])
2039         fi
2040     ])
2041   fi
2042
2043   dnl Check for static linking of libraw1394
2044   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
2045   then
2046     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
2047     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
2048     if test -z "${real_dv_raw1394_tree}"
2049     then
2050       dnl  The given directory can't be found
2051       AC_MSG_RESULT(no)
2052       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
2053     fi
2054     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
2055     then
2056       dnl  Use a custom libraw1394
2057       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
2058       VLC_ADD_BUILTINS([access_dv])
2059       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
2060       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
2061     else
2062       dnl  The given libraw1394 wasn't built
2063       AC_MSG_RESULT(no)
2064       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
2065     fi
2066   fi
2067
2068   dnl
2069   dnl Check for libavc1394
2070   dnl
2071
2072   AC_ARG_WITH(dv-avc1394,
2073   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2074   AC_ARG_WITH(dv-avc1394-tree,
2075   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2076
2077   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2078   then
2079     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2080     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2081     then
2082       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2083       AC_MSG_RESULT(yes)
2084       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2085       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2086     else
2087       dnl  No libavc1394 could be found, sorry
2088       AC_MSG_RESULT(no)
2089       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2090     fi
2091   else
2092     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2093     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2094     ],[
2095         if test -n "${enable_dv}"
2096         then
2097           AC_MSG_ERROR([cannot find libavc1394 headers])
2098         fi
2099     ])
2100   fi
2101
2102   dnl Check for static linking of libavc1394
2103   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2104   then
2105     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2106     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2107     if test -z "${real_dv_avc1394_tree}"
2108     then
2109       dnl  The given directory can't be found
2110       AC_MSG_RESULT(no)
2111       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2112     fi
2113     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2114     then
2115       dnl  Use a custom libavc1394
2116       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2117       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2118       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2119     else
2120       dnl  The given libavc1394 wasn't built
2121       AC_MSG_RESULT(no)
2122       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2123     fi
2124   fi
2125 fi
2126
2127 dnl
2128 dnl dvdread module: check for libdvdread
2129 dnl
2130 AC_ARG_ENABLE(dvdread,
2131 [  --enable-dvdread        dvdread input module (default disabled)])
2132 if test "${enable_dvdread}" != "no"
2133 then
2134   AC_ARG_WITH(dvdread,
2135   [    --with-dvdread=PATH   libdvdread headers and libraries])
2136   AC_ARG_WITH(dvdread-tree,
2137   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2138
2139   dnl Temporary hack (yeah, sure ;)
2140   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2141       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2142   fi
2143
2144   if test -z "${with_dvdread}"
2145   then
2146     if test -z "${with_dvdread_tree}"
2147     then
2148       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2149         [ VLC_ADD_PLUGIN([dvdread])
2150           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2151         ],[
2152           if test -n "${enable_dvdread}"
2153           then
2154             AC_MSG_ERROR([cannot find libdvdread headers])
2155           fi
2156         ])
2157     else
2158       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2159       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2160       if test -z "${real_dvdread_tree}"
2161       then
2162         dnl  The given directory can't be found
2163         AC_MSG_RESULT(no)
2164         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2165       fi
2166       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2167       then
2168         dnl  Use a custom libdvdread
2169         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2170         VLC_ADD_BUILTINS([dvdread])
2171         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2172         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2173       else
2174         dnl  The given libdvdread wasn't built
2175         AC_MSG_RESULT(no)
2176         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2177       fi
2178     fi
2179   else
2180     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2181     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2182     then
2183       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2184       AC_MSG_RESULT(yes)
2185       VLC_ADD_PLUGIN([dvdread])
2186       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2187       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2188     else
2189       dnl  No libdvdread could be found, sorry
2190       AC_MSG_RESULT(no)
2191       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2192     fi
2193   fi
2194 fi
2195
2196 dnl
2197 dnl  libdvdnav plugin
2198 dnl
2199 AC_ARG_ENABLE(dvdnav,
2200   [  --enable-dvdnav         dvdnav input module (default enabled)])
2201 if test "${enable_dvdnav}" != "no"
2202 then
2203   dnl Same hack than dvdread
2204   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2205       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2206   fi
2207
2208   DVDNAV_PATH="${PATH}"
2209   AC_ARG_WITH(dvdnav-config-path,
2210     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2211     [ if test "${with_dvdnav_config_path}" != "no"
2212       then
2213         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2214       fi ])
2215   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2216   if test "${DVDNAV_CONFIG}" != "no"
2217   then
2218     VLC_ADD_PLUGIN([dvdnav])
2219     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2220     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2221   fi
2222 fi
2223
2224 dnl
2225 dnl  Windows DirectShow access module
2226 dnl
2227 AC_ARG_ENABLE(dshow,
2228   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2229 if test "${enable_dshow}" != "no"
2230 then
2231   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2232   then
2233     AC_LANG_PUSH(C++)
2234       AC_CHECK_HEADERS(dshow.h,
2235       [ VLC_ADD_PLUGIN([dshow])
2236         VLC_ADD_CXXFLAGS([dshow],[])
2237         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2238     AC_LANG_POP(C++)
2239   fi
2240 fi
2241
2242 dnl
2243 dnl  Windows DirectShow BDA access module
2244 dnl
2245 AC_ARG_ENABLE(bda,
2246   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2247 if test "${enable_bda}" != "no"
2248 then
2249   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2250   then
2251       AC_CHECK_HEADERS(dshow.h,
2252       [ VLC_ADD_PLUGIN([bda])
2253         VLC_ADD_CXXFLAGS([bda],[])
2254         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2255   fi
2256 fi
2257
2258
2259 dnl
2260 dnl  OpenCV wrapper and example filters
2261 dnl
2262 AC_ARG_ENABLE(opencv,
2263   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2264 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2265 then
2266   AC_ARG_WITH(opencv-tree,
2267   [    --with-opencv-tree=PATH opencv tree for linking])
2268   if test -n "${with_opencv_tree}"
2269   then
2270     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2271     then
2272           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2273           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2274             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2275       then
2276         AC_MSG_RESULT(yes)
2277         VLC_ADD_PLUGIN([opencv_wrapper])
2278         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2279         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])
2280         AC_LANG_PUSH(C++)
2281         VLC_ADD_PLUGIN([opencv_example])
2282         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2283         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])
2284         AC_LANG_POP(C++)        
2285           else
2286         dnl  No opencv could be found, sorry
2287         AC_MSG_RESULT(no)
2288         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2289           fi
2290     else
2291           AC_MSG_WARN([--enable-opencv currently only works on windows])
2292     fi
2293   fi  
2294 fi
2295
2296
2297 dnl
2298 dnl  libsmbclient plugin
2299 dnl
2300 AC_ARG_ENABLE(smb,
2301   [  --enable-smb            smb input module (default enabled)])
2302 if test "${enable_smb}" != "no"; then
2303   AC_CHECK_HEADERS(libsmbclient.h,
2304     [ VLC_ADD_PLUGIN([access_smb])
2305       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2306     [ if test -n "${enable_smb}"; then
2307         AC_MSG_ERROR([cannot find libsmbclient headers])
2308      fi ])
2309   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2310     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2311     [#include <libsmbclient.h>])
2312 fi
2313
2314 dnl
2315 dnl  libdvbpsi ts demux/mux
2316 dnl
2317 AC_ARG_ENABLE(dvbpsi,
2318   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2319 if test "${enable_dvbpsi}" != "no"
2320 then
2321   AC_ARG_WITH(dvbpsi,
2322   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2323   AC_ARG_WITH(dvbpsi,
2324   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2325   case "${with_dvbpsi}" in
2326   ""|yes)
2327     if test -z "${with_dvbpsi_tree}"
2328     then
2329       AC_CHECK_HEADERS(dvbpsi/dr.h,
2330         [ VLC_ADD_PLUGIN([ts])
2331           if test "${enable_sout}" != "no"; then
2332             VLC_ADD_PLUGIN([mux_ts])
2333           fi
2334           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2335         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2336         [#if defined( HAVE_STDINT_H )
2337 #   include <stdint.h>
2338 #elif defined( HAVE_INTTYPES_H )
2339 #   include <inttypes.h>
2340 #endif
2341 #include <dvbpsi/dvbpsi.h>
2342 #include <dvbpsi/descriptor.h>
2343 #include <dvbpsi/pat.h>
2344 #include <dvbpsi/pmt.h>])
2345     else
2346       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2347       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2348       if test -z "${real_dvbpsi_tree}"
2349       then
2350         dnl  The given directory can't be found
2351         AC_MSG_RESULT(no)
2352         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2353       fi
2354       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2355       then
2356         dnl  Use a custom libdvbpsi
2357         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2358         VLC_ADD_BUILTINS([ts])
2359         if test "${enable_sout}" != "no"; then
2360           VLC_ADD_BUILTINS([mux_ts])
2361         fi
2362         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2363         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2364       else
2365         dnl  The given libdvbpsi wasn't built
2366         AC_MSG_RESULT(no)
2367         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2368       fi
2369     fi
2370   ;;
2371   no)
2372     dnl  Compile without dvbpsi
2373   ;;
2374   *)
2375     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2376     if test -z "${with_dvbpsi}"
2377     then
2378       LDFLAGS_test=""
2379       CPPFLAGS_test=""
2380     else
2381       LDFLAGS_test="-L${with_dvbpsi}/lib"
2382       CPPFLAGS_test="-I${with_dvbpsi}/include"
2383     fi
2384     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2385     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2386       VLC_ADD_PLUGIN([ts])
2387       if test "${enable_sout}" != "no"; then
2388         VLC_ADD_PLUGIN([mux_ts])
2389       fi
2390       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2391       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2392
2393     ],[
2394       if test -n "${enable_dvbpsi}"
2395       then
2396         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])
2397       fi
2398     ])
2399     CPPFLAGS="${CPPFLAGS_save}"
2400   ;;
2401   esac
2402   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2403     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2404   ], [], [${LIBS_ts}])
2405
2406 fi
2407
2408 dnl
2409 dnl  Video4Linux plugin
2410 dnl
2411 AC_ARG_ENABLE(v4l,
2412   [  --enable-v4l            Video4Linux input support (default disabled)])
2413 if test "${enable_v4l}" = "yes"
2414 then
2415   AC_ARG_WITH(v4l,
2416     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2417   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2418   then
2419     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2420   fi
2421
2422   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2423   AC_CHECK_HEADERS(linux/videodev.h, [
2424     VLC_ADD_PLUGIN([v4l])
2425   ],[])
2426   CPPFLAGS="${CPPFLAGS_save}"
2427 fi
2428
2429 dnl
2430 dnl  Video4Linux2 plugin
2431 dnl
2432 AC_ARG_ENABLE(v4l2,
2433   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2434 if test "${enable_v4l2}" = "yes"
2435 then
2436   AC_ARG_WITH(v4l2,
2437     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2438   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2439   then
2440     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2441   fi
2442
2443   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2444   if test "${have_v4l2_alsa}" = "true"
2445   then
2446     CFLAGS="${CFLAGS_save}"
2447     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2448                     #define ALSA_PCM_NEW_SW_PARAMS_API
2449                     #include <alsa/asoundlib.h>],
2450        [snd_pcm_hw_params_get_period_time(0,0,0);],
2451         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2452     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2453     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2454   fi
2455
2456   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2457   AC_CHECK_HEADERS(linux/videodev2.h, [
2458     VLC_ADD_PLUGIN([v4l2])
2459   ],[])
2460   CPPFLAGS="${CPPFLAGS_save}"
2461 fi
2462
2463
2464 dnl
2465 dnl  special access module for Hauppauge PVR cards
2466 dnl
2467 AC_ARG_ENABLE(pvr,
2468   [  --enable-pvr            PVR cards access module (default disabled)])
2469 if test "${enable_pvr}" = "yes"
2470 then
2471   VLC_ADD_PLUGIN([pvr])
2472   AC_ARG_WITH(videodev2,
2473     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2474   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2475   then
2476     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2477   fi
2478     
2479
2480   AC_CACHE_CHECK([for new linux/videodev2.h],
2481       [new_linux_videodev2_h],
2482       [AC_TRY_COMPILE([
2483           #include <sys/types.h>
2484           #   ifdef VIDEODEV2_H_FILE
2485           #   include VIDEODEV2_H_FILE
2486           #   else
2487           #   include <linux/videodev2.h>
2488           #   endif
2489           ],
2490           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2491           new_linux_videodev2_h=yes,
2492           new_linux_videodev2_h=no)])
2493   if test "${new_linux_videodev2_h}" != "no"; then
2494     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2495   fi
2496 fi
2497
2498 dnl
2499 dnl  gnomeVFS access module
2500 dnl
2501 AC_ARG_ENABLE(gnomevfs,
2502   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2503 if test "${enable_gnomevfs}" = "yes" 
2504 then
2505   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2506     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2507     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2508     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2509     VLC_ADD_PLUGIN([access_gnomevfs]),
2510     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2511 fi
2512
2513 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2514 AC_ARG_ENABLE(libcdio,
2515   [  --enable-libcdio        CD input and control library support (default enabled)])
2516
2517
2518 have_libcdio=no
2519 have_libvcdinfo=no
2520 if test "${enable_libcdio}" != "no"
2521 then
2522   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2523      have_libcdio=yes
2524      AC_DEFINE(HAVE_LIBCDIO, 1, 
2525      [Define if you have libcdio 0.78.2 or greater installed]),
2526      [AC_MSG_WARN(CD Reading and information library not found)])
2527
2528   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2529      [have_libvcdinfo=yes
2530      AC_DEFINE(HAVE_VCDINFO, 1, 
2531      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2532      [AC_MSG_WARN(VCD information library not found)])
2533 fi
2534
2535 dnl
2536 dnl  VCDX and CDDAX modules
2537 dnl
2538 AC_ARG_ENABLE(cddax,
2539   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2540  
2541 AC_ARG_ENABLE(libcddb,
2542   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2543  
2544 if test "${enable_cddax}" = "yes"
2545 then
2546   if test "$have_libcdio" = "yes"
2547   then
2548     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2549     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2550     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2551     VLC_ADD_PLUGIN([cddax])
2552     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2553     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2554     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2555   else 
2556     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2557     HAVE_CDDAX=no
2558   fi
2559
2560   if test "$enable_libcddb" != "no"; then
2561     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2562       HAVE_LIBCDDB=yes 
2563       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2564       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2565       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2566       ],
2567       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2568       HAVE_LIBCDDB=no])
2569   fi
2570  
2571 fi
2572
2573 AC_ARG_ENABLE(vcdx,
2574   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2575  
2576 if test "${enable_vcdx}" = "yes"
2577 then
2578   if test "${have_libvcdinfo}" = "yes"
2579   then
2580     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2581     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2582   else 
2583     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2584     HAVE_VCDX=no
2585   fi
2586
2587   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2588    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2589     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2590     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2591     HAVE_VCDX=no])
2592
2593   if test "$have_libvcdinfo" = "yes"
2594   then
2595     AC_DEFINE(HAVE_VCDX, 1, 
2596     [Define for the VCD plugin using libcdio/libvcdinfo])
2597     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2598     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2599     VLC_ADD_PLUGIN([vcdx])
2600   else 
2601     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2602     HAVE_VCDX=no
2603   fi
2604 fi
2605
2606 dnl
2607 dnl  Built-in CD-DA and VCD module
2608 dnl
2609 AC_ARG_ENABLE(cdda,           
2610   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2611  
2612 AC_ARG_ENABLE(vcd,
2613   [  --enable-vcd            built-in VCD (default enabled)])
2614
2615 if test "${enable_vcd}" != "no"
2616 then
2617   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2618   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2619     AC_MSG_RESULT(yes)
2620     VLC_ADD_PLUGIN([vcd])
2621     VLC_ADD_PLUGIN([cdda])
2622   ],[
2623     AC_MSG_RESULT(no)
2624   ])
2625
2626   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2627   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2628     AC_MSG_RESULT(yes)
2629     VLC_ADD_PLUGIN([vcd])
2630     VLC_ADD_PLUGIN([cdda])
2631     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2632   ],[
2633     AC_MSG_RESULT(no)
2634   ])
2635
2636   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2637   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2638     AC_MSG_RESULT(yes)
2639     VLC_ADD_PLUGIN([vcd])
2640     VLC_ADD_PLUGIN([cdda])
2641     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2642   ],[
2643     AC_MSG_RESULT(no)
2644   ])
2645
2646   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2647   then
2648     VLC_ADD_PLUGIN([vcd])
2649     VLC_ADD_PLUGIN([cdda])
2650   fi
2651
2652   if test "${SYS}" = "darwin"
2653   then
2654     VLC_ADD_PLUGIN([vcd])
2655     VLC_ADD_PLUGIN([cdda])
2656     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2657     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2658   fi
2659
2660   if test "$enable_libcddb" != "no"; then
2661     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2662       HAVE_LIBCDDB=yes 
2663       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2664       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2665       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2666       ],:
2667       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2668       HAVE_LIBCDDB=no])
2669   fi
2670 fi
2671
2672 dnl
2673 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2674 dnl
2675 AC_ARG_ENABLE(dvb,
2676   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2677
2678 if test "${enable_dvb}" = "yes"
2679 then
2680   AC_ARG_WITH(dvb,
2681   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2682   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2683   then
2684     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2685   fi
2686   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2687   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2688     if test -z "${with_dvbpsi_tree}"
2689     then
2690       VLC_ADD_PLUGIN([dvb])
2691     else
2692       VLC_ADD_BUILTINS([dvb])
2693     fi
2694   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2695   CPPFLAGS="${CPPFLAGS_save}"
2696 fi
2697
2698 dnl
2699 dnl  Screen capture module
2700 dnl
2701 AC_ARG_ENABLE(screen,
2702   [  --enable-screen         Screen capture support (default enabled)])
2703 if test "${enable_screen}" != "no"; then
2704   if test "${SYS}" = "darwin"; then
2705     AC_CHECK_HEADERS(OpenGL/gl.h, [
2706       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2707         VLC_ADD_PLUGIN([screen])
2708         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2709       ])
2710     ])
2711   elif test "${SYS}" = "mingw32"; then
2712     VLC_ADD_PLUGIN([screen])
2713     VLC_ADD_LIBS([screen],[-lgdi32])
2714   elif test "${SYS}" = "mingwce"; then
2715     CPPFLAGS="${CPPFLAGS_save}"
2716   elif test "${SYS}" = "beos"; then
2717     VLC_ADD_PLUGIN([screen])
2718     VLC_ADD_CXXFLAGS([screen],[])
2719     VLC_ADD_LIBS([screen],[-lbe])
2720   else
2721     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2722     AC_CHECK_HEADERS(X11/Xlib.h, [
2723       VLC_ADD_PLUGIN([screen])
2724       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2725       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2726     ])
2727     CPPFLAGS="${CPPFLAGS_save}"
2728   fi
2729 fi
2730
2731 dnl
2732 dnl  ipv6 plugin - not for QNX yet
2733 dnl
2734 have_ipv6=no
2735 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2736   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2737 ])
2738
2739 AS_IF([test "${have_ipv6}" = "yes"], [
2740   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2741
2742
2743 AC_CHECK_FUNCS(inet_ntop,[
2744   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2745
2746
2747 dnl
2748 dnl  ogg demux plugin
2749 dnl
2750 AC_ARG_ENABLE(ogg,
2751   [  --enable-ogg            Ogg demux support (default enabled)])
2752 if test "${enable_ogg}" != "no"
2753 then
2754   AC_ARG_WITH(ogg-tree,
2755   [    --with-ogg-tree=PATH  ogg tree for static linking])
2756   if test -n "${with_ogg_tree}"
2757   then
2758     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2759     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2760     if test -z "${real_ogg_tree}"
2761     then
2762       dnl  The given directory can't be found
2763       AC_MSG_RESULT(no)
2764       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2765     fi
2766     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2767     then
2768       dnl  Use a custom ogg
2769       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2770       VLC_ADD_PLUGIN([ogg])
2771       if test "${enable_sout}" != "no"; then
2772         VLC_ADD_PLUGIN([mux_ogg])
2773       fi
2774       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2775       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2776     else
2777       dnl  The given ogg wasn't built
2778       AC_MSG_RESULT(no)
2779       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2780     fi
2781   else
2782     AC_CHECK_HEADERS(ogg/ogg.h, [
2783       AC_CHECK_LIB( ogg, oggpack_read, [
2784         VLC_ADD_PLUGIN([ogg])
2785         if test "${enable_sout}" != "no"; then
2786           VLC_ADD_PLUGIN([mux_ogg])
2787         fi
2788         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2789      ],[])
2790   fi
2791 fi
2792
2793 dnl
2794 dnl  matroska demux plugin
2795 dnl
2796 AC_ARG_ENABLE(mkv,
2797   [  --enable-mkv            Matroska demux support (default enabled)])
2798 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2799   AC_LANG_PUSH(C++)
2800   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2801     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2802     AC_EGREP_CPP(yes,
2803       [#include <ebml/EbmlVersion.h>
2804        #ifdef LIBEBML_VERSION
2805        #if LIBEBML_VERSION >= 0x000706
2806        yes
2807        #endif
2808        #endif],
2809       [AC_MSG_RESULT([yes])
2810         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2811           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2812           AC_EGREP_CPP(yes,
2813             [#include <matroska/KaxVersion.h>
2814              #ifdef LIBMATROSKA_VERSION
2815              #if LIBMATROSKA_VERSION >= 0x000705
2816              yes
2817              #endif
2818              #endif],
2819             [AC_MSG_RESULT([yes])
2820               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2821               VLC_ADD_CXXFLAGS([mkv],[])
2822               if test "${SYS}" = "darwin"; then
2823                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2824               fi
2825               AC_CHECK_LIB(ebml_pic, main, [
2826                 VLC_ADD_PLUGIN([mkv])
2827                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2828               ],
2829                 AC_CHECK_LIB(ebml, main, [
2830                   VLC_ADD_PLUGIN([mkv])
2831                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2832                 ]) 
2833               )
2834             ],
2835             [AC_MSG_RESULT([no])
2836               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.])
2837           ])
2838         ])
2839       ],
2840       [AC_MSG_RESULT([no])
2841         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.])
2842     ])
2843   ])
2844   AC_LANG_POP(C++)
2845 fi
2846
2847 dnl
2848 dnl  modplug demux plugin
2849 dnl
2850 AC_ARG_ENABLE(mod,
2851   [  --enable-mod            Mod demux support (default enabled)])
2852 if test "${enable_mod}" != "no"
2853 then
2854   AC_ARG_WITH(mod-tree,
2855   [    --with-mod-tree=PATH mod tree for static linking])
2856   if test -n "${with_mod_tree}"
2857   then
2858     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2859     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2860     if test -z "${real_mod_tree}"
2861     then
2862       dnl  The given directory can't be found
2863       AC_MSG_RESULT(no)
2864       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2865     fi
2866     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2867     then
2868       dnl  Use a custom mod
2869       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2870       VLC_ADD_PLUGIN([mod])
2871       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2872       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2873     else
2874       dnl  The given mod wasn't built
2875       AC_MSG_RESULT(no)
2876       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2877     fi
2878   else
2879     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2880       VLC_ADD_PLUGIN([mod])
2881       VLC_ADD_CXXFLAGS([mod],[])
2882       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2883   fi
2884 fi
2885
2886 dnl
2887 dnl  mpc demux plugin
2888 dnl
2889 AC_ARG_ENABLE(mpc,
2890   [  --enable-mpc            Mpc demux support (default enabled)])
2891 if test "${enable_mpc}" != "no"
2892 then
2893   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2894     VLC_ADD_PLUGIN([mpc])
2895     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2896 fi
2897
2898 dnl
2899 dnl  game music emu demux plugin
2900 dnl
2901 AC_ARG_ENABLE(gme,
2902   [  --enable-gme            Game Music Emu demux support (default enabled)])
2903 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2904 then
2905   AC_LANG_PUSH(C++)
2906   AC_ARG_WITH(gme-tree,
2907   [    --with-gme-tree=PATH gme tree for static linking])
2908   if test -n "${with_gme_tree}"
2909   then
2910     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2911     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2912     if test -z "${real_gme_tree}"
2913     then
2914       dnl  The given directory can't be found
2915       AC_MSG_RESULT(no)
2916       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2917     fi
2918     if test -f "${real_gme_tree}/gme/libgme.a"
2919     then
2920       dnl  Use a custom gme
2921       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2922       VLC_ADD_PLUGIN([gme])
2923       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2924       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2925     else
2926       dnl  The given gme wasn't built
2927       AC_MSG_RESULT(no)
2928       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2929     fi
2930   else
2931       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2932   fi
2933   AC_LANG_POP(C++)
2934 fi
2935
2936 dnl
2937 dnl  Codec plugins
2938 dnl
2939
2940 AC_ARG_WITH(,[Codec plugins:])
2941
2942 dnl
2943 dnl  mad plugin
2944 dnl
2945 AC_ARG_ENABLE(mad,
2946   [  --enable-mad            libmad module (default enabled)])
2947 if test "${enable_mad}" != "no"
2948 then
2949   AC_ARG_WITH(mad,
2950     [    --with-mad=PATH       path to libmad],[],[])
2951   if test "${with_mad}" != "no" -a -n "${with_mad}"
2952   then
2953     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2954     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2955   fi
2956
2957   AC_ARG_WITH(mad-tree,
2958     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2959   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2960   then
2961     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2962     if test -z "${real_mad_tree}"
2963     then
2964       dnl  The given directory can't be found
2965       AC_MSG_RESULT(no)
2966       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2967     fi
2968     dnl  Use a custom libmad
2969     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2970     if test -f ${real_mad_tree}/mad.h
2971     then
2972       AC_MSG_RESULT(yes)
2973       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2974       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2975       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2976       AC_CHECK_LIB(mad, mad_bit_init, [
2977         VLC_ADD_BUILTINS([mpgatofixed32])
2978         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2979         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2980       ],[])
2981       LDFLAGS="${LDFLAGS_save}"
2982     else
2983       AC_MSG_RESULT(no)
2984       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2985     fi
2986   else
2987     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2988     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2989     AC_CHECK_HEADERS(mad.h, ,
2990       [ 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.]) ])
2991     AC_CHECK_LIB(mad, mad_bit_init, [
2992       VLC_ADD_PLUGIN([mpgatofixed32])
2993       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2994       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2995     CPPFLAGS="${CPPFLAGS_save}"
2996     LDFLAGS="${LDFLAGS_save}"
2997   fi
2998 fi
2999
3000 dnl
3001 dnl   libid3tag support (FIXME!!! doesn't work with new input)
3002 dnl
3003 AC_ARG_ENABLE( id3tag,
3004   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
3005 AS_IF([test "${enable_id3tag}" != "no"], [
3006   AC_CHECK_HEADERS(id3tag.h, [
3007     AC_CHECK_HEADERS(zlib.h, [
3008       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
3009       VLC_ADD_PLUGIN([id3tag])
3010     ])
3011   ])
3012 ])
3013
3014 dnl
3015 dnl  ffmpeg decoder/demuxer plugin
3016 dnl
3017 dnl we try to find ffmpeg using : 1- given tree, 2- pkg-config
3018 dnl                               3- default place,
3019
3020 AC_ARG_ENABLE(ffmpeg,
3021 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
3022 if test "${enable_ffmpeg}" != "no"
3023 then
3024
3025 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
3026
3027  AC_ARG_WITH(ffmpeg-mp3lame,
3028    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
3029    [
3030      if test "$with_ffmpeg_mp3lame" = "yes";    then
3031         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
3032      fi])
3033
3034  AC_ARG_WITH(ffmpeg-faac,
3035    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
3036    [
3037      if test "$with_ffmpeg_faac" = "yes"; then
3038         VLC_ADD_LIBS([ffmpeg],[-lfaac])
3039      fi])
3040
3041  AC_ARG_WITH(ffmpeg-dts,
3042    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
3043    [
3044      if test "$with_ffmpeg_dts" = "yes"; then
3045              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3046              AC_CHECK_LIB(dts_pic, dts_free, 
3047                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
3048                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
3049              LDFLAGS="${LDFLAGS_save}"
3050      fi])
3051
3052  AC_ARG_WITH(ffmpeg-vorbis,
3053    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
3054    [
3055      if test "$with_ffmpeg_vorbis" = "yes"; then
3056         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
3057      fi])
3058
3059  AC_ARG_WITH(ffmpeg-theora,
3060    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
3061    [
3062      if test "$with_ffmpeg_theora" = "yes"; then
3063         VLC_ADD_LIBS([ffmpeg],[-ltheora])
3064      fi])
3065
3066  AC_ARG_WITH(ffmpeg-ogg,
3067    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
3068    [
3069      if test "$with_ffmpeg_ogg" = "yes"; then
3070         VLC_ADD_LIBS([ffmpeg],[-logg])
3071      fi])
3072
3073  AC_ARG_WITH(ffmpeg-zlib,
3074    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
3075    [
3076      if test "$with_ffmpeg_zlib" = "yes"; then
3077         VLC_ADD_LIBS([ffmpeg],[-lz])
3078      fi])
3079
3080  AC_ARG_WITH(ffmpeg-amrnb,
3081    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
3082    [
3083      if test "$with_ffmpeg_amrnb" = "yes";      then
3084         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
3085      fi])
3086
3087  AC_ARG_WITH(ffmpeg-amrwb,
3088    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
3089    [
3090      if test "$with_ffmpeg_amrwb" = "yes";      then
3091         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
3092      fi])
3093
3094  AC_ARG_WITH(ffmpeg-x264,
3095    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libx264 support],
3096    [
3097      if test "$with_ffmpeg_x264" = "yes";       then
3098         VLC_ADD_LIBS([ffmpeg],[-lx264])
3099      fi])
3100
3101  AC_ARG_WITH(ffmpeg-a52,
3102    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
3103    [
3104      if test "$with_ffmpeg_a52" = "yes";        then
3105         VLC_ADD_LIBS([ffmpeg],[-la52])
3106      fi])
3107
3108  dnl
3109  dnl test for --with-ffmpeg-tree
3110  dnl
3111  AC_ARG_WITH(ffmpeg-tree,
3112    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
3113
3114  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3115    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
3116    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3117    if test -z "${real_ffmpeg_tree}"; then
3118      dnl  The given directory can't be found
3119      AC_MSG_RESULT(no)
3120      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3121    fi
3122    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3123      dnl  The given libavcodec wasn't built
3124      AC_MSG_RESULT(no)
3125      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
3126    fi
3127    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3128      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
3129        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
3130      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
3131         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
3132         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
3133      else
3134        dnl  The given libavcodec wasn't built with --enable-postproc
3135        AC_MSG_RESULT(no)
3136        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-postproc])
3137      fi
3138    fi
3139    dnl  Use a custom libffmpeg
3140    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3141
3142    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3143    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3144    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3145    export PKG_CONFIG_PATH=""
3146    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3147    VLC_SAVE_FLAGS
3148
3149    PKG_CHECK_MODULES( [FFMPEG],[libavformat libavcodec libpostproc], [
3150         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3151         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3152         AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3153       )
3154    AS_IF([ test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"],[
3155      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3156      PKG_CHECK_MODULES( [SWSCALE],[libswscale], [
3157      VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3158      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[${SWSCALE_CFLAGS}])])
3159      ])
3160    CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS} ${SWSCALE_CFLAGS}"
3161    CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS} ${SWSCALE_CFLAGS}"
3162    
3163    AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3164    AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3165    AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3166    AC_CHECK_HEADERS([ffmpeg/swscale.h libswscale/swscale.h])
3167
3168    VLC_RESTORE_FLAGS
3169    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3170          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3171    ],[
3172         unset PKG_CONFIG_PATH
3173    ])
3174    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[
3175         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3176    ],[
3177         unset PKG_CONFIG_LIBDIR
3178    ])
3179
3180    VLC_ADD_BUILTINS([ffmpeg])
3181    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3182      VLC_ADD_BUILTINS([stream_out_switcher])
3183    fi
3184
3185
3186 else
3187
3188
3189 dnl Trying with pkg-config
3190    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3191     [
3192      VLC_SAVE_FLAGS
3193      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3194      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3195      AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3196      AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3197      AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3198      dnl newer ffmpeg have a separate libpostproc
3199      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3200        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3201        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3202        ],[ true ])
3203      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3204      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3205      AC_CHECK_HEADERS(postproc/postprocess.h)
3206      if test "${SYS}" = "darwin"; then
3207         VLC_ADD_BUILTINS([ffmpeg])
3208      else
3209         VLC_ADD_PLUGIN([ffmpeg])
3210      fi
3211      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3212         if test "${SYS}" = "darwin"; then
3213             VLC_ADD_BUILTINS([stream_out_switcher])
3214         else
3215             VLC_ADD_PLUGIN([stream_out_switcher])
3216         fi
3217      fi
3218      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3219      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3220
3221      dnl even newer ffmpeg has a libswscale
3222      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3223        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3224        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3225        AC_CHECK_LIB(swscale, sws_getContext,
3226          [AC_CHECK_HEADERS([ffmpeg/swscale.h libswscale/swscale.h])],[],[-lavutil -lm])
3227        ],[ true ])
3228      VLC_RESTORE_FLAGS
3229     ],[
3230
3231     dnl
3232     dnl last chance: at the default place
3233     dnl
3234       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3235       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3236       AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3237       AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3238       AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3239       AC_CHECK_HEADERS(postproc/postprocess.h)
3240
3241       AC_CHECK_LIB(avutil, av_crc_init, [
3242         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3243         LDAVUTIL="-lavutil"])
3244
3245       AC_CHECK_LIB(avcodec, avcodec_init, [
3246         VLC_ADD_BUILTINS([ffmpeg])
3247         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3248         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3249             VLC_ADD_BUILTINS([stream_out_switcher])
3250         fi],
3251          [ 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])
3252
3253       AC_CHECK_LIB(postproc, pp_postprocess, [
3254         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3255       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-postproc.]),
3256         [$LDAVUTIL])
3257
3258       AC_CHECK_LIB(avformat, av_open_input_stream, [
3259         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3260       LDFLAGS="${LDFLAGS_save}"
3261       CPPFLAGS="${CPPFLAGS_save}"
3262
3263       AC_CHECK_LIB(swscale, sws_getContext, [
3264         AC_CHECK_HEADERS(ffmpeg/swscale.h libswscale/swscale.h)
3265         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3266       LDFLAGS="${LDFLAGS_save}"
3267       CPPFLAGS="${CPPFLAGS_save}"
3268     ])
3269   fi
3270 fi
3271
3272 dnl
3273 dnl  ffmpegaltivec plugin
3274 dnl
3275 AC_ARG_ENABLE(ffmpegaltivec,
3276 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3277 if test "${enable_ffmpegaltivec}" = "yes"
3278 then
3279   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3280     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3281     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3282     if test -z "${real_ffmpeg_tree}"; then
3283       dnl  The given directory can't be found
3284       AC_MSG_RESULT(no)
3285       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3286     fi
3287     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3288       dnl  The given libavcodecaltivec wasn't built
3289       AC_MSG_RESULT(no)
3290       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3291     fi
3292     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3293       dnl  The given libavcodecaltivec wasn't built with --enable-postproc
3294       AC_MSG_RESULT(no)
3295       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-postproc])
3296     fi
3297     dnl  Use a custom libffmpeg
3298     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3299     VLC_ADD_BUILTINS([ffmpegaltivec])
3300     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3301     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3302     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3303
3304     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3305       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3306       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3307       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3308     fi
3309     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3310     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3311   fi
3312 fi
3313
3314 dnl
3315 dnl  faad decoder plugin
3316 dnl
3317 AC_ARG_ENABLE(faad,
3318 [  --enable-faad           faad codec (default disabled)])
3319 if test "${enable_faad}" = "yes"
3320 then
3321   AC_ARG_WITH(faad-tree,
3322   [    --with-faad-tree=PATH faad tree for static linking])
3323   if test -n "${with_faad_tree}"
3324   then
3325     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3326     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3327     if test -z "${real_faad_tree}"
3328     then
3329       dnl  The given directory can't be found
3330       AC_MSG_RESULT(no)
3331       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3332     fi
3333     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3334     then
3335       dnl  Use a custom faad
3336       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3337       VLC_ADD_BUILTINS([faad])
3338       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3339       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3340     else
3341       dnl  The given libfaad wasn't built
3342       AC_MSG_RESULT(no)
3343       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3344     fi
3345   else
3346     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3347     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3348     AC_CHECK_HEADERS(faad.h, ,
3349       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3350     AC_CHECK_LIB(faad, faacDecOpen, [
3351       VLC_ADD_PLUGIN([faad])
3352       VLC_ADD_LIBS([faad],[-lfaad]) ],
3353       AC_CHECK_LIB(faad, NeAACDecOpen, [
3354         VLC_ADD_PLUGIN([faad])
3355         VLC_ADD_LIBS([faad],[-lfaad]) ],
3356         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3357     LDFLAGS="${LDFLAGS_save}"
3358     CPPFLAGS="${CPPFLAGS_save}"
3359   fi
3360 fi
3361
3362 dnl
3363 dnl twolame encoder plugin
3364 dnl
3365 AC_ARG_ENABLE(twolame,
3366 [  --enable-twolame        twolame codec (default disabled)])
3367 if test "${enable_twolame}" = "yes"
3368 then
3369   AC_ARG_WITH(twolame-tree,
3370   [    --with-twolame-tree=PATH twolame tree for static linking])
3371   if test -n "${with_twolame_tree}"
3372   then
3373     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3374     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3375     if test -z "${real_twolame_tree}"
3376     then
3377       dnl  The given directory can't be found
3378       AC_MSG_RESULT(no)
3379       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3380     fi
3381     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3382     then
3383       dnl  Use a custom twolame
3384       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3385       VLC_ADD_BUILTINS([twolame])
3386       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3387       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3388     else
3389       dnl  The given libtwolame wasn't built
3390       AC_MSG_RESULT(no)
3391       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3392     fi
3393   else
3394     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3395     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3396     AC_CHECK_HEADERS(twolame.h, ,
3397       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3398     AC_CHECK_LIB(twolame, twolame_init, [
3399       VLC_ADD_PLUGIN([twolame])
3400       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3401       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3402         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3403     LDFLAGS="${LDFLAGS_save}"  
3404     CPPFLAGS="${CPPFLAGS_save}"
3405   fi
3406 fi
3407
3408 dnl
3409 dnl  QuickTime plugin
3410 dnl
3411 AC_ARG_ENABLE(quicktime,
3412   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3413 if test "${enable_quicktime}" != "no" &&
3414   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3415 then
3416   if test "${SYS}" = "mingw32"; then
3417     VLC_ADD_BUILTINS([quicktime])
3418   else
3419   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3420     [ VLC_ADD_BUILTINS([quicktime])
3421       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3422     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3423   fi
3424 fi
3425
3426 dnl
3427 dnl  Real plugin
3428 dnl
3429 AC_ARG_ENABLE(real,
3430   [  --enable-real           Real audio module (default disabled)])
3431 if test "${enable_real}" = "yes"; then
3432   VLC_ADD_PLUGIN([realaudio])
3433 fi
3434
3435 dnl
3436 dnl  Real RTSP plugin
3437 dnl
3438 AC_ARG_ENABLE(realrtsp,
3439   [  --enable-realrtsp       Real RTSP module (default disabled)])
3440 if test "${enable_realrtsp}" = "yes"; then
3441   VLC_ADD_PLUGIN([access_realrtsp])
3442 fi
3443
3444 dnl
3445 dnl MP4 module
3446 dnl
3447 AC_CHECK_HEADERS(zlib.h, [
3448   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3449 ] )
3450
3451 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3452   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3453 ] )
3454
3455 dnl
3456 dnl skins2 module
3457 dnl
3458 AC_ARG_ENABLE(libtar,
3459   [  --enable-libtar support for skins2 (default enabled)])
3460
3461 AS_IF([test "${enable_libtar}" != "no"],[
3462   AC_CHECK_HEADERS(libtar.h, [
3463     VLC_ADD_LIBS([skins2],[-ltar])
3464   ] )
3465 ])
3466
3467 dnl
3468 dnl A52/AC3 decoder plugin
3469 dnl
3470 AC_ARG_ENABLE(a52,
3471   [  --enable-a52            A/52 support with liba52 (default enabled)])
3472 if test "${enable_a52}" != "no"
3473 then
3474   AC_ARG_WITH(a52,
3475     [    --with-a52=PATH       a52 headers and libraries])
3476   AC_ARG_WITH(a52-tree,
3477     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3478   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3479   then
3480     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3481     if test -z "${real_a52_tree}"
3482     then
3483       dnl  The given directory can't be found
3484       AC_MSG_RESULT(no)
3485       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3486     fi
3487     dnl  Use a custom a52dec
3488     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3489     if test -f ${real_a52_tree}/include/a52.h
3490     then
3491       AC_MSG_RESULT(yes)
3492       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3493       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3494       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3495       AC_CHECK_LIB(a52, a52_free, [
3496         VLC_ADD_BUILTINS([a52tofloat32])
3497         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3498         VLC_ADD_LIBS([a52tofloat32],[-la52])
3499         ],[
3500         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3501         then
3502           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3503         else
3504           AC_MSG_ERROR([the specified tree hasn't been compiled])
3505         fi
3506       ])
3507       LDFLAGS="${LDFLAGS_save}"
3508     else
3509       AC_MSG_RESULT(no)
3510       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3511     fi
3512   else
3513     if test -z "${with_a52}"
3514     then
3515       LDFLAGS_test=""
3516       CPPFLAGS_test=""
3517     else
3518       LDFLAGS_test="-L${with_a52}/lib"
3519       CPPFLAGS_test="-I${with_a52}/include"
3520     fi
3521     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3522     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3523     AC_CHECK_HEADERS(a52dec/a52.h, [
3524       AC_CHECK_LIB(a52, a52_free, [
3525         VLC_ADD_PLUGIN([a52tofloat32])
3526         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3527         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3528       ],[
3529         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.])
3530         ])
3531     ],[
3532       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.])
3533     ])
3534     CPPFLAGS="${CPPFLAGS_save}"
3535     LDFLAGS="${LDFLAGS_save}"
3536   fi
3537 fi
3538
3539 AC_ARG_WITH(a52-fixed,
3540       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3541       [
3542         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3543
3544 dnl
3545 dnl DTS Coherent Acoustics decoder plugin
3546 dnl
3547 AS_IF([test "x${enable_dts}" != "x"], [
3548   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3549 ])
3550 AS_IF([test "x${with_dts_tree}" != "x"], [
3551   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3552 ])
3553
3554 AC_ARG_ENABLE(dca,
3555   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3556 AS_IF([test "${enable_dca}" != "no"], [
3557   AC_ARG_WITH(dca-tree,
3558     [    --with-dca-tree=PATH  libdca tree for static linking],,
3559     [with_dca_tree="no"])
3560   AS_IF([test "${with_dca_tree}" != "no"], [
3561     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3562     AS_IF([test -z "${real_dca_tree}"], [
3563       dnl  The given directory can't be found
3564       AC_MSG_RESULT(no)
3565       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3566     ])
3567     dnl  Use a custom libdca
3568     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3569     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3570       AC_MSG_RESULT(yes)
3571       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3572       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3573         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3574       ], [
3575         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3576       ])
3577     ], [
3578       AC_MSG_RESULT(no)
3579       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3580     ])
3581   ], [
3582     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3583       VLC_ADD_PLUGIN([dtstofloat32])
3584       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3585       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3586     ], [
3587       AS_IF([test "x${enable_dca}" != "x"], [
3588         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3589       ])
3590     ])
3591   ])
3592 ])
3593
3594 dnl
3595 dnl  Flac plugin
3596 dnl
3597 AC_ARG_ENABLE(flac,
3598   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3599 if test "${enable_flac}" = "yes"
3600 then
3601   AC_ARG_WITH(flac-tree,
3602   [    --with-flac-tree=PATH flac tree for static linking])
3603   if test -n "${with_flac_tree}"
3604   then
3605     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3606     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3607     if test -z "${real_flac_tree}"
3608     then
3609       dnl  The given directory can't be found
3610       AC_MSG_RESULT(no)
3611       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3612     fi
3613     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3614     then
3615       dnl  Use a custom flac
3616       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3617       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3618       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3619       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3620     else
3621       dnl  The given flac wasn't built
3622       AC_MSG_RESULT(no)
3623       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3624     fi
3625   else
3626     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3627       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3628      ],[])
3629   fi
3630 fi
3631
3632 dnl
3633 dnl  Libmpeg2 plugin
3634 dnl
3635 AC_ARG_ENABLE(libmpeg2,
3636   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3637 if test "${enable_libmpeg2}" != "no"
3638 then
3639   AC_ARG_WITH(libmpeg2-tree,
3640   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3641   if test -n "${with_libmpeg2_tree}"
3642   then
3643     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3644     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3645     if test -z "${real_libmpeg2_tree}"
3646     then
3647       dnl  The given directory can't be found
3648       AC_MSG_RESULT(no)
3649       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3650     fi
3651     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3652     then
3653       dnl  Use a custom libmpeg2
3654       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3655       VLC_ADD_BUILTINS([libmpeg2])
3656       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3657       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3658       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3659     else
3660       dnl  The given libmpeg2 wasn't built
3661       AC_MSG_RESULT(no)
3662       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3663     fi
3664   else
3665     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3666       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3667       AC_EGREP_CPP(yes,
3668         [#include <mpeg2dec/mpeg2.h>
3669          #ifdef MPEG2_RELEASE
3670          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3671          yes
3672          #endif
3673          #endif],
3674         [AC_MSG_RESULT([yes])
3675           VLC_ADD_PLUGIN([libmpeg2])
3676           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3677         [AC_MSG_RESULT([no])
3678           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.])])],
3679
3680       [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.])]
3681     )
3682   fi
3683 fi
3684
3685 dnl
3686 dnl  Vorbis plugin
3687 dnl
3688 AC_ARG_ENABLE(vorbis,
3689   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3690 if test "${enable_vorbis}" != "no"
3691 then
3692   AC_ARG_WITH(vorbis-tree,
3693   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3694   if test -n "${with_vorbis_tree}"
3695   then
3696     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3697     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3698     if test -z "${real_vorbis_tree}"
3699     then
3700       dnl  The given directory can't be found
3701       AC_MSG_RESULT(no)
3702       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3703     fi
3704     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3705     then
3706       dnl  Use a custom vorbis 
3707       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3708       VLC_ADD_PLUGIN([vorbis])
3709       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3710       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3711     else
3712       dnl  The given vorbis wasn't built
3713       AC_MSG_RESULT(no)
3714       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3715     fi
3716   else
3717     AC_CHECK_HEADERS(vorbis/codec.h, [
3718       VLC_ADD_PLUGIN([vorbis])
3719       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3720
3721     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3722       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3723   fi
3724 fi
3725
3726 dnl
3727 dnl  Tremor plugin
3728 dnl
3729 AC_ARG_ENABLE(tremor,
3730   [  --enable-tremor         Tremor decoder support (default disabled)])
3731 if test "${enable_tremor}" = "yes"
3732 then
3733   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3734     VLC_ADD_PLUGIN([tremor])
3735     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3736    ],[])
3737 fi
3738
3739 dnl
3740 dnl  Speex plugin
3741 dnl
3742 AC_ARG_ENABLE(speex,
3743   [  --enable-speex          Speex decoder support (default enabled)])
3744 if test "${enable_speex}" != "no"
3745 then
3746   AC_ARG_WITH(speex-tree,
3747   [    --with-speex-tree=PATH speex tree for static linking])
3748   if test -n "${with_speex_tree}"
3749   then
3750     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3751     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3752     if test -z "${real_speex_tree}"
3753     then
3754       dnl  The given directory can't be found
3755       AC_MSG_RESULT(no)
3756       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3757     fi
3758     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3759     then
3760       dnl  Use a custom speex
3761       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3762       VLC_ADD_PLUGIN([speex])
3763       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3764       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3765     else
3766       dnl  The given speex wasn't built
3767       AC_MSG_RESULT(no)
3768       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3769     fi
3770   else
3771     AC_CHECK_HEADERS(speex/speex.h, [
3772       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3773       AC_CHECK_LIB(speex, speex_decode_int, [
3774         VLC_ADD_PLUGIN([speex])
3775         VLC_ADD_LIBS([speex],[-lspeex]) ],
3776         [ AC_MSG_RESULT([no])
3777           AC_MSG_WARN([Your libspeex is too old, please get the development
3778                        version.]) ],[])
3779       LDFLAGS="${LDFLAGS_save}"
3780       ],[])
3781   fi
3782 fi
3783
3784 dnl
3785 dnl  tarkin decoder plugin
3786 dnl
3787 AC_ARG_ENABLE(tarkin,
3788 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3789 if test "${enable_tarkin}" = "yes"
3790 then
3791   AC_ARG_WITH(tarkin-tree,
3792   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3793   if test -n "${with_tarkin_tree}"
3794   then
3795     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3796     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3797     if test -f "${real_tarkin_tree}/tarkin.o"
3798     then
3799       VLC_ADD_BUILTINS([tarkin])
3800       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3801       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])
3802       AC_MSG_RESULT(yes)
3803     else
3804       dnl  The given tarkin tree wasn't built
3805       AC_MSG_RESULT(no)
3806       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3807                     make sure you compiled tarkin in ${with_tarkin_tree}])
3808     fi
3809   fi
3810 fi
3811
3812 dnl
3813 dnl  theora decoder plugin
3814 dnl
3815 AC_ARG_ENABLE(theora,
3816 [  --enable-theora         experimental theora codec (default disabled)])
3817 if test "${enable_theora}" = "yes"
3818 then
3819   AC_CHECK_HEADERS(theora/theora.h, [
3820     AC_CHECK_LIB(theora, theora_granule_time, [
3821       VLC_ADD_PLUGIN([theora])
3822       theora_libs="-ltheora -logg"
3823       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3824       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3825 You also need to check that you have a libogg posterior to the 1.0 release.])],
3826       [-logg])
3827   ])
3828 fi
3829
3830 dnl
3831 dnl  dirac decoder plugin
3832 dnl
3833 AC_ARG_ENABLE(dirac,
3834 [  --enable-dirac          experimental dirac codec (default disabled)])
3835 if test "${enable_dirac}" = "yes"; then
3836   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.9.0], [
3837       VLC_ADD_PLUGIN([dirac])
3838       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3839       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3840       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3841   ])
3842 fi
3843
3844 dnl
3845 dnl  PNG decoder module
3846 dnl
3847 AC_ARG_ENABLE(png,
3848   [  --enable-png            PNG support (default enabled)])
3849 if test "${enable_png}" != "no"; then
3850 AC_CHECK_HEADERS(png.h, [
3851   LDFLAGS="${LDFLAGS_save} -lz"
3852   AC_CHECK_LIB(png, png_set_rows, [
3853     VLC_ADD_LIBS([png],[-lpng -lz])
3854     VLC_ADD_PLUGIN([png])
3855     VLC_ADD_PLUGIN([osdmenu])
3856     VLC_ADD_PLUGIN([osd_parser])
3857     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3858     [],[-lz])
3859     LDFLAGS="${LDFLAGS_save}"
3860   ])
3861 fi
3862 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3863
3864 dnl
3865 dnl H264 encoder plugin (using libx264)
3866 dnl
3867 AC_ARG_ENABLE(x264,
3868   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3869 if test "${enable_x264}" != "no"; then
3870   AC_ARG_WITH(x264-tree,
3871     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3872   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3873   then
3874     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3875     if test -z "${real_x264_tree}"
3876     then
3877       dnl  The given directory can't be found
3878       AC_MSG_RESULT(no)
3879       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3880     fi
3881     dnl  Use a custom libx264
3882     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3883     if test -f ${real_x264_tree}/x264.h
3884     then
3885       AC_MSG_RESULT(yes)
3886       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3887       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3888       PKG_CHECK_MODULES(X264,x264, [
3889         VLC_ADD_PLUGIN([x264])
3890         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3891         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3892       ],[
3893         AC_MSG_ERROR([the specified tree hasn't been compiled])
3894       ])
3895       LDFLAGS="${LDFLAGS_save}"
3896     else
3897       AC_MSG_RESULT(no)
3898       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3899     fi
3900   else
3901       PKG_CHECK_MODULES(X264,x264, [
3902         VLC_ADD_PLUGIN([x264])
3903         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3904         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3905       ],[
3906         if test "${enable_x264}" = "yes"; then
3907             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3908           fi
3909       ])
3910     LDFLAGS="${LDFLAGS_save}"
3911   fi
3912 fi
3913
3914 dnl
3915 dnl libfluidsynth (MIDI synthetizer) plugin
3916 dnl
3917 AC_ARG_ENABLE(fluidsynth,
3918   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3919 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3920   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3921     VLC_ADD_PLUGIN(fluidsynth)
3922     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3923     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3924   ], [
3925     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3926       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3927     ])
3928   ])
3929 ])
3930
3931 dnl
3932 dnl Teletext Modules
3933 dnl vbi decoder plugin (using libzbvi)
3934 dnl telx module
3935 dnl uncompatible
3936 dnl
3937 AC_ARG_ENABLE(zvbi,
3938   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3939 AC_ARG_ENABLE(telx,
3940   [  --enable-telx           Teletext decoding module (conflicting with zvbi) (default disabled)])
3941
3942 AS_IF( [test "${enable_zvbi}" != "no"],[
3943   AS_IF( [test "${enable_telx}" = "yes"],[
3944     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3945   ],[
3946     PKG_CHECK_MODULES(ZVBI,
3947         zvbi-0.2 >= 0.2.25,
3948         [
3949           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3950           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3951           VLC_ADD_PLUGIN([zvbi])
3952           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3953         ],[
3954           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3955           enable_telx="yes"
3956         ])
3957     ])  
3958   ])
3959 AS_IF( [test "${enable_telx}" = "yes"],[
3960   VLC_ADD_PLUGIN([telx])
3961   ])
3962
3963 dnl
3964 dnl asa/csri subtitle rendering module
3965 dnl
3966 AC_ARG_ENABLE(csri,
3967   [  --enable-csri          Subtitle support using CSRI / asa (default disabled)])
3968 AS_IF( [test "${enable_csri}" = "yes"], [
3969   PKG_CHECK_MODULES(CSRI,
3970       csri >= 0.1.0,
3971       [
3972         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3973         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3974         VLC_ADD_PLUGIN([csri])
3975       ],[
3976         AC_MSG_WARN([CSRI helper library not found])
3977       ])
3978   ])
3979
3980 dnl
3981 dnl asa demuxer
3982 dnl
3983 AC_ARG_ENABLE(asademux,
3984   [  --enable-asademux      asa subtitle demuxing (default disabled)])
3985 AS_IF( [test "${enable_asademux}" = "yes"], [
3986   PKG_CHECK_MODULES(PCRE,
3987       libpcre >= 6.5,
3988       [
3989         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3990         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3991         VLC_ADD_PLUGIN([asademux])
3992       ],[
3993         AC_MSG_WARN([PCRE library not found (required for asademux)])
3994       ])
3995   ])
3996
3997 dnl
3998 dnl  CMML plugin
3999 dnl
4000 AC_ARG_ENABLE(cmml,
4001   [  --enable-cmml           CMML support (default enabled)])
4002 if test "${enable_cmml}" != "no"
4003 then
4004   VLC_ADD_PLUGIN([cmml])
4005 fi
4006
4007 dnl
4008 dnl  kate decoder plugin
4009 dnl
4010 AC_ARG_ENABLE(kate,
4011 [  --enable-kate           kate codec (default enabled)])
4012 if test "${enable_kate}" != "no"; then
4013   PKG_CHECK_MODULES(KATE,[kate >= 0.1.1], [
4014       VLC_ADD_PLUGINS([kate])
4015       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
4016       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
4017         AC_CHECK_HEADERS(kate/kate.h, [
4018           AC_CHECK_LIB(kate, kate_decode_init, [
4019             if test "${SYS}" = "mingw32"; then
4020               VLC_ADD_PLUGINS([kate])
4021             else
4022               VLC_ADD_BUILTINS([kate])
4023             fi
4024             kate_libs="-lkate -logg"
4025             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
4026             if test "${enable_kate}" == "yes"; then
4027               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
4028               You also need to check that you have a libogg posterior to the 1.0 release.])
4029             fi],
4030             [-lkate -logg])
4031         ],[
4032           if test "${enable_kate}" == "yes"; then
4033             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
4034             You also need to check that you have a libogg posterior to the 1.0 release.])
4035           fi
4036         ])
4037   ])
4038 fi
4039
4040
4041 dnl
4042 dnl  Video plugins
4043 dnl
4044
4045 AC_ARG_WITH(,[Video plugins:])
4046
4047 dnl Check for DPMS
4048 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
4049   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4050   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
4051     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
4052     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
4053       AC_MSG_RESULT(yes)
4054       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
4055                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
4056     ],[
4057       AC_MSG_RESULT(no)
4058     ])
4059   ],,[
4060     #include <X11/Xlib.h>
4061   ])
4062   CPPFLAGS="${CPPFLAGS_save}"
4063 fi
4064
4065 dnl
4066 dnl  X11 module
4067 dnl  (enabled by default except on win32)
4068 dnl
4069 AC_ARG_ENABLE(x11,
4070   [  --enable-x11            X11 support (default enabled)])
4071 if test "${enable_x11}" != "no" &&
4072   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4073    test "${enable_x11}" = "yes"); then
4074   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4075   AC_CHECK_HEADERS(X11/Xlib.h, [
4076     VLC_ADD_PLUGIN([panoramix])
4077     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4078     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
4079     AC_CHECK_LIB(Xext, XShmAttach, [
4080       VLC_ADD_PLUGIN([x11])
4081       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
4082       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
4083     ])
4084   ])
4085   CPPFLAGS="${CPPFLAGS_save}"
4086 fi
4087
4088 dnl
4089 dnl  XVideo module
4090 dnl  (enabled by default except on win32)
4091 dnl
4092 AC_ARG_ENABLE(xvideo,
4093   [  --enable-xvideo         XVideo support (default enabled)])
4094 if test "${enable_xvideo}" != "no" &&
4095   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4096    test "${enable_xvideo}" = "yes"); then
4097   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4098   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
4099     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4100     AC_CHECK_LIB(Xv,XvPutImage,[
4101       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
4102       # test for libXv_pic.
4103       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
4104         VLC_ADD_PLUGIN([xvideo])
4105         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4106         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
4107       else
4108         AC_CHECK_LIB(Xv_pic,XvPutImage,[
4109           VLC_ADD_PLUGIN([xvideo])
4110           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4111           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
4112         ],[
4113           VLC_ADD_BUILTINS([xvideo])
4114           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
4115           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4116         ])
4117       fi
4118     ])
4119     CFLAGS="${CFLAGS_save}"
4120   ]
4121   CPPFLAGS="${CPPFLAGS_save}")
4122 fi
4123
4124 dnl
4125 dnl  GLX module
4126 dnl  (enabled by default except on win32)
4127 dnl
4128 AC_ARG_ENABLE(glx,
4129   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
4130 if test "${enable_glx}" != "no" &&
4131   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4132    test "${enable_glx}" = "yes"); then
4133   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4134   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
4135   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
4136     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
4137     choke me
4138     #endif]]),
4139     [
4140       VLC_ADD_PLUGIN([glx])
4141       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
4142       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
4143     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
4144   CPPFLAGS="${CPPFLAGS_save}"
4145 fi
4146
4147 dnl
4148 dnl  XVMC module
4149 dnl  (disabled by default except on win32)
4150 dnl
4151 AC_ARG_ENABLE(xvmc,
4152   [  --enable-xvmc           XVMC support (default disabled)])
4153 if test "${enable_xvmc}" = "yes" &&
4154   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4155    test "${enable_xvmc}" = "yes"); then
4156   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4157   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4158     VLC_ADD_PLUGIN([xvmc])
4159     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
4160     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
4161   ])
4162   CPPFLAGS="${CPPFLAGS_save}"
4163 fi
4164
4165 dnl
4166 dnl  Check for the Xinerama extension
4167 dnl
4168 AC_ARG_ENABLE(xinerama,
4169   [  --enable-xinerama       Xinerama support (default enabled)])
4170 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
4171   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4172    test "${enable_xvideo}" = "yes"); then
4173   ac_cv_have_xinerama="no"
4174   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4175   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4176   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4177     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4178       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4179       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4180       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4181       ac_cv_have_xinerama="yes"
4182     ],[
4183       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4184         VLC_ADD_LIBS([xvideo],[-lXinerama])
4185         VLC_ADD_LIBS([x11],[-lXinerama])
4186         VLC_ADD_LIBS([glx],[-lXinerama])
4187         ac_cv_have_xinerama="yes"
4188       ])
4189     ])
4190   ])
4191   if test "${ac_cv_have_xinerama}" = "yes"; then
4192     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4193   fi
4194   CFLAGS="${CFLAGS_save}"
4195   CPPFLAGS="${CPPFLAGS_save}"
4196
4197 dnl
4198 dnl  Check for XF86VidMode extension
4199 dnl
4200   ac_cv_have_xf86vidmode="no"
4201   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4202   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4203   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4204     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4205       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4206       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4207       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4208       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4209       ac_cv_have_xf86vidmode="yes"
4210     ],[
4211       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4212         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4213         VLC_ADD_LIBS([x11],[-lXxf86vm])
4214         VLC_ADD_LIBS([glx],[-lXxf86vm])
4215         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4216         ac_cv_have_xf86vidmode="yes"
4217       ])
4218     ])
4219   ],[true],
4220 [#ifdef HAVE_X11_XLIB_H
4221 # include <X11/Xlib.h>
4222 #endif]
4223    )
4224   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4225     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4226   ])
4227   CFLAGS="${CFLAGS_save}"
4228   CPPFLAGS="${CPPFLAGS_save}"
4229
4230 fi
4231
4232 dnl
4233 dnl  OpenGL module
4234 dnl  (enabled by default except on beos)
4235 dnl
4236 AC_ARG_ENABLE(opengl,
4237   [  --enable-opengl         OpenGL support (default enabled)])
4238 if test "${enable_opengl}" != "no" &&
4239    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4240   if test "${SYS}" != "darwin"; then
4241     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4242       VLC_ADD_PLUGIN([opengl])
4243       if test "${SYS}" != "mingw32"; then
4244         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4245       else
4246         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4247       fi
4248     ])
4249   else
4250     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4251     VLC_ADD_PLUGIN([opengl])
4252     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4253   fi
4254 fi
4255
4256 dnl
4257 dnl  SDL module
4258 dnl
4259 AC_ARG_ENABLE(sdl,
4260   [  --enable-sdl            SDL support (default enabled)])
4261 AC_ARG_ENABLE(sdl-image,
4262   [  --enable-sdl-image      SDL image support (default enabled)])
4263 if test "${enable_sdl}" != "no"
4264 then
4265   SDL_PATH="${PATH}"
4266   AC_ARG_WITH(sdl-config-path,
4267     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4268     [ if test "${with_sdl_config_path}" != "no"
4269       then
4270         SDL_PATH="${with_sdl_config_path}:${PATH}"
4271       fi ])
4272   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4273   SDL_CONFIG="${SDL12_CONFIG}"
4274   SDL_HEADER="SDL12/SDL.h"
4275   SDL_IMAGE="SDL12/SDL_image.h"
4276   if test "${SDL_CONFIG}" = "no"
4277   then
4278     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4279     SDL_CONFIG=${SDL11_CONFIG}
4280     SDL_HEADER="SDL11/SDL.h"
4281     SDL_IMAGE="SDL11/SDL_image.h"
4282   fi
4283   if test "${SDL_CONFIG}" = "no"
4284   then
4285     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4286     SDL_HEADER="SDL/SDL.h"
4287     SDL_IMAGE="SDL/SDL_image.h"
4288   fi
4289   # check for cross-compiling
4290   SDL_PREFIX=
4291   AC_ARG_WITH(sdl-prefix,
4292     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4293                                e.g use as:
4294                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4295   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4296   then
4297     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4298   fi
4299   if test "${SDL_CONFIG}" != "no"
4300   then
4301     # SDL on Darwin is heavily patched and can only run SDL_image
4302     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4303       VLC_ADD_PLUGIN([vout_sdl])
4304       VLC_ADD_PLUGIN([aout_sdl])
4305     fi
4306     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4307     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4308     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4309     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4310       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4311       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4312           As a last resort we also test for SDL.h presence),
4313       [ AC_MSG_ERROR([The development package for SDL is not installed.
4314 Please install it and try again. Alternatively you can also configure with
4315 --disable-sdl.])
4316       ])])
4317     AS_IF([ test "${enable_sdl_image}" != "no"],[
4318       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4319         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4320         VLC_ADD_PLUGIN([sdl_image])
4321         AC_CHECK_LIB(png, png_set_rows,
4322           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4323         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4324           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4325         AC_CHECK_LIB(tiff, TIFFClientOpen,
4326           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4327         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4328         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4329             As a last resort we also test for SDL_image.h presence),
4330         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4331   You should install it alongside your SDL package.])
4332         ])])
4333     ])
4334     CPPFLAGS="${CPPFLAGS_save}"
4335     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4336     then
4337       AC_MSG_ERROR([The development package for SDL is not installed.
4338 Please install it and try again. Alternatively you can also configure with
4339 --disable-sdl.])
4340     fi
4341
4342   elif test "${enable_sdl}" =  "yes"
4343   then
4344     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4345 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4346     ])
4347   fi
4348 fi
4349
4350 dnl
4351 dnl  freetype module
4352 dnl
4353 AC_ARG_ENABLE(freetype,
4354   [  --enable-freetype       freetype support (default enabled)])
4355 AC_ARG_ENABLE(fribidi,
4356   [  --enable-fribidi        fribidi support (default enabled)])
4357 if test "${enable_freetype}" != "no"
4358 then
4359    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4360       VLC_ADD_PLUGIN([freetype])
4361       have_freetype=yes
4362       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4363       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4364       if test "${SYS}" = "mingw32"; then
4365         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4366      fi
4367     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4368       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4369        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4370     AC_CHECK_HEADERS(Carbon/Carbon.h,
4371       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4372   ],[
4373   have_freetype=no
4374   AS_IF([ test "${enable_freetype}" =  "yes"],[
4375     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4376 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4377       ])
4378     ])
4379   ])
4380
4381   dnl fribidi support
4382   if test "${enable_fribidi}" != "no"
4383   then
4384     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4385       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4386       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4387     ])
4388     fi
4389 fi
4390
4391 dnl
4392 dnl  libxml2 module
4393 dnl
4394 AC_ARG_ENABLE(libxml2,
4395   [  --enable-libxml2        libxml2 support (default enabled)])
4396 if test "${enable_libxml2}" != "no"
4397 then
4398   XML2_PATH="${PATH}"
4399   AC_ARG_WITH(xml2-config-path,
4400     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4401     [ if test "${with_xml2_config_path}" != "no"; then
4402         XML2_PATH="${with_xml2_config_path}:${PATH}"
4403       fi ])
4404   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4405   if test "${XML2_CONFIG}" != "no"; then
4406     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4407     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4408     dnl depends on the xmlTextReader extension
4409     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4410     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4411     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4412       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4413         VLC_ADD_PLUGIN([xml]) ],[
4414           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4415           if test "${enable_xml2}" = "yes"; then
4416             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4417           fi])
4418        ],[
4419       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4420       if test "${enable_xml2}" = "yes"; then
4421         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4422       fi])
4423     LDFLAGS="${LDFLAGS_save}"
4424     CPPFLAGS="${CPPFLAGS_save}"
4425   else
4426     if test "${enable_xml2}" = "yes"; then
4427       AC_MSG_ERROR([Could not find libxml2])
4428     fi
4429   fi
4430 fi
4431
4432 dnl
4433 dnl  SVG module
4434 dnl
4435 AC_ARG_ENABLE(svg,
4436   [  --enable-svg            SVG support (default disabled)])
4437 if test "${enable_svg}" = "yes"
4438 then
4439   PKG_CHECK_MODULES(SVG, 
4440         librsvg-2.0 >= 2.9.0,
4441         [
4442           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4443           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4444           VLC_ADD_PLUGIN([svg]) ],
4445         [AC_MSG_WARN(SVG library not found)])
4446 fi
4447
4448 dnl
4449 dnl Snapshot vout module (with cache)
4450 dnl
4451 AC_ARG_ENABLE(snapshot,
4452   [  --enable-snapshot       snapshot module (default disabled)])
4453 if test "${enable_snapshot}" = "yes"
4454 then
4455   VLC_ADD_PLUGIN([snapshot])
4456 fi
4457
4458 dnl
4459 dnl  Qt Embedded module
4460 dnl  (disabled by default)
4461 dnl
4462 AC_ARG_ENABLE(qte,
4463   [  --enable-qte            QT Embedded support (default disabled)])
4464 if test "${enable_qte}" = "yes"
4465 then
4466   AC_ARG_WITH(qte,
4467   [    --with-qte=PATH       Qt Embedded headers and libraries])
4468   if test "${with_qte}" != "no" -a -n "${with_qte}"
4469   then
4470     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4471     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])
4472   else
4473     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4474     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4475   fi
4476   VLC_ADD_PLUGIN([qte])
4477   NEED_QTE_MAIN=yes
4478   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4479   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4480     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4481   ] )
4482   CPPFLAGS="${CPPFLAGS_save}"
4483 fi
4484
4485 dnl
4486 dnl  Qt Video output module
4487 dnl  (disabled by default)
4488 dnl
4489 dnl AC_ARG_ENABLE(qt_video,
4490 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4491 dnl if test "${enable_qt_video}" = "yes"
4492 dnl then
4493 dnl  VLC_ADD_PLUGIN([qt_video])
4494 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4495 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4496 dnl   AC_CHECK_LIB(qt-mt,main,[
4497 dnl    VLC_ADD_LIBS([qt_video],[-lqt-mt])
4498 dnl  ],[
4499 dnl    AC_CHECK_LIB(qt,main,[
4500 dnl      VLC_ADD_LIBS([qt_video],[-lqt])
4501 dnl    ])
4502 dnl  ])
4503 dnl  NEED_QTE_MAIN=yes
4504 dnl  LDFLAGS="${LDFLAGS_save}"
4505 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4506 dnl fi
4507
4508 dnl
4509 dnl Roku HD1000 Video output module
4510 dnl
4511 AC_ARG_ENABLE(hd1000v,
4512   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4513 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4514   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4515    test "${enable_hd1000v}" = "yes"); then
4516   AC_LANG_PUSH([C++])
4517   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4518   [
4519     can_build_roku="yes"
4520   ],
4521   [
4522     can_build_roku="no"
4523     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4524   ])
4525   if test "$can_build_roku" = "yes"
4526   then
4527     VLC_ADD_PLUGIN([hd1000v])
4528     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4529   fi
4530   AC_LANG_POP([C++])
4531 fi
4532
4533 dnl
4534 dnl  Windows DirectX module
4535 dnl
4536
4537 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4538 then
4539   VLC_ADD_PLUGIN([panoramix])
4540 fi
4541
4542 AC_ARG_ENABLE(directx,
4543   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4544 if test "${enable_directx}" != "no"
4545 then
4546   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4547   then
4548     AC_ARG_WITH(directx,
4549     [    --with-directx=PATH   Win32 DirectX headers])
4550     if test -z "${with_directx}"
4551     then
4552       AC_CHECK_HEADERS(ddraw.h,
4553       [ VLC_ADD_PLUGIN([vout_directx])
4554         VLC_ADD_PLUGIN([aout_directx])
4555         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4556       ])
4557       AC_CHECK_HEADERS(GL/gl.h,
4558       [ VLC_ADD_PLUGIN([glwin32])
4559         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4560       ])
4561       AC_CHECK_HEADERS(d3d9.h,
4562       [ VLC_ADD_PLUGIN([direct3d])
4563         VLC_ADD_LIBS([direct3d],[-lgdi32])
4564       ])
4565     else
4566       AC_MSG_CHECKING(for directX headers in ${with_directx})
4567       if test -f ${with_directx}/ddraw.h
4568       then
4569         VLC_ADD_PLUGIN([vout_directx])
4570         VLC_ADD_PLUGIN([aout_directx])
4571         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4572         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4573         AC_MSG_RESULT(yes)
4574       else
4575         AC_MSG_RESULT(no)
4576         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4577       fi
4578     fi
4579   fi
4580 fi
4581
4582 dnl
4583 dnl  Linux framebuffer module
4584 dnl
4585 AC_ARG_ENABLE(fb,
4586   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4587     if test "${enable_fb}" != "no"
4588     then
4589       AC_CHECK_HEADERS(linux/fb.h, [
4590         VLC_ADD_PLUGIN([fb])
4591       ])
4592     fi
4593
4594 dnl
4595 dnl  Linux MGA module
4596 dnl
4597 AC_ARG_ENABLE(mga,
4598   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4599   [ if test "${enable_mga}" = "yes"
4600     then
4601       VLC_ADD_PLUGIN([mga])
4602     fi ])
4603
4604 dnl
4605 dnl  SVGAlib module
4606 dnl
4607 AC_ARG_ENABLE(svgalib,
4608   [  --enable-svgalib        SVGAlib support (default disabled)])
4609 if test "${enable_svgalib}" = "yes"
4610 then
4611   VLC_ADD_PLUGIN([svgalib])
4612   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4613 fi
4614
4615 dnl
4616 dnl  DirectFB module
4617 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4618 dnl  TODO: support for static linking
4619 dnl
4620 AC_ARG_ENABLE(directfb,
4621   [  --enable-directfb       DirectFB support (default disabled)])
4622 AC_ARG_WITH(directfb, 
4623   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4624
4625 if test "${enable_directfb}" = "yes"; then
4626     have_directfb="false"
4627     CPPFLAGS_mydirectfb=
4628     LIBS_mydirectfb=
4629     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4630         dnl Trying the given location
4631         CPPFLAGS_save="${CPPFLAGS}"
4632         LIBS_save="${LIBS}"
4633
4634         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4635         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4636         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4637
4638         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4639         LIBS="${LIBS} ${LIBS_new}"
4640
4641         dnl FIXME: too obscure
4642         AC_CHECK_HEADER([directfb.h], [
4643             AC_CHECK_LIB([direct],[direct_initialize], [
4644                 AC_CHECK_LIB([fusion], [fusion_enter], [
4645                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4646                 ], have_directfb="false")
4647             ], have_directfb="false")
4648         ], have_directfb="false")
4649
4650         dnl Restore flags
4651         CPPFLAGS="${CPPFLAGS_save}"
4652         LIBS="${LIBS_save}"
4653
4654         if test "${have_directfb}" = "true"; then
4655             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4656             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4657         fi
4658     else 
4659         dnl Look for directfb-config
4660         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4661         if test "${DIRECTFB_CONFIG}" != "no"; then
4662             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4663             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4664             have_directfb="true"
4665         else 
4666             dnl Trying with pkg-config
4667             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4668                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4669                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4670                 have_directfb="true"
4671                 ], [have_directfb="false"])
4672         fi
4673     fi
4674     if test "${have_directfb}" = "true"; then
4675         VLC_ADD_PLUGIN([directfb])
4676         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4677         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4678     else 
4679         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4680     fi
4681 fi
4682  
4683
4684
4685 dnl
4686 dnl  GGI module
4687 dnl
4688 AC_ARG_ENABLE(ggi,
4689   [  --enable-ggi            GGI support (default disabled)])
4690 if test "${enable_ggi}" = "yes"
4691 then
4692   VLC_ADD_PLUGIN([ggi])
4693   VLC_ADD_LIBS([ggi],[-lggi])
4694   AC_ARG_WITH(ggi,
4695     [    --with-ggi=PATH       path to libggi],
4696     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4697       then
4698         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4699         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4700       fi ])
4701 fi
4702
4703 dnl
4704 dnl  Glide module
4705 dnl
4706 AC_ARG_ENABLE(glide,
4707   [  --enable-glide          Glide (3dfx) support (default disabled)])
4708 if test "${enable_glide}" = "yes"
4709 then
4710   CFLAGS_save="${CFLAGS}"
4711   AC_ARG_WITH(glide,
4712     [    --with-glide=PATH     path to libglide],
4713     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4714       then
4715         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4716         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4717         CFLAGS="$CFLAGS -I${with_glide}/include"
4718     fi ])
4719    CFLAGS="$CFLAGS -I/usr/include/glide"
4720    AC_CHECK_HEADER(glide.h,[   
4721       VLC_ADD_PLUGIN([glide])
4722       VLC_ADD_LIBS([glide],[-lglide2x -lm])
4723       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4724     ],[
4725       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4726      ])
4727    CFLAGS="${CFLAGS_save}"
4728 fi
4729
4730 dnl
4731 dnl  AA plugin
4732 dnl
4733 AC_ARG_ENABLE(aa,
4734   [  --enable-aa             aalib output (default disabled)])
4735 if test "${enable_aa}" = "yes"
4736 then
4737   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4738   if test "${have_aa}" = "true"
4739   then
4740     VLC_ADD_PLUGIN([aa])
4741     VLC_ADD_LIBS([aa],[-laa])
4742   fi
4743 fi
4744
4745 dnl
4746 dnl  libcaca plugin
4747 dnl
4748 AC_ARG_ENABLE(caca,
4749   [  --enable-caca           libcaca output (default disabled)])
4750 if test "${enable_caca}" = "yes"
4751 then
4752   CACA_PATH="${PATH}"
4753   AC_ARG_WITH(caca-config-path,
4754     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4755     [ if test "${with_caca_config_path}" != "no"
4756       then
4757         CACA_PATH="${with_caca_config_path}:${PATH}"
4758       fi ])
4759   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4760   if test "${CACA_CONFIG}" != "no"
4761   then
4762     VLC_ADD_PLUGIN([caca])
4763     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4764     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4765     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4766                                         caca_event_t ev;]],
4767                                         [[ev.type = 0;]]
4768                        )],
4769                        [],
4770       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4771     )
4772   fi
4773 fi
4774
4775 dnl
4776 dnl  win32 GDI plugin
4777 dnl
4778 AC_ARG_ENABLE(wingdi,
4779   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4780 if test "${enable_wingdi}" != "no"; then
4781   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4782     VLC_ADD_PLUGIN([wingdi])
4783     VLC_ADD_LIBS([wingdi],[-lgdi32])
4784   fi
4785   if test "${SYS}" = "mingwce"; then
4786     VLC_ADD_PLUGIN([wingdi])
4787     VLC_ADD_PLUGIN([wingapi])
4788   fi
4789 fi
4790
4791 dnl
4792 dnl  Audio plugins
4793 dnl
4794
4795 AC_ARG_WITH(,[Audio plugins:])
4796
4797 dnl
4798 dnl  OSS /dev/dsp module (enabled by default except on win32)
4799 dnl
4800 AC_ARG_ENABLE(oss,
4801   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4802
4803 if test "${enable_oss}" != "no" &&
4804   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4805    test "${enable_oss}" = "yes")
4806 then
4807   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4808     VLC_ADD_PLUGIN([oss])
4809     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4810   ])
4811 fi
4812
4813 dnl
4814 dnl  Esound module
4815 dnl
4816 AC_ARG_ENABLE(esd,
4817   [  --enable-esd            Esound library support (default disabled)],
4818   [if test "${enable_esd}" = "yes"
4819    then
4820      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4821      if test "${ESD_CONFIG}" != "no"
4822      then
4823        VLC_ADD_PLUGIN([esd])
4824        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4825        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4826      fi
4827    fi])
4828
4829 dnl
4830 dnl  Pulseaudio module
4831 dnl
4832 AC_ARG_ENABLE(pulse,
4833   [  --enable-pulse          Pulseaudio support (default enabled)])
4834   if test "${enable_pulse}" != "no"
4835    then
4836      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4837        [ VLC_ADD_PLUGIN([pulse])
4838         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4839         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4840        [AC_MSG_WARN(pulsaudio library not found)])
4841    fi
4842
4843 dnl
4844 dnl  Portaudio module
4845 dnl
4846 AC_ARG_ENABLE(portaudio,
4847   [  --enable-portaudio      Portaudio library support (default disabled)],
4848   [if test "${enable_portaudio}" = "yes"
4849    then
4850      VLC_ADD_PLUGIN([portaudio])
4851      VLC_ADD_CXXFLAGS([portaudio],[])
4852      if test "${SYS}" = "mingw32"; then
4853         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4854      else
4855         VLC_ADD_LIBS([portaudio],[-lportaudio])
4856      fi
4857    fi])
4858
4859 dnl
4860 dnl  aRts module -- broken (freeze wxWidgets)
4861 dnl
4862 AC_ARG_ENABLE(arts,
4863  [  --enable-arts           aRts sound server (default disabled)],
4864  [if test "${enable_arts}" = "yes"
4865   then
4866     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4867     if test "${ARTS_CONFIG}" != "no"
4868     then
4869       VLC_ADD_PLUGIN([arts])
4870       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4871       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4872     fi
4873   fi])
4874
4875 dnl
4876 dnl  ALSA module
4877 dnl
4878 AC_ARG_ENABLE(alsa,
4879   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4880 if test "${enable_alsa}" != "no"
4881 then
4882   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4883   if test "${have_alsa}" = "true"
4884   then
4885     CFLAGS="${CFLAGS_save}"
4886     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4887                     #define ALSA_PCM_NEW_SW_PARAMS_API
4888                     #include <alsa/asoundlib.h>],
4889        [snd_pcm_hw_params_get_period_time(0,0,0);],
4890         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4891     VLC_ADD_PLUGIN([alsa])
4892     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4893   else
4894     if test "${enable_alsa}" = "yes"; then
4895       AC_MSG_ERROR([Could not find ALSA development headers])
4896     fi
4897   fi
4898 fi
4899
4900 dnl
4901 dnl  win32 waveOut plugin
4902 dnl
4903 AC_ARG_ENABLE(waveout,
4904   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4905 if test "${enable_waveout}" != "no"; then
4906   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4907     VLC_ADD_PLUGIN([waveout])
4908     VLC_ADD_LIBS([waveout],[-lwinmm])
4909   fi
4910   if test "${SYS}" = "mingwce"; then
4911     VLC_ADD_PLUGIN([waveout])
4912   fi
4913 fi
4914
4915 dnl
4916 dnl  CoreAudio plugin
4917 dnl
4918 AC_ARG_ENABLE(macosx-audio,
4919   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4920 if test "${enable_macosx-audio}" != "no" &&
4921   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4922 then
4923   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4924     [ VLC_ADD_PLUGIN([auhal])
4925       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4926     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4927 fi
4928
4929 dnl
4930 dnl  Roku HD1000 audio
4931 dnl
4932 AC_ARG_ENABLE(hd1000a,
4933   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4934 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4935   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4936    test "${enable_hd1000a}" = "yes")
4937 then
4938   AC_LANG_PUSH([C++])
4939   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4940     VLC_ADD_PLUGIN([hd1000a])
4941     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4942   AC_LANG_POP([C++])
4943 fi
4944
4945 dnl
4946 dnl  JACK modules
4947 dnl
4948 AC_ARG_ENABLE(jack,
4949  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4950  [enable_jack="no"])
4951
4952 AS_IF([test "${enable_jack}" != "no"], [
4953   AC_CHECK_HEADERS(jack/jack.h, [
4954     VLC_ADD_PLUGIN([access_jack])
4955     VLC_ADD_PLUGIN([jack])
4956     VLC_ADD_LIBS([access_jack jack],[-ljack])
4957   ],[AC_MSG_ERROR([cannot find JACK headers])])
4958 ])
4959
4960 dnl
4961 dnl  CyberLink for C++ UPnP stack
4962 dnl
4963 AC_ARG_ENABLE(cyberlink,
4964   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4965   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4966   AC_ARG_WITH(cyberlink-tree,
4967     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4968
4969   dnl
4970   dnl test for --with-cyberlink-tree
4971   dnl
4972   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4973     AC_LANG_PUSH(C++)
4974     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4975     AS_IF([test -z "${real_cyberlink_tree}"], [
4976       dnl  The given directory can't be found
4977       AC_MSG_RESULT(no)
4978       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4979     ])
4980     CPPFLAGS_save="${CPPFLAGS}"
4981     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4982     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4983     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4984       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4985         VLC_ADD_PLUGIN([upnp_cc]) 
4986       ],[
4987         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4988       ])
4989     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4990     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4991       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4992       dnl The mere fact that we have to make such an ugly check sucks
4993       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4994       LIBS_save="$LIBS"
4995       LIBS_cclink="no"
4996       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4997         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4998         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4999 #include <cybergarage/upnp/media/player/MediaPlayer.h>
5000 using namespace CyberLink;
5001
5002 class testclass : public SearchResponseListener, public MediaPlayer
5003 {
5004     virtual void deviceSearchResponseReceived( SSDPPacket *)
5005     {
5006     }
5007
5008     public:
5009       testclass (void)
5010       {
5011         addSearchResponseListener (this);
5012         start ();
5013       }
5014 };
5015 ],[testclass l;])],[LIBS_cclink="$l"])
5016       done
5017       LIBS="${LIBS_save}"
5018       dnl should not happen - otherwise this needs fixing - hence FAILURE
5019       AS_IF([test "${LIBS_cclink}" = "no"],
5020         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
5021       AC_MSG_RESULT([${LIBS_cclink}])
5022       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
5023     ], [
5024       AC_MSG_RESULT(no)
5025       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
5026     ])
5027     CPPFLAGS="${CPPFLAGS_save}"
5028     AC_LANG_POP([C++])
5029   ])
5030 ])
5031
5032 dnl
5033 dnl UPnP Plugin (Intel SDK)
5034 dnl
5035 AC_ARG_ENABLE(upnp,
5036   [  --enable-upnp           Intel UPnP SDK (default enabled)])
5037
5038 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
5039 AS_IF([test "x${enable_upnp}" != "xno"], [
5040   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
5041   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
5042     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
5043   ])
5044   AS_IF([test "${has_upnp}" = "yes"], [
5045     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
5046   ])
5047 ], [
5048   has_upnp="no"
5049 ])
5050
5051 AS_IF([test "${has_upnp}" = "yes"], [
5052   VLC_ADD_PLUGIN([upnp_intel])
5053 ])
5054
5055
5056 dnl
5057 dnl  Interface plugins
5058 dnl
5059
5060 AC_ARG_WITH(,[Interface plugins:])
5061
5062 dnl special case for BeOS
5063 if test "${SYS}" = "beos"
5064 then
5065     VLC_ADD_BUILTINS([beos])
5066 fi
5067
5068 dnl
5069 dnl Skins2 module
5070 dnl
5071 AC_ARG_ENABLE(skins2,
5072   [  --enable-skins2         Skins2 interface module (default disabled)])
5073 if test "${enable_skins2}" = "yes" ||
5074   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
5075    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
5076
5077   dnl test for the required libraries
5078   skins2_missing_lib="no"
5079
5080   dnl freetype
5081   if test "${have_freetype}" != "yes"; then
5082     skins2_missing_lib="yes"
5083     if test "${enable_skins2}" = "yes"; then
5084       AC_MSG_ERROR([Could not find freetype (required for skins2)])
5085     fi
5086   fi
5087
5088   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
5089     VLC_ADD_PLUGIN([skins2])
5090     ALIASES="${ALIASES} svlc"
5091     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
5092     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5093     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
5094
5095   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
5096     VLC_ADD_PLUGIN([skins2])
5097     ALIASES="${ALIASES} svlc"
5098     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
5099     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5100     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
5101
5102   else if test "${skins2_missing_lib}" = "no"; then
5103     VLC_ADD_PLUGIN([skins2])
5104     ALIASES="${ALIASES} svlc"
5105     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
5106     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5107     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
5108   fi fi fi
5109 fi
5110 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
5111
5112 dnl dnl
5113 dnl dnl  Gtk+ module
5114 dnl dnl
5115 dnl AC_ARG_ENABLE(gtk,
5116 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
5117 dnl if test "${enable_gtk}" != "no"
5118 dnl then
5119 dnl   GTK_PATH="${PATH}"
5120 dnl   AC_ARG_WITH(gtk-config-path,
5121 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
5122 dnl     [ if test "${with_gtk_config_path}" != "no"
5123 dnl       then
5124 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
5125 dnl       fi ])
5126 dnl   # look for gtk-config
5127 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
5128 dnl   GTK_CONFIG=${GTK12_CONFIG}
5129 dnl   if test "${GTK_CONFIG}" = "no"
5130 dnl   then
5131 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
5132 dnl   fi
5133 dnl   if test "${GTK_CONFIG}" != "no"
5134 dnl   then
5135 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
5136 dnl     then
5137 dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
5138 dnl     fi
5139 dnl     if test "${SYS}" != "mingw32"; then
5140 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
5141 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
5142 dnl     else
5143 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
5144 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
5145 dnl     fi
5146 dnl     # now look for the gtk.h header
5147 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
5148 dnl     ac_cv_gtk_headers=yes
5149 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
5150 dnl       ac_cv_gtk_headers=no
5151 dnl       echo "Cannot find gtk development headers."
5152 dnl     ])
5153 dnl     if test "${ac_cv_gtk_headers}" = "yes"
5154 dnl     then
5155 dnl       VLC_ADD_PLUGIN([gtk])
5156 dnl       if test "${SYS}" != "mingw32"; then
5157 dnl         NEED_GTK_MAIN=yes
5158 dnl       fi
5159 dnl       ALIASES="${ALIASES} gvlc"
5160 dnl     fi
5161 dnl     CPPFLAGS="${CPPFLAGS_save}"
5162 dnl   fi
5163 dnl fi
5164 dnl 
5165 dnl
5166 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
5167 dnl
5168 dnl AC_ARG_ENABLE(gtk2,
5169 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
5170 dnl if test "${enable_gtk2}" = "yes"
5171 dnl then
5172 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5173 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5174 dnl   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5175 dnl   VLC_ADD_PLUGIN([gtk2])
5176 dnl   if test "${SYS}" != "mingw32"; then
5177 dnl     NEED_GTK2_MAIN=yes
5178 dnl   fi
5179 dnl fi
5180
5181 dnl
5182 dnl  PDA Gtk+2 module
5183 dnl
5184 AC_ARG_ENABLE(pda,
5185   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
5186 if test "${enable_pda}" = "yes"
5187 then
5188   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5189   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5190   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5191   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
5192   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
5193   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
5194   VLC_ADD_PLUGIN([pda])
5195   if test "${SYS}" != "mingw32"; then
5196     NEED_GTK2_MAIN=yes
5197   fi
5198 fi
5199 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
5200
5201 dnl dnl
5202 dnl dnl  Gnome module
5203 dnl dnl
5204 dnl AC_ARG_ENABLE(gnome,
5205 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
5206 dnl   [if test "${enable_gnome}" = "yes"; then
5207 dnl     # look for gnome-config
5208 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
5209 dnl     if test -x ${GNOME_CONFIG}
5210 dnl     then
5211 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
5212 dnl        VLC_ADD_LIBS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
5213 dnl     fi
5214 dnl     # now look for the gnome.h header
5215 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
5216 dnl     AC_CHECK_HEADERS(gnome.h, [
5217 dnl       VLC_ADD_PLUGIN([gnome])
5218 dnl       NEED_GTK_MAIN=yes
5219 dnl       NEED_GNOME_MAIN=yes
5220 dnl       ALIASES="${ALIASES} gnome-vlc"
5221 dnl       dnl We need this because of some moronic gnomesupport.h flavours
5222 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
5223 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
5224 dnl         AC_MSG_RESULT(yes)
5225 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
5226 dnl                   Define if <gnome.h> defines strndup.)],[
5227 dnl         AC_MSG_RESULT(no)])
5228 dnl      ],[
5229 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
5230 dnl developement tools or remove the --enable-gnome option])
5231 dnl      ])
5232 dnl     CPPFLAGS="${CPPFLAGS_save}"
5233 dnl   fi])
5234
5235 dnl
5236 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5237 dnl
5238 dnl AC_ARG_ENABLE(gnome2,
5239 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5240 dnl if test "${enable_gnome2}" = "yes"
5241 dnl then
5242 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5243 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5244 dnl   VLC_ADD_LIBS([gnome2],[${GNOME2_LIBS}])
5245 dnl   VLC_ADD_PLUGIN([gnome2])
5246 dnl   if test "${SYS}" != "mingw32"; then
5247 dnl     NEED_GNOME2_MAIN=yes
5248 dnl   fi
5249 dnl fi
5250
5251 dnl
5252 dnl  wxWidgets module
5253 dnl
5254 AC_ARG_ENABLE(wxwidgets,
5255   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5256
5257 if test "${enable_wxwidgets}" = "yes"
5258 then
5259   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5260   WXWIDGETS_PATH="${PATH}"
5261   AC_ARG_WITH(wx-config-path,
5262     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5263     [ if test "${with_wx_config_path}" != "no"
5264       then
5265         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5266       fi ])
5267   WXWIDGETS_NAME="wx-config"
5268   AC_ARG_WITH(wx-config,
5269     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5270     [ if test "${with_wx_config}" != "no"
5271       then
5272         WXWIDGETS_NAME="${with_wx_config}"
5273       fi ])
5274   # look for wx-config
5275   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5276   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5277   then
5278     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5279     then
5280       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5281     fi
5282     AC_LANG_PUSH(C++)
5283     # Turn this error:
5284     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5285     # into a warning. However better would be to fix playlist.cpp
5286     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5287         [ac_cv_cxx_fpermissive],
5288         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5289          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5290                         ac_cv_cxx_fpermissive=no)])
5291     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5292       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5293     fi
5294     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
5295     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5296     # check if we must link against gtk2 libs
5297     # if __WXGTK20__ && __WXGTK__ are defined
5298     # for modules/gui/wxwidgets/video.cpp
5299     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5300 #include <wx/wx.h>
5301 #ifdef __WXGTK20__
5302 #error ok, we need to link against gtk2
5303 #endif
5304         ])],[WXGTK=no],[WXGTK=yes])
5305     if test "$WXGTK" = "yes"; then
5306       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5307     fi
5308     if ${WX_CONFIG} --unicode
5309     then 
5310       # wxwidgets should provide the following flags but does not
5311       # the following is required to compile for win32
5312       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5313     else
5314       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5315     fi
5316     if test "$have_libcdio" = "yes"
5317     then 
5318       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
5319       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5320     else 
5321       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5322     fi
5323
5324     if test "$have_libvcdinfo" = "yes"
5325     then 
5326       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
5327       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5328     else 
5329       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5330     fi
5331
5332     # now look for the wxprec.h header
5333     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5334     ac_cv_wx_headers=yes
5335     AC_CHECK_HEADERS(wx/wxprec.h, , [
5336       ac_cv_wx_headers=no
5337       echo "Cannot find wxWidgets development headers."
5338     ])
5339     if test "${ac_cv_wx_headers}" = "yes"
5340     then
5341       VLC_ADD_PLUGIN([wxwidgets])
5342       AC_DEFINE([HAVE_WX], 1, [Define to 1 if you have WxWidgets library.])
5343       ALIASES="${ALIASES} wxvlc"
5344     fi
5345     CPPFLAGS="${CPPFLAGS_save}"
5346     AC_LANG_POP(C++)
5347   fi
5348   dnl WxWidgets plugin will yield incorrect code without this
5349   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5350 fi
5351
5352 dnl
5353 dnl QT 4
5354 dnl
5355 enableqt4=false
5356 AC_ARG_ENABLE(qt4,
5357   [  --enable-qt4            QT 4 support (default enabled) ])
5358 AS_IF([test "${enable_qt4}" != "no" &&
5359   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5360   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5361     [ VLC_ADD_PLUGIN([qt4])
5362       AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5363       ALIASES="${ALIASES} qvlc"
5364       enableqt4=true
5365       if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"; then
5366           VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5367       else
5368           VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5369       fi
5370       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
5371       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5372       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5373       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5374       ],
5375       AS_IF([test "${enable_qt4}" = "yes"],[
5376         AC_MSG_ERROR(QT4 library not found)
5377       ],[
5378         AC_MSG_WARN(QT4 library not found)
5379       ])
5380     )
5381 ])
5382 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5383
5384 dnl
5385 dnl  WinCE GUI module
5386 dnl
5387 AC_ARG_ENABLE(wince,
5388   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
5389 if test "${enable_wince}" != "no"; then
5390   if test "${SYS}" = "mingwce"; then
5391     VLC_ADD_BUILTINS([wince])
5392     VLC_ADD_CXXFLAGS([wince],[])
5393     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5394     dnl Gross hack
5395     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5396   elif test "${SYS}" = "mingw32"; then
5397     VLC_ADD_CXXFLAGS([wince],[])
5398     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5399     dnl Gross hack
5400     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5401   fi
5402 fi
5403
5404 dnl
5405 dnl Simple test for skins2 dependency
5406 dnl
5407 if test "${enable_skins2}" != "no"
5408 then
5409   if test "${WX_CONFIG}" = "no"
5410   then
5411     AC_MSG_ERROR([The skins2 module depends on the wxWidgets development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWidgets development package or alternatively you can also configure with: --disable-wxwidgets --disable-skins2.])
5412   fi
5413 fi
5414
5415 dnl dnl
5416 dnl dnl  Qt module
5417 dnl dnl
5418 dnl AC_ARG_ENABLE(qt,
5419 dnl   [  --enable-qt             Qt interface support (default disabled)],
5420 dnl   [if test "${enable_qt}" = "yes"; then
5421 dnl      VLC_ADD_PLUGIN([qt])
5422 dnl      ALIASES="${ALIASES} qvlc"
5423 dnl      VLC_ADD_LIBS([qt],[-L${QTDIR}/lib])
5424 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5425 dnl      AC_CHECK_LIB(qt-mt,main,[
5426 dnl        VLC_ADD_LIBS([qt],[-lqt-mt])
5427 dnl      ],[
5428 dnl        AC_CHECK_LIB(qt,main,[
5429 dnl          VLC_ADD_LIBS([qt],[-lqt])
5430 dnl        ])
5431 dnl      ])
5432 dnl      LDFLAGS="${LDFLAGS_save}"
5433 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5434 dnl      if test -x ${QTDIR}/bin/moc
5435 dnl      then
5436 dnl        MOC=${QTDIR}/bin/moc
5437 dnl      else
5438 dnl        MOC=moc
5439 dnl      fi
5440 dnl    fi])
5441 dnl 
5442 dnl dnl
5443 dnl dnl  KDE module
5444 dnl dnl
5445 dnl AC_ARG_ENABLE(kde,
5446 dnl   [  --enable-kde            KDE interface support (default disabled)],
5447 dnl   [if test "${enable_kde}" = "yes"; then
5448 dnl      VLC_ADD_PLUGIN([kde])
5449 dnl      ALIASES="${ALIASES} kvlc"
5450 dnl      VLC_ADD_LIBS([kde],[-L${KDEDIR}/lib])
5451 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5452 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5453 dnl      AC_CHECK_LIB(kfile,main,[
5454 dnl        VLC_ADD_LIBS([kde],[-lkfile])
5455 dnl      ])
5456 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5457 dnl      AC_CHECK_LIB(kdeui,main,[
5458 dnl        VLC_ADD_LIBS([kde],[-lkdeui])
5459 dnl      ])
5460 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5461 dnl      AC_CHECK_LIB(kio,main,[
5462 dnl        VLC_ADD_LIBS([kde],[-lkio])
5463 dnl      ])
5464 dnl      LDFLAGS="${LDFLAGS_save}"
5465 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5466 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5467 dnl      if test -x ${QTDIR}/bin/moc
5468 dnl      then
5469 dnl        MOC=${QTDIR}/bin/moc
5470 dnl      else
5471 dnl        MOC=moc
5472 dnl      fi
5473 dnl    fi])
5474
5475 dnl
5476 dnl  Opie QT embedded module
5477 dnl
5478 AC_ARG_ENABLE(opie,
5479   [  --enable-opie           Qt embedded interface support (default disabled)],
5480   [if test "${enable_opie}" = "yes"; then
5481      AC_ARG_WITH(qte,
5482      [    --with-qte=PATH       Qt Embedded headers and libraries])
5483      if test "${with_qte}" != "no" -a -n "${with_qte}"
5484      then
5485        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5486        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])
5487      else
5488        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5489        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5490      fi
5491      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5492      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5493        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5494      ] )
5495      CPPFLAGS="${CPPFLAGS_save}"
5496
5497      VLC_ADD_PLUGIN([opie])
5498      NEED_QTE_MAIN=yes
5499      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5500      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5501      if test "${with_qte}" != "no" -a -n "${with_qte}"
5502      then
5503        MOC=${with_qte}/bin/moc
5504      else
5505        MOC=${QTDIR}/bin/moc
5506      fi
5507    fi])
5508
5509 dnl
5510 dnl  MacOS X video output/gui modules
5511 dnl
5512 AC_ARG_ENABLE(macosx,
5513   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5514 if test "x${enable_macosx}" = "xyes"
5515 then
5516 #  VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5517   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,Cocoa])
5518   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5519   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5520   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5521   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5522   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5523   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QTKit])
5524   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5525   VLC_ADD_LDFLAGS([opengllayer],                      [-Wl,-framework,QuartzCore])
5526   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5527
5528 #  VLC_ADD_PLUGIN([access_eyetv])
5529   VLC_ADD_PLUGIN([macosx])
5530   VLC_ADD_PLUGIN([minimal_macosx])
5531  
5532   ORIGCFLAGS=$CFLAGS
5533   CFLAGS="$CFLAGS -x objective-c"
5534   AC_CHECK_HEADER(QuartzCore/CALayer.h, [VLC_ADD_BUILTINS([opengllayer])])
5535   CFLAGS=$ORIGCFLAGS
5536 fi
5537
5538 dnl
5539 dnl  QNX RTOS module
5540 dnl
5541 AC_ARG_ENABLE(qnx,
5542   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5543     if test "${enable_qnx}" != "no"
5544     then
5545       AC_CHECK_HEADERS(Ph.h, [
5546         VLC_ADD_PLUGIN([qnx])
5547         VLC_ADD_LIBS([qnx],[-lasound -lph])
5548       ])
5549     fi
5550
5551 dnl
5552 dnl  ncurses module
5553 dnl
5554 AC_ARG_ENABLE(ncurses,
5555   [  --disable-ncurses       ncurses interface support (default enabled)],
5556   [if test "${enable_ncurses}" != "no"; then
5557     AC_CHECK_HEADER(ncurses.h,
5558       [AC_CHECK_LIB(ncursesw, mvprintw,
5559         [VLC_ADD_PLUGIN([ncurses])
5560         VLC_ADD_LIBS([ncurses],[-lncursesw])
5561         ALIASES="${ALIASES} nvlc"
5562         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5563         AC_CHECK_LIB(ncursesw, tgetent, [],
5564           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5565             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5566               [AS_IF([test "x${enable_ncurses}" != "x"],
5567                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5568                )])])
5569             ]
5570           )
5571         )
5572         ],
5573         [AC_CHECK_LIB( ncurses, mvprintw,
5574           [VLC_ADD_PLUGIN([ncurses])
5575           ALIASES="${ALIASES} nvlc"
5576           VLC_ADD_LIBS([ncurses],[-lncurses])
5577           AC_CHECK_LIB(ncurses, tgetent, [],
5578             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5579               [AS_IF([test "x${enable_ncurses}" != "x"],
5580                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5581             )]
5582           )],
5583           [AS_IF([test "x${enable_ncurses}" != "x"], [
5584             AC_MSG_ERROR([libncurses not found])])]
5585         )]
5586       )]
5587     )
5588   fi]
5589 )
5590
5591 dnl
5592 dnl  XOSD plugin
5593 dnl
5594 AC_ARG_ENABLE(xosd,
5595   [  --enable-xosd           xosd interface support (default disabled)])
5596 if test "${enable_xosd}" = "yes"
5597 then
5598   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5599   AC_CHECK_LIB(xosd,xosd_set_offset,
5600       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5601     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5602         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5603       AC_TRY_COMPILE([#include <xosd.h>],
5604          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5605           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5606   if test "${have_xosd}" = "true"
5607   then
5608     VLC_ADD_PLUGIN([xosd])
5609     VLC_ADD_LIBS([xosd],[-lxosd])
5610   fi
5611 fi
5612
5613 dnl
5614 dnl Framebuffer (overlay) plugin
5615 dnl
5616 AC_ARG_ENABLE(fbosd,
5617   [  --enable-fbosd          fbosd interface support (default disabled)])
5618 if test "${enable_fbosd}" = "yes"
5619 then
5620   AC_CHECK_HEADERS(linux/fb.h, [
5621     VLC_ADD_PLUGIN([fbosd])
5622  ])
5623 fi
5624
5625 dnl
5626 dnl Visualisation plugin
5627 dnl
5628 AC_ARG_ENABLE(visual,
5629   [  --enable-visual         visualisation plugin (default enabled)])
5630 if test "${enable_visual}" != "no"
5631 then
5632     VLC_ADD_PLUGIN([visual])
5633 fi
5634
5635 dnl
5636 dnl OpenGL visualisation plugin
5637 dnl
5638 AC_ARG_ENABLE(galaktos,
5639   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5640 if test "${enable_galaktos}" = "yes"
5641 then
5642   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5643     VLC_ADD_PLUGIN([galaktos])
5644     if test "${SYS}" != "mingw32"; then
5645       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5646     else
5647       VLC_ADD_LIBS([galaktos],[-lopengl32])
5648     fi
5649   ])
5650 fi
5651
5652 dnl
5653 dnl  goom visualization plugin
5654 dnl
5655 AC_ARG_ENABLE(goom,
5656 [  --enable-goom           goom visualisation plugin (default disabled)])
5657 if test "${enable_goom}" = "yes"
5658 then
5659   AC_ARG_WITH(goom-tree,
5660     [    --with-goom-tree=PATH goom tree for static linking (required)])
5661
5662   dnl
5663   dnl test for --with-goom-tree
5664   dnl
5665   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5666     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5667     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5668     if test -z "${real_goom_tree}"; then
5669       dnl  The given directory can't be found
5670       AC_MSG_RESULT(no)
5671       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5672     fi
5673     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5674       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5675       VLC_ADD_PLUGIN([goom])
5676       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5677       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5678     else
5679       dnl  The given libgoom2 wasn't built, try to look for the old goom
5680       AC_MSG_RESULT(no)
5681       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5682       if test -f "${real_goom_tree}/libgoom.a"; then
5683         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5684         VLC_ADD_PLUGIN([goom])
5685         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5686         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5687       else
5688         dnl  The given libgoom wasn't built
5689         AC_MSG_RESULT(no)
5690         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5691       fi
5692     fi
5693   else
5694     AC_CHECK_HEADERS(goom/goom.h, [
5695       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5696       AC_CHECK_LIB(goom2, goom_init, [
5697         VLC_ADD_PLUGIN([goom])
5698         VLC_ADD_LIBS([goom],[-lgoom2])
5699       ],[
5700         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5701       ])
5702       LDFLAGS="${LDFLAGS_save}"
5703     ])
5704   fi
5705 fi
5706
5707 dnl
5708 dnl  AtmoLight (homebrew AmbiLight)
5709 dnl
5710 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5711    AC_ARG_ENABLE(atmo,
5712 [  --disable-atmo       AtmoLight (homebrew philips ambilight) (default enabled)])
5713    if test "${enable_atmo}" != "no"; then
5714       AC_LANG_PUSH(C++)
5715       VLC_ADD_PLUGIN([atmo])
5716       AC_LANG_POP(C++)
5717    fi
5718 fi
5719
5720 dnl
5721 dnl  Bonjour services discovery
5722 dnl
5723 AC_ARG_ENABLE(bonjour,
5724   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5725 if test "${enable_bonjour}" != "no"
5726 then
5727   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5728     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5729        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5730       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5731       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5732       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5733       VLC_ADD_PLUGIN([bonjour]) ],
5734     [AC_MSG_WARN(avahi-client library not found)])
5735 fi
5736
5737 dnl
5738 dnl  Lirc plugin
5739 dnl
5740 AC_ARG_ENABLE(lirc,
5741   [  --enable-lirc           lirc support (default disabled)])
5742 if test "${enable_lirc}" = "yes"
5743 then
5744   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5745   if test "${have_lirc}" = "true"
5746   then
5747     VLC_ADD_PLUGIN([lirc])
5748     VLC_ADD_LIBS([lirc],[-llirc_client])
5749   fi
5750 fi
5751
5752
5753 AC_ARG_WITH(,[Misc options:])
5754
5755 dnl
5756 dnl libgcrypt
5757 dnl
5758 AC_ARG_ENABLE(libgcrypt,
5759   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5760
5761 GCRYPT_PATH="${PATH}"
5762 AC_ARG_WITH(libgcrypt-config-path,
5763 [    --with-libgcrypt-config-path=PATH libgcrypt-config path (default search in \$PATH)],
5764    [ if test "${with_libgcrypt_config_path}" != "no"
5765      then
5766        GCRYPT_PATH="${with_libgcrypt_config_path}:${PATH}"
5767      fi ])
5768
5769 if test "${enable_libgcrypt}" != "no"
5770 then
5771   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5772   dnl it and looks for libgcrypt headers in the wrong place.
5773   if test "${host_cpu}" = "${build_cpu}"
5774   then
5775     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5776   else
5777     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5778   fi
5779 fi
5780 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5781 AS_IF([test "${have_libgcrypt}" = "yes"],[
5782         # look for libgcrypt-config
5783         AC_PATH_PROG(GCRYPT_CONFIG, "libgcrypt-config", no, ${GCRYPT_PATH})
5784         GCRYPT_CFLAGS=`${GCRYPT_CONFIG} --cflags`
5785         GCRYPT_LIBS=`${GCRYPT_CONFIG} --libs`
5786 ])
5787
5788 dnl
5789 dnl TLS/SSL
5790 dnl
5791 AC_ARG_ENABLE(gnutls,
5792   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5793
5794 AS_IF([test "${enable_gnutls}" != "no"], [
5795   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5796     VLC_ADD_PLUGIN([gnutls])
5797     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5798     AS_IF([test "${SYS}" = "mingw32"], [
5799       dnl pkg-config --libs gnutls omits these
5800       VLC_ADD_LIBS([gnutls], [-lz])
5801       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5802     ])
5803     AS_IF([test "${have_libgcrypt}" = "yes"],[
5804       VLC_ADD_LIBS([gnutls], ${GCRYPT_LIBS})
5805       VLC_ADD_CFLAGS([gnutls], ${GCRYPT_CFLAGS})
5806     ], [-lgpg-error])
5807     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5808   ], [
5809     AS_IF([test "${enable_gnutls}" = "yes"], [
5810       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5811     ])
5812   ])
5813 ])
5814
5815 dnl
5816 dnl update checking system
5817 dnl
5818 AC_ARG_ENABLE(update-check,
5819   [  --enable-update-check   update checking system (default disabled)])
5820 if test "${enable_update_check}" = "yes"
5821 then
5822   if test "${have_libgcrypt}" != "yes"
5823   then
5824     AC_MSG_ERROR([libgcrypt is required for update checking system])
5825   fi
5826   VLC_ADD_LIBS([libvlc], ${GCRYPT_LIBS})
5827   VLC_ADD_CFLAGS([libvlc], ${GCRYPT_CFLAGS})
5828   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5829 fi
5830
5831 dnl
5832 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5833 dnl
5834 dnl  We give the user the opportunity to specify
5835 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5836 dnl
5837 AC_ARG_WITH(words,
5838   [    --with-words=endianness set endianness (big or little)])
5839   case "${with_words}" in
5840     big)
5841       ac_cv_c_bigendian=yes
5842       ;;
5843     little)
5844       ac_cv_c_bigendian=no
5845       ;;
5846     *)
5847       dnl  Try to guess endianness by matching patterns on a compiled
5848       dnl  binary, by looking for an ASCII or EBCDIC string
5849       AC_CACHE_CHECK([whether the byte order is big-endian],
5850         [ac_cv_c_bigendian],
5851         [ac_cv_c_bigendian="unknown"
5852         [cat >conftest.c <<EOF
5853         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5854         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5855         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5856         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5857         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5858         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5859         int main(void) { _a(); _e(); return 0; }
5860 EOF
5861         ]
5862         if test -f conftest.c
5863         then
5864           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5865               && test -f conftest.o
5866           then
5867             if test "`strings conftest.o | grep BIGenDianSyS`"
5868             then
5869               ac_cv_c_bigendian="yes"
5870             fi
5871             if test "`strings conftest.o | grep LiTTleEnDian`"
5872             then
5873               ac_cv_c_bigendian="no"
5874             fi
5875           fi
5876         fi
5877       ])
5878       if test "${ac_cv_c_bigendian}" = "unknown"
5879       then
5880         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5881       fi
5882       ;;
5883   esac
5884 dnl  Now we know what to use for endianness, just put it in the header
5885 if test "${ac_cv_c_bigendian}" = "yes"
5886 then
5887   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5888 fi
5889
5890 dnl
5891 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5892 dnl
5893 loader=false
5894 AC_ARG_ENABLE(loader,
5895   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5896 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5897 AS_IF([test "${enable_loader}" = "yes"],
5898   [ VLC_ADD_PLUGIN([dmo])
5899     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5900     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5901     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5902     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5903     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5904     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5905   ])
5906
5907 AC_ARG_WITH(,[Components:])
5908
5909 dnl
5910 dnl  the VLC binary
5911 dnl
5912 AC_ARG_ENABLE(vlc,
5913   [  --enable-vlc            build the VLC media player (default enabled)])
5914 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5915
5916 dnl
5917 dnl  Microsoft ActiveX support
5918 dnl
5919 activex=false
5920 AC_ARG_ENABLE(activex,
5921   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5922 AC_ARG_WITH(wine-sdk-path,
5923   [    --with-wine-sdk-path=PATH path to wine sdk])
5924 if test "${enable_activex}" != "no"
5925 then
5926   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5927   then
5928     AC_CHECK_PROGS(MIDL, [midl], no)
5929     if test "${with_wine_sdk_path}" != ""
5930     then
5931        WINE_SDK_PATH=${with_wine_sdk_path}
5932        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5933     else
5934        WIDL=no
5935     fi
5936     AC_LANG_PUSH(C++)
5937     AC_CHECK_HEADERS(ole2.h, 
5938       [AC_CHECK_HEADERS(olectl.h,
5939         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5940           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5941           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5942           AC_CHECK_HEADERS(objsafe.h,
5943             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5944             [
5945              #if HAVE_OLE2_H
5946              #   include <ole2.h>
5947              #endif
5948              ]
5949           )
5950           activex=:
5951           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5952         ],
5953         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5954       )],
5955       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5956     )
5957     AC_LANG_POP(C++)
5958   fi
5959 fi
5960 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5961 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5962 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5963 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5964 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5965
5966 dnl
5967 dnl  Mozilla plugin
5968 dnl
5969 mozilla=false
5970 AC_ARG_ENABLE(mozilla,
5971   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5972 AC_ARG_WITH(mozilla-sdk-path,
5973   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5974 AC_LANG_PUSH(C++)
5975 if test "${enable_mozilla}" = "yes" 
5976 then
5977   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5978   need_xpcom_libs=false
5979
5980   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5981   then
5982     dnl New firefox-1.5 SDK api
5983     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5984       [
5985         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5986           [],
5987           [
5988             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5989               [],
5990               [
5991                 PKG_CHECK_MODULES([NSPR], [nspr],
5992                   [],
5993                   [
5994                     AC_MSG_ERROR([Please install the nspr development tools.])
5995                   ]
5996                 )
5997               ]
5998             )
5999           ])
6000         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
6001         MOZILLA_REQUIRED_HEADERS=1
6002         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6003         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6004         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6005           [#if HAVE_NPAPI_H
6006            # include <npapi.h>
6007            #endif
6008           ])
6009         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
6010             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
6011         fi
6012         MOZILLA_REQUIRED_HEADERS=
6013         mozilla=:
6014         firefox_include=`pkg-config --variable=includedir firefox-plugin`
6015         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
6016             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
6017         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
6018             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
6019         else
6020             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
6021         fi
6022         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
6023             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
6024             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
6025         fi
6026         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
6027         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
6028         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
6029         VLC_ADD_PLUGIN([mozilla])
6030         MOZILLA_CONFIG=
6031         CPPFLAGS="${CPPFLAGS_save}"
6032       ],
6033       [
6034         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
6035         if test "${MOZILLA_CONFIG}" = "no"
6036         then
6037           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
6038           if test "${SEAMONKEY_CONFIG}" = "no"
6039           then
6040             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
6041             if test "${XULRUNNER_CONFIG}" = "no"
6042             then
6043               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
6044             else
6045               have_xul=true
6046               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
6047             fi
6048           else
6049             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
6050           fi
6051         fi
6052       ]
6053     )
6054     if test ! -z "${MOZILLA_CONFIG}"
6055     then
6056       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
6057         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
6058         AC_CHECK_LIB(Xt,XtStrings,
6059          [
6060            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
6061            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
6062          ],
6063          [],
6064          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
6065         ])
6066         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
6067         LDFLAGS="${LDFLAGS_save}"
6068       fi
6069
6070       mozilla=:
6071       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
6072       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
6073       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
6074       if ${need_xpcom_libs}; then
6075          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
6076       else
6077          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
6078       fi
6079       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
6080       MOZILLA_REQUIRED_HEADERS=1
6081       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6082       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6083       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6084         [#if HAVE_NPAPI_H
6085          # include <npapi.h>
6086          #endif
6087         ])
6088       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
6089       then
6090         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
6091       fi
6092       MOZILLA_REQUIRED_HEADERS=
6093       CPPFLAGS="${CPPFLAGS_save}"
6094       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
6095     fi
6096     dnl End of moz_sdk = ""
6097   else
6098     dnl special case for mingw32
6099     if test "${SYS}" = "mingw32"
6100     then
6101       AC_CHECK_TOOL(CYGPATH, cygpath, "")
6102       dnl latest gecko sdk does not have an xpcom directory
6103       if test -d "${with_mozilla_sdk_path}/xpcom"; then
6104           mozilla_sdk_xpcom="/xpcom"
6105       fi
6106     fi
6107
6108     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
6109     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
6110     MOZILLA_REQUIRED_HEADERS=1
6111     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6112     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6113     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6114         [#if HAVE_NPAPI_H
6115           #include <npapi.h>
6116           #endif
6117         ])
6118     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
6119     then
6120         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
6121     fi
6122     MOZILLA_REQUIRED_HEADERS=
6123     mozilla=:
6124     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
6125     VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
6126     if ${need_xpcom_libs}; then
6127        VLC_ADD_LIBS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
6128       if test "${SYS}" = "mingw32"; then
6129         dnl latest gecko sdk does not have embedstring
6130         if test -d "${real_mozilla_sdk}/embedstring/bin"
6131         then
6132           VLC_ADD_LIBS([mozilla],[-lembedstring])
6133         fi
6134       fi
6135     fi
6136     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
6137
6138     if test -n "${CYGPATH}"; then
6139       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
6140     fi
6141     CPPFLAGS="${CPPFLAGS_save}"
6142   fi
6143 fi
6144 AC_LANG_POP(C++)
6145 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
6146
6147 dnl Tests for Osso and Xsp
6148 if test "${enable_x11}" != "no" &&
6149   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
6150    test "${enable_x11}" = "yes"); then
6151    AC_CHECK_LIB(osso, osso_display_blanking_pause,[
6152       PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                                
6153           VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
6154           VLC_ADD_LIBS([x11],[-losso])
6155       ])
6156    ])
6157    AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
6158       VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
6159       VLC_ADD_LIBS([x11],[-lXsp])
6160    ])
6161 fi
6162
6163 dnl
6164 dnl  Mediacontrol Python bindings
6165 dnl
6166 AC_ARG_ENABLE(python-bindings,
6167   [  --enable-python-bindings Enable Python bindings (default disabled)])
6168
6169 if test "${enable_python_bindings}" = "yes"; then
6170   AC_PATH_PROG(PYTHON_CONFIG, python-config, no)
6171   CFLAGS="${CFLAGS_save} `${PYTHON_CONFIG} --cflags`"
6172   AC_CHECK_HEADER([Python.h],
6173     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python",
6174     AC_MSG_ERROR([You have to install python-dev to build the bindings]),
6175     []
6176   )
6177   CFLAGS="${CFLAGS_save}"
6178 fi
6179 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
6180
6181 dnl
6182 dnl  Java bindings
6183 dnl
6184 AC_ARG_ENABLE(java-bindings,
6185   [  --enable-java-bindings  Enable Java bindings (default disabled)])
6186 if test "${enable_java_bindings}" = "yes"
6187 then
6188         echo ""
6189         echo "****** WARNING **** WARNING ***** WARNING *************"
6190         echo "*** To compile the java bindings go to the "
6191         echo "*** bindings/java folder and run mvn install. "
6192         echo "*** You need maven2 installed. "
6193         echo "*** This configuration will continue, so you will be "
6194         echo "*** able to compile VideoLAN as usual. "
6195         echo "*******************************************************"
6196         echo ""
6197 fi
6198
6199 dnl
6200 dnl  test plugins
6201 dnl
6202 AC_ARG_ENABLE(testsuite,
6203   [  --enable-testsuite      build test modules (default disabled)])
6204 if test "${enable_testsuite}" = "yes"
6205 then
6206   TESTS="test1 test2 test3 test4"
6207
6208   dnl  we define those so that bootstrap sets the right linker
6209   VLC_ADD_CXXFLAGS([test2],[])
6210   VLC_ADD_OBJCFLAGS([test3],[])
6211   dnl  this one is needed until automake knows what to do
6212   VLC_ADD_LIBS([test3],[-lobjc])
6213
6214   VLC_ADD_PLUGIN([test1])
6215   VLC_ADD_PLUGIN([test2])
6216   VLC_ADD_PLUGIN([test3])
6217   VLC_ADD_PLUGIN([test4])
6218 fi
6219
6220 dnl
6221 dnl Microsoft Layer for Unicode for WIN9x/ME
6222 dnl
6223 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
6224 then
6225     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
6226         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
6227     ])
6228 fi
6229
6230 dnl
6231 dnl  gtk_main plugin
6232 dnl
6233 if test "${NEED_GTK_MAIN}" != "no"
6234 then
6235     VLC_ADD_PLUGIN([gtk_main])
6236     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
6237     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
6238 fi
6239
6240 if test "${NEED_GNOME_MAIN}" != "no"
6241 then
6242     VLC_ADD_PLUGIN([gnome_main])
6243     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
6244     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
6245 fi
6246
6247 if test "${NEED_GTK2_MAIN}" != "no"
6248 then
6249     VLC_ADD_PLUGIN([gtk2_main])
6250     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
6251     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
6252     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
6253     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
6254 fi
6255
6256 if test "${NEED_GNOME2_MAIN}" != "no"
6257 then
6258     VLC_ADD_PLUGIN([gnome2_main])
6259     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
6260     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
6261 fi
6262
6263 dnl
6264 dnl  qte_main plugin
6265 dnl
6266 if test "${NEED_QTE_MAIN}" != "no"
6267 then
6268     VLC_ADD_PLUGIN([qte_main])
6269     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
6270     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
6271     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
6272 fi
6273
6274
6275 dnl
6276 dnl  Plugin and builtin checks
6277 dnl
6278 plugin_support=yes
6279
6280 dnl Automagically disable plugins if there is no system support for
6281 dnl dynamically loadable files (.so, .dll, .dylib).
6282 dnl don't forget vlc-win32 still can load .dll as plugins
6283 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
6284   AC_MSG_WARN([*** No plugin support! Building statically! ***])
6285   plugin_support=no
6286 ])
6287
6288 AS_IF([test "${enable_shared}" = "no"], [
6289   plugin_support=no
6290 ])
6291
6292 AS_IF([test "${plugin_support}" != "no"], [
6293   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
6294 ])
6295 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
6296
6297 dnl Temporary(?) hack for plugins/builtins transition
6298 dnl VLC_ADD_PLUGIN([${BUILTINS}])
6299 dnl BUILTINS=""
6300
6301 dnl
6302 dnl Pic and shared libvlc stuff
6303 dnl
6304 AS_IF([test "${SYS}" = "mingw32"], [
6305   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
6306   FILE_LIBVLC_CONTROL_DLL="!define LIBVLC_CONTROL_DLL libvlc-control.dll"
6307 ])
6308
6309 dnl
6310 dnl  Stuff used by the program
6311 dnl
6312 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
6313 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) ${COPYRIGHT_YEARS} the VideoLAN team", [Copyright string])
6314 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
6315 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
6316 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
6317 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
6318 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
6319 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
6320 AC_SUBST(VERSION_MAJOR)
6321 AC_SUBST(VERSION_MINOR)
6322 AC_SUBST(VERSION_REVISION)
6323 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
6324 if test "${build_os}" = "cygwin"
6325 then
6326     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
6327 else
6328     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
6329 fi
6330 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
6331 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
6332
6333 dnl
6334 dnl  Handle substvars that use $(top_srcdir)
6335 dnl
6336 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6337 AC_SUBST(VLC_CONFIG)
6338 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
6339
6340 dnl
6341 dnl  Restore *FLAGS
6342 dnl
6343 VLC_RESTORE_FLAGS
6344
6345 dnl
6346 dnl  Create the vlc-config script
6347 dnl
6348 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6349
6350 dnl
6351 dnl  Configuration is finished
6352 dnl
6353 AC_SUBST(SYS)
6354 AC_SUBST(ARCH)
6355 AC_SUBST(ALIASES)
6356 AC_SUBST(ASM)
6357 AC_SUBST(MOC)
6358 AC_SUBST(RCC)
6359 AC_SUBST(UIC)
6360 AC_SUBST(WINDRES)
6361 AC_SUBST(MOZILLA_SDK_PATH)
6362 AC_SUBST(WINE_SDK_PATH)
6363 AC_SUBST(LIBEXT)
6364 AC_SUBST(AM_CPPFLAGS)
6365 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6366 AC_SUBST(FILE_LIBVLC_DLL)
6367 AC_SUBST(FILE_LIBVLC_CONTROL_DLL)
6368
6369 dnl Create vlc-config.in
6370 VLC_OUTPUT_VLC_CONFIG_IN
6371
6372 AC_CONFIG_FILES([
6373   extras/package/win32/vlc.win32.nsi
6374   Makefile
6375   projects/activex/Makefile
6376   projects/activex/axvlc.inf
6377   bindings/Makefile
6378   bindings/python/Makefile
6379   doc/Makefile
6380   extras/package/ipkg/Makefile
6381   libs/loader/Makefile
6382   libs/srtp/Makefile
6383   modules/Makefile
6384   projects/mozilla/Makefile
6385   m4/Makefile
6386   po/Makefile.in
6387   share/Makefile
6388   src/Makefile
6389   test/Makefile
6390 ])
6391
6392 AC_CONFIG_FILES([
6393   modules/access/Makefile
6394   modules/access/bda/Makefile
6395   modules/access/dshow/Makefile
6396   modules/access/dvb/Makefile
6397   modules/access/mms/Makefile
6398   modules/access/cdda/Makefile
6399   modules/access/rtsp/Makefile
6400   modules/access/rtmp/Makefile
6401   modules/access/v4l2/Makefile
6402   modules/access/vcd/Makefile
6403   modules/access/vcdx/Makefile
6404   modules/access/screen/Makefile
6405   modules/access_filter/Makefile
6406   modules/access_output/Makefile
6407   modules/audio_filter/Makefile
6408   modules/audio_filter/channel_mixer/Makefile
6409   modules/audio_filter/converter/Makefile
6410   modules/audio_filter/resampler/Makefile
6411   modules/audio_filter/spatializer/Makefile
6412   modules/audio_mixer/Makefile
6413   modules/audio_output/Makefile
6414   modules/codec/Makefile
6415   modules/codec/cmml/Makefile
6416   modules/codec/dmo/Makefile
6417   modules/codec/ffmpeg/Makefile
6418   modules/codec/subtitles/Makefile
6419   modules/codec/spudec/Makefile
6420   modules/codec/xvmc/Makefile
6421   modules/control/Makefile
6422   modules/control/http/Makefile
6423   modules/demux/Makefile
6424   modules/demux/asf/Makefile
6425   modules/demux/avi/Makefile
6426   modules/demux/mp4/Makefile
6427   modules/demux/mpeg/Makefile
6428   modules/demux/playlist/Makefile
6429   modules/gui/Makefile
6430   modules/gui/beos/Makefile
6431   modules/gui/pda/Makefile
6432   modules/gui/macosx/Makefile
6433   modules/gui/minimal_macosx/Makefile
6434   modules/gui/qnx/Makefile
6435   modules/gui/qt4/Makefile
6436   modules/gui/skins2/Makefile
6437   modules/gui/wxwidgets/Makefile
6438   modules/gui/wince/Makefile
6439   modules/meta_engine/Makefile
6440   modules/misc/Makefile
6441   modules/misc/dummy/Makefile
6442   modules/misc/lua/Makefile
6443   modules/misc/memcpy/Makefile
6444   modules/misc/notify/Makefile
6445   modules/misc/testsuite/Makefile
6446   modules/misc/playlist/Makefile
6447   modules/misc/osd/Makefile
6448   modules/misc/xml/Makefile
6449   modules/misc/probe/Makefile
6450   modules/mux/Makefile
6451   modules/mux/mpeg/Makefile
6452   modules/mux/rtp/Makefile
6453   modules/packetizer/Makefile
6454   modules/services_discovery/Makefile
6455   modules/stream_out/Makefile
6456   modules/stream_out/transrate/Makefile
6457   modules/video_chroma/Makefile
6458   modules/video_filter/Makefile
6459   modules/video_filter/atmo/Makefile
6460   modules/video_filter/dynamicoverlay/Makefile
6461   modules/video_output/Makefile
6462   modules/video_output/msw/Makefile
6463   modules/video_output/qte/Makefile
6464   modules/video_output/x11/Makefile
6465   modules/visualization/Makefile
6466   modules/visualization/visual/Makefile
6467   modules/visualization/galaktos/Makefile
6468 ])
6469
6470 dnl Generate makefiles
6471 AC_OUTPUT
6472
6473 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6474 # not provided with the source
6475 ${SHELL} ./config.status --file=vlc-config
6476 chmod 0755 vlc-config
6477
6478 dnl echo "Enabled builtin modules :"
6479 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6480
6481 dnl echo "Enabled plugin modules :"
6482 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6483
6484 dnl Shortcut to nice compile message
6485 rm -f compile
6486 echo '#! /bin/sh' >compile
6487 echo rm -f .error\$\$ >>compile
6488 echo ERROR=0 >>compile
6489 echo export PATH=$PATH LANG=C >>compile
6490 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
6491 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
6492 echo test -f .error\$\$ \&\& ERROR=1 >>compile
6493 echo rm -f .error\$\$ >>compile
6494 echo exit \$ERROR >>compile
6495 chmod a+x compile
6496
6497 printf "
6498 libvlc configuration
6499 --------------------
6500 version               : ${VERSION}
6501 system                : ${SYS}
6502 architecture          : ${ARCH}
6503 build flavour         : "
6504 test "${enable_debug}" = "yes" && printf "debug "
6505 test "${enable_cprof}" = "yes" && printf "cprof "
6506 test "${enable_gprof}" = "yes" && printf "gprof "
6507 test "${enable_optimizations}" = "yes" && printf "optim "
6508 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6509 echo ""
6510 if test "${enable_vlc}" != "no"; then
6511 echo "vlc aliases           :${ALIASES}"
6512 else
6513 echo "build vlc executable  : no"
6514 fi
6515 echo "plugins/bindings      :${PLUGINS_BINDINGS}
6516
6517 You can check which modules have been enabled 
6518 with \`./vlc-config --list plugin'.
6519 You can tune the compiler flags in vlc-config.
6520 To build vlc and its plugins, type \`./compile' or \`make'.
6521 "
6522 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6523    echo ""
6524    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6525    echo "         turned off."
6526    echo "         FFmpeg will be REALLY slow."
6527    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6528    echo ""
6529 fi