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