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