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