]> git.sesse.net Git - vlc/blob - configure.ac
Don't bother with mux/ and stream_out/ is sout is disabled
[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 dnl Packetizers:
1294 VLC_ADD_PLUGIN([packetizer_mpegvideo])
1295 VLC_ADD_PLUGIN([packetizer_h264])
1296 VLC_ADD_PLUGIN([packetizer_mpeg4video])
1297 VLC_ADD_PLUGIN([packetizer_mpeg4audio])
1298 VLC_ADD_PLUGIN([packetizer_vc1])
1299
1300 ALIASES="${ALIASES} cvlc"
1301
1302 dnl
1303 dnl default modules that need g++
1304 dnl
1305 AC_LANG_PUSH(C++)
1306 VLC_ADD_PLUGIN([spatializer])
1307 AC_LANG_POP(C++)
1308
1309 if test "${SYS}" != "mingwce"; then
1310   VLC_ADD_PLUGIN([gestures])
1311   VLC_ADD_PLUGIN([rc])
1312   VLC_ADD_PLUGIN([telnet])
1313   VLC_ADD_PLUGIN([hotkeys])
1314   VLC_ADD_PLUGIN([showintf])
1315   VLC_ADD_PLUGIN([marq])
1316   VLC_ADD_PLUGIN([podcast])
1317   VLC_ADD_PLUGIN([shout])
1318   VLC_ADD_PLUGIN([sap])
1319   VLC_ADD_PLUGIN([fake])
1320   VLC_ADD_PLUGIN([folder])
1321   VLC_ADD_PLUGIN([rss])
1322   VLC_ADD_PLUGIN([mosaic])
1323   VLC_ADD_PLUGIN([wall])
1324   VLC_ADD_PLUGIN([motiondetect])
1325   VLC_ADD_PLUGIN([clone])
1326   VLC_ADD_PLUGIN([crop])
1327   VLC_ADD_PLUGIN([erase])
1328   VLC_ADD_PLUGIN([bluescreen])
1329   VLC_ADD_PLUGIN([alphamask])
1330   VLC_ADD_PLUGIN([gaussianblur])
1331   VLC_ADD_PLUGIN([i420_yuy2])
1332   VLC_ADD_PLUGIN([i422_yuy2])
1333   VLC_ADD_PLUGIN([i420_ymga])
1334   VLC_ADD_PLUGIN([i422_i420])
1335   VLC_ADD_PLUGIN([yuy2_i422])
1336   VLC_ADD_PLUGIN([yuy2_i420])
1337   VLC_ADD_PLUGIN([chroma_chain])
1338   VLC_ADD_PLUGIN([aout_file])
1339   VLC_ADD_PLUGIN([linear_resampler])
1340   VLC_ADD_PLUGIN([bandlimited_resampler])
1341   VLC_ADD_PLUGIN([float32_mixer])
1342   VLC_ADD_PLUGIN([spdif_mixer])
1343   VLC_ADD_PLUGIN([simple_channel_mixer])
1344   VLC_ADD_PLUGIN([dolby_surround_decoder])
1345   VLC_ADD_PLUGIN([headphone_channel_mixer])
1346   VLC_ADD_PLUGIN([normvol])
1347   VLC_ADD_PLUGIN([equalizer])
1348   VLC_ADD_PLUGIN([param_eq])
1349   VLC_ADD_PLUGIN([converter_float])
1350   VLC_ADD_PLUGIN([a52tospdif])
1351   VLC_ADD_PLUGIN([dtstospdif])
1352   VLC_ADD_PLUGIN([audio_format])
1353   ALIASES="${ALIASES} rvlc"
1354 fi
1355
1356 dnl
1357 dnl Some plugins aren't useful on some platforms
1358 dnl
1359 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1360     VLC_ADD_PLUGIN([screensaver])
1361     VLC_ADD_PLUGIN([motion])
1362     VLC_ADD_PLUGIN([dynamicoverlay])
1363 elif test "${SYS}" != "mingwce"; then
1364     VLC_ADD_PLUGIN([ntservice])
1365     VLC_ADD_PLUGIN([access_smb])
1366     VLC_ADD_PLUGIN([dmo])
1367     VLC_ADD_PLUGIN([msn])
1368     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1369 else
1370     VLC_ADD_PLUGIN([win32text])
1371 fi
1372 if test "${SYS}" = "darwin"; then
1373     VLC_ADD_PLUGIN([quartztext])
1374     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1375 fi
1376
1377 dnl
1378 dnl  Accelerated modules
1379 dnl
1380 AC_ARG_WITH(,[])
1381 AC_ARG_WITH(,[Optimization options:])
1382
1383 dnl  Check for fully working MMX intrinsics
1384 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1385 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1386 AC_ARG_ENABLE(mmx,
1387 [  --disable-mmx       disable MMX optimizations (default auto)],,[
1388   case "${host_cpu}" in
1389     i?86|x86_64)
1390       enable_mmx="yes"
1391       ;;
1392     *)
1393       enable_mmx="no"
1394       ;;
1395   esac
1396 ])
1397 AS_IF([test "${enable_mmx}" != "no"], [
1398   ARCH="${ARCH} mmx"
1399
1400   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1401     [ac_cv_c_mmx_intrinsics],
1402     [CFLAGS="${CFLAGS_save} -O -mmmx"
1403      AC_TRY_COMPILE([#include <mmintrin.h>
1404                      #include <stdint.h>
1405                      uint64_t frobzor;],
1406                     [__m64 a, b, c;
1407                      a = b = c = (__m64)frobzor;
1408                      a = _mm_slli_pi16(a, 3);
1409                      a = _mm_adds_pi16(a, b);
1410                      c = _mm_srli_pi16(c, 8);
1411                      c = _mm_slli_pi16(c, 3);
1412                      b = _mm_adds_pi16(b, c);
1413                      a = _mm_unpacklo_pi8(a, b);
1414                      frobzor = (uint64_t)a;],
1415                     [ac_cv_c_mmx_intrinsics=yes],
1416                     [ac_cv_c_mmx_intrinsics=no])])
1417   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1418     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1419               [Define to 1 if MMX intrinsics are available.])
1420     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1421   ])
1422
1423   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1424     [ac_cv_mmx_inline],
1425     [CFLAGS="${CFLAGS_save}"
1426      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1427                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1428   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1429     AC_DEFINE(CAN_COMPILE_MMX, 1,
1430               [Define to 1 inline MMX assembly is available.])
1431     VLC_ADD_PLUGIN([memcpymmx])
1432     VLC_ADD_PLUGIN([i420_rgb_mmx])
1433     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1434     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1435     VLC_ADD_PLUGIN([i420_ymga_mmx])
1436   ])
1437
1438   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1439     [ac_cv_mmxext_inline],
1440     [CFLAGS="${CFLAGS_save}"
1441      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1442                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1443   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1444     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1445               [Define to 1 if MMX EXT inline assembly is available.])
1446     VLC_ADD_PLUGIN([memcpymmxext])
1447   ])
1448 ])
1449
1450 dnl  Check for fully workin SSE2 intrinsics
1451 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1452 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1453 AC_ARG_ENABLE(sse,
1454 [  --disable-sse       disable SSE (1 and 2) optimizations (default auto)],, [
1455   case "${host_cpu}" in
1456     i686|x86_64)
1457       enable_sse=yes
1458       ;;
1459     *)
1460       enable_sse=no
1461       ;;
1462   esac
1463 ])
1464 AS_IF([test "${enable_sse}" != "no"], [
1465   ARCH="${ARCH} sse sse2"
1466
1467   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1468     [ac_cv_c_sse2_intrinsics],
1469     [CFLAGS="${CFLAGS_save} -O -msse2"
1470      AC_TRY_COMPILE([#include <emmintrin.h>
1471                      #include <stdint.h>
1472                      uint64_t frobzor;],
1473                     [__m128i a, b, c;
1474                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1475                      a = _mm_slli_epi16(a, 3);
1476                      a = _mm_adds_epi16(a, b);
1477                      c = _mm_srli_epi16(c, 8);
1478                      c = _mm_slli_epi16(c, 3);
1479                      b = _mm_adds_epi16(b, c);
1480                      a = _mm_unpacklo_epi8(a, b);
1481                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1482                     [ac_cv_c_sse2_intrinsics=yes],
1483                     [ac_cv_c_sse2_intrinsics=no])])
1484   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1485     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1486               [Define to 1 if SSE2 intrinsics are available.])
1487     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1488   ])
1489
1490   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1491     [ac_cv_sse_inline],
1492     [CFLAGS="${CFLAGS_save}"
1493      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1494                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1495   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1496     AC_DEFINE(CAN_COMPILE_SSE, 1,
1497               [Define to 1 if SSE inline assembly is available.])
1498   ])
1499
1500   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1501     [ac_cv_sse2_inline],
1502     [CFLAGS="${CFLAGS_save}"
1503      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1504                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1505   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1506     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1507               [Define to 1 if SSE2 inline assembly is available.])
1508     VLC_ADD_PLUGIN([i420_rgb_sse2])
1509     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1510     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1511   ])
1512 ])
1513
1514 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1515     [ac_cv_3dnow_inline],
1516     [CFLAGS="${CFLAGS_save}"
1517      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1518                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1519 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1520   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1521             [Define to 1 if 3D Now! inline assembly is available.])
1522   VLC_ADD_PLUGIN([memcpy3dn])
1523 ])
1524
1525 AC_ARG_ENABLE(altivec,
1526 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1527   AS_IF([test "${host_cpu}" = "powerpc"],
1528         [enable_altivec=yes], [enable_altivec=no])
1529 ])
1530 AS_IF([test "${enable_altivec}" = "yes"], [
1531   ARCH="${ARCH} altivec";
1532   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1533     [ac_cv_altivec_inline],
1534     [CFLAGS="${CFLAGS_save}"
1535      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1536          ac_cv_altivec_inline="yes",
1537          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1538           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1539             [ac_cv_altivec_inline="-Wa,-m7400"],
1540             ac_cv_altivec_inline=no)
1541          ])])
1542   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1543     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1544               [Define to 1 if AltiVec inline assembly is available.])
1545     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1546       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1547       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1548       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1549       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1550       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1551     ])
1552     VLC_ADD_PLUGIN([memcpyaltivec])
1553     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1554   ])
1555
1556 dnl The AltiVec C extensions
1557 dnl
1558 dnl There are several possible cases:
1559 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1560 dnl                      need <altivec.h>
1561 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1562 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1563 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1564 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1565 dnl - Others: test should fail
1566   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1567   [ac_cv_c_altivec],
1568   [# OS X/PPC test (gcc 4.x)
1569    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1570    AC_TRY_COMPILE([vector unsigned char foo;],
1571      [vec_ld(0, (unsigned char *)0);],
1572      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1573      [# OS X/PPC test (gcc 3.x)
1574       CFLAGS="${CFLAGS_save} -faltivec"
1575       AC_TRY_COMPILE([vector unsigned char foo;],
1576         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1577         [ac_cv_c_altivec="-faltivec"],
1578         dnl Below this are the Linux tests
1579         [# Linux/PPC test (gcc 4.x)
1580          CFLAGS="${CFLAGS_save} -maltivec"
1581          AC_TRY_COMPILE([#include <altivec.h>],
1582            [vec_ld(0, (unsigned char *)0);],
1583            [ac_cv_c_altivec="-maltivec"],
1584            [# Linux/PPC test (gcc 3.3)
1585             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1586             AC_TRY_COMPILE([#include <altivec.h>],
1587               [vec_ld(0, (unsigned char *)0);],
1588               [ac_cv_c_altivec=""
1589                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1590               [# Linux/PPC test (gcc 3.3)
1591                CFLAGS="${CFLAGS_save} -fvec"
1592                AC_TRY_COMPILE([#include <altivec.h>],
1593                  [vec_ld(0, (unsigned char *)0);],
1594                  [ac_cv_c_altivec="-fvec"],
1595                  [ac_cv_c_altivec=no])
1596               ])
1597            ])
1598         ])
1599      ])
1600    CFLAGS="${CFLAGS_save}"
1601   ])
1602   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1603     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1604   ])
1605
1606   AC_CHECK_HEADERS(altivec.h)
1607   CPPFLAGS="${CPPFLAGS_save}"
1608   
1609   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1610     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1611               [Define to 1 if C AltiVec extensions are available.])
1612     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1613     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1614     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1615     VLC_ADD_PLUGIN([memcpyaltivec])
1616     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1617   ])
1618
1619   AC_CACHE_CHECK([if linker needs -framework vecLib],
1620     [ac_cv_ld_altivec],
1621     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1622      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1623      LDFLAGS="${LDFLAGS_save}"
1624     ])
1625   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1626     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1627   ])
1628 ])
1629
1630 dnl
1631 dnl  Special arch tuning
1632 dnl
1633 AC_ARG_WITH(tuning,
1634 [  --with-tuning=ARCH      enable special tuning for an architecture
1635                           (default Pentium 2 on IA-32 and G4 on PPC)])
1636 if test -n "${with_tuning}"; then
1637     if test "${with_tuning}" != "no"; then
1638         CFLAGS_TUNING="-mtune=${with_tuning}"
1639     fi
1640 else
1641     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1642         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1643     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1644         CFLAGS_TUNING="-mtune=pentium2"
1645     elif test "${host_cpu}" = "x86_64"; then
1646         CFLAGS_TUNING="-mtune=athlon64"
1647     elif test "${host_cpu}" = "powerpc"; then
1648         CFLAGS_TUNING="-mtune=G4";
1649     fi
1650 fi
1651
1652 dnl NOTE: this can't be cached cleanly
1653 AS_IF([test "${CFLAGS_TUNING}"],
1654    [CFLAGS_save="${CFLAGS}"
1655     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1656
1657     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1658     AC_COMPILE_IFELSE([ ],
1659                       [tuning="yes"],
1660                       [CFLAGS_TUNING=""; tuning="no"
1661                        AS_IF([test "${with_tuning}"],
1662                              [AC_MSG_ERROR([requested tuning not supported])])])
1663
1664     AC_MSG_RESULT([$tuning])
1665     CFLAGS="${CFLAGS_save}"
1666 ])
1667
1668 dnl
1669 dnl  Memory usage
1670 dnl
1671 AC_ARG_ENABLE(optimize-memory,
1672 [  --enable-optimize-memory optimize memory usage over performance])
1673 if test "${enable_optimize_memory}" = "yes"; then
1674   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1675 fi
1676
1677 dnl
1678 dnl  Enable/disable optimizations
1679 dnl
1680 AC_ARG_ENABLE(optimizations,
1681 [  --disable-optimizations disable compiler optimizations (default enabled)])
1682 if test "${enable_optimizations}" != "no"; then
1683    if test "${enable_optimize_memory}" = "yes"; then
1684       enable_optimizations="size"
1685    else
1686       enable_optimizations="speed"
1687    fi
1688 fi
1689
1690 dnl
1691 dnl  Debugging mode
1692 dnl
1693 AC_ARG_ENABLE(debug,
1694 [  --enable-debug          debug mode (default disabled)])
1695 test "${enable_debug}" != "yes" && enable_debug="no"
1696 AH_TEMPLATE(NDEBUG,
1697             [Define to 1 if debug code should NOT be compiled])
1698 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1699
1700 dnl
1701 dnl  Test coverage
1702 dnl
1703 AC_ARG_ENABLE(coverage,
1704         [  --enable-coverage       build for test coverage (default disabled)],,
1705         [enable_coverage="no"])
1706 AS_IF([test "${enable_coverage}" != "no"], [
1707         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1708         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1709         LDFLAGS="-lgcov ${LDFLAGS}"
1710         dnl ugly...
1711         CFLAGS_save="${CFLAGS}"
1712         CXXFLAGS_save="${CXXFLAGS}"
1713         LDFLAGS_save="${LDFLAGS}"
1714 ])
1715
1716 dnl
1717 dnl  Enable release-specific flags
1718 dnl
1719 AC_ARG_ENABLE(release,
1720 [  --enable-release        activate extra optimizations (default disabled)])
1721 test "${enable_release}" != "yes" && enable_release="no"
1722
1723 dnl
1724 dnl Stream output
1725 dnl
1726 AC_ARG_ENABLE(sout,
1727   [  --enable-sout           Stream output modules (default enabled)])
1728 if test "${enable_sout}" != "no"
1729 then
1730   dnl Access outputs:
1731   VLC_ADD_PLUGIN([access_output_dummy])
1732   VLC_ADD_PLUGIN([access_output_udp])
1733   VLC_ADD_PLUGIN([access_output_file])
1734   VLC_ADD_PLUGIN([access_output_http])
1735   dnl Muxers:
1736   VLC_ADD_PLUGIN([mux_ps])
1737   VLC_ADD_PLUGIN([mux_avi])
1738   VLC_ADD_PLUGIN([mux_mp4])
1739   VLC_ADD_PLUGIN([mux_asf])
1740   VLC_ADD_PLUGIN([mux_dummy])
1741   VLC_ADD_PLUGIN([mux_wav])
1742   VLC_ADD_PLUGIN([mux_mpjpeg])
1743   dnl Packetizers (FIXME: why are the others outside --enable-sout??):
1744   VLC_ADD_PLUGIN([packetizer_copy])
1745   dnl Stream outputs:
1746   VLC_ADD_PLUGIN([stream_out_dummy])
1747   VLC_ADD_PLUGIN([stream_out_standard])
1748   VLC_ADD_PLUGIN([stream_out_es])
1749   VLC_ADD_PLUGIN([stream_out_rtp])
1750   VLC_ADD_PLUGIN([stream_out_description])
1751   VLC_ADD_PLUGIN([stream_out_duplicate])
1752   VLC_ADD_PLUGIN([stream_out_display])
1753   VLC_ADD_PLUGIN([stream_out_transcode])
1754   VLC_ADD_PLUGIN([stream_out_bridge])
1755   VLC_ADD_PLUGIN([stream_out_mosaic_bridge])
1756   VLC_ADD_PLUGIN([stream_out_autodel])
1757   VLC_ADD_PLUGIN([stream_out_gather])
1758 #  VLC_ADD_PLUGIN([stream_out_transrate])
1759   dnl Misc:
1760   VLC_ADD_PLUGIN([vod_rtsp])
1761   VLC_ADD_PLUGIN([profile_parser])
1762
1763   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1764 fi
1765 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1766
1767 AC_ARG_ENABLE(switcher,
1768   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1769
1770 dnl Check for libshout
1771 AC_ARG_ENABLE(shout,
1772   [  --enable-shout          libshout output plugin (default disabled)])
1773 if test "${enable_shout}" = "yes"; then
1774   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1775     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1776      VLC_ADD_PLUGIN([access_output_shout])
1777      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1778      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1779     [AC_MSG_WARN(libshout library not found)])
1780 fi
1781
1782 dnl Lua modules
1783 AC_ARG_ENABLE(lua,
1784   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1785 if test "${enable_lua}" != "no"
1786 then
1787   PKG_CHECK_MODULES(LUA, lua5.1,
1788     [ have_lua=yes ],
1789     [
1790     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1791     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1792       [ have_lua=yes ],
1793       [
1794         have_lua=yes
1795         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1796           [],
1797           [ have_lua=no ] )
1798         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1799           [LUA_LIBS="-llua5.1"],
1800           AC_CHECK_LIB( lua51 , luaL_newstate,
1801             [LUA_LIBS="-llua51"],
1802             AC_CHECK_LIB( lua , luaL_newstate,
1803               [LUA_LIBS="-llua"],
1804               [ have_lua=no
1805                 AC_MSG_WARN([lua >= 5.1 not found!])
1806               ])
1807           )
1808         )
1809       ])
1810     ])
1811   if test "x${have_lua}" = "xyes" ;  then
1812      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1813      VLC_ADD_PLUGIN([lua])
1814      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1815      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1816   fi
1817 fi
1818 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1819
1820 dnl
1821 dnl HTTP daemon
1822 dnl
1823 AC_ARG_ENABLE(httpd,
1824   [  --enable-httpd          HTTP daemon (default enabled)])
1825 if test "${enable_httpd}" != "no"
1826 then
1827   VLC_ADD_PLUGIN([http])
1828   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1829 fi
1830 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1831
1832 dnl
1833 dnl VideoLAN manager
1834 dnl
1835 AC_ARG_ENABLE(vlm,
1836   [  --enable-vlm            VideoLAN manager (default enabled)])
1837 if test "${enable_vlm}" != "no"
1838 then
1839   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1840 fi
1841
1842 dnl
1843 dnl Growl notification plugin
1844 dnl
1845 AC_ARG_ENABLE(growl,
1846   [  --enable-growl          growl notification plugin (default enabled)])
1847 AS_IF([test "${enable_growl}" != "no"], [
1848     VLC_ADD_PLUGIN([growl_udp])
1849     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1850       VLC_ADD_PLUGIN([growl])
1851       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1852     ])
1853   ]
1854 )
1855
1856 dnl
1857 dnl Libnotify notification plugin
1858 dnl
1859
1860 AC_ARG_ENABLE(notify,
1861   [  --enable-notify         libnotify notification plugin (default enabled)])
1862 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1863     PKG_CHECK_MODULES(NOTIFY, libnotify,
1864       [
1865         VLC_ADD_PLUGIN([notify])
1866         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1867         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1868       ],[
1869     AS_IF([test "${enable_notify}" = "yes"],[
1870         AC_MSG_WARN( libnotify not found) ])
1871       ])
1872   ])
1873
1874 dnl
1875 dnl Audioscrobbler plugin
1876 dnl
1877
1878 AC_ARG_ENABLE(audioscrobbler,
1879   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1880 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1881         VLC_ADD_PLUGIN([audioscrobbler])
1882   ])
1883
1884 dnl
1885 dnl Musicbrainz plugin
1886 dnl
1887 AC_ARG_ENABLE(musicbrainz,
1888   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1889   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1890       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1891     [ VLC_ADD_PLUGIN([musicbrainz])
1892       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1893       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1894        [AC_MSG_WARN(MusicBrainz library not found)])
1895    ])
1896
1897
1898 dnl
1899 dnl Taglibplugin
1900 dnl
1901 AC_ARG_ENABLE(taglib,
1902   [  --disable-taglib Taglib support (default enabled) ])
1903   AS_IF([test "${enable_taglib}" != "no"],[
1904     PKG_CHECK_MODULES(TAGLIB, taglib,
1905       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1906         VLC_ADD_PLUGIN([taglib])
1907         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1908        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1909       [AC_MSG_WARN(TagLib library not found)])
1910   ])
1911
1912
1913 dnl
1914 dnl  Input plugins
1915 dnl
1916
1917 AC_ARG_WITH(,[Input plugins:])
1918
1919 dnl  live555 input
1920 dnl
1921 if test "${enable_livedotcom}" 
1922 then
1923   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1924 fi
1925
1926 if test "${enable_livedotcom}" = "no"
1927 then
1928   enable_live555="no"
1929 fi
1930 AC_ARG_ENABLE(live555,
1931 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1932 if test "${enable_live555}" != "no"; then
1933   AC_ARG_WITH(live555-tree,
1934     [    --with-live555-tree=PATH live.com tree for static linking])
1935
1936   dnl
1937   dnl test for --with-live555-tree
1938   dnl
1939   if test "${with_livedotcom_tree}" 
1940   then
1941     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1942   with_live555_tree="${with_livedotcom_tree}"
1943   fi
1944
1945   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1946     AC_LANG_PUSH(C++)
1947     CPPFLAGS_save="${CPPFLAGS}"
1948     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1949     if test "${SYS}" = "solaris"; then
1950       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1951     fi
1952     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1953     AC_CHECK_HEADERS(liveMedia.hh, [
1954       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1955       AC_CHECK_LIB(liveMedia_pic, main, [
1956         # We have -lliveMedia_pic, build plugins
1957         VLC_ADD_PLUGIN([live555])
1958         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1959       ], [
1960         AC_CHECK_LIB(liveMedia, main, [
1961           # We only have -lliveMedia, do builtins
1962           VLC_ADD_BUILTINS([live555])
1963           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1964         ])
1965       ])
1966       if test "${SYS}" = "mingw32"; then
1967         # add ws2_32 for closesocket, select, recv
1968         VLC_ADD_LIBS([live555],[-lws2_32])
1969       fi
1970     ])
1971     CPPFLAGS="${CPPFLAGS_save}"
1972     AC_LANG_POP(C++)
1973   else
1974     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1975     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1976     if test -z "${real_live555_tree}"; then
1977       dnl  The given directory can't be found
1978       AC_MSG_RESULT(no)
1979       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1980     fi
1981     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1982       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1983
1984       VLC_ADD_BUILTINS([live555])
1985
1986       if test "${SYS}" = "mingw32"; then
1987         # add ws2_32 for closesocket, select, recv
1988         VLC_ADD_LIBS([live555],[-lws2_32])
1989       fi
1990
1991       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1992       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1993       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1994       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1995
1996       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1997       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1998       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1999       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
2000       if test "${SYS}" = "solaris"; then
2001         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
2002       fi
2003     else
2004       dnl  The given live555 wasn't built
2005         AC_MSG_RESULT(no)
2006       if test "${enable_live555}" = "yes"; then
2007         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
2008       fi        
2009     fi
2010   fi
2011 fi
2012
2013 dnl
2014 dnl  special access module for dc1394 input
2015 dnl
2016 AC_ARG_ENABLE(dc1394,
2017   [  --enable-dc1394         dc1394 access module (default disabled)])
2018 if test "${enable_dc1394}" = "yes"
2019 then
2020   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
2021     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
2022         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
2023 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
2024               VLC_ADD_PLUGIN([dc1394])
2025               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
2026 dnl         ],
2027 dnl         [
2028 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2029 dnl         ])
2030       ],
2031       [
2032         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2033       ])
2034     ],
2035     [
2036       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2037     ])
2038   ],
2039   [
2040     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2041   ])
2042 fi
2043
2044 dnl
2045 dnl dv module: digital video module check for libraw1394
2046 dnl
2047 AC_ARG_ENABLE(dv,
2048 [  --enable-dv             dv input module (default disabled)])
2049 if test "${enable_dv}" = "yes"
2050 then
2051   AC_ARG_WITH(dv-raw1394,
2052   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
2053   AC_ARG_WITH(dv-raw1394-tree,
2054   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
2055
2056   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
2057   then
2058     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
2059     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
2060     then
2061       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
2062       AC_MSG_RESULT(yes)
2063       VLC_ADD_PLUGIN([access_dv])
2064       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
2065       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
2066     else
2067       dnl  No libraw1394 could be found, sorry
2068       AC_MSG_RESULT(no)
2069       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
2070     fi
2071   else
2072     AC_CHECK_HEADERS(libraw1394/raw1394.h,
2073     [ VLC_ADD_PLUGIN([access_dv])
2074         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
2075     ],[
2076         if test -n "${enable_dv}"
2077         then
2078           AC_MSG_ERROR([cannot find libraw1394 headers])
2079         fi
2080     ])
2081   fi
2082
2083   dnl Check for static linking of libraw1394
2084   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
2085   then
2086     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
2087     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
2088     if test -z "${real_dv_raw1394_tree}"
2089     then
2090       dnl  The given directory can't be found
2091       AC_MSG_RESULT(no)
2092       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
2093     fi
2094     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
2095     then
2096       dnl  Use a custom libraw1394
2097       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
2098       VLC_ADD_BUILTINS([access_dv])
2099       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
2100       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
2101     else
2102       dnl  The given libraw1394 wasn't built
2103       AC_MSG_RESULT(no)
2104       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
2105     fi
2106   fi
2107
2108   dnl
2109   dnl Check for libavc1394
2110   dnl
2111
2112   AC_ARG_WITH(dv-avc1394,
2113   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2114   AC_ARG_WITH(dv-avc1394-tree,
2115   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2116
2117   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2118   then
2119     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2120     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2121     then
2122       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2123       AC_MSG_RESULT(yes)
2124       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2125       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2126     else
2127       dnl  No libavc1394 could be found, sorry
2128       AC_MSG_RESULT(no)
2129       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2130     fi
2131   else
2132     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2133     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2134     ],[
2135         if test -n "${enable_dv}"
2136         then
2137           AC_MSG_ERROR([cannot find libavc1394 headers])
2138         fi
2139     ])
2140   fi
2141
2142   dnl Check for static linking of libavc1394
2143   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2144   then
2145     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2146     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2147     if test -z "${real_dv_avc1394_tree}"
2148     then
2149       dnl  The given directory can't be found
2150       AC_MSG_RESULT(no)
2151       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2152     fi
2153     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2154     then
2155       dnl  Use a custom libavc1394
2156       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2157       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2158       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2159     else
2160       dnl  The given libavc1394 wasn't built
2161       AC_MSG_RESULT(no)
2162       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2163     fi
2164   fi
2165 fi
2166
2167 dnl
2168 dnl dvdread module: check for libdvdread
2169 dnl
2170 AC_ARG_ENABLE(dvdread,
2171 [  --enable-dvdread        dvdread input module (default disabled)])
2172 if test "${enable_dvdread}" != "no"
2173 then
2174   AC_ARG_WITH(dvdread,
2175   [    --with-dvdread=PATH   libdvdread headers and libraries])
2176   AC_ARG_WITH(dvdread-tree,
2177   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2178
2179   dnl Temporary hack (yeah, sure ;)
2180   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2181       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2182   fi
2183
2184   if test -z "${with_dvdread}"
2185   then
2186     if test -z "${with_dvdread_tree}"
2187     then
2188       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2189         [ VLC_ADD_PLUGIN([dvdread])
2190           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2191         ],[
2192           if test -n "${enable_dvdread}"
2193           then
2194             AC_MSG_ERROR([cannot find libdvdread headers])
2195           fi
2196         ])
2197     else
2198       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2199       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2200       if test -z "${real_dvdread_tree}"
2201       then
2202         dnl  The given directory can't be found
2203         AC_MSG_RESULT(no)
2204         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2205       fi
2206       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2207       then
2208         dnl  Use a custom libdvdread
2209         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2210         VLC_ADD_BUILTINS([dvdread])
2211         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2212         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2213       else
2214         dnl  The given libdvdread wasn't built
2215         AC_MSG_RESULT(no)
2216         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2217       fi
2218     fi
2219   else
2220     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2221     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2222     then
2223       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2224       AC_MSG_RESULT(yes)
2225       VLC_ADD_PLUGIN([dvdread])
2226       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2227       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2228     else
2229       dnl  No libdvdread could be found, sorry
2230       AC_MSG_RESULT(no)
2231       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2232     fi
2233   fi
2234 fi
2235
2236 dnl
2237 dnl  libdvdnav plugin
2238 dnl
2239 AC_ARG_ENABLE(dvdnav,
2240   [  --enable-dvdnav         dvdnav input module (default enabled)])
2241 if test "${enable_dvdnav}" != "no"
2242 then
2243   dnl Same hack than dvdread
2244   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2245       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2246   fi
2247
2248   DVDNAV_PATH="${PATH}"
2249   AC_ARG_WITH(dvdnav-config-path,
2250     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2251     [ if test "${with_dvdnav_config_path}" != "no"
2252       then
2253         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2254       fi ])
2255   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2256   if test "${DVDNAV_CONFIG}" != "no"
2257   then
2258     VLC_ADD_PLUGIN([dvdnav])
2259     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2260     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2261   fi
2262 fi
2263
2264 dnl
2265 dnl  Windows DirectShow access module
2266 dnl
2267 AC_ARG_ENABLE(dshow,
2268   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2269 if test "${enable_dshow}" != "no"
2270 then
2271   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2272   then
2273     AC_LANG_PUSH(C++)
2274       AC_CHECK_HEADERS(dshow.h,
2275       [ VLC_ADD_PLUGIN([dshow])
2276         VLC_ADD_CXXFLAGS([dshow],[])
2277         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2278     AC_LANG_POP(C++)
2279   fi
2280 fi
2281
2282 dnl
2283 dnl  Windows DirectShow BDA access module
2284 dnl
2285 AC_ARG_ENABLE(bda,
2286   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2287 if test "${enable_bda}" != "no"
2288 then
2289   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2290   then
2291       AC_CHECK_HEADERS(dshow.h,
2292       [ VLC_ADD_PLUGIN([bda])
2293         VLC_ADD_CXXFLAGS([bda],[])
2294         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2295   fi
2296 fi
2297
2298
2299 dnl
2300 dnl  OpenCV wrapper and example filters
2301 dnl
2302 AC_ARG_ENABLE(opencv,
2303   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2304 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2305 then
2306   AC_ARG_WITH(opencv-tree,
2307   [    --with-opencv-tree=PATH opencv tree for linking])
2308   if test -n "${with_opencv_tree}"
2309   then
2310     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2311     then
2312           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2313           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2314             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2315       then
2316         AC_MSG_RESULT(yes)
2317         VLC_ADD_PLUGIN([opencv_wrapper])
2318         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2319         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])
2320         AC_LANG_PUSH(C++)
2321         VLC_ADD_PLUGIN([opencv_example])
2322         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2323         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])
2324         AC_LANG_POP(C++)        
2325           else
2326         dnl  No opencv could be found, sorry
2327         AC_MSG_RESULT(no)
2328         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2329           fi
2330     else
2331           AC_MSG_WARN([--enable-opencv currently only works on windows])
2332     fi
2333   fi  
2334 fi
2335
2336
2337 dnl
2338 dnl  libsmbclient plugin
2339 dnl
2340 AC_ARG_ENABLE(smb,
2341   [  --enable-smb            smb input module (default enabled)])
2342 if test "${enable_smb}" != "no"; then
2343   AC_CHECK_HEADERS(libsmbclient.h,
2344     [ VLC_ADD_PLUGIN([access_smb])
2345       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2346     [ if test -n "${enable_smb}"; then
2347         AC_MSG_ERROR([cannot find libsmbclient headers])
2348      fi ])
2349   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2350     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2351     [#include <libsmbclient.h>])
2352 fi
2353
2354 dnl
2355 dnl  libdvbpsi ts demux/mux
2356 dnl
2357 AC_ARG_ENABLE(dvbpsi,
2358   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2359 if test "${enable_dvbpsi}" != "no"
2360 then
2361   AC_ARG_WITH(dvbpsi,
2362   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2363   AC_ARG_WITH(dvbpsi,
2364   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2365   case "${with_dvbpsi}" in
2366   ""|yes)
2367     if test -z "${with_dvbpsi_tree}"
2368     then
2369       AC_CHECK_HEADERS(dvbpsi/dr.h,
2370         [ VLC_ADD_PLUGIN([ts])
2371           if test "${enable_sout}" != "no"; then
2372             VLC_ADD_PLUGIN([mux_ts])
2373           fi
2374           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2375         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2376         [#if defined( HAVE_STDINT_H )
2377 #   include <stdint.h>
2378 #elif defined( HAVE_INTTYPES_H )
2379 #   include <inttypes.h>
2380 #endif
2381 #include <dvbpsi/dvbpsi.h>
2382 #include <dvbpsi/descriptor.h>
2383 #include <dvbpsi/pat.h>
2384 #include <dvbpsi/pmt.h>])
2385     else
2386       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2387       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2388       if test -z "${real_dvbpsi_tree}"
2389       then
2390         dnl  The given directory can't be found
2391         AC_MSG_RESULT(no)
2392         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2393       fi
2394       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2395       then
2396         dnl  Use a custom libdvbpsi
2397         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2398         VLC_ADD_BUILTINS([ts])
2399         if test "${enable_sout}" != "no"; then
2400           VLC_ADD_BUILTINS([mux_ts])
2401         fi
2402         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2403         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2404       else
2405         dnl  The given libdvbpsi wasn't built
2406         AC_MSG_RESULT(no)
2407         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2408       fi
2409     fi
2410   ;;
2411   no)
2412     dnl  Compile without dvbpsi
2413   ;;
2414   *)
2415     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2416     if test -z "${with_dvbpsi}"
2417     then
2418       LDFLAGS_test=""
2419       CPPFLAGS_test=""
2420     else
2421       LDFLAGS_test="-L${with_dvbpsi}/lib"
2422       CPPFLAGS_test="-I${with_dvbpsi}/include"
2423     fi
2424     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2425     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2426       VLC_ADD_PLUGIN([ts])
2427       if test "${enable_sout}" != "no"; then
2428         VLC_ADD_PLUGIN([mux_ts])
2429       fi
2430       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2431       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2432
2433     ],[
2434       if test -n "${enable_dvbpsi}"
2435       then
2436         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])
2437       fi
2438     ])
2439     CPPFLAGS="${CPPFLAGS_save}"
2440   ;;
2441   esac
2442   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2443     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2444   ], [], [${LIBS_ts}])
2445
2446 fi
2447
2448 dnl
2449 dnl  Video4Linux plugin
2450 dnl
2451 AC_ARG_ENABLE(v4l,
2452   [  --enable-v4l            Video4Linux input support (default disabled)])
2453 if test "${enable_v4l}" = "yes"
2454 then
2455   AC_ARG_WITH(v4l,
2456     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2457   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2458   then
2459     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2460   fi
2461
2462   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2463   AC_CHECK_HEADERS(linux/videodev.h, [
2464     VLC_ADD_PLUGIN([v4l])
2465   ],[])
2466   CPPFLAGS="${CPPFLAGS_save}"
2467 fi
2468
2469 dnl
2470 dnl  Video4Linux2 plugin
2471 dnl
2472 AC_ARG_ENABLE(v4l2,
2473   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2474 if test "${enable_v4l2}" = "yes"
2475 then
2476   AC_ARG_WITH(v4l2,
2477     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2478   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2479   then
2480     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2481   fi
2482
2483   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2484   if test "${have_v4l2_alsa}" = "true"
2485   then
2486     CFLAGS="${CFLAGS_save}"
2487     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2488                     #define ALSA_PCM_NEW_SW_PARAMS_API
2489                     #include <alsa/asoundlib.h>],
2490        [snd_pcm_hw_params_get_period_time(0,0,0);],
2491         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2492     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2493     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2494   fi
2495
2496   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2497   AC_CHECK_HEADERS(linux/videodev2.h, [
2498     VLC_ADD_PLUGIN([v4l2])
2499   ],[])
2500   CPPFLAGS="${CPPFLAGS_save}"
2501 fi
2502
2503
2504 dnl
2505 dnl  special access module for Hauppauge PVR cards
2506 dnl
2507 AC_ARG_ENABLE(pvr,
2508   [  --enable-pvr            PVR cards access module (default disabled)])
2509 if test "${enable_pvr}" = "yes"
2510 then
2511   VLC_ADD_PLUGIN([pvr])
2512   AC_ARG_WITH(videodev2,
2513     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2514   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2515   then
2516     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2517   fi
2518     
2519
2520   AC_CACHE_CHECK([for new linux/videodev2.h],
2521       [new_linux_videodev2_h],
2522       [AC_TRY_COMPILE([
2523           #include <sys/types.h>
2524           #   ifdef VIDEODEV2_H_FILE
2525           #   include VIDEODEV2_H_FILE
2526           #   else
2527           #   include <linux/videodev2.h>
2528           #   endif
2529           ],
2530           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2531           new_linux_videodev2_h=yes,
2532           new_linux_videodev2_h=no)])
2533   if test "${new_linux_videodev2_h}" != "no"; then
2534     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2535   fi
2536 fi
2537
2538 dnl
2539 dnl  gnomeVFS access module
2540 dnl
2541 AC_ARG_ENABLE(gnomevfs,
2542   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2543 if test "${enable_gnomevfs}" = "yes" 
2544 then
2545   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2546     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2547     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2548     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2549     VLC_ADD_PLUGIN([access_gnomevfs]),
2550     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2551 fi
2552
2553 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2554 AC_ARG_ENABLE(libcdio,
2555   [  --enable-libcdio        CD input and control library support (default enabled)])
2556
2557
2558 have_libcdio=no
2559 have_libvcdinfo=no
2560 if test "${enable_libcdio}" != "no"
2561 then
2562   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2563      have_libcdio=yes
2564      AC_DEFINE(HAVE_LIBCDIO, 1, 
2565      [Define if you have libcdio 0.78.2 or greater installed]),
2566      [AC_MSG_WARN(CD Reading and information library not found)])
2567
2568   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2569      [have_libvcdinfo=yes
2570      AC_DEFINE(HAVE_VCDINFO, 1, 
2571      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2572      [AC_MSG_WARN(VCD information library not found)])
2573 fi
2574
2575 dnl
2576 dnl  VCDX and CDDAX modules
2577 dnl
2578 AC_ARG_ENABLE(cddax,
2579   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2580  
2581 AC_ARG_ENABLE(libcddb,
2582   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2583  
2584 if test "${enable_cddax}" = "yes"
2585 then
2586   if test "$have_libcdio" = "yes"
2587   then
2588     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2589     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2590     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2591     VLC_ADD_PLUGIN([cddax])
2592     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2593     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2594     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2595   else 
2596     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2597     HAVE_CDDAX=no
2598   fi
2599
2600   if test "$enable_libcddb" != "no"; then
2601     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2602       HAVE_LIBCDDB=yes 
2603       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2604       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2605       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2606       ],
2607       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2608       HAVE_LIBCDDB=no])
2609   fi
2610  
2611 fi
2612
2613 AC_ARG_ENABLE(vcdx,
2614   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2615  
2616 if test "${enable_vcdx}" = "yes"
2617 then
2618   if test "${have_libvcdinfo}" = "yes"
2619   then
2620     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2621     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2622   else 
2623     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2624     HAVE_VCDX=no
2625   fi
2626
2627   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2628    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2629     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2630     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2631     HAVE_VCDX=no])
2632
2633   if test "$have_libvcdinfo" = "yes"
2634   then
2635     AC_DEFINE(HAVE_VCDX, 1, 
2636     [Define for the VCD plugin using libcdio/libvcdinfo])
2637     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2638     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2639     VLC_ADD_PLUGIN([vcdx])
2640   else 
2641     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2642     HAVE_VCDX=no
2643   fi
2644 fi
2645
2646 dnl
2647 dnl  Built-in CD-DA and VCD module
2648 dnl
2649 AC_ARG_ENABLE(cdda,           
2650   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2651  
2652 AC_ARG_ENABLE(vcd,
2653   [  --enable-vcd            built-in VCD (default enabled)])
2654
2655 if test "${enable_vcd}" != "no"
2656 then
2657   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2658   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2659     AC_MSG_RESULT(yes)
2660     VLC_ADD_PLUGIN([vcd])
2661     VLC_ADD_PLUGIN([cdda])
2662   ],[
2663     AC_MSG_RESULT(no)
2664   ])
2665
2666   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2667   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2668     AC_MSG_RESULT(yes)
2669     VLC_ADD_PLUGIN([vcd])
2670     VLC_ADD_PLUGIN([cdda])
2671     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2672   ],[
2673     AC_MSG_RESULT(no)
2674   ])
2675
2676   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2677   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2678     AC_MSG_RESULT(yes)
2679     VLC_ADD_PLUGIN([vcd])
2680     VLC_ADD_PLUGIN([cdda])
2681     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2682   ],[
2683     AC_MSG_RESULT(no)
2684   ])
2685
2686   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2687   then
2688     VLC_ADD_PLUGIN([vcd])
2689     VLC_ADD_PLUGIN([cdda])
2690   fi
2691
2692   if test "${SYS}" = "darwin"
2693   then
2694     VLC_ADD_PLUGIN([vcd])
2695     VLC_ADD_PLUGIN([cdda])
2696     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2697     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2698   fi
2699
2700   if test "$enable_libcddb" != "no"; then
2701     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2702       HAVE_LIBCDDB=yes 
2703       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2704       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2705       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2706       ],:
2707       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2708       HAVE_LIBCDDB=no])
2709   fi
2710 fi
2711
2712 dnl
2713 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2714 dnl
2715 AC_ARG_ENABLE(dvb,
2716   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2717
2718 if test "${enable_dvb}" = "yes"
2719 then
2720   AC_ARG_WITH(dvb,
2721   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2722   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2723   then
2724     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2725   fi
2726   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2727   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2728     if test -z "${with_dvbpsi_tree}"
2729     then
2730       VLC_ADD_PLUGIN([dvb])
2731     else
2732       VLC_ADD_BUILTINS([dvb])
2733     fi
2734   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2735   CPPFLAGS="${CPPFLAGS_save}"
2736 fi
2737
2738 dnl
2739 dnl  Screen capture module
2740 dnl
2741 AC_ARG_ENABLE(screen,
2742   [  --enable-screen         Screen capture support (default enabled)])
2743 if test "${enable_screen}" != "no"; then
2744   if test "${SYS}" = "darwin"; then
2745     AC_CHECK_HEADERS(OpenGL/gl.h, [
2746       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2747         VLC_ADD_PLUGIN([screen])
2748         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2749       ])
2750     ])
2751   elif test "${SYS}" = "mingw32"; then
2752     VLC_ADD_PLUGIN([screen])
2753     VLC_ADD_LIBS([screen],[-lgdi32])
2754   elif test "${SYS}" = "mingwce"; then
2755     CPPFLAGS="${CPPFLAGS_save}"
2756   elif test "${SYS}" = "beos"; then
2757     VLC_ADD_PLUGIN([screen])
2758     VLC_ADD_CXXFLAGS([screen],[])
2759     VLC_ADD_LIBS([screen],[-lbe])
2760   else
2761     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2762     AC_CHECK_HEADERS(X11/Xlib.h, [
2763       VLC_ADD_PLUGIN([screen])
2764       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2765       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2766     ])
2767     CPPFLAGS="${CPPFLAGS_save}"
2768   fi
2769 fi
2770
2771 dnl
2772 dnl  ipv6 plugin - not for QNX yet
2773 dnl
2774 have_ipv6=no
2775 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2776   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2777 ])
2778
2779 AS_IF([test "${have_ipv6}" = "yes"], [
2780   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2781
2782
2783 AC_CHECK_FUNCS(inet_ntop,[
2784   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2785
2786
2787 dnl
2788 dnl  ogg demux plugin
2789 dnl
2790 AC_ARG_ENABLE(ogg,
2791   [  --enable-ogg            Ogg demux support (default enabled)])
2792 if test "${enable_ogg}" != "no"
2793 then
2794   AC_ARG_WITH(ogg-tree,
2795   [    --with-ogg-tree=PATH  ogg tree for static linking])
2796   if test -n "${with_ogg_tree}"
2797   then
2798     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2799     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2800     if test -z "${real_ogg_tree}"
2801     then
2802       dnl  The given directory can't be found
2803       AC_MSG_RESULT(no)
2804       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2805     fi
2806     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2807     then
2808       dnl  Use a custom ogg
2809       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2810       VLC_ADD_PLUGIN([ogg])
2811       if test "${enable_sout}" != "no"; then
2812         VLC_ADD_PLUGIN([mux_ogg])
2813       fi
2814       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2815       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2816     else
2817       dnl  The given ogg wasn't built
2818       AC_MSG_RESULT(no)
2819       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2820     fi
2821   else
2822     AC_CHECK_HEADERS(ogg/ogg.h, [
2823       AC_CHECK_LIB( ogg, oggpack_read, [
2824         VLC_ADD_PLUGIN([ogg])
2825         if test "${enable_sout}" != "no"; then
2826           VLC_ADD_PLUGIN([mux_ogg])
2827         fi
2828         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2829      ],[])
2830   fi
2831 fi
2832
2833 dnl
2834 dnl  matroska demux plugin
2835 dnl
2836 AC_ARG_ENABLE(mkv,
2837   [  --enable-mkv            Matroska demux support (default enabled)])
2838 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2839   AC_LANG_PUSH(C++)
2840   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2841     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2842     AC_EGREP_CPP(yes,
2843       [#include <ebml/EbmlVersion.h>
2844        #ifdef LIBEBML_VERSION
2845        #if LIBEBML_VERSION >= 0x000706
2846        yes
2847        #endif
2848        #endif],
2849       [AC_MSG_RESULT([yes])
2850         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2851           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2852           AC_EGREP_CPP(yes,
2853             [#include <matroska/KaxVersion.h>
2854              #ifdef LIBMATROSKA_VERSION
2855              #if LIBMATROSKA_VERSION >= 0x000705
2856              yes
2857              #endif
2858              #endif],
2859             [AC_MSG_RESULT([yes])
2860               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2861               VLC_ADD_CXXFLAGS([mkv],[])
2862               if test "${SYS}" = "darwin"; then
2863                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2864               fi
2865               AC_CHECK_LIB(ebml_pic, main, [
2866                 VLC_ADD_PLUGIN([mkv])
2867                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2868               ],
2869                 AC_CHECK_LIB(ebml, main, [
2870                   VLC_ADD_PLUGIN([mkv])
2871                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2872                 ]) 
2873               )
2874             ],
2875             [AC_MSG_RESULT([no])
2876               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.])
2877           ])
2878         ])
2879       ],
2880       [AC_MSG_RESULT([no])
2881         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.])
2882     ])
2883   ])
2884   AC_LANG_POP(C++)
2885 fi
2886
2887 dnl
2888 dnl  modplug demux plugin
2889 dnl
2890 AC_ARG_ENABLE(mod,
2891   [  --enable-mod            Mod demux support (default enabled)])
2892 if test "${enable_mod}" != "no"
2893 then
2894   AC_ARG_WITH(mod-tree,
2895   [    --with-mod-tree=PATH mod tree for static linking])
2896   if test -n "${with_mod_tree}"
2897   then
2898     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2899     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2900     if test -z "${real_mod_tree}"
2901     then
2902       dnl  The given directory can't be found
2903       AC_MSG_RESULT(no)
2904       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2905     fi
2906     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2907     then
2908       dnl  Use a custom mod
2909       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2910       VLC_ADD_PLUGIN([mod])
2911       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2912       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2913     else
2914       dnl  The given mod wasn't built
2915       AC_MSG_RESULT(no)
2916       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2917     fi
2918   else
2919     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2920       VLC_ADD_PLUGIN([mod])
2921       VLC_ADD_CXXFLAGS([mod],[])
2922       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2923   fi
2924 fi
2925
2926 dnl
2927 dnl  mpc demux plugin
2928 dnl
2929 AC_ARG_ENABLE(mpc,
2930   [  --enable-mpc            Mpc demux support (default enabled)])
2931 if test "${enable_mpc}" != "no"
2932 then
2933   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2934     VLC_ADD_PLUGIN([mpc])
2935     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2936 fi
2937
2938 dnl
2939 dnl  game music emu demux plugin
2940 dnl
2941 AC_ARG_ENABLE(gme,
2942   [  --enable-gme            Game Music Emu demux support (default enabled)])
2943 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2944 then
2945   AC_LANG_PUSH(C++)
2946   AC_ARG_WITH(gme-tree,
2947   [    --with-gme-tree=PATH gme tree for static linking])
2948   if test -n "${with_gme_tree}"
2949   then
2950     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2951     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2952     if test -z "${real_gme_tree}"
2953     then
2954       dnl  The given directory can't be found
2955       AC_MSG_RESULT(no)
2956       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2957     fi
2958     if test -f "${real_gme_tree}/gme/libgme.a"
2959     then
2960       dnl  Use a custom gme
2961       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2962       VLC_ADD_PLUGIN([gme])
2963       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2964       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2965     else
2966       dnl  The given gme wasn't built
2967       AC_MSG_RESULT(no)
2968       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2969     fi
2970   else
2971       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2972   fi
2973   AC_LANG_POP(C++)
2974 fi
2975
2976 dnl
2977 dnl  Codec plugins
2978 dnl
2979
2980 AC_ARG_WITH(,[Codec plugins:])
2981
2982 dnl
2983 dnl  mad plugin
2984 dnl
2985 AC_ARG_ENABLE(mad,
2986   [  --enable-mad            libmad module (default enabled)])
2987 if test "${enable_mad}" != "no"
2988 then
2989   AC_ARG_WITH(mad,
2990     [    --with-mad=PATH       path to libmad],[],[])
2991   if test "${with_mad}" != "no" -a -n "${with_mad}"
2992   then
2993     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2994     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2995   fi
2996
2997   AC_ARG_WITH(mad-tree,
2998     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2999   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
3000   then
3001     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
3002     if test -z "${real_mad_tree}"
3003     then
3004       dnl  The given directory can't be found
3005       AC_MSG_RESULT(no)
3006       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
3007     fi
3008     dnl  Use a custom libmad
3009     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
3010     if test -f ${real_mad_tree}/mad.h
3011     then
3012       AC_MSG_RESULT(yes)
3013       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
3014       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
3015       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
3016       AC_CHECK_LIB(mad, mad_bit_init, [
3017         VLC_ADD_BUILTINS([mpgatofixed32])
3018         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
3019         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
3020       ],[])
3021       LDFLAGS="${LDFLAGS_save}"
3022     else
3023       AC_MSG_RESULT(no)
3024       AC_MSG_ERROR([the specified tree doesn't have mad.h])
3025     fi
3026   else
3027     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
3028     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
3029     AC_CHECK_HEADERS(mad.h, ,
3030       [ 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.]) ])
3031     AC_CHECK_LIB(mad, mad_bit_init, [
3032       VLC_ADD_PLUGIN([mpgatofixed32])
3033       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
3034       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
3035     CPPFLAGS="${CPPFLAGS_save}"
3036     LDFLAGS="${LDFLAGS_save}"
3037   fi
3038 fi
3039
3040 dnl
3041 dnl   libid3tag support (FIXME!!! doesn't work with new input)
3042 dnl
3043 AC_ARG_ENABLE( id3tag,
3044   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
3045 AS_IF([test "${enable_id3tag}" != "no"], [
3046   AC_CHECK_HEADERS(id3tag.h, [
3047     AC_CHECK_HEADERS(zlib.h, [
3048       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
3049       VLC_ADD_PLUGIN([id3tag])
3050     ])
3051   ])
3052 ])
3053
3054 dnl
3055 dnl  ffmpeg decoder/demuxer plugin
3056 dnl
3057 dnl we try to find ffmpeg using : 1- given tree, 2- pkg-config
3058 dnl                               3- default place,
3059
3060 AC_ARG_ENABLE(ffmpeg,
3061 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
3062 if test "${enable_ffmpeg}" != "no"
3063 then
3064
3065 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
3066
3067  AC_ARG_WITH(ffmpeg-mp3lame,
3068    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
3069    [
3070      if test "$with_ffmpeg_mp3lame" = "yes";    then
3071         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
3072      fi])
3073
3074  AC_ARG_WITH(ffmpeg-faac,
3075    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
3076    [
3077      if test "$with_ffmpeg_faac" = "yes"; then
3078         VLC_ADD_LIBS([ffmpeg],[-lfaac])
3079      fi])
3080
3081  AC_ARG_WITH(ffmpeg-dts,
3082    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
3083    [
3084      if test "$with_ffmpeg_dts" = "yes"; then
3085              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3086              AC_CHECK_LIB(dts_pic, dts_free, 
3087                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
3088                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
3089              LDFLAGS="${LDFLAGS_save}"
3090      fi])
3091
3092  AC_ARG_WITH(ffmpeg-vorbis,
3093    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
3094    [
3095      if test "$with_ffmpeg_vorbis" = "yes"; then
3096         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
3097      fi])
3098
3099  AC_ARG_WITH(ffmpeg-theora,
3100    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
3101    [
3102      if test "$with_ffmpeg_theora" = "yes"; then
3103         VLC_ADD_LIBS([ffmpeg],[-ltheora])
3104      fi])
3105
3106  AC_ARG_WITH(ffmpeg-ogg,
3107    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
3108    [
3109      if test "$with_ffmpeg_ogg" = "yes"; then
3110         VLC_ADD_LIBS([ffmpeg],[-logg])
3111      fi])
3112
3113  AC_ARG_WITH(ffmpeg-zlib,
3114    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
3115    [
3116      if test "$with_ffmpeg_zlib" = "yes"; then
3117         VLC_ADD_LIBS([ffmpeg],[-lz])
3118      fi])
3119
3120  AC_ARG_WITH(ffmpeg-amrnb,
3121    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
3122    [
3123      if test "$with_ffmpeg_amrnb" = "yes";      then
3124         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
3125      fi])
3126
3127  AC_ARG_WITH(ffmpeg-amrwb,
3128    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
3129    [
3130      if test "$with_ffmpeg_amrwb" = "yes";      then
3131         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
3132      fi])
3133
3134  AC_ARG_WITH(ffmpeg-x264,
3135    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libx264 support],
3136    [
3137      if test "$with_ffmpeg_x264" = "yes";       then
3138         VLC_ADD_LIBS([ffmpeg],[-lx264])
3139      fi])
3140
3141  AC_ARG_WITH(ffmpeg-a52,
3142    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
3143    [
3144      if test "$with_ffmpeg_a52" = "yes";        then
3145         VLC_ADD_LIBS([ffmpeg],[-la52])
3146      fi])
3147
3148  dnl
3149  dnl test for --with-ffmpeg-tree
3150  dnl
3151  AC_ARG_WITH(ffmpeg-tree,
3152    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
3153
3154  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3155    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
3156    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3157    if test -z "${real_ffmpeg_tree}"; then
3158      dnl  The given directory can't be found
3159      AC_MSG_RESULT(no)
3160      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3161    fi
3162    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3163      dnl  The given libavcodec wasn't built
3164      AC_MSG_RESULT(no)
3165      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
3166    fi
3167    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3168      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
3169        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
3170      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
3171         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
3172         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
3173      else
3174        dnl  The given libavcodec wasn't built with --enable-postproc
3175        AC_MSG_RESULT(no)
3176        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-postproc])
3177      fi
3178    fi
3179    dnl  Use a custom libffmpeg
3180    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3181
3182    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3183    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3184    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3185    export PKG_CONFIG_PATH=""
3186    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3187    VLC_SAVE_FLAGS
3188
3189    PKG_CHECK_MODULES( [FFMPEG],[libavformat libavcodec libpostproc], [
3190         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3191         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3192         AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3193       )
3194    AS_IF([ test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"],[
3195      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3196      PKG_CHECK_MODULES( [SWSCALE],[libswscale], [
3197      VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3198      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[${SWSCALE_CFLAGS}])])
3199      ])
3200    CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS} ${SWSCALE_CFLAGS}"
3201    CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS} ${SWSCALE_CFLAGS}"
3202    
3203    AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3204    AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3205    AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3206    AC_CHECK_HEADERS([ffmpeg/swscale.h libswscale/swscale.h])
3207
3208    VLC_RESTORE_FLAGS
3209    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3210          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3211    ],[
3212         unset PKG_CONFIG_PATH
3213    ])
3214    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[
3215         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3216    ],[
3217         unset PKG_CONFIG_LIBDIR
3218    ])
3219
3220    VLC_ADD_BUILTINS([ffmpeg])
3221    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3222      VLC_ADD_BUILTINS([stream_out_switcher])
3223    fi
3224
3225
3226 else
3227
3228
3229 dnl Trying with pkg-config
3230    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3231     [
3232      VLC_SAVE_FLAGS
3233      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3234      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3235      AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3236      AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3237      AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3238      dnl newer ffmpeg have a separate libpostproc
3239      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3240        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3241        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3242        ],[ true ])
3243      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3244      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3245      AC_CHECK_HEADERS(postproc/postprocess.h)
3246      if test "${SYS}" = "darwin"; then
3247         VLC_ADD_BUILTINS([ffmpeg])
3248      else
3249         VLC_ADD_PLUGIN([ffmpeg])
3250      fi
3251      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3252         if test "${SYS}" = "darwin"; then
3253             VLC_ADD_BUILTINS([stream_out_switcher])
3254         else
3255             VLC_ADD_PLUGIN([stream_out_switcher])
3256         fi
3257      fi
3258      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3259      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3260
3261      dnl even newer ffmpeg has a libswscale
3262      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3263        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3264        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3265        AC_CHECK_LIB(swscale, sws_getContext,
3266          [AC_CHECK_HEADERS([ffmpeg/swscale.h libswscale/swscale.h])],[],[-lavutil -lm])
3267        ],[ true ])
3268      VLC_RESTORE_FLAGS
3269     ],[
3270
3271     dnl
3272     dnl last chance: at the default place
3273     dnl
3274       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3275       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3276       AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3277       AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3278       AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3279       AC_CHECK_HEADERS(postproc/postprocess.h)
3280
3281       AC_CHECK_LIB(avutil, av_crc_init, [
3282         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3283         LDAVUTIL="-lavutil"])
3284
3285       AC_CHECK_LIB(avcodec, avcodec_init, [
3286         VLC_ADD_BUILTINS([ffmpeg])
3287         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3288         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3289             VLC_ADD_BUILTINS([stream_out_switcher])
3290         fi],
3291          [ 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])
3292
3293       AC_CHECK_LIB(postproc, pp_postprocess, [
3294         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3295       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-postproc.]),
3296         [$LDAVUTIL])
3297
3298       AC_CHECK_LIB(avformat, av_open_input_stream, [
3299         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3300       LDFLAGS="${LDFLAGS_save}"
3301       CPPFLAGS="${CPPFLAGS_save}"
3302
3303       AC_CHECK_LIB(swscale, sws_getContext, [
3304         AC_CHECK_HEADERS(ffmpeg/swscale.h libswscale/swscale.h)
3305         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3306       LDFLAGS="${LDFLAGS_save}"
3307       CPPFLAGS="${CPPFLAGS_save}"
3308     ])
3309   fi
3310 fi
3311
3312 dnl
3313 dnl  ffmpegaltivec plugin
3314 dnl
3315 AC_ARG_ENABLE(ffmpegaltivec,
3316 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3317 if test "${enable_ffmpegaltivec}" = "yes"
3318 then
3319   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3320     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3321     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3322     if test -z "${real_ffmpeg_tree}"; then
3323       dnl  The given directory can't be found
3324       AC_MSG_RESULT(no)
3325       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3326     fi
3327     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3328       dnl  The given libavcodecaltivec wasn't built
3329       AC_MSG_RESULT(no)
3330       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3331     fi
3332     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3333       dnl  The given libavcodecaltivec wasn't built with --enable-postproc
3334       AC_MSG_RESULT(no)
3335       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-postproc])
3336     fi
3337     dnl  Use a custom libffmpeg
3338     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3339     VLC_ADD_BUILTINS([ffmpegaltivec])
3340     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3341     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3342     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3343
3344     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3345       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3346       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3347       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3348     fi
3349     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3350     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3351   fi
3352 fi
3353
3354 dnl
3355 dnl  faad decoder plugin
3356 dnl
3357 AC_ARG_ENABLE(faad,
3358 [  --enable-faad           faad codec (default disabled)])
3359 if test "${enable_faad}" = "yes"
3360 then
3361   AC_ARG_WITH(faad-tree,
3362   [    --with-faad-tree=PATH faad tree for static linking])
3363   if test -n "${with_faad_tree}"
3364   then
3365     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3366     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3367     if test -z "${real_faad_tree}"
3368     then
3369       dnl  The given directory can't be found
3370       AC_MSG_RESULT(no)
3371       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3372     fi
3373     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3374     then
3375       dnl  Use a custom faad
3376       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3377       VLC_ADD_BUILTINS([faad])
3378       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3379       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3380     else
3381       dnl  The given libfaad wasn't built
3382       AC_MSG_RESULT(no)
3383       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3384     fi
3385   else
3386     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3387     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3388     AC_CHECK_HEADERS(faad.h, ,
3389       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3390     AC_CHECK_LIB(faad, faacDecOpen, [
3391       VLC_ADD_PLUGIN([faad])
3392       VLC_ADD_LIBS([faad],[-lfaad]) ],
3393       AC_CHECK_LIB(faad, NeAACDecOpen, [
3394         VLC_ADD_PLUGIN([faad])
3395         VLC_ADD_LIBS([faad],[-lfaad]) ],
3396         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3397     LDFLAGS="${LDFLAGS_save}"
3398     CPPFLAGS="${CPPFLAGS_save}"
3399   fi
3400 fi
3401
3402 dnl
3403 dnl twolame encoder plugin
3404 dnl
3405 AC_ARG_ENABLE(twolame,
3406 [  --enable-twolame        twolame codec (default disabled)])
3407 if test "${enable_twolame}" = "yes"
3408 then
3409   AC_ARG_WITH(twolame-tree,
3410   [    --with-twolame-tree=PATH twolame tree for static linking])
3411   if test -n "${with_twolame_tree}"
3412   then
3413     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3414     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3415     if test -z "${real_twolame_tree}"
3416     then
3417       dnl  The given directory can't be found
3418       AC_MSG_RESULT(no)
3419       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3420     fi
3421     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3422     then
3423       dnl  Use a custom twolame
3424       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3425       VLC_ADD_BUILTINS([twolame])
3426       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3427       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3428     else
3429       dnl  The given libtwolame wasn't built
3430       AC_MSG_RESULT(no)
3431       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3432     fi
3433   else
3434     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3435     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3436     AC_CHECK_HEADERS(twolame.h, ,
3437       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3438     AC_CHECK_LIB(twolame, twolame_init, [
3439       VLC_ADD_PLUGIN([twolame])
3440       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3441       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3442         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3443     LDFLAGS="${LDFLAGS_save}"  
3444     CPPFLAGS="${CPPFLAGS_save}"
3445   fi
3446 fi
3447
3448 dnl
3449 dnl  QuickTime plugin
3450 dnl
3451 AC_ARG_ENABLE(quicktime,
3452   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3453 if test "${enable_quicktime}" != "no" &&
3454   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3455 then
3456   if test "${SYS}" = "mingw32"; then
3457     VLC_ADD_BUILTINS([quicktime])
3458   else
3459   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3460     [ VLC_ADD_BUILTINS([quicktime])
3461       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3462     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3463   fi
3464 fi
3465
3466 dnl
3467 dnl  Real plugin
3468 dnl
3469 AC_ARG_ENABLE(real,
3470   [  --enable-real           Real audio module (default disabled)])
3471 if test "${enable_real}" = "yes"; then
3472   VLC_ADD_PLUGIN([realaudio])
3473 fi
3474
3475 dnl
3476 dnl  Real RTSP plugin
3477 dnl
3478 AC_ARG_ENABLE(realrtsp,
3479   [  --enable-realrtsp       Real RTSP module (default disabled)])
3480 if test "${enable_realrtsp}" = "yes"; then
3481   VLC_ADD_PLUGIN([access_realrtsp])
3482 fi
3483
3484 dnl
3485 dnl MP4 module
3486 dnl
3487 AC_CHECK_HEADERS(zlib.h, [
3488   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3489 ] )
3490
3491 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3492   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3493 ] )
3494
3495 dnl
3496 dnl skins2 module
3497 dnl
3498 AC_ARG_ENABLE(libtar,
3499   [  --enable-libtar support for skins2 (default enabled)])
3500
3501 AS_IF([test "${enable_libtar}" != "no"],[
3502   AC_CHECK_HEADERS(libtar.h, [
3503     VLC_ADD_LIBS([skins2],[-ltar])
3504   ] )
3505 ])
3506
3507 dnl
3508 dnl A52/AC3 decoder plugin
3509 dnl
3510 AC_ARG_ENABLE(a52,
3511   [  --enable-a52            A/52 support with liba52 (default enabled)])
3512 if test "${enable_a52}" != "no"
3513 then
3514   AC_ARG_WITH(a52,
3515     [    --with-a52=PATH       a52 headers and libraries])
3516   AC_ARG_WITH(a52-tree,
3517     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3518   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3519   then
3520     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3521     if test -z "${real_a52_tree}"
3522     then
3523       dnl  The given directory can't be found
3524       AC_MSG_RESULT(no)
3525       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3526     fi
3527     dnl  Use a custom a52dec
3528     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3529     if test -f ${real_a52_tree}/include/a52.h
3530     then
3531       AC_MSG_RESULT(yes)
3532       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3533       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3534       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3535       AC_CHECK_LIB(a52, a52_free, [
3536         VLC_ADD_BUILTINS([a52tofloat32])
3537         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3538         VLC_ADD_LIBS([a52tofloat32],[-la52])
3539         ],[
3540         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3541         then
3542           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3543         else
3544           AC_MSG_ERROR([the specified tree hasn't been compiled])
3545         fi
3546       ])
3547       LDFLAGS="${LDFLAGS_save}"
3548     else
3549       AC_MSG_RESULT(no)
3550       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3551     fi
3552   else
3553     if test -z "${with_a52}"
3554     then
3555       LDFLAGS_test=""
3556       CPPFLAGS_test=""
3557     else
3558       LDFLAGS_test="-L${with_a52}/lib"
3559       CPPFLAGS_test="-I${with_a52}/include"
3560     fi
3561     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3562     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3563     AC_CHECK_HEADERS(a52dec/a52.h, [
3564       AC_CHECK_LIB(a52, a52_free, [
3565         VLC_ADD_PLUGIN([a52tofloat32])
3566         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3567         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3568       ],[
3569         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.])
3570         ])
3571     ],[
3572       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.])
3573     ])
3574     CPPFLAGS="${CPPFLAGS_save}"
3575     LDFLAGS="${LDFLAGS_save}"
3576   fi
3577 fi
3578
3579 AC_ARG_WITH(a52-fixed,
3580       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3581       [
3582         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3583
3584 dnl
3585 dnl DTS Coherent Acoustics decoder plugin
3586 dnl
3587 AS_IF([test "x${enable_dts}" != "x"], [
3588   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3589 ])
3590 AS_IF([test "x${with_dts_tree}" != "x"], [
3591   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3592 ])
3593
3594 AC_ARG_ENABLE(dca,
3595   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3596 AS_IF([test "${enable_dca}" != "no"], [
3597   AC_ARG_WITH(dca-tree,
3598     [    --with-dca-tree=PATH  libdca tree for static linking],,
3599     [with_dca_tree="no"])
3600   AS_IF([test "${with_dca_tree}" != "no"], [
3601     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3602     AS_IF([test -z "${real_dca_tree}"], [
3603       dnl  The given directory can't be found
3604       AC_MSG_RESULT(no)
3605       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3606     ])
3607     dnl  Use a custom libdca
3608     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3609     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3610       AC_MSG_RESULT(yes)
3611       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3612       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3613         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3614       ], [
3615         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3616       ])
3617     ], [
3618       AC_MSG_RESULT(no)
3619       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3620     ])
3621   ], [
3622     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3623       VLC_ADD_PLUGIN([dtstofloat32])
3624       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3625       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3626     ], [
3627       AS_IF([test "x${enable_dca}" != "x"], [
3628         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3629       ])
3630     ])
3631   ])
3632 ])
3633
3634 dnl
3635 dnl  Flac plugin
3636 dnl
3637 AC_ARG_ENABLE(flac,
3638   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3639 if test "${enable_flac}" = "yes"
3640 then
3641   AC_ARG_WITH(flac-tree,
3642   [    --with-flac-tree=PATH flac tree for static linking])
3643   if test -n "${with_flac_tree}"
3644   then
3645     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3646     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3647     if test -z "${real_flac_tree}"
3648     then
3649       dnl  The given directory can't be found
3650       AC_MSG_RESULT(no)
3651       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3652     fi
3653     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3654     then
3655       dnl  Use a custom flac
3656       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3657       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3658       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3659       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3660     else
3661       dnl  The given flac wasn't built
3662       AC_MSG_RESULT(no)
3663       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3664     fi
3665   else
3666     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3667       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3668      ],[])
3669   fi
3670 fi
3671
3672 dnl
3673 dnl  Libmpeg2 plugin
3674 dnl
3675 AC_ARG_ENABLE(libmpeg2,
3676   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3677 if test "${enable_libmpeg2}" != "no"
3678 then
3679   AC_ARG_WITH(libmpeg2-tree,
3680   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3681   if test -n "${with_libmpeg2_tree}"
3682   then
3683     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3684     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3685     if test -z "${real_libmpeg2_tree}"
3686     then
3687       dnl  The given directory can't be found
3688       AC_MSG_RESULT(no)
3689       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3690     fi
3691     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3692     then
3693       dnl  Use a custom libmpeg2
3694       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3695       VLC_ADD_BUILTINS([libmpeg2])
3696       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3697       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3698       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3699     else
3700       dnl  The given libmpeg2 wasn't built
3701       AC_MSG_RESULT(no)
3702       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3703     fi
3704   else
3705     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3706       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3707       AC_EGREP_CPP(yes,
3708         [#include <mpeg2dec/mpeg2.h>
3709          #ifdef MPEG2_RELEASE
3710          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3711          yes
3712          #endif
3713          #endif],
3714         [AC_MSG_RESULT([yes])
3715           VLC_ADD_PLUGIN([libmpeg2])
3716           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3717         [AC_MSG_RESULT([no])
3718           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.])])],
3719
3720       [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.])]
3721     )
3722   fi
3723 fi
3724
3725 dnl
3726 dnl  Vorbis plugin
3727 dnl
3728 AC_ARG_ENABLE(vorbis,
3729   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3730 if test "${enable_vorbis}" != "no"
3731 then
3732   AC_ARG_WITH(vorbis-tree,
3733   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3734   if test -n "${with_vorbis_tree}"
3735   then
3736     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3737     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3738     if test -z "${real_vorbis_tree}"
3739     then
3740       dnl  The given directory can't be found
3741       AC_MSG_RESULT(no)
3742       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3743     fi
3744     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3745     then
3746       dnl  Use a custom vorbis 
3747       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3748       VLC_ADD_PLUGIN([vorbis])
3749       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3750       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3751     else
3752       dnl  The given vorbis wasn't built
3753       AC_MSG_RESULT(no)
3754       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3755     fi
3756   else
3757     AC_CHECK_HEADERS(vorbis/codec.h, [
3758       VLC_ADD_PLUGIN([vorbis])
3759       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3760
3761     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3762       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3763   fi
3764 fi
3765
3766 dnl
3767 dnl  Tremor plugin
3768 dnl
3769 AC_ARG_ENABLE(tremor,
3770   [  --enable-tremor         Tremor decoder support (default disabled)])
3771 if test "${enable_tremor}" = "yes"
3772 then
3773   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3774     VLC_ADD_PLUGIN([tremor])
3775     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3776    ],[])
3777 fi
3778
3779 dnl
3780 dnl  Speex plugin
3781 dnl
3782 AC_ARG_ENABLE(speex,
3783   [  --enable-speex          Speex decoder support (default enabled)])
3784 if test "${enable_speex}" != "no"
3785 then
3786   AC_ARG_WITH(speex-tree,
3787   [    --with-speex-tree=PATH speex tree for static linking])
3788   if test -n "${with_speex_tree}"
3789   then
3790     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3791     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3792     if test -z "${real_speex_tree}"
3793     then
3794       dnl  The given directory can't be found
3795       AC_MSG_RESULT(no)
3796       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3797     fi
3798     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3799     then
3800       dnl  Use a custom speex
3801       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3802       VLC_ADD_PLUGIN([speex])
3803       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3804       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3805     else
3806       dnl  The given speex wasn't built
3807       AC_MSG_RESULT(no)
3808       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3809     fi
3810   else
3811     AC_CHECK_HEADERS(speex/speex.h, [
3812       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3813       AC_CHECK_LIB(speex, speex_decode_int, [
3814         VLC_ADD_PLUGIN([speex])
3815         VLC_ADD_LIBS([speex],[-lspeex]) ],
3816         [ AC_MSG_RESULT([no])
3817           AC_MSG_WARN([Your libspeex is too old, please get the development
3818                        version.]) ],[])
3819       LDFLAGS="${LDFLAGS_save}"
3820       ],[])
3821   fi
3822 fi
3823
3824 dnl
3825 dnl  tarkin decoder plugin
3826 dnl
3827 AC_ARG_ENABLE(tarkin,
3828 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3829 if test "${enable_tarkin}" = "yes"
3830 then
3831   AC_ARG_WITH(tarkin-tree,
3832   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3833   if test -n "${with_tarkin_tree}"
3834   then
3835     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3836     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3837     if test -f "${real_tarkin_tree}/tarkin.o"
3838     then
3839       VLC_ADD_BUILTINS([tarkin])
3840       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3841       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])
3842       AC_MSG_RESULT(yes)
3843     else
3844       dnl  The given tarkin tree wasn't built
3845       AC_MSG_RESULT(no)
3846       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3847                     make sure you compiled tarkin in ${with_tarkin_tree}])
3848     fi
3849   fi
3850 fi
3851
3852 dnl
3853 dnl  theora decoder plugin
3854 dnl
3855 AC_ARG_ENABLE(theora,
3856 [  --enable-theora         experimental theora codec (default disabled)])
3857 if test "${enable_theora}" = "yes"
3858 then
3859   AC_CHECK_HEADERS(theora/theora.h, [
3860     AC_CHECK_LIB(theora, theora_granule_time, [
3861       VLC_ADD_PLUGIN([theora])
3862       theora_libs="-ltheora -logg"
3863       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3864       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3865 You also need to check that you have a libogg posterior to the 1.0 release.])],
3866       [-logg])
3867   ])
3868 fi
3869
3870 dnl
3871 dnl  dirac decoder plugin
3872 dnl
3873 AC_ARG_ENABLE(dirac,
3874 [  --enable-dirac          experimental dirac codec (default disabled)])
3875 if test "${enable_dirac}" = "yes"; then
3876   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.9.0], [
3877       VLC_ADD_PLUGIN([dirac])
3878       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3879       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3880       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3881   ])
3882 fi
3883
3884 dnl
3885 dnl  PNG decoder module
3886 dnl
3887 AC_ARG_ENABLE(png,
3888   [  --enable-png            PNG support (default enabled)])
3889 if test "${enable_png}" != "no"; then
3890 AC_CHECK_HEADERS(png.h, [
3891   LDFLAGS="${LDFLAGS_save} -lz"
3892   AC_CHECK_LIB(png, png_set_rows, [
3893     VLC_ADD_LIBS([png],[-lpng -lz])
3894     VLC_ADD_PLUGIN([png])
3895     VLC_ADD_PLUGIN([osdmenu])
3896     VLC_ADD_PLUGIN([osd_parser])
3897     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3898     [],[-lz])
3899     LDFLAGS="${LDFLAGS_save}"
3900   ])
3901 fi
3902 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3903
3904 dnl
3905 dnl H264 encoder plugin (using libx264)
3906 dnl
3907 AC_ARG_ENABLE(x264,
3908   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3909 if test "${enable_x264}" != "no"; then
3910   AC_ARG_WITH(x264-tree,
3911     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3912   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3913   then
3914     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3915     if test -z "${real_x264_tree}"
3916     then
3917       dnl  The given directory can't be found
3918       AC_MSG_RESULT(no)
3919       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3920     fi
3921     dnl  Use a custom libx264
3922     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3923     if test -f ${real_x264_tree}/x264.h
3924     then
3925       AC_MSG_RESULT(yes)
3926       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3927       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3928       PKG_CHECK_MODULES(X264,x264, [
3929         VLC_ADD_PLUGIN([x264])
3930         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3931         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3932       ],[
3933         AC_MSG_ERROR([the specified tree hasn't been compiled])
3934       ])
3935       LDFLAGS="${LDFLAGS_save}"
3936     else
3937       AC_MSG_RESULT(no)
3938       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3939     fi
3940   else
3941       PKG_CHECK_MODULES(X264,x264, [
3942         VLC_ADD_PLUGIN([x264])
3943         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3944         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3945       ],[
3946         if test "${enable_x264}" = "yes"; then
3947             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3948           fi
3949       ])
3950     LDFLAGS="${LDFLAGS_save}"
3951   fi
3952 fi
3953
3954 dnl
3955 dnl libfluidsynth (MIDI synthetizer) plugin
3956 dnl
3957 AC_ARG_ENABLE(fluidsynth,
3958   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3959 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3960   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3961     VLC_ADD_PLUGIN(fluidsynth)
3962     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3963     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3964   ], [
3965     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3966       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3967     ])
3968   ])
3969 ])
3970
3971 dnl
3972 dnl Teletext Modules
3973 dnl vbi decoder plugin (using libzbvi)
3974 dnl telx module
3975 dnl uncompatible
3976 dnl
3977 AC_ARG_ENABLE(zvbi,
3978   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3979 AC_ARG_ENABLE(telx,
3980   [  --enable-telx           Teletext decoding module (conflicting with zvbi) (default disabled)])
3981
3982 AS_IF( [test "${enable_zvbi}" != "no"],[
3983   AS_IF( [test "${enable_telx}" = "yes"],[
3984     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3985   ],[
3986     PKG_CHECK_MODULES(ZVBI,
3987         zvbi-0.2 >= 0.2.25,
3988         [
3989           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3990           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3991           VLC_ADD_PLUGIN([zvbi])
3992           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3993         ],[
3994           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3995           enable_telx="yes"
3996         ])
3997     ])  
3998   ])
3999 AS_IF( [test "${enable_telx}" = "yes"],[
4000   VLC_ADD_PLUGIN([telx])
4001   ])
4002
4003 dnl
4004 dnl asa/csri subtitle rendering module
4005 dnl
4006 AC_ARG_ENABLE(csri,
4007   [  --enable-csri          Subtitle support using CSRI / asa (default disabled)])
4008 AS_IF( [test "${enable_csri}" = "yes"], [
4009   PKG_CHECK_MODULES(CSRI,
4010       csri >= 0.1.0,
4011       [
4012         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
4013         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
4014         VLC_ADD_PLUGIN([csri])
4015       ],[
4016         AC_MSG_WARN([CSRI helper library not found])
4017       ])
4018   ])
4019
4020 dnl
4021 dnl asa demuxer
4022 dnl
4023 AC_ARG_ENABLE(asademux,
4024   [  --enable-asademux      asa subtitle demuxing (default disabled)])
4025 AS_IF( [test "${enable_asademux}" = "yes"], [
4026   PKG_CHECK_MODULES(PCRE,
4027       libpcre >= 6.5,
4028       [
4029         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
4030         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
4031         VLC_ADD_PLUGIN([asademux])
4032       ],[
4033         AC_MSG_WARN([PCRE library not found (required for asademux)])
4034       ])
4035   ])
4036
4037 dnl
4038 dnl  CMML plugin
4039 dnl
4040 AC_ARG_ENABLE(cmml,
4041   [  --enable-cmml           CMML support (default enabled)])
4042 if test "${enable_cmml}" != "no"
4043 then
4044   VLC_ADD_PLUGIN([cmml])
4045 fi
4046
4047
4048 dnl
4049 dnl  Video plugins
4050 dnl
4051
4052 AC_ARG_WITH(,[Video plugins:])
4053
4054 dnl Check for DPMS
4055 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
4056   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4057   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
4058     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
4059     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
4060       AC_MSG_RESULT(yes)
4061       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
4062                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
4063     ],[
4064       AC_MSG_RESULT(no)
4065     ])
4066   ],,[
4067     #include <X11/Xlib.h>
4068   ])
4069   CPPFLAGS="${CPPFLAGS_save}"
4070 fi
4071
4072 dnl
4073 dnl  X11 module
4074 dnl  (enabled by default except on win32)
4075 dnl
4076 AC_ARG_ENABLE(x11,
4077   [  --enable-x11            X11 support (default enabled)])
4078 if test "${enable_x11}" != "no" &&
4079   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4080    test "${enable_x11}" = "yes"); then
4081   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4082   AC_CHECK_HEADERS(X11/Xlib.h, [
4083     VLC_ADD_PLUGIN([panoramix])
4084     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4085     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
4086     AC_CHECK_LIB(Xext, XShmAttach, [
4087       VLC_ADD_PLUGIN([x11])
4088       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
4089       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
4090     ])
4091   ])
4092   CPPFLAGS="${CPPFLAGS_save}"
4093 fi
4094
4095 dnl
4096 dnl  XVideo module
4097 dnl  (enabled by default except on win32)
4098 dnl
4099 AC_ARG_ENABLE(xvideo,
4100   [  --enable-xvideo         XVideo support (default enabled)])
4101 if test "${enable_xvideo}" != "no" &&
4102   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4103    test "${enable_xvideo}" = "yes"); then
4104   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4105   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
4106     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4107     AC_CHECK_LIB(Xv,XvPutImage,[
4108       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
4109       # test for libXv_pic.
4110       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
4111         VLC_ADD_PLUGIN([xvideo])
4112         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4113         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
4114       else
4115         AC_CHECK_LIB(Xv_pic,XvPutImage,[
4116           VLC_ADD_PLUGIN([xvideo])
4117           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4118           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
4119         ],[
4120           VLC_ADD_BUILTINS([xvideo])
4121           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
4122           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4123         ])
4124       fi
4125     ])
4126     CFLAGS="${CFLAGS_save}"
4127   ]
4128   CPPFLAGS="${CPPFLAGS_save}")
4129 fi
4130
4131 dnl
4132 dnl  GLX module
4133 dnl  (enabled by default except on win32)
4134 dnl
4135 AC_ARG_ENABLE(glx,
4136   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
4137 if test "${enable_glx}" != "no" &&
4138   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4139    test "${enable_glx}" = "yes"); then
4140   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4141   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
4142   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
4143     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
4144     choke me
4145     #endif]]),
4146     [
4147       VLC_ADD_PLUGIN([glx])
4148       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
4149       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
4150     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
4151   CPPFLAGS="${CPPFLAGS_save}"
4152 fi
4153
4154 dnl
4155 dnl  XVMC module
4156 dnl  (disabled by default except on win32)
4157 dnl
4158 AC_ARG_ENABLE(xvmc,
4159   [  --enable-xvmc           XVMC support (default disabled)])
4160 if test "${enable_xvmc}" = "yes" &&
4161   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4162    test "${enable_xvmc}" = "yes"); then
4163   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4164   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4165     VLC_ADD_PLUGIN([xvmc])
4166     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
4167     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
4168   ])
4169   CPPFLAGS="${CPPFLAGS_save}"
4170 fi
4171
4172 dnl
4173 dnl  Check for the Xinerama extension
4174 dnl
4175 AC_ARG_ENABLE(xinerama,
4176   [  --enable-xinerama       Xinerama support (default enabled)])
4177 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
4178   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4179    test "${enable_xvideo}" = "yes"); then
4180   ac_cv_have_xinerama="no"
4181   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4182   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4183   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4184     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4185       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4186       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4187       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4188       ac_cv_have_xinerama="yes"
4189     ],[
4190       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4191         VLC_ADD_LIBS([xvideo],[-lXinerama])
4192         VLC_ADD_LIBS([x11],[-lXinerama])
4193         VLC_ADD_LIBS([glx],[-lXinerama])
4194         ac_cv_have_xinerama="yes"
4195       ])
4196     ])
4197   ])
4198   if test "${ac_cv_have_xinerama}" = "yes"; then
4199     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4200   fi
4201   CFLAGS="${CFLAGS_save}"
4202   CPPFLAGS="${CPPFLAGS_save}"
4203
4204 dnl
4205 dnl  Check for XF86VidMode extension
4206 dnl
4207   ac_cv_have_xf86vidmode="no"
4208   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4209   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4210   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4211     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4212       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4213       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4214       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4215       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4216       ac_cv_have_xf86vidmode="yes"
4217     ],[
4218       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4219         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4220         VLC_ADD_LIBS([x11],[-lXxf86vm])
4221         VLC_ADD_LIBS([glx],[-lXxf86vm])
4222         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4223         ac_cv_have_xf86vidmode="yes"
4224       ])
4225     ])
4226   ],[true],
4227 [#ifdef HAVE_X11_XLIB_H
4228 # include <X11/Xlib.h>
4229 #endif]
4230    )
4231   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4232     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4233   ])
4234   CFLAGS="${CFLAGS_save}"
4235   CPPFLAGS="${CPPFLAGS_save}"
4236
4237 fi
4238
4239 dnl
4240 dnl  OpenGL module
4241 dnl  (enabled by default except on beos)
4242 dnl
4243 AC_ARG_ENABLE(opengl,
4244   [  --enable-opengl         OpenGL support (default enabled)])
4245 if test "${enable_opengl}" != "no" &&
4246    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4247   if test "${SYS}" != "darwin"; then
4248     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4249       VLC_ADD_PLUGIN([opengl])
4250       if test "${SYS}" != "mingw32"; then
4251         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4252       else
4253         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4254       fi
4255     ])
4256   else
4257     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4258     VLC_ADD_PLUGIN([opengl])
4259     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4260   fi
4261 fi
4262
4263 dnl
4264 dnl  SDL module
4265 dnl
4266 AC_ARG_ENABLE(sdl,
4267   [  --enable-sdl            SDL support (default enabled)])
4268 AC_ARG_ENABLE(sdl-image,
4269   [  --enable-sdl-image      SDL image support (default enabled)])
4270 if test "${enable_sdl}" != "no"
4271 then
4272   SDL_PATH="${PATH}"
4273   AC_ARG_WITH(sdl-config-path,
4274     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4275     [ if test "${with_sdl_config_path}" != "no"
4276       then
4277         SDL_PATH="${with_sdl_config_path}:${PATH}"
4278       fi ])
4279   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4280   SDL_CONFIG="${SDL12_CONFIG}"
4281   SDL_HEADER="SDL12/SDL.h"
4282   SDL_IMAGE="SDL12/SDL_image.h"
4283   if test "${SDL_CONFIG}" = "no"
4284   then
4285     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4286     SDL_CONFIG=${SDL11_CONFIG}
4287     SDL_HEADER="SDL11/SDL.h"
4288     SDL_IMAGE="SDL11/SDL_image.h"
4289   fi
4290   if test "${SDL_CONFIG}" = "no"
4291   then
4292     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4293     SDL_HEADER="SDL/SDL.h"
4294     SDL_IMAGE="SDL/SDL_image.h"
4295   fi
4296   # check for cross-compiling
4297   SDL_PREFIX=
4298   AC_ARG_WITH(sdl-prefix,
4299     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4300                                e.g use as:
4301                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4302   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4303   then
4304     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4305   fi
4306   if test "${SDL_CONFIG}" != "no"
4307   then
4308     # SDL on Darwin is heavily patched and can only run SDL_image
4309     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4310       VLC_ADD_PLUGIN([vout_sdl])
4311       VLC_ADD_PLUGIN([aout_sdl])
4312     fi
4313     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4314     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4315     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4316     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4317       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4318       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4319           As a last resort we also test for SDL.h presence),
4320       [ AC_MSG_ERROR([The development package for SDL is not installed.
4321 Please install it and try again. Alternatively you can also configure with
4322 --disable-sdl.])
4323       ])])
4324     AS_IF([ test "${enable_sdl_image}" != "no"],[
4325       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4326         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4327         VLC_ADD_PLUGIN([sdl_image])
4328         AC_CHECK_LIB(png, png_set_rows,
4329           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4330         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4331           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4332         AC_CHECK_LIB(tiff, TIFFClientOpen,
4333           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4334         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4335         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4336             As a last resort we also test for SDL_image.h presence),
4337         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4338   You should install it alongside your SDL package.])
4339         ])])
4340     ])
4341     CPPFLAGS="${CPPFLAGS_save}"
4342     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4343     then
4344       AC_MSG_ERROR([The development package for SDL is not installed.
4345 Please install it and try again. Alternatively you can also configure with
4346 --disable-sdl.])
4347     fi
4348
4349   elif test "${enable_sdl}" =  "yes"
4350   then
4351     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4352 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4353     ])
4354   fi
4355 fi
4356
4357 dnl
4358 dnl  freetype module
4359 dnl
4360 AC_ARG_ENABLE(freetype,
4361   [  --enable-freetype       freetype support (default enabled)])
4362 AC_ARG_ENABLE(fribidi,
4363   [  --enable-fribidi        fribidi support (default enabled)])
4364 if test "${enable_freetype}" != "no"
4365 then
4366    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4367       VLC_ADD_PLUGIN([freetype])
4368       have_freetype=yes
4369       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4370       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4371       if test "${SYS}" = "mingw32"; then
4372         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4373      fi
4374     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4375       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4376        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4377     AC_CHECK_HEADERS(Carbon/Carbon.h,
4378       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4379   ],[
4380   have_freetype=no
4381   AS_IF([ test "${enable_freetype}" =  "yes"],[
4382     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4383 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4384       ])
4385     ])
4386   ])
4387
4388   dnl fribidi support
4389   if test "${enable_fribidi}" != "no"
4390   then
4391     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4392       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4393       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4394     ])
4395     fi
4396 fi
4397
4398 dnl
4399 dnl  libxml2 module
4400 dnl
4401 AC_ARG_ENABLE(libxml2,
4402   [  --enable-libxml2        libxml2 support (default enabled)])
4403 if test "${enable_libxml2}" != "no"
4404 then
4405   XML2_PATH="${PATH}"
4406   AC_ARG_WITH(xml2-config-path,
4407     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4408     [ if test "${with_xml2_config_path}" != "no"; then
4409         XML2_PATH="${with_xml2_config_path}:${PATH}"
4410       fi ])
4411   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4412   if test "${XML2_CONFIG}" != "no"; then
4413     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4414     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4415     dnl depends on the xmlTextReader extension
4416     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4417     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4418     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4419       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4420         VLC_ADD_PLUGIN([xml]) ],[
4421           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4422           if test "${enable_xml2}" = "yes"; then
4423             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4424           fi])
4425        ],[
4426       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4427       if test "${enable_xml2}" = "yes"; then
4428         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4429       fi])
4430     LDFLAGS="${LDFLAGS_save}"
4431     CPPFLAGS="${CPPFLAGS_save}"
4432   else
4433     if test "${enable_xml2}" = "yes"; then
4434       AC_MSG_ERROR([Could not find libxml2])
4435     fi
4436   fi
4437 fi
4438
4439 dnl
4440 dnl  SVG module
4441 dnl
4442 AC_ARG_ENABLE(svg,
4443   [  --enable-svg            SVG support (default disabled)])
4444 if test "${enable_svg}" = "yes"
4445 then
4446   PKG_CHECK_MODULES(SVG, 
4447         librsvg-2.0 >= 2.9.0,
4448         [
4449           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4450           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4451           VLC_ADD_PLUGIN([svg]) ],
4452         [AC_MSG_WARN(SVG library not found)])
4453 fi
4454
4455 dnl
4456 dnl Snapshot vout module (with cache)
4457 dnl
4458 AC_ARG_ENABLE(snapshot,
4459   [  --enable-snapshot       snapshot module (default disabled)])
4460 if test "${enable_snapshot}" = "yes"
4461 then
4462   VLC_ADD_PLUGIN([snapshot])
4463 fi
4464
4465 dnl
4466 dnl  Qt Embedded module
4467 dnl  (disabled by default)
4468 dnl
4469 AC_ARG_ENABLE(qte,
4470   [  --enable-qte            QT Embedded support (default disabled)])
4471 if test "${enable_qte}" = "yes"
4472 then
4473   AC_ARG_WITH(qte,
4474   [    --with-qte=PATH       Qt Embedded headers and libraries])
4475   if test "${with_qte}" != "no" -a -n "${with_qte}"
4476   then
4477     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4478     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])
4479   else
4480     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4481     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4482   fi
4483   VLC_ADD_PLUGIN([qte])
4484   NEED_QTE_MAIN=yes
4485   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4486   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4487     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4488   ] )
4489   CPPFLAGS="${CPPFLAGS_save}"
4490 fi
4491
4492 dnl
4493 dnl  Qt Video output module
4494 dnl  (disabled by default)
4495 dnl
4496 dnl AC_ARG_ENABLE(qt_video,
4497 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4498 dnl if test "${enable_qt_video}" = "yes"
4499 dnl then
4500 dnl  VLC_ADD_PLUGIN([qt_video])
4501 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4502 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4503 dnl   AC_CHECK_LIB(qt-mt,main,[
4504 dnl    VLC_ADD_LIBS([qt_video],[-lqt-mt])
4505 dnl  ],[
4506 dnl    AC_CHECK_LIB(qt,main,[
4507 dnl      VLC_ADD_LIBS([qt_video],[-lqt])
4508 dnl    ])
4509 dnl  ])
4510 dnl  NEED_QTE_MAIN=yes
4511 dnl  LDFLAGS="${LDFLAGS_save}"
4512 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4513 dnl fi
4514
4515 dnl
4516 dnl Roku HD1000 Video output module
4517 dnl
4518 AC_ARG_ENABLE(hd1000v,
4519   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4520 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4521   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4522    test "${enable_hd1000v}" = "yes"); then
4523   AC_LANG_PUSH([C++])
4524   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4525   [
4526     can_build_roku="yes"
4527   ],
4528   [
4529     can_build_roku="no"
4530     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4531   ])
4532   if test "$can_build_roku" = "yes"
4533   then
4534     VLC_ADD_PLUGIN([hd1000v])
4535     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4536   fi
4537   AC_LANG_POP([C++])
4538 fi
4539
4540 dnl
4541 dnl  Windows DirectX module
4542 dnl
4543
4544 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4545 then
4546   VLC_ADD_PLUGIN([panoramix])
4547 fi
4548
4549 AC_ARG_ENABLE(directx,
4550   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4551 if test "${enable_directx}" != "no"
4552 then
4553   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4554   then
4555     AC_ARG_WITH(directx,
4556     [    --with-directx=PATH   Win32 DirectX headers])
4557     if test -z "${with_directx}"
4558     then
4559       AC_CHECK_HEADERS(ddraw.h,
4560       [ VLC_ADD_PLUGIN([vout_directx])
4561         VLC_ADD_PLUGIN([aout_directx])
4562         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4563       ])
4564       AC_CHECK_HEADERS(GL/gl.h,
4565       [ VLC_ADD_PLUGIN([glwin32])
4566         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4567       ])
4568       AC_CHECK_HEADERS(d3d9.h,
4569       [ VLC_ADD_PLUGIN([direct3d])
4570         VLC_ADD_LIBS([direct3d],[-lgdi32])
4571       ])
4572     else
4573       AC_MSG_CHECKING(for directX headers in ${with_directx})
4574       if test -f ${with_directx}/ddraw.h
4575       then
4576         VLC_ADD_PLUGIN([vout_directx])
4577         VLC_ADD_PLUGIN([aout_directx])
4578         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4579         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4580         AC_MSG_RESULT(yes)
4581       else
4582         AC_MSG_RESULT(no)
4583         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4584       fi
4585     fi
4586   fi
4587 fi
4588
4589 dnl
4590 dnl  Linux framebuffer module
4591 dnl
4592 AC_ARG_ENABLE(fb,
4593   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4594     if test "${enable_fb}" != "no"
4595     then
4596       AC_CHECK_HEADERS(linux/fb.h, [
4597         VLC_ADD_PLUGIN([fb])
4598       ])
4599     fi
4600
4601 dnl
4602 dnl  Linux MGA module
4603 dnl
4604 AC_ARG_ENABLE(mga,
4605   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4606   [ if test "${enable_mga}" = "yes"
4607     then
4608       VLC_ADD_PLUGIN([mga])
4609     fi ])
4610
4611 dnl
4612 dnl  SVGAlib module
4613 dnl
4614 AC_ARG_ENABLE(svgalib,
4615   [  --enable-svgalib        SVGAlib support (default disabled)])
4616 if test "${enable_svgalib}" = "yes"
4617 then
4618   VLC_ADD_PLUGIN([svgalib])
4619   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4620 fi
4621
4622 dnl
4623 dnl  DirectFB module
4624 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4625 dnl  TODO: support for static linking
4626 dnl
4627 AC_ARG_ENABLE(directfb,
4628   [  --enable-directfb       DirectFB support (default disabled)])
4629 AC_ARG_WITH(directfb, 
4630   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4631
4632 if test "${enable_directfb}" = "yes"; then
4633     have_directfb="false"
4634     CPPFLAGS_mydirectfb=
4635     LIBS_mydirectfb=
4636     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4637         dnl Trying the given location
4638         CPPFLAGS_save="${CPPFLAGS}"
4639         LIBS_save="${LIBS}"
4640
4641         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4642         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4643         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4644
4645         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4646         LIBS="${LIBS} ${LIBS_new}"
4647
4648         dnl FIXME: too obscure
4649         AC_CHECK_HEADER([directfb.h], [
4650             AC_CHECK_LIB([direct],[direct_initialize], [
4651                 AC_CHECK_LIB([fusion], [fusion_enter], [
4652                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4653                 ], have_directfb="false")
4654             ], have_directfb="false")
4655         ], have_directfb="false")
4656
4657         dnl Restore flags
4658         CPPFLAGS="${CPPFLAGS_save}"
4659         LIBS="${LIBS_save}"
4660
4661         if test "${have_directfb}" = "true"; then
4662             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4663             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4664         fi
4665     else 
4666         dnl Look for directfb-config
4667         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4668         if test "${DIRECTFB_CONFIG}" != "no"; then
4669             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4670             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4671             have_directfb="true"
4672         else 
4673             dnl Trying with pkg-config
4674             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4675                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4676                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4677                 have_directfb="true"
4678                 ], [have_directfb="false"])
4679         fi
4680     fi
4681     if test "${have_directfb}" = "true"; then
4682         VLC_ADD_PLUGIN([directfb])
4683         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4684         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4685     else 
4686         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4687     fi
4688 fi
4689  
4690
4691
4692 dnl
4693 dnl  GGI module
4694 dnl
4695 AC_ARG_ENABLE(ggi,
4696   [  --enable-ggi            GGI support (default disabled)])
4697 if test "${enable_ggi}" = "yes"
4698 then
4699   VLC_ADD_PLUGIN([ggi])
4700   VLC_ADD_LIBS([ggi],[-lggi])
4701   AC_ARG_WITH(ggi,
4702     [    --with-ggi=PATH       path to libggi],
4703     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4704       then
4705         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4706         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4707       fi ])
4708 fi
4709
4710 dnl
4711 dnl  Glide module
4712 dnl
4713 AC_ARG_ENABLE(glide,
4714   [  --enable-glide          Glide (3dfx) support (default disabled)])
4715 if test "${enable_glide}" = "yes"
4716 then
4717   CFLAGS_save="${CFLAGS}"
4718   AC_ARG_WITH(glide,
4719     [    --with-glide=PATH     path to libglide],
4720     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4721       then
4722         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4723         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4724         CFLAGS="$CFLAGS -I${with_glide}/include"
4725     fi ])
4726    CFLAGS="$CFLAGS -I/usr/include/glide"
4727    AC_CHECK_HEADER(glide.h,[   
4728       VLC_ADD_PLUGIN([glide])
4729       VLC_ADD_LIBS([glide],[-lglide2x -lm])
4730       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4731     ],[
4732       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4733      ])
4734    CFLAGS="${CFLAGS_save}"
4735 fi
4736
4737 dnl
4738 dnl  AA plugin
4739 dnl
4740 AC_ARG_ENABLE(aa,
4741   [  --enable-aa             aalib output (default disabled)])
4742 if test "${enable_aa}" = "yes"
4743 then
4744   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4745   if test "${have_aa}" = "true"
4746   then
4747     VLC_ADD_PLUGIN([aa])
4748     VLC_ADD_LIBS([aa],[-laa])
4749   fi
4750 fi
4751
4752 dnl
4753 dnl  libcaca plugin
4754 dnl
4755 AC_ARG_ENABLE(caca,
4756   [  --enable-caca           libcaca output (default disabled)])
4757 if test "${enable_caca}" = "yes"
4758 then
4759   CACA_PATH="${PATH}"
4760   AC_ARG_WITH(caca-config-path,
4761     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4762     [ if test "${with_caca_config_path}" != "no"
4763       then
4764         CACA_PATH="${with_caca_config_path}:${PATH}"
4765       fi ])
4766   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4767   if test "${CACA_CONFIG}" != "no"
4768   then
4769     VLC_ADD_PLUGIN([caca])
4770     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4771     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4772     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4773                                         caca_event_t ev;]],
4774                                         [[ev.type = 0;]]
4775                        )],
4776                        [],
4777       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4778     )
4779   fi
4780 fi
4781
4782 dnl
4783 dnl  win32 GDI plugin
4784 dnl
4785 AC_ARG_ENABLE(wingdi,
4786   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4787 if test "${enable_wingdi}" != "no"; then
4788   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4789     VLC_ADD_PLUGIN([wingdi])
4790     VLC_ADD_LIBS([wingdi],[-lgdi32])
4791   fi
4792   if test "${SYS}" = "mingwce"; then
4793     VLC_ADD_PLUGIN([wingdi])
4794     VLC_ADD_PLUGIN([wingapi])
4795   fi
4796 fi
4797
4798 dnl
4799 dnl  Audio plugins
4800 dnl
4801
4802 AC_ARG_WITH(,[Audio plugins:])
4803
4804 dnl
4805 dnl  OSS /dev/dsp module (enabled by default except on win32)
4806 dnl
4807 AC_ARG_ENABLE(oss,
4808   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4809
4810 if test "${enable_oss}" != "no" &&
4811   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4812    test "${enable_oss}" = "yes")
4813 then
4814   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4815     VLC_ADD_PLUGIN([oss])
4816     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4817   ])
4818 fi
4819
4820 dnl
4821 dnl  Esound module
4822 dnl
4823 AC_ARG_ENABLE(esd,
4824   [  --enable-esd            Esound library support (default disabled)],
4825   [if test "${enable_esd}" = "yes"
4826    then
4827      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4828      if test "${ESD_CONFIG}" != "no"
4829      then
4830        VLC_ADD_PLUGIN([esd])
4831        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4832        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4833      fi
4834    fi])
4835
4836 dnl
4837 dnl  Pulseaudio module
4838 dnl
4839 AC_ARG_ENABLE(pulse,
4840   [  --enable-pulse          Pulseaudio support (default enabled)])
4841   if test "${enable_pulse}" != "no"
4842    then
4843      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4844        [ VLC_ADD_PLUGIN([pulse])
4845         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4846         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4847        [AC_MSG_WARN(pulsaudio library not found)])
4848    fi
4849
4850 dnl
4851 dnl  Portaudio module
4852 dnl
4853 AC_ARG_ENABLE(portaudio,
4854   [  --enable-portaudio      Portaudio library support (default disabled)],
4855   [if test "${enable_portaudio}" = "yes"
4856    then
4857      VLC_ADD_PLUGIN([portaudio])
4858      VLC_ADD_CXXFLAGS([portaudio],[])
4859      if test "${SYS}" = "mingw32"; then
4860         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4861      else
4862         VLC_ADD_LIBS([portaudio],[-lportaudio])
4863      fi
4864    fi])
4865
4866 dnl
4867 dnl  aRts module -- broken (freeze wxWidgets)
4868 dnl
4869 AC_ARG_ENABLE(arts,
4870  [  --enable-arts           aRts sound server (default disabled)],
4871  [if test "${enable_arts}" = "yes"
4872   then
4873     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4874     if test "${ARTS_CONFIG}" != "no"
4875     then
4876       VLC_ADD_PLUGIN([arts])
4877       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4878       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4879     fi
4880   fi])
4881
4882 dnl
4883 dnl  ALSA module
4884 dnl
4885 AC_ARG_ENABLE(alsa,
4886   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4887 if test "${enable_alsa}" != "no"
4888 then
4889   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4890   if test "${have_alsa}" = "true"
4891   then
4892     CFLAGS="${CFLAGS_save}"
4893     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4894                     #define ALSA_PCM_NEW_SW_PARAMS_API
4895                     #include <alsa/asoundlib.h>],
4896        [snd_pcm_hw_params_get_period_time(0,0,0);],
4897         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4898     VLC_ADD_PLUGIN([alsa])
4899     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4900   else
4901     if test "${enable_alsa}" = "yes"; then
4902       AC_MSG_ERROR([Could not find ALSA development headers])
4903     fi
4904   fi
4905 fi
4906
4907 dnl
4908 dnl  win32 waveOut plugin
4909 dnl
4910 AC_ARG_ENABLE(waveout,
4911   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4912 if test "${enable_waveout}" != "no"; then
4913   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4914     VLC_ADD_PLUGIN([waveout])
4915     VLC_ADD_LIBS([waveout],[-lwinmm])
4916   fi
4917   if test "${SYS}" = "mingwce"; then
4918     VLC_ADD_PLUGIN([waveout])
4919   fi
4920 fi
4921
4922 dnl
4923 dnl  CoreAudio plugin
4924 dnl
4925 AC_ARG_ENABLE(macosx-audio,
4926   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4927 if test "${enable_macosx-audio}" != "no" &&
4928   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4929 then
4930   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4931     [ VLC_ADD_BUILTINS([auhal])
4932       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4933     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4934 fi
4935
4936 dnl
4937 dnl  Roku HD1000 audio
4938 dnl
4939 AC_ARG_ENABLE(hd1000a,
4940   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4941 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4942   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4943    test "${enable_hd1000a}" = "yes")
4944 then
4945   AC_LANG_PUSH([C++])
4946   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4947     VLC_ADD_PLUGIN([hd1000a])
4948     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4949   AC_LANG_POP([C++])
4950 fi
4951
4952 dnl
4953 dnl  JACK modules
4954 dnl
4955 AC_ARG_ENABLE(jack,
4956  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4957  [enable_jack="no"])
4958
4959 AS_IF([test "${enable_jack}" != "no"], [
4960   AC_CHECK_HEADERS(jack/jack.h, [
4961     VLC_ADD_PLUGIN([access_jack])
4962     VLC_ADD_PLUGIN([jack])
4963     VLC_ADD_LIBS([access_jack jack],[-ljack])
4964   ],[AC_MSG_ERROR([cannot find JACK headers])])
4965 ])
4966
4967 dnl
4968 dnl  CyberLink for C++ UPnP stack
4969 dnl
4970 AC_ARG_ENABLE(cyberlink,
4971   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4972   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4973   AC_ARG_WITH(cyberlink-tree,
4974     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4975
4976   dnl
4977   dnl test for --with-cyberlink-tree
4978   dnl
4979   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4980     AC_LANG_PUSH(C++)
4981     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4982     AS_IF([test -z "${real_cyberlink_tree}"], [
4983       dnl  The given directory can't be found
4984       AC_MSG_RESULT(no)
4985       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4986     ])
4987     CPPFLAGS_save="${CPPFLAGS}"
4988     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4989     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4990     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4991       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4992         VLC_ADD_PLUGIN([upnp_cc]) 
4993       ],[
4994         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4995       ])
4996     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4997     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4998       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4999       dnl The mere fact that we have to make such an ugly check sucks
5000       AC_MSG_CHECKING(for XML parser to link CyberLink with)
5001       LIBS_save="$LIBS"
5002       LIBS_cclink="no"
5003       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
5004         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
5005         AC_LINK_IFELSE([AC_LANG_PROGRAM([
5006 #include <cybergarage/upnp/media/player/MediaPlayer.h>
5007 using namespace CyberLink;
5008
5009 class testclass : public SearchResponseListener, public MediaPlayer
5010 {
5011     virtual void deviceSearchResponseReceived( SSDPPacket *)
5012     {
5013     }
5014
5015     public:
5016       testclass (void)
5017       {
5018         addSearchResponseListener (this);
5019         start ();
5020       }
5021 };
5022 ],[testclass l;])],[LIBS_cclink="$l"])
5023       done
5024       LIBS="${LIBS_save}"
5025       dnl should not happen - otherwise this needs fixing - hence FAILURE
5026       AS_IF([test "${LIBS_cclink}" = "no"],
5027         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
5028       AC_MSG_RESULT([${LIBS_cclink}])
5029       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
5030     ], [
5031       AC_MSG_RESULT(no)
5032       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
5033     ])
5034     CPPFLAGS="${CPPFLAGS_save}"
5035     AC_LANG_POP([C++])
5036   ])
5037 ])
5038
5039 dnl
5040 dnl UPnP Plugin (Intel SDK)
5041 dnl
5042 AC_ARG_ENABLE(upnp,
5043   [  --enable-upnp           Intel UPnP SDK (default enabled)])
5044
5045 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
5046 AS_IF([test "x${enable_upnp}" != "xno"], [
5047   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
5048   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
5049     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
5050   ])
5051   AS_IF([test "${has_upnp}" = "yes"], [
5052     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
5053   ])
5054 ], [
5055   has_upnp="no"
5056 ])
5057
5058 AS_IF([test "${has_upnp}" = "yes"], [
5059   VLC_ADD_PLUGIN([upnp_intel])
5060 ])
5061
5062
5063 dnl
5064 dnl  Interface plugins
5065 dnl
5066
5067 AC_ARG_WITH(,[Interface plugins:])
5068
5069 dnl special case for BeOS
5070 if test "${SYS}" = "beos"
5071 then
5072     VLC_ADD_BUILTINS([beos])
5073 fi
5074
5075 dnl
5076 dnl Skins2 module
5077 dnl
5078 AC_ARG_ENABLE(skins2,
5079   [  --enable-skins2         Skins2 interface module (default disabled)])
5080 if test "${enable_skins2}" = "yes" ||
5081   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
5082    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
5083
5084   dnl test for the required libraries
5085   skins2_missing_lib="no"
5086
5087   dnl freetype
5088   if test "${have_freetype}" != "yes"; then
5089     skins2_missing_lib="yes"
5090     if test "${enable_skins2}" = "yes"; then
5091       AC_MSG_ERROR([Could not find freetype (required for skins2)])
5092     fi
5093   fi
5094
5095   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
5096     VLC_ADD_PLUGIN([skins2])
5097     ALIASES="${ALIASES} svlc"
5098     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
5099     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5100     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
5101
5102   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
5103     VLC_ADD_PLUGIN([skins2])
5104     ALIASES="${ALIASES} svlc"
5105     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
5106     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5107     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
5108
5109   else if test "${skins2_missing_lib}" = "no"; then
5110     VLC_ADD_PLUGIN([skins2])
5111     ALIASES="${ALIASES} svlc"
5112     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
5113     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5114     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
5115   fi fi fi
5116 fi
5117 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
5118
5119 dnl dnl
5120 dnl dnl  Gtk+ module
5121 dnl dnl
5122 dnl AC_ARG_ENABLE(gtk,
5123 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
5124 dnl if test "${enable_gtk}" != "no"
5125 dnl then
5126 dnl   GTK_PATH="${PATH}"
5127 dnl   AC_ARG_WITH(gtk-config-path,
5128 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
5129 dnl     [ if test "${with_gtk_config_path}" != "no"
5130 dnl       then
5131 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
5132 dnl       fi ])
5133 dnl   # look for gtk-config
5134 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
5135 dnl   GTK_CONFIG=${GTK12_CONFIG}
5136 dnl   if test "${GTK_CONFIG}" = "no"
5137 dnl   then
5138 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
5139 dnl   fi
5140 dnl   if test "${GTK_CONFIG}" != "no"
5141 dnl   then
5142 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
5143 dnl     then
5144 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.])
5145 dnl     fi
5146 dnl     if test "${SYS}" != "mingw32"; then
5147 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
5148 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
5149 dnl     else
5150 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
5151 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
5152 dnl     fi
5153 dnl     # now look for the gtk.h header
5154 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
5155 dnl     ac_cv_gtk_headers=yes
5156 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
5157 dnl       ac_cv_gtk_headers=no
5158 dnl       echo "Cannot find gtk development headers."
5159 dnl     ])
5160 dnl     if test "${ac_cv_gtk_headers}" = "yes"
5161 dnl     then
5162 dnl       VLC_ADD_PLUGIN([gtk])
5163 dnl       if test "${SYS}" != "mingw32"; then
5164 dnl         NEED_GTK_MAIN=yes
5165 dnl       fi
5166 dnl       ALIASES="${ALIASES} gvlc"
5167 dnl     fi
5168 dnl     CPPFLAGS="${CPPFLAGS_save}"
5169 dnl   fi
5170 dnl fi
5171 dnl 
5172 dnl
5173 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
5174 dnl
5175 dnl AC_ARG_ENABLE(gtk2,
5176 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
5177 dnl if test "${enable_gtk2}" = "yes"
5178 dnl then
5179 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5180 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5181 dnl   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5182 dnl   VLC_ADD_PLUGIN([gtk2])
5183 dnl   if test "${SYS}" != "mingw32"; then
5184 dnl     NEED_GTK2_MAIN=yes
5185 dnl   fi
5186 dnl fi
5187
5188 dnl
5189 dnl  PDA Gtk+2 module
5190 dnl
5191 AC_ARG_ENABLE(pda,
5192   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
5193 if test "${enable_pda}" = "yes"
5194 then
5195   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5196   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5197   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5198   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
5199   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
5200   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
5201   VLC_ADD_PLUGIN([pda])
5202   if test "${SYS}" != "mingw32"; then
5203     NEED_GTK2_MAIN=yes
5204   fi
5205 fi
5206 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
5207
5208 dnl dnl
5209 dnl dnl  Gnome module
5210 dnl dnl
5211 dnl AC_ARG_ENABLE(gnome,
5212 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
5213 dnl   [if test "${enable_gnome}" = "yes"; then
5214 dnl     # look for gnome-config
5215 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
5216 dnl     if test -x ${GNOME_CONFIG}
5217 dnl     then
5218 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
5219 dnl        VLC_ADD_LIBS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
5220 dnl     fi
5221 dnl     # now look for the gnome.h header
5222 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
5223 dnl     AC_CHECK_HEADERS(gnome.h, [
5224 dnl       VLC_ADD_PLUGIN([gnome])
5225 dnl       NEED_GTK_MAIN=yes
5226 dnl       NEED_GNOME_MAIN=yes
5227 dnl       ALIASES="${ALIASES} gnome-vlc"
5228 dnl       dnl We need this because of some moronic gnomesupport.h flavours
5229 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
5230 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
5231 dnl         AC_MSG_RESULT(yes)
5232 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
5233 dnl                   Define if <gnome.h> defines strndup.)],[
5234 dnl         AC_MSG_RESULT(no)])
5235 dnl      ],[
5236 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
5237 dnl developement tools or remove the --enable-gnome option])
5238 dnl      ])
5239 dnl     CPPFLAGS="${CPPFLAGS_save}"
5240 dnl   fi])
5241
5242 dnl
5243 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5244 dnl
5245 dnl AC_ARG_ENABLE(gnome2,
5246 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5247 dnl if test "${enable_gnome2}" = "yes"
5248 dnl then
5249 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5250 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5251 dnl   VLC_ADD_LIBS([gnome2],[${GNOME2_LIBS}])
5252 dnl   VLC_ADD_PLUGIN([gnome2])
5253 dnl   if test "${SYS}" != "mingw32"; then
5254 dnl     NEED_GNOME2_MAIN=yes
5255 dnl   fi
5256 dnl fi
5257
5258 dnl
5259 dnl  wxWidgets module
5260 dnl
5261 AC_ARG_ENABLE(wxwidgets,
5262   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5263
5264 if test "${enable_wxwidgets}" = "yes"
5265 then
5266   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5267   WXWIDGETS_PATH="${PATH}"
5268   AC_ARG_WITH(wx-config-path,
5269     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5270     [ if test "${with_wx_config_path}" != "no"
5271       then
5272         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5273       fi ])
5274   WXWIDGETS_NAME="wx-config"
5275   AC_ARG_WITH(wx-config,
5276     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5277     [ if test "${with_wx_config}" != "no"
5278       then
5279         WXWIDGETS_NAME="${with_wx_config}"
5280       fi ])
5281   # look for wx-config
5282   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5283   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5284   then
5285     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5286     then
5287       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5288     fi
5289     AC_LANG_PUSH(C++)
5290     # Turn this error:
5291     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5292     # into a warning. However better would be to fix playlist.cpp
5293     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5294         [ac_cv_cxx_fpermissive],
5295         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5296          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5297                         ac_cv_cxx_fpermissive=no)])
5298     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5299       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5300     fi
5301     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
5302     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5303     # check if we must link against gtk2 libs
5304     # if __WXGTK20__ && __WXGTK__ are defined
5305     # for modules/gui/wxwidgets/video.cpp
5306     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5307 #include <wx/wx.h>
5308 #ifdef __WXGTK20__
5309 #error ok, we need to link against gtk2
5310 #endif
5311         ])],[WXGTK=no],[WXGTK=yes])
5312     if test "$WXGTK" = "yes"; then
5313       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5314     fi
5315     if ${WX_CONFIG} --unicode
5316     then 
5317       # wxwidgets should provide the following flags but does not
5318       # the following is required to compile for win32
5319       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5320     else
5321       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5322     fi
5323     if test "$have_libcdio" = "yes"
5324     then 
5325       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
5326       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5327     else 
5328       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5329     fi
5330
5331     if test "$have_libvcdinfo" = "yes"
5332     then 
5333       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
5334       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5335     else 
5336       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5337     fi
5338
5339     # now look for the wxprec.h header
5340     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5341     ac_cv_wx_headers=yes
5342     AC_CHECK_HEADERS(wx/wxprec.h, , [
5343       ac_cv_wx_headers=no
5344       echo "Cannot find wxWidgets development headers."
5345     ])
5346     if test "${ac_cv_wx_headers}" = "yes"
5347     then
5348       VLC_ADD_PLUGIN([wxwidgets])
5349       AC_DEFINE([HAVE_WX], 1, [Define to 1 if you have WxWidgets library.])
5350       ALIASES="${ALIASES} wxvlc"
5351     fi
5352     CPPFLAGS="${CPPFLAGS_save}"
5353     AC_LANG_POP(C++)
5354   fi
5355   dnl WxWidgets plugin will yield incorrect code without this
5356   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5357 fi
5358
5359 dnl
5360 dnl QT 4
5361 dnl
5362 enableqt4=false
5363 AC_ARG_ENABLE(qt4,
5364   [  --enable-qt4            QT 4 support (default enabled) ])
5365 AS_IF([test "${enable_qt4}" != "no" &&
5366   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5367   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5368     [ VLC_ADD_PLUGIN([qt4])
5369       AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5370       ALIASES="${ALIASES} qvlc"
5371       enableqt4=true
5372       if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"; then
5373           VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5374       else
5375           VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5376       fi
5377       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
5378       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5379       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5380       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5381       ],
5382       AS_IF([test "${enable_qt4}" = "yes"],[
5383         AC_MSG_ERROR(QT4 library not found)
5384       ],[
5385         AC_MSG_WARN(QT4 library not found)
5386       ])
5387     )
5388 ])
5389 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5390
5391 dnl
5392 dnl  WinCE GUI module
5393 dnl
5394 AC_ARG_ENABLE(wince,
5395   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
5396 if test "${enable_wince}" != "no"; then
5397   if test "${SYS}" = "mingwce"; then
5398     VLC_ADD_BUILTINS([wince])
5399     VLC_ADD_CXXFLAGS([wince],[])
5400     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5401     dnl Gross hack
5402     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5403   elif test "${SYS}" = "mingw32"; then
5404     VLC_ADD_CXXFLAGS([wince],[])
5405     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5406     dnl Gross hack
5407     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5408   fi
5409 fi
5410
5411 dnl
5412 dnl Simple test for skins2 dependency
5413 dnl
5414 if test "${enable_skins2}" != "no"
5415 then
5416   if test "${WX_CONFIG}" = "no"
5417   then
5418     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.])
5419   fi
5420 fi
5421
5422 dnl dnl
5423 dnl dnl  Qt module
5424 dnl dnl
5425 dnl AC_ARG_ENABLE(qt,
5426 dnl   [  --enable-qt             Qt interface support (default disabled)],
5427 dnl   [if test "${enable_qt}" = "yes"; then
5428 dnl      VLC_ADD_PLUGIN([qt])
5429 dnl      ALIASES="${ALIASES} qvlc"
5430 dnl      VLC_ADD_LIBS([qt],[-L${QTDIR}/lib])
5431 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5432 dnl      AC_CHECK_LIB(qt-mt,main,[
5433 dnl        VLC_ADD_LIBS([qt],[-lqt-mt])
5434 dnl      ],[
5435 dnl        AC_CHECK_LIB(qt,main,[
5436 dnl          VLC_ADD_LIBS([qt],[-lqt])
5437 dnl        ])
5438 dnl      ])
5439 dnl      LDFLAGS="${LDFLAGS_save}"
5440 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5441 dnl      if test -x ${QTDIR}/bin/moc
5442 dnl      then
5443 dnl        MOC=${QTDIR}/bin/moc
5444 dnl      else
5445 dnl        MOC=moc
5446 dnl      fi
5447 dnl    fi])
5448 dnl 
5449 dnl dnl
5450 dnl dnl  KDE module
5451 dnl dnl
5452 dnl AC_ARG_ENABLE(kde,
5453 dnl   [  --enable-kde            KDE interface support (default disabled)],
5454 dnl   [if test "${enable_kde}" = "yes"; then
5455 dnl      VLC_ADD_PLUGIN([kde])
5456 dnl      ALIASES="${ALIASES} kvlc"
5457 dnl      VLC_ADD_LIBS([kde],[-L${KDEDIR}/lib])
5458 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5459 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5460 dnl      AC_CHECK_LIB(kfile,main,[
5461 dnl        VLC_ADD_LIBS([kde],[-lkfile])
5462 dnl      ])
5463 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5464 dnl      AC_CHECK_LIB(kdeui,main,[
5465 dnl        VLC_ADD_LIBS([kde],[-lkdeui])
5466 dnl      ])
5467 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5468 dnl      AC_CHECK_LIB(kio,main,[
5469 dnl        VLC_ADD_LIBS([kde],[-lkio])
5470 dnl      ])
5471 dnl      LDFLAGS="${LDFLAGS_save}"
5472 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5473 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5474 dnl      if test -x ${QTDIR}/bin/moc
5475 dnl      then
5476 dnl        MOC=${QTDIR}/bin/moc
5477 dnl      else
5478 dnl        MOC=moc
5479 dnl      fi
5480 dnl    fi])
5481
5482 dnl
5483 dnl  Opie QT embedded module
5484 dnl
5485 AC_ARG_ENABLE(opie,
5486   [  --enable-opie           Qt embedded interface support (default disabled)],
5487   [if test "${enable_opie}" = "yes"; then
5488      AC_ARG_WITH(qte,
5489      [    --with-qte=PATH       Qt Embedded headers and libraries])
5490      if test "${with_qte}" != "no" -a -n "${with_qte}"
5491      then
5492        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5493        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])
5494      else
5495        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5496        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5497      fi
5498      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5499      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5500        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5501      ] )
5502      CPPFLAGS="${CPPFLAGS_save}"
5503
5504      VLC_ADD_PLUGIN([opie])
5505      NEED_QTE_MAIN=yes
5506      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5507      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5508      if test "${with_qte}" != "no" -a -n "${with_qte}"
5509      then
5510        MOC=${with_qte}/bin/moc
5511      else
5512        MOC=${QTDIR}/bin/moc
5513      fi
5514    fi])
5515
5516 dnl
5517 dnl  MacOS X video output/gui modules
5518 dnl
5519 AC_ARG_ENABLE(macosx,
5520   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5521 if test "x${enable_macosx}" = "xyes"
5522 then
5523 #  VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5524   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,Cocoa])
5525   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5526   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5527   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5528   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5529   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5530   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QTKit])
5531   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5532   VLC_ADD_LDFLAGS([opengllayer],                      [-Wl,-framework,QuartzCore])
5533   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5534
5535 #  VLC_ADD_PLUGIN([access_eyetv])
5536   VLC_ADD_BUILTINS([macosx minimal_macosx])
5537  
5538   ORIGCFLAGS=$CFLAGS
5539   CFLAGS="$CFLAGS -x objective-c"
5540   AC_CHECK_HEADER(QuartzCore/CALayer.h, [VLC_ADD_BUILTINS([opengllayer])])
5541   CFLAGS=$ORIGCFLAGS
5542 fi
5543
5544 dnl
5545 dnl  QNX RTOS module
5546 dnl
5547 AC_ARG_ENABLE(qnx,
5548   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5549     if test "${enable_qnx}" != "no"
5550     then
5551       AC_CHECK_HEADERS(Ph.h, [
5552         VLC_ADD_PLUGIN([qnx])
5553         VLC_ADD_LIBS([qnx],[-lasound -lph])
5554       ])
5555     fi
5556
5557 dnl
5558 dnl  ncurses module
5559 dnl
5560 AC_ARG_ENABLE(ncurses,
5561   [  --disable-ncurses       ncurses interface support (default enabled)],
5562   [if test "${enable_ncurses}" != "no"; then
5563     AC_CHECK_HEADER(ncurses.h,
5564       [AC_CHECK_LIB(ncursesw, mvprintw,
5565         [VLC_ADD_PLUGIN([ncurses])
5566         VLC_ADD_LIBS([ncurses],[-lncursesw])
5567         ALIASES="${ALIASES} nvlc"
5568         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5569         AC_CHECK_LIB(ncursesw, tgetent, [],
5570           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5571             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5572               [AS_IF([test "x${enable_ncurses}" != "x"],
5573                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5574                )])])
5575             ]
5576           )
5577         )
5578         ],
5579         [AC_CHECK_LIB( ncurses, mvprintw,
5580           [VLC_ADD_PLUGIN([ncurses])
5581           ALIASES="${ALIASES} nvlc"
5582           VLC_ADD_LIBS([ncurses],[-lncurses])
5583           AC_CHECK_LIB(ncurses, tgetent, [],
5584             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5585               [AS_IF([test "x${enable_ncurses}" != "x"],
5586                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5587             )]
5588           )],
5589           [AS_IF([test "x${enable_ncurses}" != "x"], [
5590             AC_MSG_ERROR([libncurses not found])])]
5591         )]
5592       )]
5593     )
5594   fi]
5595 )
5596
5597 dnl
5598 dnl  XOSD plugin
5599 dnl
5600 AC_ARG_ENABLE(xosd,
5601   [  --enable-xosd           xosd interface support (default disabled)])
5602 if test "${enable_xosd}" = "yes"
5603 then
5604   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5605   AC_CHECK_LIB(xosd,xosd_set_offset,
5606       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5607     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5608         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5609       AC_TRY_COMPILE([#include <xosd.h>],
5610          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5611           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5612   if test "${have_xosd}" = "true"
5613   then
5614     VLC_ADD_PLUGIN([xosd])
5615     VLC_ADD_LIBS([xosd],[-lxosd])
5616   fi
5617 fi
5618
5619 dnl
5620 dnl Framebuffer (overlay) plugin
5621 dnl
5622 AC_ARG_ENABLE(fbosd,
5623   [  --enable-fbosd          fbosd interface support (default disabled)])
5624 if test "${enable_fbosd}" = "yes"
5625 then
5626   AC_CHECK_HEADERS(linux/fb.h, [
5627     VLC_ADD_PLUGIN([fbosd])
5628  ])
5629 fi
5630
5631 dnl
5632 dnl Visualisation plugin
5633 dnl
5634 AC_ARG_ENABLE(visual,
5635   [  --enable-visual         visualisation plugin (default enabled)])
5636 if test "${enable_visual}" != "no"
5637 then
5638     VLC_ADD_PLUGIN([visual])
5639 fi
5640
5641 dnl
5642 dnl OpenGL visualisation plugin
5643 dnl
5644 AC_ARG_ENABLE(galaktos,
5645   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5646 if test "${enable_galaktos}" = "yes"
5647 then
5648   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5649     VLC_ADD_PLUGIN([galaktos])
5650     if test "${SYS}" != "mingw32"; then
5651       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5652     else
5653       VLC_ADD_LIBS([galaktos],[-lopengl32])
5654     fi
5655   ])
5656 fi
5657
5658 dnl
5659 dnl  goom visualization plugin
5660 dnl
5661 AC_ARG_ENABLE(goom,
5662 [  --enable-goom           goom visualisation plugin (default disabled)])
5663 if test "${enable_goom}" = "yes"
5664 then
5665   AC_ARG_WITH(goom-tree,
5666     [    --with-goom-tree=PATH goom tree for static linking (required)])
5667
5668   dnl
5669   dnl test for --with-goom-tree
5670   dnl
5671   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5672     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5673     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5674     if test -z "${real_goom_tree}"; then
5675       dnl  The given directory can't be found
5676       AC_MSG_RESULT(no)
5677       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5678     fi
5679     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5680       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5681       VLC_ADD_BUILTINS([goom])
5682       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5683       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5684     else
5685       dnl  The given libgoom2 wasn't built, try to look for the old goom
5686       AC_MSG_RESULT(no)
5687       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5688       if test -f "${real_goom_tree}/libgoom.a"; then
5689         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5690         VLC_ADD_BUILTINS([goom])
5691         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5692         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5693       else
5694         dnl  The given libgoom wasn't built
5695         AC_MSG_RESULT(no)
5696         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5697       fi
5698     fi
5699   else
5700     AC_CHECK_HEADERS(goom/goom.h, [
5701       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5702       AC_CHECK_LIB(goom2, goom_init, [
5703         VLC_ADD_PLUGIN([goom])
5704         VLC_ADD_LIBS([goom],[-lgoom2])
5705       ],[
5706         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5707       ])
5708       LDFLAGS="${LDFLAGS_save}"
5709     ])
5710   fi
5711 fi
5712
5713 dnl
5714 dnl  AtmoLight (homebrew AmbiLight)
5715 dnl
5716 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5717    AC_ARG_ENABLE(atmo,
5718 [  --disable-atmo       AtmoLight (homebrew philips ambilight) (default enabled)])
5719    if test "${enable_atmo}" != "no"; then
5720       AC_LANG_PUSH(C++)
5721       VLC_ADD_PLUGIN([atmo])
5722       AC_LANG_POP(C++)
5723    fi
5724 fi
5725
5726 dnl
5727 dnl  Bonjour services discovery
5728 dnl
5729 AC_ARG_ENABLE(bonjour,
5730   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5731 if test "${enable_bonjour}" != "no"
5732 then
5733   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5734     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5735        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5736       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5737       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5738       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5739       VLC_ADD_PLUGIN([bonjour]) ],
5740     [AC_MSG_WARN(avahi-client library not found)])
5741 fi
5742
5743 dnl
5744 dnl  Lirc plugin
5745 dnl
5746 AC_ARG_ENABLE(lirc,
5747   [  --enable-lirc           lirc support (default disabled)])
5748 if test "${enable_lirc}" = "yes"
5749 then
5750   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5751   if test "${have_lirc}" = "true"
5752   then
5753     VLC_ADD_PLUGIN([lirc])
5754     VLC_ADD_LIBS([lirc],[-llirc_client])
5755   fi
5756 fi
5757
5758
5759 AC_ARG_WITH(,[Misc options:])
5760
5761 dnl
5762 dnl libgcrypt
5763 dnl
5764 AC_ARG_ENABLE(libgcrypt,
5765   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5766
5767 GCRYPT_PATH="${PATH}"
5768 AC_ARG_WITH(libgcrypt-config-path,
5769 [    --with-libgcrypt-config-path=PATH libgcrypt-config path (default search in \$PATH)],
5770    [ if test "${with_libgcrypt_config_path}" != "no"
5771      then
5772        GCRYPT_PATH="${with_libgcrypt_config_path}:${PATH}"
5773      fi ])
5774
5775 if test "${enable_libgcrypt}" != "no"
5776 then
5777   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5778   dnl it and looks for libgcrypt headers in the wrong place.
5779   if test "${host_cpu}" = "${build_cpu}"
5780   then
5781     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5782   else
5783     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5784   fi
5785 fi
5786 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5787 AS_IF([test "${have_libgcrypt}" = "yes"],[
5788         # look for libgcrypt-config
5789         AC_PATH_PROG(GCRYPT_CONFIG, "libgcrypt-config", no, ${GCRYPT_PATH})
5790         GCRYPT_CFLAGS=`${GCRYPT_CONFIG} --cflags`
5791         GCRYPT_LIBS=`${GCRYPT_CONFIG} --libs`
5792 ])
5793
5794 dnl
5795 dnl TLS/SSL
5796 dnl
5797 AC_ARG_ENABLE(gnutls,
5798   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5799
5800 AS_IF([test "${enable_gnutls}" != "no"], [
5801   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5802     VLC_ADD_PLUGIN([gnutls])
5803     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5804     AS_IF([test "${SYS}" = "mingw32"], [
5805       dnl pkg-config --libs gnutls omits these
5806       VLC_ADD_LIBS([gnutls], [-lz])
5807       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5808     ])
5809     AS_IF([test "${have_libgcrypt}" = "yes"],[
5810       VLC_ADD_LIBS([gnutls], ${GCRYPT_LIBS})
5811       VLC_ADD_CFLAGS([gnutls], ${GCRYPT_CFLAGS})
5812     ], [-lgpg-error])
5813     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5814   ], [
5815     AS_IF([test "${enable_gnutls}" = "yes"], [
5816       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5817     ])
5818   ])
5819 ])
5820
5821 dnl
5822 dnl update checking system
5823 dnl
5824 AC_ARG_ENABLE(update-check,
5825   [  --enable-update-check   update checking system (default disabled)])
5826 if test "${enable_update_check}" = "yes"
5827 then
5828   if test "${have_libgcrypt}" != "yes"
5829   then
5830     AC_MSG_ERROR([libgcrypt is required for update checking system])
5831   fi
5832   VLC_ADD_LIBS([libvlc], ${GCRYPT_LIBS})
5833   VLC_ADD_CFLAGS([libvlc], ${GCRYPT_CFLAGS})
5834   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5835 fi
5836
5837 dnl
5838 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5839 dnl
5840 dnl  We give the user the opportunity to specify
5841 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5842 dnl
5843 AC_ARG_WITH(words,
5844   [    --with-words=endianness set endianness (big or little)])
5845   case "${with_words}" in
5846     big)
5847       ac_cv_c_bigendian=yes
5848       ;;
5849     little)
5850       ac_cv_c_bigendian=no
5851       ;;
5852     *)
5853       dnl  Try to guess endianness by matching patterns on a compiled
5854       dnl  binary, by looking for an ASCII or EBCDIC string
5855       AC_CACHE_CHECK([whether the byte order is big-endian],
5856         [ac_cv_c_bigendian],
5857         [ac_cv_c_bigendian="unknown"
5858         [cat >conftest.c <<EOF
5859         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5860         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5861         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5862         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5863         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5864         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5865         int main(void) { _a(); _e(); return 0; }
5866 EOF
5867         ]
5868         if test -f conftest.c
5869         then
5870           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5871               && test -f conftest.o
5872           then
5873             if test "`strings conftest.o | grep BIGenDianSyS`"
5874             then
5875               ac_cv_c_bigendian="yes"
5876             fi
5877             if test "`strings conftest.o | grep LiTTleEnDian`"
5878             then
5879               ac_cv_c_bigendian="no"
5880             fi
5881           fi
5882         fi
5883       ])
5884       if test "${ac_cv_c_bigendian}" = "unknown"
5885       then
5886         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5887       fi
5888       ;;
5889   esac
5890 dnl  Now we know what to use for endianness, just put it in the header
5891 if test "${ac_cv_c_bigendian}" = "yes"
5892 then
5893   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5894 fi
5895
5896 dnl
5897 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5898 dnl
5899 loader=false
5900 AC_ARG_ENABLE(loader,
5901   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5902 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5903 AS_IF([test "${enable_loader}" = "yes"],
5904   [ VLC_ADD_PLUGIN([dmo])
5905     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5906     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5907     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5908     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5909     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5910     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5911   ])
5912
5913 AC_ARG_WITH(,[Components:])
5914
5915 dnl
5916 dnl  the VLC binary
5917 dnl
5918 AC_ARG_ENABLE(vlc,
5919   [  --enable-vlc            build the VLC media player (default enabled)])
5920 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5921
5922 dnl
5923 dnl  Microsoft ActiveX support
5924 dnl
5925 activex=false
5926 AC_ARG_ENABLE(activex,
5927   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5928 AC_ARG_WITH(wine-sdk-path,
5929   [    --with-wine-sdk-path=PATH path to wine sdk])
5930 if test "${enable_activex}" != "no"
5931 then
5932   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5933   then
5934     AC_CHECK_PROGS(MIDL, [midl], no)
5935     if test "${with_wine_sdk_path}" != ""
5936     then
5937        WINE_SDK_PATH=${with_wine_sdk_path}
5938        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5939     else
5940        WIDL=no
5941     fi
5942     AC_LANG_PUSH(C++)
5943     AC_CHECK_HEADERS(ole2.h, 
5944       [AC_CHECK_HEADERS(olectl.h,
5945         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5946           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5947           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5948           AC_CHECK_HEADERS(objsafe.h,
5949             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5950             [
5951              #if HAVE_OLE2_H
5952              #   include <ole2.h>
5953              #endif
5954              ]
5955           )
5956           activex=:
5957           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5958         ],
5959         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5960       )],
5961       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5962     )
5963     AC_LANG_POP(C++)
5964   fi
5965 fi
5966 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5967 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5968 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5969 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5970 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5971
5972 dnl
5973 dnl  Mozilla plugin
5974 dnl
5975 mozilla=false
5976 AC_ARG_ENABLE(mozilla,
5977   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5978 AC_ARG_WITH(mozilla-sdk-path,
5979   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5980 AC_LANG_PUSH(C++)
5981 if test "${enable_mozilla}" = "yes" 
5982 then
5983   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5984   need_xpcom_libs=false
5985
5986   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5987   then
5988     dnl New firefox-1.5 SDK api
5989     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5990       [
5991         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5992           [],
5993           [
5994             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5995               [],
5996               [
5997                 PKG_CHECK_MODULES([NSPR], [nspr],
5998                   [],
5999                   [
6000                     AC_MSG_ERROR([Please install the nspr development tools.])
6001                   ]
6002                 )
6003               ]
6004             )
6005           ])
6006         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
6007         MOZILLA_REQUIRED_HEADERS=1
6008         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6009         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6010         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6011           [#if HAVE_NPAPI_H
6012            # include <npapi.h>
6013            #endif
6014           ])
6015         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
6016             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
6017         fi
6018         MOZILLA_REQUIRED_HEADERS=
6019         mozilla=:
6020         firefox_include=`pkg-config --variable=includedir firefox-plugin`
6021         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
6022             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
6023         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
6024             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
6025         else
6026             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
6027         fi
6028         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
6029             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
6030             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
6031         fi
6032         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
6033         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
6034         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
6035         VLC_ADD_PLUGIN([mozilla])
6036         MOZILLA_CONFIG=
6037         CPPFLAGS="${CPPFLAGS_save}"
6038       ],
6039       [
6040         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
6041         if test "${MOZILLA_CONFIG}" = "no"
6042         then
6043           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
6044           if test "${SEAMONKEY_CONFIG}" = "no"
6045           then
6046             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
6047             if test "${XULRUNNER_CONFIG}" = "no"
6048             then
6049               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
6050             else
6051               have_xul=true
6052               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
6053             fi
6054           else
6055             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
6056           fi
6057         fi
6058       ]
6059     )
6060     if test ! -z "${MOZILLA_CONFIG}"
6061     then
6062       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
6063         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
6064         AC_CHECK_LIB(Xt,XtStrings,
6065          [
6066            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
6067            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
6068          ],
6069          [],
6070          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
6071         ])
6072         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
6073         LDFLAGS="${LDFLAGS_save}"
6074       fi
6075
6076       mozilla=:
6077       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
6078       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
6079       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
6080       if ${need_xpcom_libs}; then
6081          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
6082       else
6083          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
6084       fi
6085       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
6086       MOZILLA_REQUIRED_HEADERS=1
6087       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6088       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6089       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6090         [#if HAVE_NPAPI_H
6091          # include <npapi.h>
6092          #endif
6093         ])
6094       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
6095       then
6096         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
6097       fi
6098       MOZILLA_REQUIRED_HEADERS=
6099       CPPFLAGS="${CPPFLAGS_save}"
6100       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
6101     fi
6102     dnl End of moz_sdk = ""
6103   else
6104     dnl special case for mingw32
6105     if test "${SYS}" = "mingw32"
6106     then
6107       AC_CHECK_TOOL(CYGPATH, cygpath, "")
6108       dnl latest gecko sdk does not have an xpcom directory
6109       if test -d "${with_mozilla_sdk_path}/xpcom"; then
6110           mozilla_sdk_xpcom="/xpcom"
6111       fi
6112     fi
6113
6114     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
6115     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
6116     MOZILLA_REQUIRED_HEADERS=1
6117     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6118     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6119     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6120         [#if HAVE_NPAPI_H
6121           #include <npapi.h>
6122           #endif
6123         ])
6124     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
6125     then
6126         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
6127     fi
6128     MOZILLA_REQUIRED_HEADERS=
6129     mozilla=:
6130     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
6131     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])
6132     if ${need_xpcom_libs}; then
6133        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])
6134       if test "${SYS}" = "mingw32"; then
6135         dnl latest gecko sdk does not have embedstring
6136         if test -d "${real_mozilla_sdk}/embedstring/bin"
6137         then
6138           VLC_ADD_LIBS([mozilla],[-lembedstring])
6139         fi
6140       fi
6141     fi
6142     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
6143
6144     if test -n "${CYGPATH}"; then
6145       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
6146     fi
6147     CPPFLAGS="${CPPFLAGS_save}"
6148   fi
6149 fi
6150 AC_LANG_POP(C++)
6151 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
6152
6153 dnl Tests for Osso and Xsp
6154 if test "${enable_x11}" != "no" &&
6155   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
6156    test "${enable_x11}" = "yes"); then
6157    AC_CHECK_LIB(osso, osso_display_blanking_pause,[
6158       PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                                
6159           VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
6160           VLC_ADD_LIBS([x11],[-losso])
6161       ])
6162    ])
6163    AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
6164       VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
6165       VLC_ADD_LIBS([x11],[-lXsp])
6166    ])
6167 fi
6168
6169 dnl
6170 dnl  Mediacontrol Python bindings
6171 dnl
6172 AC_ARG_ENABLE(python-bindings,
6173   [  --enable-python-bindings Enable Python bindings (default disabled)])
6174
6175 if test "${enable_python_bindings}" = "yes"; then
6176   AC_PATH_PROG(PYTHON_CONFIG, python-config, no)
6177   CFLAGS="${CFLAGS_save} `${PYTHON_CONFIG} --cflags`"
6178   AC_CHECK_HEADER([Python.h],
6179     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python",
6180     AC_MSG_ERROR([You have to install python-dev to build the bindings]),
6181     []
6182   )
6183   CFLAGS="${CFLAGS_save}"
6184 fi
6185 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
6186
6187 dnl
6188 dnl  Java bindings
6189 dnl
6190 AC_ARG_ENABLE(java-bindings,
6191   [  --enable-java-bindings  Enable Java bindings (default disabled)])
6192 if test "${enable_java_bindings}" = "yes"
6193 then
6194         echo ""
6195         echo "****** WARNING **** WARNING ***** WARNING *************"
6196         echo "*** To compile the java bindings go to the "
6197         echo "*** bindings/java folder and run mvn install. "
6198         echo "*** You need maven2 installed. "
6199         echo "*** This configuration will continue, so you will be "
6200         echo "*** able to compile VideoLAN as usual. "
6201         echo "*******************************************************"
6202         echo ""
6203 fi
6204
6205 dnl
6206 dnl  test plugins
6207 dnl
6208 AC_ARG_ENABLE(testsuite,
6209   [  --enable-testsuite      build test modules (default disabled)])
6210 if test "${enable_testsuite}" = "yes"
6211 then
6212   TESTS="test1 test2 test3 test4"
6213
6214   dnl  we define those so that bootstrap sets the right linker
6215   VLC_ADD_CXXFLAGS([test2],[])
6216   VLC_ADD_OBJCFLAGS([test3],[])
6217   dnl  this one is needed until automake knows what to do
6218   VLC_ADD_LIBS([test3],[-lobjc])
6219
6220   VLC_ADD_PLUGIN([test1])
6221   VLC_ADD_PLUGIN([test2])
6222   VLC_ADD_PLUGIN([test3])
6223   VLC_ADD_PLUGIN([test4])
6224 fi
6225
6226 dnl
6227 dnl Microsoft Layer for Unicode for WIN9x/ME
6228 dnl
6229 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
6230 then
6231     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
6232         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
6233     ])
6234 fi
6235
6236 dnl
6237 dnl  gtk_main plugin
6238 dnl
6239 if test "${NEED_GTK_MAIN}" != "no"
6240 then
6241     VLC_ADD_PLUGIN([gtk_main])
6242     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
6243     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
6244 fi
6245
6246 if test "${NEED_GNOME_MAIN}" != "no"
6247 then
6248     VLC_ADD_PLUGIN([gnome_main])
6249     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
6250     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
6251 fi
6252
6253 if test "${NEED_GTK2_MAIN}" != "no"
6254 then
6255     VLC_ADD_PLUGIN([gtk2_main])
6256     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
6257     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
6258     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
6259     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
6260 fi
6261
6262 if test "${NEED_GNOME2_MAIN}" != "no"
6263 then
6264     VLC_ADD_PLUGIN([gnome2_main])
6265     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
6266     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
6267 fi
6268
6269 dnl
6270 dnl  qte_main plugin
6271 dnl
6272 if test "${NEED_QTE_MAIN}" != "no"
6273 then
6274     VLC_ADD_PLUGIN([qte_main])
6275     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
6276     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
6277     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
6278 fi
6279
6280
6281 dnl
6282 dnl  Plugin and builtin checks
6283 dnl
6284 plugin_support=yes
6285
6286 dnl Automagically disable plugins if there is no system support for
6287 dnl dynamically loadable files (.so, .dll, .dylib).
6288 dnl don't forget vlc-win32 still can load .dll as plugins
6289 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
6290   AC_MSG_WARN([*** No plugin support! Building statically! ***])
6291   plugin_support=no
6292 ])
6293
6294 AS_IF([test "${enable_shared}" = "no"], [
6295   plugin_support=no
6296 ])
6297
6298 AS_IF([test "${plugin_support}" != "no"], [
6299   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
6300 ])
6301 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
6302
6303 dnl Temporary(?) hack for plugins/builtins transition
6304 dnl VLC_ADD_PLUGIN([${BUILTINS}])
6305 dnl BUILTINS=""
6306
6307 dnl
6308 dnl Pic and shared libvlc stuff
6309 dnl
6310 AS_IF([test "${SYS}" = "mingw32"], [
6311   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
6312   FILE_LIBVLC_CONTROL_DLL="!define LIBVLC_CONTROL_DLL libvlc-control.dll"
6313 ])
6314
6315 dnl
6316 dnl  Stuff used by the program
6317 dnl
6318 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
6319 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) ${COPYRIGHT_YEARS} the VideoLAN team", [Copyright string])
6320 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
6321 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
6322 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
6323 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
6324 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
6325 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
6326 AC_SUBST(VERSION_MAJOR)
6327 AC_SUBST(VERSION_MINOR)
6328 AC_SUBST(VERSION_REVISION)
6329 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
6330 if test "${build_os}" = "cygwin"
6331 then
6332     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
6333 else
6334     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
6335 fi
6336 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
6337 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
6338
6339 dnl
6340 dnl  Handle substvars that use $(top_srcdir)
6341 dnl
6342 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6343 AC_SUBST(VLC_CONFIG)
6344 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
6345
6346 dnl
6347 dnl  Restore *FLAGS
6348 dnl
6349 VLC_RESTORE_FLAGS
6350
6351 dnl
6352 dnl  Create the vlc-config script
6353 dnl
6354 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6355
6356 dnl
6357 dnl  Configuration is finished
6358 dnl
6359 AC_SUBST(SYS)
6360 AC_SUBST(ARCH)
6361 AC_SUBST(ALIASES)
6362 AC_SUBST(ASM)
6363 AC_SUBST(MOC)
6364 AC_SUBST(RCC)
6365 AC_SUBST(UIC)
6366 AC_SUBST(WINDRES)
6367 AC_SUBST(MOZILLA_SDK_PATH)
6368 AC_SUBST(WINE_SDK_PATH)
6369 AC_SUBST(LIBEXT)
6370 AC_SUBST(AM_CPPFLAGS)
6371 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6372 AC_SUBST(FILE_LIBVLC_DLL)
6373 AC_SUBST(FILE_LIBVLC_CONTROL_DLL)
6374
6375 dnl Create vlc-config.in
6376 VLC_OUTPUT_VLC_CONFIG_IN
6377
6378 AC_CONFIG_FILES([
6379   extras/package/win32/vlc.win32.nsi
6380   Makefile
6381   projects/activex/Makefile
6382   projects/activex/axvlc.inf
6383   bindings/Makefile
6384   bindings/python/Makefile
6385   doc/Makefile
6386   extras/package/ipkg/Makefile
6387   libs/loader/Makefile
6388   libs/srtp/Makefile
6389   modules/Makefile
6390   projects/mozilla/Makefile
6391   m4/Makefile
6392   po/Makefile.in
6393   share/Makefile
6394   src/Makefile
6395   test/Makefile
6396 ])
6397
6398 AC_CONFIG_FILES([
6399   modules/access/Makefile
6400   modules/access/bda/Makefile
6401   modules/access/dshow/Makefile
6402   modules/access/dvb/Makefile
6403   modules/access/mms/Makefile
6404   modules/access/cdda/Makefile
6405   modules/access/rtsp/Makefile
6406   modules/access/rtmp/Makefile
6407   modules/access/v4l2/Makefile
6408   modules/access/vcd/Makefile
6409   modules/access/vcdx/Makefile
6410   modules/access/screen/Makefile
6411   modules/access_filter/Makefile
6412   modules/access_output/Makefile
6413   modules/audio_filter/Makefile
6414   modules/audio_filter/channel_mixer/Makefile
6415   modules/audio_filter/converter/Makefile
6416   modules/audio_filter/resampler/Makefile
6417   modules/audio_filter/spatializer/Makefile
6418   modules/audio_mixer/Makefile
6419   modules/audio_output/Makefile
6420   modules/codec/Makefile
6421   modules/codec/cmml/Makefile
6422   modules/codec/dmo/Makefile
6423   modules/codec/ffmpeg/Makefile
6424   modules/codec/subtitles/Makefile
6425   modules/codec/spudec/Makefile
6426   modules/codec/xvmc/Makefile
6427   modules/control/Makefile
6428   modules/control/http/Makefile
6429   modules/demux/Makefile
6430   modules/demux/asf/Makefile
6431   modules/demux/avi/Makefile
6432   modules/demux/mp4/Makefile
6433   modules/demux/mpeg/Makefile
6434   modules/demux/playlist/Makefile
6435   modules/gui/Makefile
6436   modules/gui/beos/Makefile
6437   modules/gui/pda/Makefile
6438   modules/gui/macosx/Makefile
6439   modules/gui/minimal_macosx/Makefile
6440   modules/gui/qnx/Makefile
6441   modules/gui/qt4/Makefile
6442   modules/gui/skins2/Makefile
6443   modules/gui/wxwidgets/Makefile
6444   modules/gui/wince/Makefile
6445   modules/meta_engine/Makefile
6446   modules/misc/Makefile
6447   modules/misc/dummy/Makefile
6448   modules/misc/lua/Makefile
6449   modules/misc/memcpy/Makefile
6450   modules/misc/notify/Makefile
6451   modules/misc/testsuite/Makefile
6452   modules/misc/playlist/Makefile
6453   modules/misc/osd/Makefile
6454   modules/misc/xml/Makefile
6455   modules/misc/probe/Makefile
6456   modules/mux/Makefile
6457   modules/mux/mpeg/Makefile
6458   modules/mux/rtp/Makefile
6459   modules/packetizer/Makefile
6460   modules/services_discovery/Makefile
6461   modules/stream_out/Makefile
6462   modules/stream_out/transrate/Makefile
6463   modules/video_chroma/Makefile
6464   modules/video_filter/Makefile
6465   modules/video_filter/atmo/Makefile
6466   modules/video_filter/dynamicoverlay/Makefile
6467   modules/video_output/Makefile
6468   modules/video_output/msw/Makefile
6469   modules/video_output/qte/Makefile
6470   modules/video_output/x11/Makefile
6471   modules/visualization/Makefile
6472   modules/visualization/visual/Makefile
6473   modules/visualization/galaktos/Makefile
6474 ])
6475
6476 dnl Generate makefiles
6477 AC_OUTPUT
6478
6479 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6480 # not provided with the source
6481 ${SHELL} ./config.status --file=vlc-config
6482 chmod 0755 vlc-config
6483
6484 dnl echo "Enabled builtin modules :"
6485 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6486
6487 dnl echo "Enabled plugin modules :"
6488 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6489
6490 dnl Shortcut to nice compile message
6491 rm -f compile
6492 echo '#! /bin/sh' >compile
6493 echo rm -f .error\$\$ >>compile
6494 echo ERROR=0 >>compile
6495 echo export PATH=$PATH LANG=C >>compile
6496 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
6497 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
6498 echo test -f .error\$\$ \&\& ERROR=1 >>compile
6499 echo rm -f .error\$\$ >>compile
6500 echo exit \$ERROR >>compile
6501 chmod a+x compile
6502
6503 printf "
6504 libvlc configuration
6505 --------------------
6506 version               : ${VERSION}
6507 system                : ${SYS}
6508 architecture          : ${ARCH}
6509 build flavour         : "
6510 test "${enable_debug}" = "yes" && printf "debug "
6511 test "${enable_cprof}" = "yes" && printf "cprof "
6512 test "${enable_gprof}" = "yes" && printf "gprof "
6513 test "${enable_optimizations}" = "yes" && printf "optim "
6514 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6515 echo ""
6516 if test "${enable_vlc}" != "no"; then
6517 echo "vlc aliases           :${ALIASES}"
6518 else
6519 echo "build vlc executable  : no"
6520 fi
6521 echo "plugins/bindings      :${PLUGINS_BINDINGS}
6522
6523 You can check which modules have been enabled 
6524 with \`./vlc-config --list plugin'.
6525 You can tune the compiler flags in vlc-config.
6526 To build vlc and its plugins, type \`./compile' or \`make'.
6527 "
6528 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6529    echo ""
6530    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6531    echo "         turned off."
6532    echo "         FFmpeg will be REALLY slow."
6533    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6534    echo ""
6535 fi