]> git.sesse.net Git - vlc/blob - configure.ac
Happy new year
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59) dnl this really should be 2.59c
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE([1.9 check-news dist-bzip2 no-dist-gzip -Wall])
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Save *FLAGS
34 dnl
35 VLC_SAVE_FLAGS
36
37 dnl
38 dnl Check for tools
39 dnl
40 AC_PROG_CC_C99
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then 
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104     if test -z $with_live555_tree; then
105        with_live555_tree=${topdir}/extras/contrib/src/live
106     fi
107     if test -z $with_goom_tree; then
108        with_goom_tree=${topdir}/extras/contrib/src/goom
109     fi
110     if test -z $with_mozilla_sdk_path; then
111        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
112     fi
113     if test -z $with_cyberlink_tree; then
114        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
115     fi
116     if test -z $with_libmpeg2_tree; then
117        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
118     fi
119     if test -z $with_a52_tree; then
120        with_a52_tree=${topdir}/extras/contrib/src/a52dec
121     fi
122
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
173     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c])
175     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
176     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
177     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx],[-Wl,-read_only_relocs,suppress])
178     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
179     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
180     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
181     AC_ARG_ENABLE(macosx-defaults,
182         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
183     if test "x${enable_macosx_defaults}" != "xno"
184     then
185         echo ""
186         echo "Building with Mac OS X defaults:"
187         enable_macosx="yes"
188         echo "  Assuming --enable-macosx"
189         enable_faad="yes"
190         echo "  Assuming --enable-faad"
191         enable_flac="yes"
192         echo "  Assuming --enable-flac"
193         enable_theora="yes"
194         echo "  Assuming --enable-theora"
195         enable_shout="yes"
196         echo "  Assuming --enable-shout"
197         enable_cddax="yes"
198         echo "  Assuming --enable-cddax"
199         enable_vcdx="yes"
200         echo "  Assuming --enable-vcdx"
201         enable_caca="yes"
202         echo "  Assuming --enable-caca"
203         enable_goom="yes"
204         echo "  Assuming --enable-goom"
205         enable_ncurses="yes"
206         echo "  Assuming --enable-ncurses"
207         enable_twolame="yes"
208         echo "  Assuming --enable-twolame"
209         enable_realrtsp="yes"
210         echo "  Assuming --enable-realrtsp"
211
212         enable_skins2="no"
213         echo "  Assuming --disable-skins2"
214         enable_x11="no"
215         echo "  Assuming --disable-x11"
216         enable_glx="no"
217         echo "  Assuming --disable-glx"
218         enable_xvideo="no"
219         echo "  Assuming --disable-xvideo"
220
221         with_macosx_sdk="no"
222         echo "  Compiling without SDK usage"
223     fi
224     if test ".`uname -p`" = ".i386"; then
225         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
226         dnl without hacking it a lot, we disable mmx and sse.
227         dnl (that bug is about ld being unable to handle
228         dnl text relocation)
229         save_cflags="$CFLAGS"
230         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
231         AC_TRY_LINK(
232             [int a;], [asm("movq _a,%mm0\n");],
233             ac_ld_does_not_support_text_reloc=no,
234             ac_ld_does_not_support_text_reloc=yes)
235         CFLAGS="$save_cflags"
236
237         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
238             enable_mmx="no"
239             echo "  Assuming --disable-mmx (due to a bug in ld)"
240             enable_sse="no"
241             echo "  Assuming --disable-sse (due to a bug in ld)"
242         fi
243     fi
244     ;;
245   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
246     AC_CHECK_TOOL(WINDRES, windres, :)
247
248     case "${host_os}" in
249       *mingw32*)
250         SYS=mingw32
251         ;;
252       *cygwin*)
253         dnl Check if we are using the mno-cygwin mode in which case we are
254         dnl actually dealing with a mingw32 compiler.
255         AC_EGREP_CPP(yes,
256             [#ifdef WIN32
257              yes
258              #endif],
259             SYS=mingw32, SYS=cygwin)
260         ;;
261       *wince* | *mingwce* | *pe*)
262         SYS=mingwce
263         ;;
264     esac
265
266     if test "${SYS}" = "mingw32"; then
267         # add ws2_32 for closesocket, select, recv
268         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
269         VLC_ADD_LDFLAGS([vlc],[-mwindows])
270         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
271         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
272         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])
273     fi
274     if test "${SYS}" = "mingwce"; then
275         # add ws2 for closesocket, select, recv
276         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
277         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
278         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
279    fi
280     ;;
281   *nto*)
282     SYS=nto
283     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
284     ;;
285   solaris*)
286     SYS=solaris
287     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
288     # Perhaps it is useful other places as well? 
289     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
290     ;;
291   hpux*)
292     SYS=hpux
293     ;;
294   beos)
295     SYS=beos
296     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
297     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
298     VLC_ADD_CXXFLAGS([beos],[])
299     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
300     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
301     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
302     VLC_ADD_LIBS([access_file],[-lpoll])
303     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
304     dnl Check for BONE
305     if test -f /boot/beos/system/lib/libbind.so; then
306         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket])
307     else
308         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet])
309     fi
310
311     dnl Ugly check for Zeta
312     if test -f /boot/beos/system/lib/libzeta.so; then
313         VLC_ADD_LIBS([beos],[-lzeta])
314     fi
315     ;;
316   *)
317     SYS="${host_os}"
318     ;;
319 esac
320 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
321 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
322 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
323 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
324
325 dnl
326 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
327 dnl for program foo on win32
328
329 case "${build_os}" in
330     cygwin|msys)
331         ac_executable_extensions=".exe"
332         ;;
333     *)
334         ;;
335 esac
336
337 dnl 
338 dnl  Libtool
339 dnl  It's very bad, but our former custom system was worst
340 dnl  -- Courmisch
341 dnl
342
343 dnl override platform specific check for dependent libraries
344 dnl otherwise libtool linking of shared libraries will
345 dnl fail on anything other than pass_all.
346 AC_CACHE_VAL(lt_cv_deplibs_check_method,
347     [lt_cv_deplibs_check_method=pass_all])
348
349 AC_DISABLE_STATIC
350 AC_DISABLE_FAST_INSTALL
351 AC_LIBTOOL_DLOPEN
352 AC_LIBTOOL_WIN32_DLL
353 m4_undefine([AC_PROG_F77])
354 m4_defun([AC_PROG_F77],[])
355 AC_PROG_LIBTOOL
356
357 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
358 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
359
360 lt_cv_deplibs_check_method=pass_all
361
362
363 dnl
364 dnl  Check for Mac OS X SDK settings
365 dnl
366 AC_ARG_WITH(macosx-sdk,
367    [  --with-macosx-sdk       compile with the Mac OS X 10.4u SDK],[], with_macosx_sdk=no)
368 if test "${with_macosx_sdk}" != "no" ; then
369     CC="${CC} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
370     CXX="${CXX} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
371     OBJC="${OBJC} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
372     LD="${LD} -syslibroot/Developer/SDKs/MacOSX10.4u.sdk"
373     CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; CFLAGS="${CFLAGS_save}"
374     CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; CXXFLAGS="${CXXFLAGS_save}"
375     OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; OBJCFLAGS="${OBJCFLAGS_save}"
376     MACOSX_DEPLOYMENT_TARGET="10.4"
377     export MACOSX_DEPLOYMENT_TARGET
378 else
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 yuy2_i422 yuy2_i420 chroma_chain])
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
3091     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3092       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3093       VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat -lavformat -lz])
3094       VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat])
3095     fi
3096 else
3097
3098
3099 dnl Trying with pkg-config
3100    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3101     [
3102      VLC_SAVE_FLAGS
3103      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3104      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3105      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3106      AC_CHECK_HEADERS(ffmpeg/avformat.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avformat.h.])] )
3107      AC_CHECK_HEADERS(ffmpeg/avutil.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avutil.h.])] )
3108      dnl newer ffmpeg have a separate libpostproc
3109      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3110        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3111        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3112        ],[ true ])
3113      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3114      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3115      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3116      if test "${SYS}" = "darwin"; then
3117         VLC_ADD_BUILTINS([ffmpeg])
3118      else
3119         VLC_ADD_PLUGINS([ffmpeg])
3120      fi
3121      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3122         if test "${SYS}" = "darwin"; then
3123             VLC_ADD_BUILTINS([stream_out_switcher])
3124         else
3125             VLC_ADD_PLUGINS([stream_out_switcher])
3126         fi
3127      fi
3128      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3129      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3130
3131      dnl even newer ffmpeg has a libswscale
3132      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3133        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3134        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3135 dnl    AC_CHECK_HEADERS(ffmpeg/swscale.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/swscale.h.])])
3136        AC_CHECK_LIB(swscale, sws_getContext,
3137          [AC_CHECK_HEADERS([ffmpeg/avutil.h, ffmpeg/swscale.h])],[],[-lavutil -lm])
3138        ],[ true ])
3139      VLC_RESTORE_FLAGS
3140     ],[
3141
3142     dnl
3143     dnl last chance: at the default place
3144     dnl
3145       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3146       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3147       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3148       AC_CHECK_HEADERS(ffmpeg/avformat.h)
3149       AC_CHECK_HEADERS(ffmpeg/avutil.h)
3150       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3151
3152       AC_CHECK_LIB(avutil, av_crc_init, [
3153         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3154         LDAVUTIL="-lavutil"])
3155
3156       AC_CHECK_LIB(avcodec, avcodec_init, [
3157         VLC_ADD_BUILTINS([ffmpeg])
3158         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3159         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3160             VLC_ADD_BUILTINS([stream_out_switcher])
3161         fi],
3162          [ 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])
3163
3164       AC_CHECK_LIB(postproc, pp_postprocess, [
3165         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3166       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3167         [$LDAVUTIL])
3168
3169       AC_CHECK_LIB(avformat, av_open_input_stream, [
3170         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3171       LDFLAGS="${LDFLAGS_save}"
3172       CPPFLAGS="${CPPFLAGS_save}"
3173
3174       AC_CHECK_LIB(swscale, sws_getContext, [
3175         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3176         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3177       LDFLAGS="${LDFLAGS_save}"
3178       CPPFLAGS="${CPPFLAGS_save}"
3179     ])
3180   fi
3181 fi
3182
3183 dnl
3184 dnl  ffmpegaltivec plugin
3185 dnl
3186 AC_ARG_ENABLE(ffmpegaltivec,
3187 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3188 if test "${enable_ffmpegaltivec}" = "yes"
3189 then
3190   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3191     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3192     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3193     if test -z "${real_ffmpeg_tree}"; then
3194       dnl  The given directory can't be found
3195       AC_MSG_RESULT(no)
3196       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3197     fi
3198     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3199       dnl  The given libavcodecaltivec wasn't built
3200       AC_MSG_RESULT(no)
3201       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3202     fi
3203     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3204       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3205       AC_MSG_RESULT(no)
3206       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3207     fi
3208     dnl  Use a custom libffmpeg
3209     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3210     VLC_ADD_BUILTINS([ffmpegaltivec])
3211     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3212     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3213     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3214
3215     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3216       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3217       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3218       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3219     fi
3220     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3221     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3222   fi
3223 fi
3224
3225 dnl
3226 dnl  faad decoder plugin
3227 dnl
3228 AC_ARG_ENABLE(faad,
3229 [  --enable-faad           faad codec (default disabled)])
3230 if test "${enable_faad}" = "yes"
3231 then
3232   AC_ARG_WITH(faad-tree,
3233   [    --with-faad-tree=PATH faad tree for static linking])
3234   if test -n "${with_faad_tree}"
3235   then
3236     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3237     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3238     if test -z "${real_faad_tree}"
3239     then
3240       dnl  The given directory can't be found
3241       AC_MSG_RESULT(no)
3242       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3243     fi
3244     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3245     then
3246       dnl  Use a custom faad
3247       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3248       VLC_ADD_BUILTINS([faad])
3249       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3250       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3251     else
3252       dnl  The given libfaad wasn't built
3253       AC_MSG_RESULT(no)
3254       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3255     fi
3256   else
3257     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3258     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3259     AC_CHECK_HEADERS(faad.h, ,
3260       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3261     AC_CHECK_LIB(faad, faacDecOpen, [
3262       VLC_ADD_PLUGINS([faad])
3263       VLC_ADD_LIBS([faad],[-lfaad]) ],
3264       AC_CHECK_LIB(faad, NeAACDecOpen, [
3265         VLC_ADD_PLUGINS([faad])
3266         VLC_ADD_LIBS([faad],[-lfaad]) ],
3267         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3268     LDFLAGS="${LDFLAGS_save}"
3269     CPPFLAGS="${CPPFLAGS_save}"
3270   fi
3271 fi
3272
3273 dnl
3274 dnl twolame encoder plugin
3275 dnl
3276 AC_ARG_ENABLE(twolame,
3277 [  --enable-twolame        twolame codec (default disabled)])
3278 if test "${enable_twolame}" = "yes"
3279 then
3280   AC_ARG_WITH(twolame-tree,
3281   [    --with-twolame-tree=PATH twolame tree for static linking])
3282   if test -n "${with_twolame_tree}"
3283   then
3284     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3285     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3286     if test -z "${real_twolame_tree}"
3287     then
3288       dnl  The given directory can't be found
3289       AC_MSG_RESULT(no)
3290       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3291     fi
3292     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3293     then
3294       dnl  Use a custom twolame
3295       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3296       VLC_ADD_BUILTINS([twolame])
3297       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3298       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3299     else
3300       dnl  The given libtwolame wasn't built
3301       AC_MSG_RESULT(no)
3302       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3303     fi
3304   else
3305     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3306     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3307     AC_CHECK_HEADERS(twolame.h, ,
3308       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3309     AC_CHECK_LIB(twolame, twolame_init, [
3310       VLC_ADD_PLUGINS([twolame])
3311       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3312       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3313         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3314     LDFLAGS="${LDFLAGS_save}"  
3315     CPPFLAGS="${CPPFLAGS_save}"
3316   fi
3317 fi
3318
3319 dnl
3320 dnl  QuickTime plugin
3321 dnl
3322 AC_ARG_ENABLE(quicktime,
3323   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3324 if test "${enable_quicktime}" != "no" &&
3325   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3326 then
3327   if test "${SYS}" = "mingw32"; then
3328     VLC_ADD_BUILTINS([quicktime])
3329   else
3330   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3331     [ VLC_ADD_BUILTINS([quicktime])
3332       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3333     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3334   fi
3335 fi
3336
3337 dnl
3338 dnl  Real plugin
3339 dnl
3340 AC_ARG_ENABLE(real,
3341   [  --enable-real           Real audio module (default disabled)])
3342 if test "${enable_real}" = "yes"; then
3343   VLC_ADD_PLUGINS([realaudio])
3344 fi
3345
3346 dnl
3347 dnl  Real RTSP plugin
3348 dnl
3349 AC_ARG_ENABLE(realrtsp,
3350   [  --enable-realrtsp       Real RTSP module (default disabled)])
3351 if test "${enable_realrtsp}" = "yes"; then
3352   VLC_ADD_PLUGINS([access_realrtsp])
3353 fi
3354
3355 dnl
3356 dnl MP4 module
3357 dnl
3358 AC_CHECK_HEADERS(zlib.h, [
3359   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3360 ] )
3361
3362 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3363   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3364 ] )
3365
3366 dnl
3367 dnl skins2 module
3368 dnl
3369 AC_ARG_ENABLE(libtar,
3370   [  --enable-libtar support for skins2 (default enabled)])
3371
3372 AS_IF([test "${enable_libtar}" != "no"],[
3373   AC_CHECK_HEADERS(libtar.h, [
3374     VLC_ADD_LIBS([skins2],[-ltar])
3375   ] )
3376 ])
3377
3378 dnl
3379 dnl A52/AC3 decoder plugin
3380 dnl
3381 AC_ARG_ENABLE(a52,
3382   [  --enable-a52            A/52 support with liba52 (default enabled)])
3383 if test "${enable_a52}" != "no"
3384 then
3385   AC_ARG_WITH(a52,
3386     [    --with-a52=PATH       a52 headers and libraries])
3387   AC_ARG_WITH(a52-tree,
3388     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3389   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3390   then
3391     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3392     if test -z "${real_a52_tree}"
3393     then
3394       dnl  The given directory can't be found
3395       AC_MSG_RESULT(no)
3396       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3397     fi
3398     dnl  Use a custom a52dec
3399     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3400     if test -f ${real_a52_tree}/include/a52.h
3401     then
3402       AC_MSG_RESULT(yes)
3403       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3404       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3405       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3406       AC_CHECK_LIB(a52, a52_free, [
3407         VLC_ADD_BUILTINS([a52tofloat32])
3408         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3409         VLC_ADD_LIBS([a52tofloat32],[-la52])
3410         ],[
3411         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3412         then
3413           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3414         else
3415           AC_MSG_ERROR([the specified tree hasn't been compiled])
3416         fi
3417       ])
3418       LDFLAGS="${LDFLAGS_save}"
3419     else
3420       AC_MSG_RESULT(no)
3421       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3422     fi
3423   else
3424     if test -z "${with_a52}"
3425     then
3426       LDFLAGS_test=""
3427       CPPFLAGS_test=""
3428     else
3429       LDFLAGS_test="-L${with_a52}/lib"
3430       CPPFLAGS_test="-I${with_a52}/include"
3431     fi
3432     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3433     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3434     AC_CHECK_HEADERS(a52dec/a52.h, [
3435       AC_CHECK_LIB(a52, a52_free, [
3436         VLC_ADD_PLUGINS([a52tofloat32])
3437         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3438         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3439       ],[
3440         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.])
3441         ])
3442     ],[
3443       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.])
3444     ])
3445     CPPFLAGS="${CPPFLAGS_save}"
3446     LDFLAGS="${LDFLAGS_save}"
3447   fi
3448 fi
3449
3450 AC_ARG_WITH(a52-fixed,
3451       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3452       [
3453         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3454
3455 dnl
3456 dnl DTS Coherent Acoustics decoder plugin
3457 dnl
3458 AS_IF([test "x${enable_dts}" != "x"], [
3459   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3460 ])
3461 AS_IF([test "x${with_dts_tree}" != "x"], [
3462   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3463 ])
3464
3465 AC_ARG_ENABLE(dca,
3466   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3467 AS_IF([test "${enable_dca}" != "no"], [
3468   AC_ARG_WITH(dca-tree,
3469     [    --with-dca-tree=PATH  libdca tree for static linking],,
3470     [with_dca_tree="no"])
3471   AS_IF([test "${with_dca_tree}" != "no"], [
3472     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3473     AS_IF([test -z "${real_dca_tree}"], [
3474       dnl  The given directory can't be found
3475       AC_MSG_RESULT(no)
3476       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3477     ])
3478     dnl  Use a custom libdca
3479     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3480     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3481       AC_MSG_RESULT(yes)
3482       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3483       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3484         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3485       ], [
3486         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3487       ])
3488     ], [
3489       AC_MSG_RESULT(no)
3490       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3491     ])
3492   ], [
3493     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3494       VLC_ADD_PLUGINS([dtstofloat32])
3495       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3496       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3497     ], [
3498       AS_IF([test "x${enable_dca}" != "x"], [
3499         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3500       ])
3501     ])
3502   ])
3503 ])
3504
3505 dnl
3506 dnl  Flac plugin
3507 dnl
3508 AC_ARG_ENABLE(flac,
3509   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3510 if test "${enable_flac}" = "yes"
3511 then
3512   AC_ARG_WITH(flac-tree,
3513   [    --with-flac-tree=PATH flac tree for static linking])
3514   if test -n "${with_flac_tree}"
3515   then
3516     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3517     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3518     if test -z "${real_flac_tree}"
3519     then
3520       dnl  The given directory can't be found
3521       AC_MSG_RESULT(no)
3522       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3523     fi
3524     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3525     then
3526       dnl  Use a custom flac
3527       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3528       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3529       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3530       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3531     else
3532       dnl  The given flac wasn't built
3533       AC_MSG_RESULT(no)
3534       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3535     fi
3536   else
3537     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3538       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3539      ],[])
3540   fi
3541 fi
3542
3543 dnl
3544 dnl  Libmpeg2 plugin
3545 dnl
3546 AC_ARG_ENABLE(libmpeg2,
3547   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3548 if test "${enable_libmpeg2}" != "no"
3549 then
3550   AC_ARG_WITH(libmpeg2-tree,
3551   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3552   if test -n "${with_libmpeg2_tree}"
3553   then
3554     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3555     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3556     if test -z "${real_libmpeg2_tree}"
3557     then
3558       dnl  The given directory can't be found
3559       AC_MSG_RESULT(no)
3560       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3561     fi
3562     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3563     then
3564       dnl  Use a custom libmpeg2
3565       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3566       VLC_ADD_BUILTINS([libmpeg2])
3567       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3568       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3569       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3570     else
3571       dnl  The given libmpeg2 wasn't built
3572       AC_MSG_RESULT(no)
3573       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3574     fi
3575   else
3576     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3577       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3578       AC_EGREP_CPP(yes,
3579         [#include <mpeg2dec/mpeg2.h>
3580          #ifdef MPEG2_RELEASE
3581          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3582          yes
3583          #endif
3584          #endif],
3585         [AC_MSG_RESULT([yes])
3586           VLC_ADD_PLUGINS([libmpeg2])
3587           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3588         [AC_MSG_RESULT([no])
3589           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.])])],
3590
3591       [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.])]
3592     )
3593   fi
3594 fi
3595
3596 dnl
3597 dnl  Vorbis plugin
3598 dnl
3599 AC_ARG_ENABLE(vorbis,
3600   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3601 if test "${enable_vorbis}" != "no"
3602 then
3603   AC_ARG_WITH(vorbis-tree,
3604   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3605   if test -n "${with_vorbis_tree}"
3606   then
3607     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3608     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3609     if test -z "${real_vorbis_tree}"
3610     then
3611       dnl  The given directory can't be found
3612       AC_MSG_RESULT(no)
3613       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3614     fi
3615     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3616     then
3617       dnl  Use a custom vorbis 
3618       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3619       VLC_ADD_PLUGINS([vorbis])
3620       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3621       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3622     else
3623       dnl  The given vorbis wasn't built
3624       AC_MSG_RESULT(no)
3625       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3626     fi
3627   else
3628     AC_CHECK_HEADERS(vorbis/codec.h, [
3629       VLC_ADD_PLUGINS([vorbis])
3630       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3631
3632     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3633       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3634   fi
3635 fi
3636
3637 dnl
3638 dnl  Tremor plugin
3639 dnl
3640 AC_ARG_ENABLE(tremor,
3641   [  --enable-tremor         Tremor decoder support (default disabled)])
3642 if test "${enable_tremor}" = "yes"
3643 then
3644   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3645     VLC_ADD_PLUGINS([tremor])
3646     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3647    ],[])
3648 fi
3649
3650 dnl
3651 dnl  Speex plugin
3652 dnl
3653 AC_ARG_ENABLE(speex,
3654   [  --enable-speex          Speex decoder support (default enabled)])
3655 if test "${enable_speex}" != "no"
3656 then
3657   AC_ARG_WITH(speex-tree,
3658   [    --with-speex-tree=PATH speex tree for static linking])
3659   if test -n "${with_speex_tree}"
3660   then
3661     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3662     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3663     if test -z "${real_speex_tree}"
3664     then
3665       dnl  The given directory can't be found
3666       AC_MSG_RESULT(no)
3667       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3668     fi
3669     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3670     then
3671       dnl  Use a custom speex
3672       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3673       VLC_ADD_PLUGINS([speex])
3674       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3675       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3676     else
3677       dnl  The given speex wasn't built
3678       AC_MSG_RESULT(no)
3679       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3680     fi
3681   else
3682     AC_CHECK_HEADERS(speex/speex.h, [
3683       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3684       AC_CHECK_LIB(speex, speex_decode_int, [
3685         VLC_ADD_PLUGINS([speex])
3686         VLC_ADD_LIBS([speex],[-lspeex]) ],
3687         [ AC_MSG_RESULT([no])
3688           AC_MSG_WARN([Your libspeex is too old, please get the development
3689                        version.]) ],[])
3690       LDFLAGS="${LDFLAGS_save}"
3691       ],[])
3692   fi
3693 fi
3694
3695 dnl
3696 dnl  tarkin decoder plugin
3697 dnl
3698 AC_ARG_ENABLE(tarkin,
3699 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3700 if test "${enable_tarkin}" = "yes"
3701 then
3702   AC_ARG_WITH(tarkin-tree,
3703   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3704   if test -n "${with_tarkin_tree}"
3705   then
3706     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3707     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3708     if test -f "${real_tarkin_tree}/tarkin.o"
3709     then
3710       VLC_ADD_BUILTINS([tarkin])
3711       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3712       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])
3713       AC_MSG_RESULT(yes)
3714     else
3715       dnl  The given tarkin tree wasn't built
3716       AC_MSG_RESULT(no)
3717       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3718                     make sure you compiled tarkin in ${with_tarkin_tree}])
3719     fi
3720   fi
3721 fi
3722
3723 dnl
3724 dnl  theora decoder plugin
3725 dnl
3726 AC_ARG_ENABLE(theora,
3727 [  --enable-theora         experimental theora codec (default disabled)])
3728 if test "${enable_theora}" = "yes"
3729 then
3730   AC_CHECK_HEADERS(theora/theora.h, [
3731     AC_CHECK_LIB(theora, theora_granule_time, [
3732       VLC_ADD_PLUGINS([theora])
3733       theora_libs="-ltheora -logg"
3734       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3735       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3736 You also need to check that you have a libogg posterior to the 1.0 release.])],
3737       [-logg])
3738   ])
3739 fi
3740
3741 dnl
3742 dnl  dirac decoder plugin
3743 dnl
3744 AC_ARG_ENABLE(dirac,
3745 [  --enable-dirac          experimental dirac codec (default disabled)])
3746 if test "${enable_dirac}" = "yes"; then
3747   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.8.0], [
3748       VLC_ADD_PLUGINS([dirac])
3749       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3750       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3751       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3752   ])
3753 fi
3754
3755 dnl
3756 dnl  PNG decoder module
3757 dnl
3758 AC_ARG_ENABLE(png,
3759   [  --enable-png            PNG support (default enabled)])
3760 if test "${enable_png}" != "no"; then
3761 AC_CHECK_HEADERS(png.h, [
3762   LDFLAGS="${LDFLAGS_save} -lz"
3763   AC_CHECK_LIB(png, png_set_rows, [
3764     VLC_ADD_LIBS([png],[-lpng -lz])
3765     VLC_ADD_PLUGINS([png])
3766     VLC_ADD_PLUGINS([osdmenu osd_parser])
3767     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3768     [],[-lz])
3769   LDFLAGS="${LDFLAGS_save}"
3770   ])
3771 fi
3772
3773 dnl
3774 dnl H264 encoder plugin (using libx264)
3775 dnl
3776 AC_ARG_ENABLE(x264,
3777   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3778 if test "${enable_x264}" != "no"; then
3779   AC_ARG_WITH(x264-tree,
3780     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3781   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3782   then
3783     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3784     if test -z "${real_x264_tree}"
3785     then
3786       dnl  The given directory can't be found
3787       AC_MSG_RESULT(no)
3788       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3789     fi
3790     dnl  Use a custom libx264
3791     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3792     if test -f ${real_x264_tree}/x264.h
3793     then
3794       AC_MSG_RESULT(yes)
3795       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3796       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3797       LDFLAGS="${LDFLAGS_save} ${LIBS_x264} ${THREAD_LIB}"
3798       AC_CHECK_LIB(x264, x264_encoder_open, [
3799         VLC_ADD_BUILTINS([x264])
3800         VLC_ADD_LIBS([x264],[-lx264])
3801       ],[
3802         AC_MSG_ERROR([the specified tree hasn't been compiled])
3803       ])
3804       LDFLAGS="${LDFLAGS_save}"
3805     else
3806       AC_MSG_RESULT(no)
3807       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3808     fi
3809   else
3810     LDFLAGS="${LDFLAGS_save} ${LIBS_x264} ${THREAD_LIB}"
3811     AC_CHECK_HEADERS(x264.h, [
3812       AC_CHECK_LIB(x264, x264_encoder_open, [
3813         VLC_ADD_PLUGINS([x264])
3814         VLC_ADD_LIBS([x264],[-lx264])
3815       ],[
3816         if test "${enable_x264}" = "yes"; then
3817             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3818           fi
3819       ])
3820     ])
3821     LDFLAGS="${LDFLAGS_save}"
3822   fi
3823 fi
3824
3825 dnl
3826 dnl libfluidsynth (MIDI synthetizer) plugin
3827 dnl
3828 AC_ARG_ENABLE(fluidsynth,
3829   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3830 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3831   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3832     VLC_ADD_PLUGINS(fluidsynth)
3833     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3834     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3835   ], [
3836     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3837       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3838     ])
3839   ])
3840 ])
3841
3842 dnl
3843 dnl Teletext Modules
3844 dnl vbi decoder plugin (using libzbvi)
3845 dnl telx module
3846 dnl uncompatible
3847 dnl
3848 AC_ARG_ENABLE(zvbi,
3849   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3850 AC_ARG_ENABLE(telx,
3851   [  --enable-telx,          Teletext decoding module (conflicting with zvbi) (default disabled)])
3852
3853 AS_IF( [test "${enable_zvbi}" != "no"],[
3854   AS_IF( [test "${enable_telx}" = "yes"],[
3855     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3856   ],[
3857     PKG_CHECK_MODULES(ZVBI,
3858         zvbi-0.2 >= 0.2.25,
3859         [
3860           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3861           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3862           VLC_ADD_PLUGINS([zvbi])
3863           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3864         ],[
3865           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3866           enable_telx="yes"
3867         ])
3868     ])  
3869   ])
3870 AS_IF( [test "${enable_telx}" = "yes"],[
3871   VLC_ADD_PLUGINS([telx])
3872   ])
3873
3874 dnl
3875 dnl  CMML plugin
3876 dnl
3877 AC_ARG_ENABLE(cmml,
3878   [  --enable-cmml           CMML support (default enabled)])
3879 if test "${enable_cmml}" != "no"
3880 then
3881   VLC_ADD_PLUGINS([cmml])
3882 fi
3883
3884
3885 dnl
3886 dnl  Video plugins
3887 dnl
3888
3889 AC_ARG_WITH(,[Video plugins:])
3890
3891 dnl Check for DPMS
3892 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3893   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3894   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3895     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3896     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3897       AC_MSG_RESULT(yes)
3898       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3899                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3900     ],[
3901       AC_MSG_RESULT(no)
3902     ])
3903   ],,[
3904     #include <X11/Xlib.h>
3905   ])
3906   CPPFLAGS="${CPPFLAGS_save}"
3907 fi
3908
3909 dnl
3910 dnl  X11 module
3911 dnl  (enabled by default except on win32)
3912 dnl
3913 AC_ARG_ENABLE(x11,
3914   [  --enable-x11            X11 support (default enabled)])
3915 if test "${enable_x11}" != "no" &&
3916   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3917    test "${enable_x11}" = "yes"); then
3918   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3919   AC_CHECK_HEADERS(X11/Xlib.h, [
3920     VLC_ADD_PLUGINS([panoramix])
3921     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3922     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3923     AC_CHECK_LIB(Xext, XShmAttach, [
3924       VLC_ADD_PLUGINS([x11])
3925       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3926       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3927     ])
3928   ])
3929   CPPFLAGS="${CPPFLAGS_save}"
3930 fi
3931
3932 dnl
3933 dnl  XVideo module
3934 dnl  (enabled by default except on win32)
3935 dnl
3936 AC_ARG_ENABLE(xvideo,
3937   [  --enable-xvideo         XVideo support (default enabled)])
3938 if test "${enable_xvideo}" != "no" &&
3939   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3940    test "${enable_xvideo}" = "yes"); then
3941   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3942   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3943     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3944     AC_CHECK_LIB(Xv,XvPutImage,[
3945       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3946       # test for libXv_pic.
3947       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3948         VLC_ADD_PLUGINS([xvideo])
3949         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3950         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3951       else
3952         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3953           VLC_ADD_PLUGINS([xvideo])
3954           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3955           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3956         ],[
3957           VLC_ADD_BUILTINS([xvideo])
3958           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3959           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3960         ])
3961       fi
3962     ])
3963     CFLAGS="${CFLAGS_save}"
3964   ]
3965   CPPFLAGS="${CPPFLAGS_save}")
3966 fi
3967
3968 dnl
3969 dnl  GLX module
3970 dnl  (enabled by default except on win32)
3971 dnl
3972 AC_ARG_ENABLE(glx,
3973   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3974 if test "${enable_glx}" != "no" &&
3975   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3976    test "${enable_glx}" = "yes"); then
3977   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3978   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3979   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3980     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3981     choke me
3982     #endif]]),
3983     [
3984       VLC_ADD_PLUGINS([glx])
3985       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3986       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3987     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3988   CPPFLAGS="${CPPFLAGS_save}"
3989 fi
3990
3991 dnl
3992 dnl  XVMC module
3993 dnl  (enabled by default except on win32)
3994 dnl
3995 AC_ARG_ENABLE(xvmc,
3996   [  --enable-xvmc           XVMC support (default disabled)])
3997 if test "${enable_xvmc}" = "yes" &&
3998   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3999    test "${enable_xvmc}" = "yes"); then
4000   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4001   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4002     VLC_ADD_PLUGINS([xvmc])
4003     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
4004     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
4005   ])
4006   CPPFLAGS="${CPPFLAGS_save}"
4007 fi
4008
4009 dnl
4010 dnl  Check for the Xinerama extension
4011 dnl
4012 AC_ARG_ENABLE(xinerama,
4013   [  --enable-xinerama       Xinerama support (default enabled)])
4014 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
4015   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4016    test "${enable_xvideo}" = "yes"); then
4017   ac_cv_have_xinerama="no"
4018   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4019   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4020   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4021     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4022       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4023       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4024       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4025       ac_cv_have_xinerama="yes"
4026     ],[
4027       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4028         VLC_ADD_LIBS([xvideo],[-lXinerama])
4029         VLC_ADD_LIBS([x11],[-lXinerama])
4030         VLC_ADD_LIBS([glx],[-lXinerama])
4031         ac_cv_have_xinerama="yes"
4032       ])
4033     ])
4034   ])
4035   if test "${ac_cv_have_xinerama}" = "yes"; then
4036     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4037   fi
4038   CFLAGS="${CFLAGS_save}"
4039   CPPFLAGS="${CPPFLAGS_save}"
4040
4041 dnl
4042 dnl  Check for XF86VidMode extension
4043 dnl
4044   ac_cv_have_xf86vidmode="no"
4045   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4046   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4047   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4048     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4049       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4050       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4051       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4052       ac_cv_have_xf86vidmode="yes"
4053     ],[
4054       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4055         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4056         VLC_ADD_LIBS([x11],[-lXxf86vm])
4057         VLC_ADD_LIBS([glx],[-lXxf86vm])
4058         ac_cv_have_xf86vidmode="yes"
4059       ])
4060     ])
4061   ],[true],
4062 [#ifdef HAVE_X11_XLIB_H
4063 # include <X11/Xlib.h>
4064 #endif]
4065    )
4066   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4067     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4068   ])
4069   CFLAGS="${CFLAGS_save}"
4070   CPPFLAGS="${CPPFLAGS_save}"
4071
4072 fi
4073
4074 dnl
4075 dnl  OpenGL module
4076 dnl  (enabled by default except on beos)
4077 dnl
4078 AC_ARG_ENABLE(opengl,
4079   [  --enable-opengl         OpenGL support (default enabled)])
4080 if test "${enable_opengl}" != "no" &&
4081    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4082   if test "${SYS}" != "darwin"; then
4083     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4084       VLC_ADD_PLUGINS([opengl])
4085       if test "${SYS}" != "mingw32"; then
4086         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4087       else
4088         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4089       fi
4090     ])
4091   else
4092     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4093     VLC_ADD_PLUGINS([opengl])
4094     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4095   fi
4096 fi
4097
4098 dnl
4099 dnl  SDL module
4100 dnl
4101 AC_ARG_ENABLE(sdl,
4102   [  --enable-sdl            SDL support (default enabled)])
4103 AC_ARG_ENABLE(sdl-image,
4104   [  --enable-sdl-image      SDL image support (default enabled)])
4105 if test "${enable_sdl}" != "no"
4106 then
4107   SDL_PATH="${PATH}"
4108   AC_ARG_WITH(sdl-config-path,
4109     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4110     [ if test "${with_sdl_config_path}" != "no"
4111       then
4112         SDL_PATH="${with_sdl_config_path}:${PATH}"
4113       fi ])
4114   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4115   SDL_CONFIG="${SDL12_CONFIG}"
4116   SDL_HEADER="SDL12/SDL.h"
4117   SDL_IMAGE="SDL12/SDL_image.h"
4118   if test "${SDL_CONFIG}" = "no"
4119   then
4120     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4121     SDL_CONFIG=${SDL11_CONFIG}
4122     SDL_HEADER="SDL11/SDL.h"
4123     SDL_IMAGE="SDL11/SDL_image.h"
4124   fi
4125   if test "${SDL_CONFIG}" = "no"
4126   then
4127     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4128     SDL_HEADER="SDL/SDL.h"
4129     SDL_IMAGE="SDL/SDL_image.h"
4130   fi
4131   # check for cross-compiling
4132   SDL_PREFIX=
4133   AC_ARG_WITH(sdl-prefix,
4134     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4135                                e.g use as:
4136                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4137   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4138   then
4139     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4140   fi
4141   if test "${SDL_CONFIG}" != "no"
4142   then
4143     # SDL on Darwin is heavily patched and can only run SDL_image
4144     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4145       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4146     fi
4147     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4148     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4149     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4150     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4151       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4152       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4153           As a last resort we also test for SDL.h presence),
4154       [ AC_MSG_ERROR([The development package for SDL is not installed.
4155 Please install it and try again. Alternatively you can also configure with
4156 --disable-sdl.])
4157       ])])
4158     AS_IF([ test "${enable_sdl_image}" != "no"],[
4159       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4160         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4161         VLC_ADD_PLUGINS([sdl_image])
4162         AC_CHECK_LIB(png, png_set_rows,
4163           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4164         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4165           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4166         AC_CHECK_LIB(tiff, TIFFClientOpen,
4167           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4168         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4169         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4170             As a last resort we also test for SDL_image.h presence),
4171         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4172   You should install it alongside your SDL package.])
4173         ])])
4174     ])
4175     CPPFLAGS="${CPPFLAGS_save}"
4176     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4177     then
4178       AC_MSG_ERROR([The development package for SDL is not installed.
4179 Please install it and try again. Alternatively you can also configure with
4180 --disable-sdl.])
4181     fi
4182
4183   elif test "${enable_sdl}" =  "yes"
4184   then
4185     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4186 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4187     ])
4188   fi
4189 fi
4190
4191 dnl
4192 dnl  freetype module
4193 dnl
4194 AC_ARG_ENABLE(freetype,
4195   [  --enable-freetype       freetype support (default enabled)])
4196 AC_ARG_ENABLE(fribidi,
4197   [  --enable-fribidi        fribidi support (default enabled)])
4198 if test "${enable_freetype}" != "no"
4199 then
4200   FREETYPE_PATH="${PATH}"
4201   AC_ARG_WITH(freetype-config-path,
4202     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
4203     [ if test "${with_freetype_config_path}" != "no"
4204       then
4205         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
4206       fi ])
4207   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
4208
4209   if test "${FREETYPE_CONFIG}" != "no"
4210   then
4211     VLC_ADD_PLUGINS([freetype])
4212     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
4213     VLC_ADD_LIBS([freetype],[`${FREETYPE_CONFIG} --libs`])
4214     if test "${SYS}" = "mingw32"; then
4215        VLC_ADD_LIBS([freetype],[-lxml2])
4216     fi
4217     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4218       [VLC_ADD_CFLAGS([freetype],[-DHAVE_FONTCONFIG])
4219        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4220     AC_CHECK_HEADERS(Carbon/Carbon.h,
4221       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4222   elif test "${enable_freetype}" =  "yes"
4223   then
4224     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4225 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4226     ])
4227   fi
4228
4229   dnl fribidi support
4230   if test "${enable_fribidi}" != "no"
4231   then
4232     FRIBIDI_PATH="${PATH}"
4233     AC_ARG_WITH(fribidi-config-path,
4234       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
4235       [ if test "${with_fribidi_config_path}" != "no"
4236         then
4237           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
4238         fi ])
4239     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
4240
4241     if test "${FRIBIDI_CONFIG}" != "no"
4242     then
4243       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4244       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4245       VLC_ADD_LIBS([freetype], [`${FRIBIDI_CONFIG} --libs`])
4246       VLC_ADD_LIBS([skins2], [`${FRIBIDI_CONFIG} --libs`])
4247     fi
4248   fi
4249 fi
4250
4251 dnl
4252 dnl  libxml2 module
4253 dnl
4254 AC_ARG_ENABLE(libxml2,
4255   [  --enable-libxml2        libxml2 support (default enabled)])
4256 if test "${enable_libxml2}" != "no"
4257 then
4258   XML2_PATH="${PATH}"
4259   AC_ARG_WITH(xml2-config-path,
4260     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4261     [ if test "${with_xml2_config_path}" != "no"; then
4262         XML2_PATH="${with_xml2_config_path}:${PATH}"
4263       fi ])
4264   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4265   if test "${XML2_CONFIG}" != "no"; then
4266     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4267     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4268     dnl depends on the xmlTextReader extension
4269     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4270     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4271     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4272       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4273         VLC_ADD_PLUGINS([xml]) ],[
4274           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4275           if test "${enable_xml2}" = "yes"; then
4276             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4277           fi])
4278        ],[
4279       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4280       if test "${enable_xml2}" = "yes"; then
4281         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4282       fi])
4283     LDFLAGS="${LDFLAGS_save}"
4284     CPPFLAGS="${CPPFLAGS_save}"
4285   else
4286     if test "${enable_xml2}" = "yes"; then
4287       AC_MSG_ERROR([Could not find libxml2])
4288     fi
4289   fi
4290 fi
4291
4292 dnl
4293 dnl  SVG module
4294 dnl
4295 AC_ARG_ENABLE(svg,
4296   [  --enable-svg            SVG support (default disabled)])
4297 if test "${enable_svg}" = "yes"
4298 then
4299   PKG_CHECK_MODULES(SVG, 
4300         librsvg-2.0 >= 2.9.0,
4301         [
4302           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4303           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4304           VLC_ADD_PLUGINS([svg]) ],
4305         [AC_MSG_WARN(SVG library not found)])
4306 fi
4307
4308 dnl
4309 dnl Snapshot vout module (with cache)
4310 dnl
4311 AC_ARG_ENABLE(snapshot,
4312   [  --enable-snapshot       snapshot module (default disabled)])
4313 if test "${enable_snapshot}" = "yes"
4314 then
4315   VLC_ADD_PLUGINS([snapshot])
4316 fi
4317
4318 dnl
4319 dnl  Qt Embedded module
4320 dnl  (disabled by default)
4321 dnl
4322 AC_ARG_ENABLE(qte,
4323   [  --enable-qte            QT Embedded support (default disabled)])
4324 if test "${enable_qte}" = "yes"
4325 then
4326   AC_ARG_WITH(qte,
4327   [    --with-qte=PATH       Qt Embedded headers and libraries])
4328   if test "${with_qte}" != "no" -a -n "${with_qte}"
4329   then
4330     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4331     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])
4332   else
4333     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4334     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4335   fi
4336   VLC_ADD_PLUGINS([qte])
4337   NEED_QTE_MAIN=yes
4338   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4339   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4340     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4341   ] )
4342   CPPFLAGS="${CPPFLAGS_save}"
4343 fi
4344
4345 dnl
4346 dnl  Qt Video output module
4347 dnl  (disabled by default)
4348 dnl
4349 dnl AC_ARG_ENABLE(qt_video,
4350 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4351 dnl if test "${enable_qt_video}" = "yes"
4352 dnl then
4353 dnl  VLC_ADD_PLUGINS([qt_video])
4354 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4355 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4356 dnl   AC_CHECK_LIB(qt-mt,main,[
4357 dnl    VLC_ADD_LIBS([qt_video],[-lqt-mt])
4358 dnl  ],[
4359 dnl    AC_CHECK_LIB(qt,main,[
4360 dnl      VLC_ADD_LIBS([qt_video],[-lqt])
4361 dnl    ])
4362 dnl  ])
4363 dnl  NEED_QTE_MAIN=yes
4364 dnl  LDFLAGS="${LDFLAGS_save}"
4365 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4366 dnl fi
4367
4368 dnl
4369 dnl Roku HD1000 Video output module
4370 dnl
4371 AC_ARG_ENABLE(hd1000v,
4372   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4373 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4374   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4375    test "${enable_hd1000v}" = "yes"); then
4376   AC_LANG_PUSH([C++])
4377   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4378   [
4379     can_build_roku="yes"
4380   ],
4381   [
4382     can_build_roku="no"
4383     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4384   ])
4385   if test "$can_build_roku" = "yes"
4386   then
4387     VLC_ADD_PLUGINS([hd1000v])
4388     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4389   fi
4390   AC_LANG_POP([C++])
4391 fi
4392
4393 dnl
4394 dnl  Windows DirectX module
4395 dnl
4396
4397 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4398 then
4399   VLC_ADD_PLUGINS([panoramix])
4400 fi
4401
4402 AC_ARG_ENABLE(directx,
4403   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4404 if test "${enable_directx}" != "no"
4405 then
4406   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4407   then
4408     AC_ARG_WITH(directx,
4409     [    --with-directx=PATH   Win32 DirectX headers])
4410     if test -z "${with_directx}"
4411     then
4412       AC_CHECK_HEADERS(ddraw.h,
4413       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4414         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4415       ])
4416       AC_CHECK_HEADERS(GL/gl.h,
4417       [ VLC_ADD_PLUGINS([glwin32])
4418         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4419       ])
4420       AC_CHECK_HEADERS(d3d9.h,
4421       [ VLC_ADD_PLUGINS([direct3d])
4422         VLC_ADD_LIBS([direct3d],[-lgdi32])
4423       ])
4424     else
4425       AC_MSG_CHECKING(for directX headers in ${with_directx})
4426       if test -f ${with_directx}/ddraw.h
4427       then
4428         VLC_ADD_PLUGINS([vout_directx aout_directx])
4429         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4430         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4431         AC_MSG_RESULT(yes)
4432       else
4433         AC_MSG_RESULT(no)
4434         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4435       fi
4436     fi
4437   fi
4438 fi
4439
4440 dnl
4441 dnl  Linux framebuffer module
4442 dnl
4443 AC_ARG_ENABLE(fb,
4444   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4445     if test "${enable_fb}" != "no"
4446     then
4447       AC_CHECK_HEADERS(linux/fb.h, [
4448         VLC_ADD_PLUGINS([fb])
4449       ])
4450     fi
4451
4452 dnl
4453 dnl  Linux MGA module
4454 dnl
4455 AC_ARG_ENABLE(mga,
4456   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4457   [ if test "${enable_mga}" = "yes"
4458     then
4459       VLC_ADD_PLUGINS([mga])
4460     fi ])
4461
4462 dnl
4463 dnl  SVGAlib module
4464 dnl
4465 AC_ARG_ENABLE(svgalib,
4466   [  --enable-svgalib        SVGAlib support (default disabled)])
4467 if test "${enable_svgalib}" = "yes"
4468 then
4469   VLC_ADD_PLUGINS([svgalib])
4470   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4471 fi
4472
4473 dnl
4474 dnl  DirectFB module
4475 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4476 dnl  TODO: support for static linking
4477 dnl
4478 AC_ARG_ENABLE(directfb,
4479   [  --enable-directfb       DirectFB support (default disabled)])
4480 AC_ARG_WITH(directfb, 
4481   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4482
4483 if test "${enable_directfb}" = "yes"; then
4484     have_directfb="false"
4485     CPPFLAGS_mydirectfb=
4486     LIBS_mydirectfb=
4487     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4488         dnl Trying the given location
4489         CPPFLAGS_save="${CPPFLAGS}"
4490         LIBS_save="${LIBS}"
4491
4492         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4493         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4494         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4495
4496         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4497         LIBS="${LIBS} ${LIBS_new}"
4498
4499         dnl FIXME: too obscure
4500         AC_CHECK_HEADER([directfb.h], [
4501             AC_CHECK_LIB([direct],[direct_initialize], [
4502                 AC_CHECK_LIB([fusion], [fusion_enter], [
4503                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4504                 ], have_directfb="false")
4505             ], have_directfb="false")
4506         ], have_directfb="false")
4507
4508         dnl Restore flags
4509         CPPFLAGS="${CPPFLAGS_save}"
4510         LIBS="${LIBS_save}"
4511
4512         if test "${have_directfb}" = "true"; then
4513             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4514             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4515         fi
4516     else 
4517         dnl Look for directfb-config
4518         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4519         if test "${DIRECTFB_CONFIG}" != "no"; then
4520             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4521             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4522             have_directfb="true"
4523         else 
4524             dnl Trying with pkg-config
4525             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4526                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4527                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4528                 have_directfb="true"
4529                 ], [have_directfb="false"])
4530         fi
4531     fi
4532     if test "${have_directfb}" = "true"; then
4533         VLC_ADD_PLUGINS([directfb])
4534         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4535         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4536     else 
4537         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4538     fi
4539 fi
4540  
4541
4542
4543 dnl
4544 dnl  GGI module
4545 dnl
4546 AC_ARG_ENABLE(ggi,
4547   [  --enable-ggi            GGI support (default disabled)])
4548 if test "${enable_ggi}" = "yes"
4549 then
4550   VLC_ADD_PLUGINS([ggi])
4551   VLC_ADD_LIBS([ggi],[-lggi])
4552   AC_ARG_WITH(ggi,
4553     [    --with-ggi=PATH       path to libggi],
4554     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4555       then
4556         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4557         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4558       fi ])
4559 fi
4560
4561 dnl
4562 dnl  Glide module
4563 dnl
4564 AC_ARG_ENABLE(glide,
4565   [  --enable-glide          Glide (3dfx) support (default disabled)])
4566 if test "${enable_glide}" = "yes"
4567 then
4568   CFLAGS_save="${CFLAGS}"
4569   AC_ARG_WITH(glide,
4570     [    --with-glide=PATH     path to libglide],
4571     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4572       then
4573         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4574         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4575         CFLAGS="$CFLAGS -I${with_glide}/include"
4576     fi ])
4577    CFLAGS="$CFLAGS -I/usr/include/glide"
4578    AC_CHECK_HEADER(glide.h,[   
4579       VLC_ADD_PLUGINS([glide])
4580       VLC_ADD_LIBS([glide],[-lglide2x -lm])
4581       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4582     ],[
4583       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4584      ])
4585    CFLAGS="${CFLAGS_save}"
4586 fi
4587
4588 dnl
4589 dnl  AA plugin
4590 dnl
4591 AC_ARG_ENABLE(aa,
4592   [  --enable-aa             aalib output (default disabled)])
4593 if test "${enable_aa}" = "yes"
4594 then
4595   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4596   if test "${have_aa}" = "true"
4597   then
4598     VLC_ADD_PLUGINS([aa])
4599     VLC_ADD_LIBS([aa],[-laa])
4600   fi
4601 fi
4602
4603 dnl
4604 dnl  libcaca plugin
4605 dnl
4606 AC_ARG_ENABLE(caca,
4607   [  --enable-caca           libcaca output (default disabled)])
4608 if test "${enable_caca}" = "yes"
4609 then
4610   CACA_PATH="${PATH}"
4611   AC_ARG_WITH(caca-config-path,
4612     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4613     [ if test "${with_caca_config_path}" != "no"
4614       then
4615         CACA_PATH="${with_caca_config_path}:${PATH}"
4616       fi ])
4617   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4618   if test "${CACA_CONFIG}" != "no"
4619   then
4620     VLC_ADD_PLUGINS([caca])
4621     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4622     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4623   fi
4624 fi
4625
4626 dnl
4627 dnl  win32 GDI plugin
4628 dnl
4629 AC_ARG_ENABLE(wingdi,
4630   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4631 if test "${enable_wingdi}" != "no"; then
4632   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4633     VLC_ADD_PLUGINS([wingdi])
4634     VLC_ADD_LIBS([wingdi],[-lgdi32])
4635   fi
4636   if test "${SYS}" = "mingwce"; then
4637     VLC_ADD_PLUGINS([wingdi wingapi])
4638   fi
4639 fi
4640
4641 dnl
4642 dnl  Audio plugins
4643 dnl
4644
4645 AC_ARG_WITH(,[Audio plugins:])
4646
4647 dnl
4648 dnl  OSS /dev/dsp module (enabled by default except on win32)
4649 dnl
4650 AC_ARG_ENABLE(oss,
4651   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4652
4653 if test "${enable_oss}" != "no" &&
4654   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4655    test "${enable_oss}" = "yes")
4656 then
4657   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4658     VLC_ADD_PLUGINS([oss])
4659     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4660   ])
4661 fi
4662
4663 dnl
4664 dnl  Esound module
4665 dnl
4666 AC_ARG_ENABLE(esd,
4667   [  --enable-esd            Esound library support (default disabled)],
4668   [if test "${enable_esd}" = "yes"
4669    then
4670      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4671      if test "${ESD_CONFIG}" != "no"
4672      then
4673        VLC_ADD_PLUGINS([esd])
4674        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4675        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4676      fi
4677    fi])
4678
4679 dnl
4680 dnl  Portaudio module
4681 dnl
4682 AC_ARG_ENABLE(portaudio,
4683   [  --enable-portaudio      Portaudio library support (default disabled)],
4684   [if test "${enable_portaudio}" = "yes"
4685    then
4686      VLC_ADD_PLUGINS([portaudio])
4687      VLC_ADD_CXXFLAGS([portaudio],[])
4688      if test "${SYS}" = "mingw32"; then
4689         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4690      else
4691         VLC_ADD_LIBS([portaudio],[-lportaudio])
4692      fi
4693    fi])
4694
4695 dnl
4696 dnl  aRts module -- broken (freeze wxWidgets)
4697 dnl
4698 AC_ARG_ENABLE(arts,
4699  [  --enable-arts           aRts sound server (default disabled)],
4700  [if test "${enable_arts}" = "yes"
4701   then
4702     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4703     if test "${ARTS_CONFIG}" != "no"
4704     then
4705       VLC_ADD_PLUGINS([arts])
4706       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4707       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4708     fi
4709   fi])
4710
4711 dnl
4712 dnl  ALSA module
4713 dnl
4714 AC_ARG_ENABLE(alsa,
4715   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4716 if test "${enable_alsa}" != "no"
4717 then
4718   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4719   if test "${have_alsa}" = "true"
4720   then
4721     CFLAGS="${CFLAGS_save}"
4722     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4723                     #define ALSA_PCM_NEW_SW_PARAMS_API
4724                     #include <alsa/asoundlib.h>],
4725        [snd_pcm_hw_params_get_period_time(0,0,0);],
4726         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4727     VLC_ADD_PLUGINS([alsa])
4728     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4729   else
4730     if test "${enable_alsa}" = "yes"; then
4731       AC_MSG_ERROR([Could not find ALSA development headers])
4732     fi
4733   fi
4734 fi
4735
4736 dnl
4737 dnl  win32 waveOut plugin
4738 dnl
4739 AC_ARG_ENABLE(waveout,
4740   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4741 if test "${enable_waveout}" != "no"; then
4742   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4743     VLC_ADD_PLUGINS([waveout])
4744     VLC_ADD_LIBS([waveout],[-lwinmm])
4745   fi
4746   if test "${SYS}" = "mingwce"; then
4747     VLC_ADD_PLUGINS([waveout])
4748   fi
4749 fi
4750
4751 dnl
4752 dnl  CoreAudio plugin
4753 dnl
4754 AC_ARG_ENABLE(macosx-audio,
4755   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4756 if test "${enable_macosx-audio}" != "no" &&
4757   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4758 then
4759   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4760     [ VLC_ADD_BUILTINS([auhal])
4761       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4762     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4763 fi
4764
4765 dnl
4766 dnl  Roku HD1000 audio
4767 dnl
4768 AC_ARG_ENABLE(hd1000a,
4769   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4770 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4771   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4772    test "${enable_hd1000a}" = "yes")
4773 then
4774   AC_LANG_PUSH([C++])
4775   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4776     VLC_ADD_PLUGINS([hd1000a])
4777     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4778   AC_LANG_POP([C++])
4779 fi
4780
4781 dnl
4782 dnl  JACK modules
4783 dnl
4784 AC_ARG_ENABLE(jack,
4785  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4786  [enable_jack="no"])
4787
4788 AS_IF([test "${enable_jack}" != "no"], [
4789   AC_CHECK_HEADERS(jack/jack.h, [
4790     VLC_ADD_PLUGINS([access_jack jack])
4791     VLC_ADD_LIBS([access_jack jack],[-ljack])
4792   ],[AC_MSG_ERROR([cannot find JACK headers])])
4793 ])
4794
4795 dnl
4796 dnl  CyberLink for C++ UPnP stack
4797 dnl
4798 AC_ARG_ENABLE(cyberlink,
4799   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4800   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4801   AC_ARG_WITH(cyberlink-tree,
4802     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4803
4804   dnl
4805   dnl test for --with-cyberlink-tree
4806   dnl
4807   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4808     AC_LANG_PUSH(C++)
4809     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4810     AS_IF([test -z "${real_cyberlink_tree}"], [
4811       dnl  The given directory can't be found
4812       AC_MSG_RESULT(no)
4813       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4814     ])
4815     CPPFLAGS_save="${CPPFLAGS}"
4816     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4817     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4818     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4819       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4820         VLC_ADD_PLUGINS([upnp_cc]) 
4821       ],[
4822         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4823       ])
4824     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4825     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4826       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4827       dnl The mere fact that we have to make such an ugly check sucks
4828       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4829       LIBS_save="$LIBS"
4830       LIBS_cclink="no"
4831       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4832         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4833         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4834 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4835 using namespace CyberLink;
4836
4837 class testclass : public SearchResponseListener, public MediaPlayer
4838 {
4839     virtual void deviceSearchResponseReceived( SSDPPacket *)
4840     {
4841     }
4842
4843     public:
4844       testclass (void)
4845       {
4846         addSearchResponseListener (this);
4847         start ();
4848       }
4849 };
4850 ],[testclass l;])],[LIBS_cclink="$l"])
4851       done
4852       LIBS="${LIBS_save}"
4853       dnl should not happen - otherwise this needs fixing - hence FAILURE
4854       AS_IF([test "${LIBS_cclink}" = "no"],
4855         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4856       AC_MSG_RESULT([${LIBS_cclink}])
4857       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4858     ], [
4859       AC_MSG_RESULT(no)
4860       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4861     ])
4862     CPPFLAGS="${CPPFLAGS_save}"
4863     AC_LANG_POP([C++])
4864   ])
4865 ])
4866
4867 dnl
4868 dnl UPnP Plugin (Intel SDK)
4869 dnl
4870 AC_ARG_ENABLE(upnp,
4871   [  --enable-upnp           Intel UPnP SDK (default enabled)])
4872
4873 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4874 AS_IF([test "x${enable_upnp}" != "xno"], [
4875   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4876   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4877     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4878   ])
4879   AS_IF([test "${has_upnp}" = "yes"], [
4880     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4881   ])
4882 ], [
4883   has_upnp="no"
4884 ])
4885
4886 AS_IF([test "${has_upnp}" = "yes"], [
4887   VLC_ADD_PLUGINS([upnp_intel])
4888 ])
4889
4890
4891 dnl
4892 dnl  Interface plugins
4893 dnl
4894
4895 AC_ARG_WITH(,[Interface plugins:])
4896
4897 dnl special case for BeOS
4898 if test "${SYS}" = "beos"
4899 then
4900     VLC_ADD_BUILTINS([beos])
4901 fi
4902
4903 dnl
4904 dnl Skins2 module
4905 dnl
4906 AC_ARG_ENABLE(skins2,
4907   [  --enable-skins2         Skins2 interface module (default disabled)])
4908 if test "${enable_skins2}" = "yes" ||
4909   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4910    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4911
4912   dnl test for the required libraries
4913   skins2_missing_lib="no"
4914
4915   dnl freetype
4916   if test "${FREETYPE_CONFIG}" != "no"; then
4917     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4918     VLC_ADD_LIBS([skins2],[`${FREETYPE_CONFIG} --libs`])
4919   else
4920     skins2_missing_lib="yes"
4921     if test "${enable_skins2}" = "yes"; then
4922       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4923     fi
4924   fi
4925
4926   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4927     VLC_ADD_PLUGINS([skins2])
4928     ALIASES="${ALIASES} svlc"
4929     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4930     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4931     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4932
4933   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4934     VLC_ADD_PLUGINS([skins2])
4935     ALIASES="${ALIASES} svlc"
4936     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4937     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4938     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4939
4940   else if test "${skins2_missing_lib}" = "no"; then
4941     VLC_ADD_PLUGINS([skins2])
4942     ALIASES="${ALIASES} svlc"
4943     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4944     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4945     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4946   fi fi fi
4947 fi
4948
4949
4950 dnl dnl
4951 dnl dnl  Gtk+ module
4952 dnl dnl
4953 dnl AC_ARG_ENABLE(gtk,
4954 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4955 dnl if test "${enable_gtk}" != "no"
4956 dnl then
4957 dnl   GTK_PATH="${PATH}"
4958 dnl   AC_ARG_WITH(gtk-config-path,
4959 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4960 dnl     [ if test "${with_gtk_config_path}" != "no"
4961 dnl       then
4962 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4963 dnl       fi ])
4964 dnl   # look for gtk-config
4965 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4966 dnl   GTK_CONFIG=${GTK12_CONFIG}
4967 dnl   if test "${GTK_CONFIG}" = "no"
4968 dnl   then
4969 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4970 dnl   fi
4971 dnl   if test "${GTK_CONFIG}" != "no"
4972 dnl   then
4973 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4974 dnl     then
4975 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.])
4976 dnl     fi
4977 dnl     if test "${SYS}" != "mingw32"; then
4978 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4979 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4980 dnl     else
4981 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4982 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4983 dnl     fi
4984 dnl     # now look for the gtk.h header
4985 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4986 dnl     ac_cv_gtk_headers=yes
4987 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4988 dnl       ac_cv_gtk_headers=no
4989 dnl       echo "Cannot find gtk development headers."
4990 dnl     ])
4991 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4992 dnl     then
4993 dnl       VLC_ADD_PLUGINS([gtk])
4994 dnl       if test "${SYS}" != "mingw32"; then
4995 dnl         NEED_GTK_MAIN=yes
4996 dnl       fi
4997 dnl       ALIASES="${ALIASES} gvlc"
4998 dnl     fi
4999 dnl     CPPFLAGS="${CPPFLAGS_save}"
5000 dnl   fi
5001 dnl fi
5002 dnl 
5003 dnl
5004 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
5005 dnl
5006 dnl AC_ARG_ENABLE(gtk2,
5007 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
5008 dnl if test "${enable_gtk2}" = "yes"
5009 dnl then
5010 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5011 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5012 dnl   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5013 dnl   VLC_ADD_PLUGINS([gtk2])
5014 dnl   if test "${SYS}" != "mingw32"; then
5015 dnl     NEED_GTK2_MAIN=yes
5016 dnl   fi
5017 dnl fi
5018
5019 dnl
5020 dnl  PDA Gtk+2 module
5021 dnl
5022 AC_ARG_ENABLE(pda,
5023   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
5024 if test "${enable_pda}" = "yes"
5025 then
5026   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5027   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5028   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5029   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
5030   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
5031   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
5032   VLC_ADD_PLUGINS([pda])
5033   if test "${SYS}" != "mingw32"; then
5034     NEED_GTK2_MAIN=yes
5035   fi
5036 fi
5037
5038 dnl dnl
5039 dnl dnl  Gnome module
5040 dnl dnl
5041 dnl AC_ARG_ENABLE(gnome,
5042 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
5043 dnl   [if test "${enable_gnome}" = "yes"; then
5044 dnl     # look for gnome-config
5045 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
5046 dnl     if test -x ${GNOME_CONFIG}
5047 dnl     then
5048 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
5049 dnl        VLC_ADD_LIBS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
5050 dnl     fi
5051 dnl     # now look for the gnome.h header
5052 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
5053 dnl     AC_CHECK_HEADERS(gnome.h, [
5054 dnl       VLC_ADD_PLUGINS([gnome])
5055 dnl       NEED_GTK_MAIN=yes
5056 dnl       NEED_GNOME_MAIN=yes
5057 dnl       ALIASES="${ALIASES} gnome-vlc"
5058 dnl       dnl We need this because of some moronic gnomesupport.h flavours
5059 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
5060 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
5061 dnl         AC_MSG_RESULT(yes)
5062 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
5063 dnl                   Define if <gnome.h> defines strndup.)],[
5064 dnl         AC_MSG_RESULT(no)])
5065 dnl      ],[
5066 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
5067 dnl developement tools or remove the --enable-gnome option])
5068 dnl      ])
5069 dnl     CPPFLAGS="${CPPFLAGS_save}"
5070 dnl   fi])
5071
5072 dnl
5073 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5074 dnl
5075 dnl AC_ARG_ENABLE(gnome2,
5076 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5077 dnl if test "${enable_gnome2}" = "yes"
5078 dnl then
5079 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5080 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5081 dnl   VLC_ADD_LIBS([gnome2],[${GNOME2_LIBS}])
5082 dnl   VLC_ADD_PLUGINS([gnome2])
5083 dnl   if test "${SYS}" != "mingw32"; then
5084 dnl     NEED_GNOME2_MAIN=yes
5085 dnl   fi
5086 dnl fi
5087
5088 dnl
5089 dnl  wxWidgets module
5090 dnl
5091 AC_ARG_ENABLE(wxwidgets,
5092   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5093
5094 if test "${enable_wxwidgets}" = "yes"
5095 then
5096   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5097   WXWIDGETS_PATH="${PATH}"
5098   AC_ARG_WITH(wx-config-path,
5099     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5100     [ if test "${with_wx_config_path}" != "no"
5101       then
5102         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5103       fi ])
5104   WXWIDGETS_NAME="wx-config"
5105   AC_ARG_WITH(wx-config,
5106     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5107     [ if test "${with_wx_config}" != "no"
5108       then
5109         WXWIDGETS_NAME="${with_wx_config}"
5110       fi ])
5111   # look for wx-config
5112   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5113   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5114   then
5115     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5116     then
5117       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5118     fi
5119     AC_LANG_PUSH(C++)
5120     # Turn this error:
5121     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5122     # into a warning. However better would be to fix playlist.cpp
5123     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5124         [ac_cv_cxx_fpermissive],
5125         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5126          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5127                         ac_cv_cxx_fpermissive=no)])
5128     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5129       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5130     fi
5131     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
5132     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5133     # check if we must link against gtk2 libs
5134     # if __WXGTK20__ && __WXGTK__ are defined
5135     # for modules/gui/wxwidgets/video.cpp
5136     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5137 #include <wx/wx.h>
5138 #ifdef __WXGTK20__
5139 #error ok, we need to link against gtk2
5140 #endif
5141         ])],[WXGTK=no],[WXGTK=yes])
5142     if test "$WXGTK" = "yes"; then
5143       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5144     fi
5145     if ${WX_CONFIG} --unicode
5146     then 
5147       # wxwidgets should provide the following flags but does not
5148       # the following is required to compile for win32
5149       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5150     else
5151       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5152     fi
5153     if test "$have_libcdio" = "yes"
5154     then 
5155       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
5156       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5157     else 
5158       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5159     fi
5160
5161     if test "$have_libvcdinfo" = "yes"
5162     then 
5163       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
5164       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5165     else 
5166       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5167     fi
5168
5169     # now look for the wxprec.h header
5170     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5171     ac_cv_wx_headers=yes
5172     AC_CHECK_HEADERS(wx/wxprec.h, , [
5173       ac_cv_wx_headers=no
5174       echo "Cannot find wxWidgets development headers."
5175     ])
5176     if test "${ac_cv_wx_headers}" = "yes"
5177     then
5178       VLC_ADD_PLUGINS([wxwidgets])
5179       ALIASES="${ALIASES} wxvlc"
5180     fi
5181     CPPFLAGS="${CPPFLAGS_save}"
5182     AC_LANG_POP(C++)
5183   fi
5184   dnl WxWidgets plugin will yield incorrect code without this
5185   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5186 fi
5187
5188 dnl
5189 dnl QT 4
5190 dnl
5191 enableqt4=false
5192 AC_ARG_ENABLE(qt4,
5193   [  --enable-qt4            QT 4 support (default enabled) ])
5194 AS_IF([test "${enable_qt4}" != "no" &&
5195   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5196   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5197     [ VLC_ADD_PLUGINS([qt4])
5198       ALIASES="${ALIASES} qvlc"
5199       enableqt4=true
5200       VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5201       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
5202       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5203       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5204       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5205       ],
5206       AS_IF([test "${enable_qt4}" = "yes"],[
5207     AC_MSG_ERROR(QT4 library not found)
5208       ],[
5209     AC_MSG_WARN(QT4 library not found)
5210       ])
5211     )
5212 ])
5213 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5214
5215 dnl
5216 dnl  WinCE GUI module
5217 dnl
5218 if test "${SYS}" = "mingwce"; then
5219   VLC_ADD_BUILTINS([wince])
5220   VLC_ADD_CXXFLAGS([wince],[])
5221   VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5222   dnl Gross hack
5223   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5224 elif test "${SYS}" = "mingw32"; then
5225   VLC_ADD_CXXFLAGS([wince],[])
5226   VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5227   dnl Gross hack
5228   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5229 fi
5230
5231 dnl
5232 dnl Simple test for skins2 dependency
5233 dnl
5234 if test "${enable_skins2}" != "no"
5235 then
5236   if test "${WX_CONFIG}" = "no"
5237   then
5238     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.])
5239   fi
5240 fi
5241
5242 dnl dnl
5243 dnl dnl  Qt module
5244 dnl dnl
5245 dnl AC_ARG_ENABLE(qt,
5246 dnl   [  --enable-qt             Qt interface support (default disabled)],
5247 dnl   [if test "${enable_qt}" = "yes"; then
5248 dnl      VLC_ADD_PLUGINS([qt])
5249 dnl      ALIASES="${ALIASES} qvlc"
5250 dnl      VLC_ADD_LIBS([qt],[-L${QTDIR}/lib])
5251 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5252 dnl      AC_CHECK_LIB(qt-mt,main,[
5253 dnl        VLC_ADD_LIBS([qt],[-lqt-mt])
5254 dnl      ],[
5255 dnl        AC_CHECK_LIB(qt,main,[
5256 dnl          VLC_ADD_LIBS([qt],[-lqt])
5257 dnl        ])
5258 dnl      ])
5259 dnl      LDFLAGS="${LDFLAGS_save}"
5260 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5261 dnl      if test -x ${QTDIR}/bin/moc
5262 dnl      then
5263 dnl        MOC=${QTDIR}/bin/moc
5264 dnl      else
5265 dnl        MOC=moc
5266 dnl      fi
5267 dnl    fi])
5268 dnl 
5269 dnl dnl
5270 dnl dnl  KDE module
5271 dnl dnl
5272 dnl AC_ARG_ENABLE(kde,
5273 dnl   [  --enable-kde            KDE interface support (default disabled)],
5274 dnl   [if test "${enable_kde}" = "yes"; then
5275 dnl      VLC_ADD_PLUGINS([kde])
5276 dnl      ALIASES="${ALIASES} kvlc"
5277 dnl      VLC_ADD_LIBS([kde],[-L${KDEDIR}/lib])
5278 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5279 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5280 dnl      AC_CHECK_LIB(kfile,main,[
5281 dnl        VLC_ADD_LIBS([kde],[-lkfile])
5282 dnl      ])
5283 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5284 dnl      AC_CHECK_LIB(kdeui,main,[
5285 dnl        VLC_ADD_LIBS([kde],[-lkdeui])
5286 dnl      ])
5287 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5288 dnl      AC_CHECK_LIB(kio,main,[
5289 dnl        VLC_ADD_LIBS([kde],[-lkio])
5290 dnl      ])
5291 dnl      LDFLAGS="${LDFLAGS_save}"
5292 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5293 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5294 dnl      if test -x ${QTDIR}/bin/moc
5295 dnl      then
5296 dnl        MOC=${QTDIR}/bin/moc
5297 dnl      else
5298 dnl        MOC=moc
5299 dnl      fi
5300 dnl    fi])
5301
5302 dnl
5303 dnl  Opie QT embedded module
5304 dnl
5305 AC_ARG_ENABLE(opie,
5306   [  --enable-opie           Qt embedded interface support (default disabled)],
5307   [if test "${enable_opie}" = "yes"; then
5308      AC_ARG_WITH(qte,
5309      [    --with-qte=PATH       Qt Embedded headers and libraries])
5310      if test "${with_qte}" != "no" -a -n "${with_qte}"
5311      then
5312        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5313        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])
5314      else
5315        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5316        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5317      fi
5318      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5319      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5320        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5321      ] )
5322      CPPFLAGS="${CPPFLAGS_save}"
5323
5324      VLC_ADD_PLUGINS([opie])
5325      NEED_QTE_MAIN=yes
5326      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5327      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5328      if test "${with_qte}" != "no" -a -n "${with_qte}"
5329      then
5330        MOC=${with_qte}/bin/moc
5331      else
5332        MOC=${QTDIR}/bin/moc
5333      fi
5334    fi])
5335
5336 dnl
5337 dnl  MacOS X video output/gui modules
5338 dnl
5339 AC_ARG_ENABLE(macosx, [--enable-macosx MacOS X support (default enabled on MacOS X)])
5340 if test "x${enable_macosx}" = "xyes"
5341 then
5342   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,CoreFoundation])
5343   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,Cocoa])
5344   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5345   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5346   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5347   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5348   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5349   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QTKit])
5350   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5351   VLC_ADD_LDFLAGS([opengllayer],                      [-Wl,-framework,QuartzCore])
5352   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer], [-fobjc-exceptions] )
5353
5354   VLC_ADD_PLUGINS([access_eyetv])
5355   VLC_ADD_BUILTINS([macosx minimal_macosx])
5356  
5357   ORIGCFLAGS=$CFLAGS
5358   CFLAGS="$CFLAGS -x objective-c"
5359   AC_CHECK_HEADER(QuartzCore/CALayer.h, [VLC_ADD_BUILTINS([opengllayer])])
5360   CFLAGS=$ORIGCFLAGS
5361 fi
5362
5363 dnl
5364 dnl  QNX RTOS module
5365 dnl
5366 AC_ARG_ENABLE(qnx,
5367   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5368     if test "${enable_qnx}" != "no"
5369     then
5370       AC_CHECK_HEADERS(Ph.h, [
5371         VLC_ADD_PLUGINS([qnx])
5372         VLC_ADD_LIBS([qnx],[-lasound -lph])
5373       ])
5374     fi
5375
5376 dnl
5377 dnl  ncurses module
5378 dnl
5379 AC_ARG_ENABLE(ncurses,
5380   [  --disable-ncurses       ncurses interface support (default enabled)],
5381   [if test "${enable_ncurses}" != "no"; then
5382     AC_CHECK_HEADER(ncurses.h,
5383       [AC_CHECK_LIB(ncursesw, mvprintw,
5384         [VLC_ADD_PLUGINS([ncurses])
5385         VLC_ADD_LIBS([ncurses],[-lncursesw])
5386         ALIASES="${ALIASES} nvlc"
5387         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5388         ],
5389         [AC_CHECK_LIB( ncurses, mvprintw,
5390           [VLC_ADD_PLUGINS([ncurses])
5391           ALIASES="${ALIASES} nvlc"
5392           VLC_ADD_LIBS([ncurses],[-lncurses])],
5393           [AS_IF([test "x${enable_ncurses}" != "x"], [
5394             AC_MSG_ERROR([libncurses not found])])]
5395         )]
5396       )]
5397     )
5398   fi]
5399 )
5400
5401 dnl
5402 dnl  XOSD plugin
5403 dnl
5404 AC_ARG_ENABLE(xosd,
5405   [  --enable-xosd           xosd interface support (default disabled)])
5406 if test "${enable_xosd}" = "yes"
5407 then
5408   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5409   AC_CHECK_LIB(xosd,xosd_set_offset,
5410       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5411     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5412         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5413       AC_TRY_COMPILE([#include <xosd.h>],
5414          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5415           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5416   if test "${have_xosd}" = "true"
5417   then
5418     VLC_ADD_PLUGINS([xosd])
5419     VLC_ADD_LIBS([xosd],[-lxosd])
5420   fi
5421 fi
5422
5423 dnl
5424 dnl Framebuffer (overlay) plugin
5425 dnl
5426 AC_ARG_ENABLE(fbosd,
5427   [  --enable-fbosd          fbosd interface support (default disabled)])
5428 if test "${enable_fbosd}" = "yes"
5429 then
5430   AC_CHECK_HEADERS(linux/fb.h, [
5431     VLC_ADD_PLUGINS([fbosd])
5432  ])
5433 fi
5434
5435 dnl
5436 dnl Visualisation plugin
5437 dnl
5438 AC_ARG_ENABLE(visual,
5439   [  --enable-visual         visualisation plugin (default enabled)])
5440 if test "${enable_visual}" != "no"
5441 then
5442     VLC_ADD_PLUGINS([visual])
5443 fi
5444
5445 dnl
5446 dnl OpenGL visualisation plugin
5447 dnl
5448 AC_ARG_ENABLE(galaktos,
5449   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5450 if test "${enable_galaktos}" = "yes"
5451 then
5452   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5453     VLC_ADD_PLUGINS([galaktos])
5454     if test "${SYS}" != "mingw32"; then
5455       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5456     else
5457       VLC_ADD_LIBS([galaktos],[-lopengl32])
5458     fi
5459   ])
5460 fi
5461
5462 dnl
5463 dnl  goom visualization plugin
5464 dnl
5465 AC_ARG_ENABLE(goom,
5466 [  --enable-goom           goom visualisation plugin (default disabled)])
5467 if test "${enable_goom}" = "yes"
5468 then
5469   AC_ARG_WITH(goom-tree,
5470     [    --with-goom-tree=PATH goom tree for static linking (required)])
5471
5472   dnl
5473   dnl test for --with-goom-tree
5474   dnl
5475   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5476     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5477     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5478     if test -z "${real_goom_tree}"; then
5479       dnl  The given directory can't be found
5480       AC_MSG_RESULT(no)
5481       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5482     fi
5483     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5484       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5485       VLC_ADD_BUILTINS([goom])
5486       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5487       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5488     else
5489       dnl  The given libgoom2 wasn't built, try to look for the old goom
5490       AC_MSG_RESULT(no)
5491       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5492       if test -f "${real_goom_tree}/libgoom.a"; then
5493         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5494         VLC_ADD_BUILTINS([goom])
5495         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5496         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5497       else
5498         dnl  The given libgoom wasn't built
5499         AC_MSG_RESULT(no)
5500         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5501       fi
5502     fi
5503   else
5504     AC_CHECK_HEADERS(goom/goom.h, [
5505       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5506       AC_CHECK_LIB(goom2, goom_init, [
5507         VLC_ADD_PLUGINS([goom])
5508         VLC_ADD_LIBS([goom],[-lgoom2])
5509       ],[
5510         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5511       ])
5512       LDFLAGS="${LDFLAGS_save}"
5513     ])
5514   fi
5515 fi
5516
5517 dnl
5518 dnl  Bonjour services discovery
5519 dnl
5520 AC_ARG_ENABLE(bonjour,
5521   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5522 if test "${enable_bonjour}" != "no"
5523 then
5524   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5525     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5526        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
5527       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
5528       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5529       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5530       VLC_ADD_PLUGINS([bonjour]) ],
5531     [AC_MSG_WARN(avahi-client library not found)])
5532 fi
5533
5534 dnl
5535 dnl  Lirc plugin
5536 dnl
5537 AC_ARG_ENABLE(lirc,
5538   [  --enable-lirc           lirc support (default disabled)])
5539 if test "${enable_lirc}" = "yes"
5540 then
5541   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5542   if test "${have_lirc}" = "true"
5543   then
5544     VLC_ADD_PLUGINS([lirc])
5545     VLC_ADD_LIBS([lirc],[-llirc_client])
5546   fi
5547 fi
5548
5549
5550 AC_ARG_WITH(,[Misc options:])
5551
5552 dnl
5553 dnl TLS/SSL
5554 dnl
5555 AC_ARG_ENABLE(gnutls,
5556   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5557
5558 AS_IF([test "${enable_gnutls}" != "no"], [
5559   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [have_gnutls="yes"], [have_gnutls="no"])
5560
5561   AS_IF([test "${have_gnutls}" = "yes"], [
5562     VLC_ADD_PLUGINS([gnutls])
5563     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5564     AS_IF([test "${SYS}" = "mingw32"], [
5565       dnl pkg-config --libs gnutls omits these
5566       VLC_ADD_LIBS([gnutls], [-lz])
5567       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5568     ])
5569     AC_CHECK_LIB([gcrypt], [gcry_control], [
5570       VLC_ADD_LIBS([gnutls], [-lgcrypt -lgpg-error])
5571     ], [], [-lgpg-error])
5572     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5573   ], [
5574     AS_IF([test "${enable_gnutls}" = "yes"], [
5575       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5576     ])
5577   ])
5578 ])
5579
5580 dnl
5581 dnl libgcrypt
5582 dnl
5583 AC_ARG_ENABLE(libgcrypt,
5584   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5585 if test "${enable_libgcrypt}" != "no" -a "${enable_gnutls}" != "no"
5586 then
5587   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5588   dnl it and looks for libgcrypt headers in the wrong place.
5589   if test "${host_cpu}" = "${build_cpu}"
5590   then
5591     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5592   else
5593     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5594   fi
5595 fi
5596 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5597
5598 dnl
5599 dnl update checking system
5600 dnl
5601 AC_ARG_ENABLE(update-check,
5602   [  --enable-update-check   update checking system (default disabled)])
5603 if test "${enable_update_check}" = "yes"
5604 then
5605   if test "${have_libgcrypt}" != "yes"
5606   then
5607     AC_MSG_ERROR([libgcrypt is required for update checking system])
5608   fi
5609   VLC_ADD_LIBS([libvlc], [-lgcrypt])
5610   AC_DEFINE([UPDATE_CHECK], [1], [Define if you want to use the VLC update mechanism])
5611 fi
5612
5613 dnl
5614 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5615 dnl
5616 dnl  We give the user the opportunity to specify
5617 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5618 dnl
5619 AC_ARG_WITH(words,
5620   [    --with-words=endianness set endianness (big or little)])
5621   case "${with_words}" in
5622     big)
5623       ac_cv_c_bigendian=yes
5624       ;;
5625     little)
5626       ac_cv_c_bigendian=no
5627       ;;
5628     *)
5629       dnl  Try to guess endianness by matching patterns on a compiled
5630       dnl  binary, by looking for an ASCII or EBCDIC string
5631       AC_CACHE_CHECK([whether the byte order is big-endian],
5632         [ac_cv_c_bigendian],
5633         [ac_cv_c_bigendian="unknown"
5634         [cat >conftest.c <<EOF
5635         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5636         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5637         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5638         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5639         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5640         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5641         int main(void) { _a(); _e(); return 0; }
5642 EOF
5643         ]
5644         if test -f conftest.c
5645         then
5646           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5647               && test -f conftest.o
5648           then
5649             if test "`strings conftest.o | grep BIGenDianSyS`"
5650             then
5651               ac_cv_c_bigendian="yes"
5652             fi
5653             if test "`strings conftest.o | grep LiTTleEnDian`"
5654             then
5655               ac_cv_c_bigendian="no"
5656             fi
5657           fi
5658         fi
5659       ])
5660       if test "${ac_cv_c_bigendian}" = "unknown"
5661       then
5662         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5663       fi
5664       ;;
5665   esac
5666 dnl  Now we know what to use for endianness, just put it in the header
5667 if test "${ac_cv_c_bigendian}" = "yes"
5668 then
5669   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5670 fi
5671
5672 dnl
5673 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5674 dnl
5675 loader=false
5676 AC_ARG_ENABLE(loader,
5677   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5678 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5679 AS_IF([test "${enable_loader}" = "yes"],
5680   [ VLC_ADD_PLUGINS([dmo])
5681     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5682     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5683     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5684     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5685     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5686     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la -ldl -lpthread])
5687   ])
5688
5689 dnl
5690 dnl  Microsoft ActiveX support
5691 dnl
5692 activex=false
5693 AC_ARG_ENABLE(activex,
5694   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5695 AC_ARG_WITH(wine-sdk-path,
5696   [    --with-wine-sdk-path=PATH path to wine sdk])
5697 if test "${enable_activex}" != "no"
5698 then
5699   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5700   then
5701     AC_CHECK_PROGS(MIDL, [midl], no)
5702     if test "${with_wine_sdk_path}" != ""
5703     then
5704        WINE_SDK_PATH=${with_wine_sdk_path}
5705        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5706     else
5707        WIDL=no
5708     fi
5709     AC_LANG_PUSH(C++)
5710     AC_CHECK_HEADERS(ole2.h, 
5711       [AC_CHECK_HEADERS(olectl.h,
5712         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5713           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5714           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5715           AC_CHECK_HEADERS(objsafe.h,
5716             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5717             [
5718              #if HAVE_OLE2_H
5719              #   include <ole2.h>
5720              #endif
5721              ]
5722           )
5723           activex=:
5724           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5725         ],
5726         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5727       )],
5728       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5729     )
5730     AC_LANG_POP(C++)
5731   fi
5732 fi
5733 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5734 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5735 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5736 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5737 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5738
5739 dnl
5740 dnl  Mozilla plugin
5741 dnl
5742 mozilla=false
5743 AC_ARG_ENABLE(mozilla,
5744   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5745 AC_ARG_WITH(mozilla-sdk-path,
5746   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5747 AC_LANG_PUSH(C++)
5748 if test "${enable_mozilla}" = "yes" 
5749 then
5750   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5751   need_xpcom_libs=false
5752
5753   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5754   then
5755     dnl New firefox-1.5 SDK api
5756     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5757       [
5758         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5759           [],
5760           [
5761             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5762               [],
5763               [
5764                 PKG_CHECK_MODULES([NSPR], [nspr],
5765                   [],
5766                   [
5767                     AC_MSG_ERROR([Please install the nspr development tools.])
5768                   ]
5769                 )
5770               ]
5771             )
5772           ])
5773         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5774         MOZILLA_REQUIRED_HEADERS=1
5775         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5776         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5777         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5778           [#if HAVE_NPAPI_H
5779            # include <npapi.h>
5780            #endif
5781           ])
5782         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5783             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5784         fi
5785         MOZILLA_REQUIRED_HEADERS=
5786         mozilla=:
5787         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5788         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5789             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5790         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5791             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5792         else
5793             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5794         fi
5795         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5796             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt])
5797         fi
5798         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5799         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5800         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5801         VLC_ADD_PLUGINS([mozilla])
5802         MOZILLA_CONFIG=
5803         CPPFLAGS="${CPPFLAGS_save}"
5804       ],
5805       [
5806         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5807         if test "${MOZILLA_CONFIG}" = "no"
5808         then
5809           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5810           if test "${SEAMONKEY_CONFIG}" = "no"
5811           then
5812             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5813             if test "${XULRUNNER_CONFIG}" = "no"
5814             then
5815               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5816             else
5817               have_xul=true
5818               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5819             fi
5820           else
5821             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5822           fi
5823         fi
5824       ]
5825     )
5826     if test ! -z "${MOZILLA_CONFIG}"
5827     then
5828       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5829         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5830         AC_CHECK_LIB(Xt,XtStrings,
5831          [
5832            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5833            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])
5834          ],
5835          [],
5836          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5837         ])
5838         LDFLAGS="${LDFLAGS_save}"
5839       fi
5840
5841       mozilla=:
5842       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5843       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5844       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5845       if ${need_xpcom_libs}; then
5846          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5847       else
5848          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5849       fi
5850       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5851       MOZILLA_REQUIRED_HEADERS=1
5852       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5853       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5854       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5855         [#if HAVE_NPAPI_H
5856          # include <npapi.h>
5857          #endif
5858         ])
5859       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5860       then
5861         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5862       fi
5863       MOZILLA_REQUIRED_HEADERS=
5864       CPPFLAGS="${CPPFLAGS_save}"
5865       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5866     fi
5867     dnl End of moz_sdk = ""
5868   else
5869     dnl special case for mingw32
5870     if test "${SYS}" = "mingw32"
5871     then
5872       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5873       dnl latest gecko sdk does not have an xpcom directory
5874       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5875           mozilla_sdk_xpcom="/xpcom"
5876       fi
5877     fi
5878
5879     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5880     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5881     MOZILLA_REQUIRED_HEADERS=1
5882     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5883     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5884     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5885         [#if HAVE_NPAPI_H
5886           #include <npapi.h>
5887           #endif
5888         ])
5889     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5890     then
5891         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5892     fi
5893     MOZILLA_REQUIRED_HEADERS=
5894     mozilla=:
5895     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5896     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])
5897     if ${need_xpcom_libs}; then
5898        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])
5899       if test "${SYS}" = "mingw32"; then
5900         dnl latest gecko sdk does not have embedstring
5901         if test -d "${real_mozilla_sdk}/embedstring/bin"
5902         then
5903           VLC_ADD_LIBS([mozilla],[-lembedstring])
5904         fi
5905       fi
5906     fi
5907     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5908
5909     if test -n "${CYGPATH}"; then
5910       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5911     fi
5912     CPPFLAGS="${CPPFLAGS_save}"
5913   fi
5914 fi
5915 AC_LANG_POP(C++)
5916 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5917
5918 dnl Tests for Osso and Xsp
5919 if test "${enable_x11}" != "no" &&
5920   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
5921    test "${enable_x11}" = "yes"); then
5922    AC_CHECK_LIB(osso, osso_display_blanking_pause,[
5923       PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                                
5924           VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5925           VLC_ADD_LIBS([x11],[-losso])
5926       ])
5927    ])
5928    AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5929       VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
5930       VLC_ADD_LIBS([x11],[-lXsp])
5931    ])
5932 fi
5933
5934 dnl
5935 dnl  Mediacontrol Python bindings
5936 dnl
5937 AC_ARG_ENABLE(python-bindings,
5938   [  --enable-python-bindings Enable Python bindings (default disabled)])
5939 dnl TODO: look for python dev headers
5940 AS_IF([test "${enable_python_bindings}" = "yes"],
5941       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
5942      ) 
5943
5944 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5945
5946 dnl
5947 dnl  Java bindings
5948 dnl
5949 AC_ARG_ENABLE(java-bindings,
5950   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5951 if test "${enable_java_bindings}" = "yes"
5952 then
5953   AS_IF([test "x${JAVA_HOME}" == "x"],
5954         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5955   AC_PROG_JAVAC
5956   AC_PROG_JAVA
5957   PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
5958   if test "${JAVAC}" == "javac${EXEEXT}"
5959   then
5960     JAVAC="javac${EXEEXT} -cp ./ "
5961   fi
5962 fi
5963 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5964
5965 dnl
5966 dnl  test plugins
5967 dnl
5968 AC_ARG_ENABLE(testsuite,
5969   [  --enable-testsuite      build test modules (default disabled)])
5970 if test "${enable_testsuite}" = "yes"
5971 then
5972   TESTS="test1 test2 test3 test4"
5973
5974   dnl  we define those so that bootstrap sets the right linker
5975   VLC_ADD_CXXFLAGS([test2],[])
5976   VLC_ADD_OBJCFLAGS([test3],[])
5977   dnl  this one is needed until automake knows what to do
5978   VLC_ADD_LIBS([test3],[-lobjc])
5979
5980   VLC_ADD_PLUGINS([${TESTS}])
5981 fi
5982
5983 dnl
5984 dnl Microsoft Layer for Unicode for WIN9x/ME
5985 dnl
5986 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5987 then
5988     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5989         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5990     ])
5991 fi
5992
5993 dnl
5994 dnl  gtk_main plugin
5995 dnl
5996 if test "${NEED_GTK_MAIN}" != "no"
5997 then
5998     VLC_ADD_PLUGINS([gtk_main])
5999     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
6000     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
6001 fi
6002
6003 if test "${NEED_GNOME_MAIN}" != "no"
6004 then
6005     VLC_ADD_PLUGINS([gnome_main])
6006     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
6007     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
6008 fi
6009
6010 if test "${NEED_GTK2_MAIN}" != "no"
6011 then
6012     VLC_ADD_PLUGINS([gtk2_main])
6013     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
6014     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
6015     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
6016     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
6017 fi
6018
6019 if test "${NEED_GNOME2_MAIN}" != "no"
6020 then
6021     VLC_ADD_PLUGINS([gnome2_main])
6022     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
6023     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
6024 fi
6025
6026 dnl
6027 dnl  qte_main plugin
6028 dnl
6029 if test "${NEED_QTE_MAIN}" != "no"
6030 then
6031     VLC_ADD_PLUGINS([qte_main])
6032     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
6033     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
6034     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
6035 fi
6036
6037
6038 dnl
6039 dnl  Plugin and builtin checks
6040 dnl
6041 plugin_support=yes
6042
6043 dnl Automagically disable plugins if there is no system support for
6044 dnl dynamically loadable files (.so, .dll, .dylib).
6045 dnl don't forget vlc-win32 still can load .dll as plugins
6046 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
6047   AC_MSG_WARN([*** No plugin support! Building statically! ***])
6048   plugin_support=no
6049 ])
6050
6051 AS_IF([test "${enable_shared}" = "no"], [
6052   plugin_support=no
6053 ])
6054
6055 AS_IF([test "${plugin_support}" != "no"], [
6056   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
6057 ])
6058
6059 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
6060
6061 dnl Temporary(?) hack for plugins/builtins transition
6062 VLC_ADD_PLUGINS([${BUILTINS}])
6063 BUILTINS=""
6064
6065 dnl
6066 dnl Pic and shared libvlc stuff
6067 dnl
6068 AS_IF([test "${SYS}" = "mingw32"], [
6069   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
6070   FILE_LIBVLC_CONTROL_DLL="!define LIBVLC_CONTROL_DLL libvlc-control.dll"
6071 ])
6072
6073 dnl
6074 dnl  Stuff used by the program
6075 dnl
6076 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
6077 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) ${COPYRIGHT_YEARS} the VideoLAN team", [Copyright string])
6078 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
6079 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
6080 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
6081 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
6082 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
6083 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
6084 AC_SUBST(VERSION_MAJOR)
6085 AC_SUBST(VERSION_MINOR)
6086 AC_SUBST(VERSION_REVISION)
6087 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
6088 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
6089 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
6090 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
6091
6092 dnl
6093 dnl  Handle substvars that use $(top_srcdir)
6094 dnl
6095 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6096 AC_SUBST(VLC_CONFIG)
6097 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
6098
6099 dnl
6100 dnl  Restore *FLAGS
6101 dnl
6102 VLC_RESTORE_FLAGS
6103
6104 dnl
6105 dnl  Create the vlc-config script
6106 dnl
6107 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6108
6109 dnl
6110 dnl  Configuration is finished
6111 dnl
6112 AC_SUBST(SYS)
6113 AC_SUBST(ARCH)
6114 AC_SUBST(ALIASES)
6115 AC_SUBST(ASM)
6116 AC_SUBST(MOC)
6117 AC_SUBST(RCC)
6118 AC_SUBST(UIC)
6119 AC_SUBST(WINDRES)
6120 AC_SUBST(MOZILLA_SDK_PATH)
6121 AC_SUBST(WINE_SDK_PATH)
6122 AC_SUBST(LIBEXT)
6123 AC_SUBST(AM_CPPFLAGS)
6124 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6125 AC_SUBST(FILE_LIBVLC_DLL)
6126 AC_SUBST(FILE_LIBVLC_CONTROL_DLL)
6127
6128 dnl Create vlc-config.in
6129 VLC_OUTPUT_VLC_CONFIG_IN
6130
6131 AC_CONFIG_FILES([
6132   vlc.win32.nsi
6133   Makefile
6134   activex/Makefile
6135   activex/axvlc.inf
6136   bindings/Makefile
6137   bindings/java/Makefile
6138   bindings/java/src/Makefile
6139   bindings/python/Makefile
6140   doc/Makefile
6141   intl/Makefile
6142   ipkg/Makefile
6143   libs/loader/Makefile
6144   libs/srtp/Makefile
6145   modules/Makefile
6146   mozilla/Makefile
6147   m4/Makefile
6148   po/Makefile.in
6149   share/Makefile
6150   src/Makefile
6151 ])
6152
6153 AC_CONFIG_FILES([
6154   modules/access/Makefile
6155   modules/access/bda/Makefile
6156   modules/access/dshow/Makefile
6157   modules/access/dvb/Makefile
6158   modules/access/mms/Makefile
6159   modules/access/cdda/Makefile
6160   modules/access/rtsp/Makefile
6161   modules/access/vcd/Makefile
6162   modules/access/vcdx/Makefile
6163   modules/access/screen/Makefile
6164   modules/access_filter/Makefile
6165   modules/access_output/Makefile
6166   modules/audio_filter/Makefile
6167   modules/audio_filter/channel_mixer/Makefile
6168   modules/audio_filter/converter/Makefile
6169   modules/audio_filter/resampler/Makefile
6170   modules/audio_filter/spatializer/Makefile
6171   modules/audio_mixer/Makefile
6172   modules/audio_output/Makefile
6173   modules/codec/Makefile
6174   modules/codec/cmml/Makefile
6175   modules/codec/dmo/Makefile
6176   modules/codec/ffmpeg/Makefile
6177   modules/codec/subtitles/Makefile
6178   modules/codec/spudec/Makefile
6179   modules/codec/xvmc/Makefile
6180   modules/control/Makefile
6181   modules/control/http/Makefile
6182   modules/demux/Makefile
6183   modules/demux/asf/Makefile
6184   modules/demux/avi/Makefile
6185   modules/demux/mp4/Makefile
6186   modules/demux/mpeg/Makefile
6187   modules/demux/playlist/Makefile
6188   modules/gui/Makefile
6189   modules/gui/beos/Makefile
6190   modules/gui/pda/Makefile
6191   modules/gui/macosx/Makefile
6192   modules/gui/minimal_macosx/Makefile
6193   modules/gui/qnx/Makefile
6194   modules/gui/qt4/Makefile
6195   modules/gui/skins2/Makefile
6196   modules/gui/wxwidgets/Makefile
6197   modules/gui/wince/Makefile
6198   modules/meta_engine/Makefile
6199   modules/misc/Makefile
6200   modules/misc/dummy/Makefile
6201   modules/misc/lua/Makefile
6202   modules/misc/memcpy/Makefile
6203   modules/misc/notify/Makefile
6204   modules/misc/testsuite/Makefile
6205   modules/misc/playlist/Makefile
6206   modules/misc/osd/Makefile
6207   modules/misc/xml/Makefile
6208   modules/misc/probe/Makefile
6209   modules/mux/Makefile
6210   modules/mux/mpeg/Makefile
6211   modules/mux/rtp/Makefile
6212   modules/packetizer/Makefile
6213   modules/services_discovery/Makefile
6214   modules/stream_out/Makefile
6215   modules/stream_out/transrate/Makefile
6216   modules/video_chroma/Makefile
6217   modules/video_filter/Makefile
6218   modules/video_output/Makefile
6219   modules/video_output/msw/Makefile
6220   modules/video_output/qte/Makefile
6221   modules/video_output/x11/Makefile
6222   modules/visualization/Makefile
6223   modules/visualization/visual/Makefile
6224   modules/visualization/galaktos/Makefile
6225 ])
6226
6227 dnl Generate makefiles
6228 AC_OUTPUT
6229
6230 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6231 # not provided with the source
6232 ${SHELL} ./config.status --file=vlc-config
6233 chmod 0755 vlc-config
6234
6235 dnl echo "Enabled builtin modules :"
6236 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6237
6238 dnl echo "Enabled plugin modules :"
6239 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6240
6241 dnl Shortcut to nice compile message
6242 rm -f compile
6243 echo '#! /bin/sh' >compile
6244
6245 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
6246 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
6247 chmod a+x compile
6248
6249 printf "
6250 vlc configuration
6251 --------------------
6252 vlc version           : ${VERSION}
6253 system                : ${SYS}
6254 architecture          : ${ARCH}
6255 build flavour         : "
6256 test "${enable_debug}" = "yes" && printf "debug "
6257 test "${enable_cprof}" = "yes" && printf "cprof "
6258 test "${enable_gprof}" = "yes" && printf "gprof "
6259 test "${enable_optimizations}" = "yes" && printf "optim "
6260 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6261 echo "
6262 vlc aliases           :${ALIASES}
6263 plugins/bindings      :${PLUGINS_BINDINGS}
6264
6265 You can check which modules have been enabled 
6266 with \`./vlc-config --list plugin'.
6267 You can tune the compiler flags in vlc-config.
6268 To build vlc and its plugins, type \`./compile' or \`make'.
6269 "
6270 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6271    echo ""
6272    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6273    echo "         turned off."
6274    echo "         FFmpeg will be REALLY slow."
6275    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6276    echo ""
6277 fi