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