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