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