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