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