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