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