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