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