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