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