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