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