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