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