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