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