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