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