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