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