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