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