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