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