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