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