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