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