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