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