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