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