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