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