]> git.sesse.net Git - vlc/blob - configure.ac
Do not use -fvtable-thunks, the compiler does not support it anymore
[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             kate_libs="-lkate -logg"
3064             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3065             AS_IF([test "x${enable_kate}" != "x"], [
3066               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3067               You also need to check that you have a libogg posterior to the 1.0 release.])
3068             ])
3069           ], [-lkate -logg])
3070         ],[
3071           AS_IF([test "x${enable_kate}" != "x"], [
3072             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3073             You also need to check that you have a libogg posterior to the 1.0 release.])
3074           ])
3075         ])
3076   ])
3077 ])
3078
3079
3080 dnl
3081 dnl  tiger rendering for kate decoder plugin
3082 dnl
3083 AC_ARG_ENABLE(tiger,
3084 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3085 AS_IF([test "${enable_tiger}" != "no"], [
3086   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3087       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3088       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3089       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3090         AS_IF([test "x${enable_tiger}" != "x"], [
3091           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3092         ])
3093   ])
3094 ])
3095
3096
3097
3098 dnl
3099 dnl  Video plugins
3100 dnl
3101
3102 EXTEND_HELP_STRING([Video plugins:])
3103
3104 dnl
3105 dnl  Xlib
3106 dnl
3107
3108 AC_PATH_XTRA()
3109 AC_CHECK_HEADERS(X11/Xlib.h)
3110
3111 dnl
3112 dnl  X C Bindings modules
3113 dnl
3114 AC_ARG_ENABLE(xcb,
3115   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3116   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
3117     enable_xcb="yes"
3118   ], [
3119     enable_xcb="no"
3120   ])
3121 ])
3122 AC_ARG_ENABLE(xvideo,
3123   [  --enable-xvideo         XVideo support (default enabled)],, [
3124     enable_xvideo="$enable_xcb"
3125 ])
3126
3127 have_xcb="no"
3128 AS_IF([test "${enable_xcb}" != "no"], [
3129   dnl libxcb
3130   PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3131   have_xcb="yes"
3132   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3133   PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3134
3135   AS_IF([test "${enable_xvideo}" != "no"], [
3136     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3137       VLC_ADD_PLUGIN([xcb_xv])
3138     ])
3139   ])
3140
3141   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3142     VLC_ADD_PLUGIN([panoramix])
3143     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3144     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3145   ], [
3146     AC_MSG_WARN([libxcb-randr not found. Panoramix filter will not be supported.])
3147   ])
3148
3149   dnl xcb-utils
3150   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3151     PKG_CHECK_MODULES(XPROTO, [xproto])
3152     VLC_ADD_PLUGIN([globalhotkeys])
3153     VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3154     VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3155     VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
3156   ], [
3157     AC_MSG_WARN([libxcb-keysyms (0.3.4 or later) not found. Hotkeys will not work.])
3158   ])
3159 ])
3160 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3161
3162 AC_ARG_ENABLE(glx,
3163   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3164   enable_glx="$enable_xcb"
3165 ])
3166 AS_IF([test "${enable_glx}" != "no"], [
3167   PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb])
3168   PKG_CHECK_MODULES(GL, [gl],, [
3169     AC_CHECK_HEADER([GL/gl.h], [
3170       GL_CFLAGS=""
3171       GL_LIBS="-lGL"
3172     ], [
3173       AC_MSG_ERROR([GLX (libGL) cannot be found. If you do not need OpenGL with X11, use --disable-glx.])
3174     ])
3175   ])
3176   VLC_ADD_PLUGIN([xcb_glx])
3177 ])
3178
3179 dnl
3180 dnl  OpenGL
3181 dnl
3182 PKG_ENABLE_MODULES_VLC([GL], [], [gl], [OpenGL support], [auto])
3183 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
3184 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
3185 PKG_ENABLE_MODULES_VLC([EGL], [], [egl], [EGL support], [auto])
3186
3187 dnl
3188 dnl  SDL module
3189 dnl
3190 AC_ARG_ENABLE(sdl,
3191   [  --enable-sdl            SDL support (default enabled)])
3192 AC_ARG_ENABLE(sdl-image,
3193   [  --enable-sdl-image      SDL image support (default enabled)])
3194 if test "${enable_sdl}" != "no"
3195 then
3196    PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3197       # SDL on Darwin is heavily patched and can only run SDL_image
3198       if test "${SYS}" != "darwin"; then
3199         VLC_ADD_PLUGIN([vout_sdl])
3200       fi
3201       if test "${SYS}" != "mingw32"; then
3202         VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3203       fi
3204       VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3205       VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3206
3207       # SDL_image
3208       AS_IF([ test "${enable_sdl_image}" != "no"],[
3209         PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3210           VLC_ADD_PLUGIN([sdl_image])
3211           VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3212           VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3213           [ AC_MSG_WARN([The development package for SDL_image is not installed.
3214     You should install it alongside your SDL package.])
3215           ])
3216       ])
3217    ],[
3218      AC_MSG_WARN([The development package for SDL is not present or too old.
3219                   You need 1.2.10. Alternatively you can also configure with
3220                   --disable-sdl.])
3221    ])
3222 fi
3223
3224 dnl
3225 dnl  freetype module
3226 dnl
3227 AC_ARG_ENABLE(freetype,
3228   [  --enable-freetype       freetype support   (default auto)])
3229 AC_ARG_ENABLE(fribidi,
3230   [  --enable-fribidi        fribidi support    (default auto)])
3231 AC_ARG_ENABLE(fontconfig,
3232   [  --enable-fontconfig     fontconfig support (default auto)])
3233
3234 if test "${enable_freetype}" != "no"; then
3235    PKG_CHECK_MODULES(FREETYPE, freetype2, [
3236       have_freetype=yes
3237       VLC_ADD_PLUGIN([freetype])
3238       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3239       if test "${SYS}" = "mingw32"; then
3240         VLC_ADD_LIBS([freetype],[-liconv -lz])
3241       fi
3242       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3243
3244       AC_CHECK_HEADERS(Carbon/Carbon.h,
3245                        [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3246
3247       dnl fontconfig support
3248       if test "${SYS}" != "mingw32"; then
3249           if test "${enable_fontconfig}" != "no"; then
3250             AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3251               VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3252               VLC_ADD_LIBS([freetype],[-lfontconfig])
3253             ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3254           fi
3255       else
3256           VLC_ADD_LIBS([freetype],[-lgdi32])
3257       fi
3258
3259       dnl fribidi support
3260       if test "${enable_fribidi}" != "no"; then
3261         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3262           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3263           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3264         ],[AC_MSG_WARN([library fribidi not found. Bidirectional support will be disabled in freetype])])
3265       fi
3266
3267   ],[
3268   have_freetype=no
3269   AS_IF([ test "${enable_freetype}" = "yes"],[
3270     AC_MSG_ERROR([Freetype2 package cannot be detected. Install Freetype2 development or configure with --disable-freetype.])
3271     ])
3272   ])
3273 fi
3274
3275 dnl
3276 dnl  libxml2 module
3277 dnl
3278 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3279
3280 dnl
3281 dnl  SVG module
3282 dnl
3283 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3284
3285 dnl
3286 dnl  android surface module
3287 dnl
3288 AC_ARG_ENABLE(android-surface,
3289   [  --enable-android-surface   Android Surface video output module (default disabled)])
3290 if test "${enable_android_surface}" = "yes"; then
3291   if test "${HAVE_ANDROID}" = "1"; then
3292      VLC_ADD_PLUGIN([android_surface])
3293      VLC_ADD_LDFLAGS([android_surface], [-ldl])
3294   fi
3295 fi
3296
3297
3298 dnl
3299 dnl  iOS vout module
3300 dnl
3301 AC_ARG_ENABLE(ios-vout,
3302   [  --enable-ios-vout    iOS video output module (default disabled)])
3303 if test "${enable_ios_vout}" = "yes"
3304 then
3305   VLC_ADD_PLUGIN([vout_ios])
3306   VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3307   VLC_ADD_LDFLAGS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3308 fi
3309
3310 dnl
3311 dnl  QuartzText vout module (iOS/Mac OS)
3312 dnl
3313 AC_ARG_ENABLE(macosx-quartztext,
3314   [  --enable-macosx-quartztext   Mac OS X quartz text module (default enabled on Mac OS X)])
3315 if test "x${enable_macosx_quartztext}" != "xno" &&
3316   (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3317 then
3318   VLC_ADD_PLUGIN([quartztext])
3319   VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
3320 fi
3321
3322 dnl
3323 dnl  Windows DirectX module
3324 dnl
3325
3326 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3327 then
3328   VLC_ADD_PLUGIN([panoramix])
3329 fi
3330
3331 AC_ARG_ENABLE(directx,
3332   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3333 if test "${enable_directx}" != "no"
3334 then
3335   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3336   then
3337       VLC_ADD_LIBS([directx],[-luser32])
3338       AC_CHECK_HEADERS(ddraw.h,
3339       [ VLC_ADD_PLUGIN([directx aout_directx])
3340         VLC_ADD_LIBS([directx],[-lgdi32])
3341       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3342       )
3343       AC_CHECK_HEADERS(GL/glext.h,
3344       [ VLC_ADD_PLUGIN([glwin32])
3345         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3346       ])
3347       AC_CHECK_HEADERS(d3d9.h,
3348       [ VLC_ADD_PLUGIN([direct3d])
3349         VLC_ADD_LIBS([direct3d],[-lgdi32])
3350       ])
3351       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3352   fi
3353 fi
3354
3355 dnl
3356 dnl  Windows Direct2D plugin
3357 dnl
3358 AC_ARG_ENABLE(direct2d,
3359   [  --enable-direct2d         Win7/VistaPU Direct2D support (default auto on Win32)])
3360 if test "${enable_direct2d}" != "no"; then
3361   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3362   then
3363     AC_CHECK_HEADERS(d2d1.h,
3364       [
3365         VLC_ADD_PLUGIN([direct2d])
3366         VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32])
3367       ], [AC_MSG_WARN([Cannot find Direct2D headers!])]
3368     )
3369   fi
3370 fi
3371
3372 dnl
3373 dnl  win32 GDI plugin
3374 dnl
3375 AC_ARG_ENABLE(wingdi,
3376   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3377 if test "${enable_wingdi}" != "no"; then
3378   if test "${SYS}" = "mingw32"; then
3379     VLC_ADD_PLUGIN([wingdi])
3380     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3381   fi
3382   if test "${SYS}" = "mingwce"; then
3383     VLC_ADD_PLUGIN([wingdi wingapi])
3384     VLC_ADD_LIBS([wingdi],[-laygshell])
3385     VLC_ADD_LIBS([wingapi],[-laygshell])
3386   fi
3387 fi
3388
3389
3390 dnl
3391 dnl  Linux framebuffer module
3392 dnl
3393 AC_CHECK_HEADER([linux/fb.h], [
3394   VLC_ADD_PLUGIN([fb])
3395 ])
3396
3397
3398 dnl
3399 dnl  DirectFB module
3400 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3401 dnl  TODO: support for static linking
3402 dnl
3403 AC_ARG_ENABLE(directfb,
3404   [  --enable-directfb       DirectFB support (default disabled)])
3405 AC_ARG_WITH(directfb,
3406   [  --with-directfb=PATH    path to DirectFB headers and libraries])
3407
3408 if test "${enable_directfb}" = "yes"; then
3409     have_directfb="false"
3410     CPPFLAGS_mydirectfb=
3411     LIBS_mydirectfb=
3412     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3413         dnl Trying the given location
3414         CPPFLAGS_save="${CPPFLAGS}"
3415         LIBS_save="${LIBS}"
3416
3417         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3418         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3419         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3420
3421         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3422         LIBS="${LIBS} ${LIBS_new}"
3423
3424         dnl FIXME: too obscure
3425         AC_CHECK_HEADER([directfb.h], [
3426             AC_CHECK_LIB([direct],[direct_initialize], [
3427                 AC_CHECK_LIB([fusion], [fusion_enter], [
3428                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3429                 ], have_directfb="false")
3430             ], have_directfb="false")
3431         ], have_directfb="false")
3432
3433         dnl Restore flags
3434         CPPFLAGS="${CPPFLAGS_save}"
3435         LIBS="${LIBS_save}"
3436
3437         if test "${have_directfb}" = "true"; then
3438             LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3439             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3440         fi
3441     else
3442         dnl Look for directfb-config
3443         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3444         if test "${DIRECTFB_CONFIG}" != "no"; then
3445             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3446             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3447             have_directfb="true"
3448         else
3449             dnl Trying with pkg-config
3450             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3451                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3452                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3453                 have_directfb="true"
3454                 ], [have_directfb="false"])
3455         fi
3456     fi
3457     if test "${have_directfb}" = "true"; then
3458         VLC_ADD_PLUGIN([directfb])
3459         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3460         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3461     else
3462         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3463     fi
3464 fi
3465
3466 dnl
3467 dnl  AA plugin
3468 dnl
3469 AC_ARG_ENABLE(aa,
3470   [  --enable-aa             aalib output (default disabled)])
3471 if test "${enable_aa}" = "yes"
3472 then
3473   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3474   if test "${have_aa}" = "true"
3475   then
3476     VLC_ADD_PLUGIN([aa])
3477     VLC_ADD_LIBS([aa],[-laa])
3478     if test "${SYS}" != "mingw32"; then
3479       VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3480     fi
3481   fi
3482 fi
3483
3484 dnl
3485 dnl  libcaca plugin
3486 dnl
3487 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3488
3489 dnl
3490 dnl  Audio plugins
3491 dnl
3492
3493 EXTEND_HELP_STRING([Audio plugins:])
3494
3495 dnl
3496 dnl  Pulseaudio module
3497 dnl
3498 AC_ARG_ENABLE(pulse,
3499   [AS_HELP_STRING([--enable-pulse],
3500     [use the PulseAudio client library (default auto)])])
3501 have_pulse="no"
3502 AS_IF([test "${enable_pulse}" != "no"], [
3503   PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3504     have_pulse="yes"
3505   ], [
3506     PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3507       AS_IF([test "${no_x}" != "yes"], [
3508         have_pulse="yes"
3509         PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3510       ], [
3511         AS_IF([test "${enable_pulse}" = "yes"], [
3512           AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3513 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3514         ])
3515       ])
3516     ], [
3517       AS_IF([test "x${enable_pulse}" != "x"], [
3518         AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3519       ])
3520     ])
3521   ])
3522 ])
3523 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3524
3525 dnl
3526 dnl  ALSA module
3527 dnl
3528 AC_ARG_ENABLE(alsa,
3529   [AS_HELP_STRING([--enable-alsa],
3530     [support the Advanced Linux Sound Architecture (default auto)])],, [
3531   AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3532     enable_alsa="yes"
3533   ])
3534 ])
3535 have_alsa="no"
3536 AS_IF([test "${enable_alsa}" != "no"], [
3537   PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3538     have_alsa="yes"
3539   ], [
3540     AS_IF([test "x${enable_alsa}" != "x"], [
3541       AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3542     ])
3543   ])
3544 ])
3545 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3546
3547 dnl
3548 dnl  Open Sound System module
3549 dnl
3550 AC_ARG_ENABLE(oss,
3551   [AS_HELP_STRING([--enable-oss],
3552     [support the Open Sound System OSS (default enabled on BSD)])],, [
3553   AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux"], [
3554     enable_oss="no"
3555   ])
3556 ])
3557 have_oss="no"
3558 OSS_LIBS=""
3559 AS_IF([test "$enable_oss" != "no"], [
3560   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3561     have_oss="yes"
3562     AC_CHECK_LIB(ossaudio, main, [
3563       OSS_LIBS="-lossaudio"
3564     ])
3565   ])
3566 ])
3567 AC_SUBST(OSS_LIBS)
3568 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3569
3570 dnl
3571 dnl  Portaudio module
3572 dnl
3573 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3574
3575 dnl
3576 dnl  win32 waveOut plugin
3577 dnl
3578 AC_ARG_ENABLE(waveout,
3579   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3580 if test "${enable_waveout}" != "no"; then
3581   if test "${SYS}" = "mingw32"; then
3582     VLC_ADD_PLUGIN([waveout])
3583     VLC_ADD_LIBS([waveout],[-lwinmm])
3584   fi
3585   if test "${SYS}" = "mingwce"; then
3586     VLC_ADD_PLUGIN([waveout])
3587   fi
3588 fi
3589
3590 dnl
3591 dnl  CoreAudio plugin
3592 dnl
3593 AC_ARG_ENABLE(macosx-audio,
3594   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
3595 if test "x${enable_macosx_audio}" != "xno" &&
3596   (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3597 then
3598   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3599     [ VLC_ADD_PLUGIN([auhal])
3600       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3601     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3602 fi
3603
3604 dnl
3605 dnl  AudioQueue plugin
3606 dnl
3607 AC_ARG_ENABLE(audioqueue,
3608   [  --enable-audioqueue       AudioQueue audio module (default disabled)])
3609 if test "${enable_audioqueue}" = "yes"
3610 then
3611   VLC_ADD_PLUGIN([audioqueue])
3612   VLC_ADD_LDFLAGS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3613 fi
3614
3615 dnl
3616 dnl  JACK modules
3617 dnl
3618 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3619
3620 dnl
3621 dnl  OpenSLES Android
3622 dnl
3623 AC_ARG_ENABLE(opensles,
3624   [  --enable-opensles       Android OpenSL ES audio module (default disabled)])
3625 if test "${HAVE_ANDROID}" = "1"; then
3626   if test "${enable_opensles}" = "yes"; then
3627       AC_CHECK_HEADERS(SLES/OpenSLES.h,
3628         [ VLC_ADD_PLUGIN([opensles_android]) ],
3629         [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3630   fi
3631 fi
3632
3633 dnl
3634 dnl UPnP Plugin (Intel SDK)
3635 dnl
3636 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPnp SDK],[auto])
3637 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3638
3639 dnl
3640 dnl  Interface plugins
3641 dnl
3642
3643 EXTEND_HELP_STRING([Interface plugins:])
3644
3645 dnl
3646 dnl Skins2 module
3647 dnl
3648 AC_ARG_ENABLE(libtar,
3649   [  --enable-libtar         libtar support for skins2 (default auto)])
3650 AS_IF([test "${enable_libtar}" != "no"], [
3651   AC_CHECK_HEADERS(libtar.h, [
3652     VLC_ADD_LIBS([skins2],[-ltar])
3653   ])
3654 ])
3655
3656 AC_ARG_ENABLE(skins2,
3657   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
3658    enabled except on MacOSX and WinCE)])],, [
3659   AS_IF([test "${SYS}" != "darwin" && test "${SYS}" != "mingwce"], [
3660     enable_skins2="yes"
3661   ], [
3662     enable_skins2="no"
3663   ])
3664 ])
3665 AS_IF([test "${enable_skins2}" = "yes"], [
3666   dnl freetype
3667   AS_IF([test "${have_freetype}" != "yes"], [
3668     AC_MSG_ERROR([Could not find FreeType (required for skins2)])
3669   ])
3670
3671   AS_IF([test "${SYS}" = "mingw32"], [
3672     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3673     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3674     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32  -lmsimg32 -luser32])
3675
3676   ], [test "${SYS}" = "darwin"], [
3677     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3678     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3679     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
3680
3681   ], [
3682     PKG_CHECK_MODULES([XPM], [xpm])
3683     PKG_CHECK_MODULES([XINERAMA], [xinerama])
3684     PKG_CHECK_MODULES([XEXT], [xext])
3685     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3686     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3687     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3688
3689   ])
3690   VLC_ADD_PLUGIN([skins2])
3691   ALIASES="${ALIASES} svlc"
3692 ])
3693 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3694
3695 dnl
3696 dnl Hildon UI
3697 dnl
3698 AC_ARG_ENABLE(hildon,
3699   [  --enable-hildon         Hildon touchscreen UI (default disabled)])
3700 AS_IF([test "${enable_hildon}" = "yes"], [
3701   PKG_CHECK_MODULES(HILDON, [hildon-1], [
3702     PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3703       VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3704       VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3705     ], [
3706       AC_MSG_WARN(hildon-fm-2 not found)
3707     ])
3708     VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3709     VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3710     VLC_ADD_PLUGIN([hildon])
3711     ALIASES="${ALIASES} mvlc"
3712   ], [
3713     AS_IF([test "${enable_hildon}" = "yes"],[
3714       AC_MSG_ERROR([Hildon libraries not found])
3715     ])
3716     enable_hildon="no"
3717   ])
3718 ])
3719 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3720
3721 dnl
3722 dnl QT 4
3723 dnl
3724 AC_ARG_ENABLE(qt4,
3725   [  --enable-qt4            Qt 4 support (default enabled) ],, [
3726   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3727 ])
3728 AS_IF([test "${enable_qt4}" != "no"], [
3729   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
3730     VLC_ADD_PLUGIN([qt4])
3731     VLC_ADD_LIBS([qt4],[${QT4_LIBS}])
3732     VLC_ADD_CXXFLAGS([qt4],[${QT4_CFLAGS}])
3733     ALIASES="${ALIASES} qvlc"
3734
3735     AC_LANG_PUSH([C++])
3736     CPPFLAGS_save="${CPPFLAGS}"
3737
3738     AC_MSG_CHECKING([whether Qt uses X11])
3739     CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
3740     AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3741 #include <QWidget>
3742 #if !defined (Q_WS_X11)
3743 # error Fail
3744 #endif
3745     ])], [
3746       AC_MSG_RESULT([yes])
3747       VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3748       VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3749     ], [
3750       AC_MSG_RESULT([no])
3751     ])
3752
3753     CPPFLAGS="${CPPFLAGS_save}"
3754     AC_LANG_POP([C++])
3755
3756     AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3757         VLC_ADD_LIBS([qt4],[-lole32])
3758     ])
3759     AS_IF([test "${SYS}" = "darwin" ],[
3760          VLC_ADD_LDFLAGS([qt4], [-Wl,-framework,Cocoa])
3761     ])
3762     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3763     AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3764     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3765   ], [
3766     AS_IF([test "${enable_qt4}" = "yes"],[
3767       AC_MSG_ERROR([Qt 4 library not found])
3768     ],[
3769       AC_MSG_WARN([Qt 4 library not found])
3770     ])
3771     enable_qt4="no"
3772   ])
3773 ])
3774 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
3775
3776 dnl
3777 dnl Simple test for skins2 dependency
3778 dnl
3779 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
3780   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.])
3781 ])
3782
3783 dnl
3784 dnl  MacOS X video output/gui modules
3785 dnl
3786 AC_ARG_ENABLE(macosx,
3787   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
3788 if test "x${enable_macosx}" != "xno" &&
3789 (test "${SYS}" = "darwin" || test "${enable_macosx}" = "yes")
3790 then
3791   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,Cocoa])
3792   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,OpenGL])
3793   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
3794   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
3795   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
3796   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QTKit])
3797   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
3798   VLC_ADD_LDFLAGS([macosx],                           [-F${CONTRIB_DIR}/Sparkle -Wl,-framework,Sparkle])
3799   VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/Sparkle])
3800   VLC_ADD_LDFLAGS([macosx],                           [-F${CONTRIB_DIR}/BGHUDAppKit -Wl,-framework,BGHUDAppKit])
3801   VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/BGHUDAppKit])
3802   dnl For bug report
3803   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
3804   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
3805   VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3806
3807   VLC_ADD_PLUGIN([macosx minimal_macosx])
3808 fi
3809
3810 dnl
3811 dnl  MacOS X related modules
3812 dnl
3813
3814 AC_ARG_ENABLE(macosx-vout,
3815   [  --enable-macosx-vout    Mac OS X video output module (default enabled on Mac OS X)])
3816 if test "x${enable_macosx_vout}" != "xno" &&
3817   (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3818 then
3819   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,Cocoa])
3820   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,OpenGL])
3821   VLC_ADD_PLUGIN([vout_macosx])
3822 fi
3823
3824 AC_ARG_ENABLE(macosx-dialog-provider,
3825   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3826 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3827   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3828 then
3829   VLC_ADD_LDFLAGS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3830   VLC_ADD_PLUGIN([macosx_dialog_provider])
3831 fi
3832
3833 AC_ARG_ENABLE(macosx-qtcapture,
3834   [  --enable-macosx-qtcapture Mac OS X qtcapture (iSight) module (default enabled on Mac OS X)])
3835 if test "x${enable_macosx_qtcapture}" != "xno" &&
3836   (test "${SYS}" = "darwin" || test "${enable_macosx_qtcapture}" = "yes")
3837 then
3838   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,Cocoa])
3839   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QTKit])
3840   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreAudio])
3841   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QuartzCore])
3842   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreVideo])
3843   VLC_ADD_PLUGIN([qtcapture])
3844 fi
3845
3846 AC_ARG_ENABLE(macosx-eyetv,
3847   [  --enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
3848 if test "x${enable_macosx_eyetv}" != "xno" &&
3849   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
3850 then
3851   VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,Foundation])
3852   VLC_ADD_PLUGIN([access_eyetv])
3853 fi
3854
3855 AC_ARG_ENABLE(macosx-vlc-app,
3856   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
3857 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
3858     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
3859
3860 dnl
3861 dnl  ncurses module
3862 dnl
3863 AC_ARG_ENABLE(ncurses,
3864   [  --disable-ncurses       ncurses interface support (default disabled)],
3865   [if test "${enable_ncurses}" != "no"; then
3866     AC_CHECK_HEADER(ncurses.h,
3867       [AC_CHECK_LIB(ncursesw, mvprintw,
3868         [VLC_ADD_PLUGIN([ncurses])
3869         VLC_ADD_LIBS([ncurses],[-lncursesw])
3870         ALIASES="${ALIASES} nvlc"
3871         AC_CHECK_LIB(ncursesw, tgetent, [],
3872           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
3873             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
3874               [AS_IF([test "${enable_ncurses}" = "yes"],
3875                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
3876                )])])
3877             ]
3878           )
3879         )
3880         ],
3881           [AS_IF([test "${enable_ncurses}" = "yes"], [
3882             AC_MSG_ERROR([libncursesw not found])])]
3883         )],
3884         [AS_IF([test "${enable_ncurses}" = "yes"], [
3885           AC_MSG_ERROR([ncurses.h not found])])]
3886         )
3887   fi]
3888 )
3889
3890 dnl
3891 dnl  XOSD plugin
3892 dnl
3893 AC_ARG_ENABLE(xosd,
3894   [  --enable-xosd           xosd interface support (default disabled)])
3895 if test "${enable_xosd}" = "yes"
3896 then
3897   AC_CHECK_HEADERS(xosd.h,
3898     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
3899       VLC_ADD_PLUGIN([xosd])
3900       VLC_ADD_LIBS([xosd],[-lxosd])
3901     ])
3902   )
3903 fi
3904
3905 dnl
3906 dnl Framebuffer (overlay) plugin
3907 dnl
3908 AC_ARG_ENABLE(fbosd,
3909   [  --enable-fbosd          fbosd interface support (default disabled)])
3910 if test "${enable_fbosd}" = "yes"
3911 then
3912   AC_CHECK_HEADERS(linux/fb.h, [
3913     VLC_ADD_PLUGIN([fbosd])
3914  ])
3915 fi
3916
3917 dnl
3918 dnl Visualisation plugin
3919 dnl
3920 AC_ARG_ENABLE(visual,
3921   [  --enable-visual         visualisation plugin (default enabled)])
3922 if test "${enable_visual}" != "no"
3923 then
3924     VLC_ADD_PLUGIN([visual])
3925 fi
3926
3927 dnl
3928 dnl  goom visualization plugin
3929 dnl
3930 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3931
3932 dnl
3933 dnl libprojectM visualization plugin
3934 dnl
3935 AC_ARG_ENABLE(projectm,
3936   [  --enable-projectm          projectM visualization plugin (default enabled)])
3937 AS_IF([test "${enable_projectm}" != "no"],
3938   [
3939     PKG_CHECK_MODULES(PROJECTM, libprojectM,
3940     [
3941       VLC_ADD_PLUGIN([projectm])
3942       VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3943       VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3944       PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3945         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3946         [ AC_MSG_WARN( [Using libprojectM version 1] )
3947       ])
3948     ],[
3949       AC_MSG_WARN([libprojectM library not found])
3950     ])
3951   ])
3952
3953 dnl
3954 dnl  AtmoLight (homemade Philips Ambilight clone)
3955 dnl
3956 AC_ARG_ENABLE(atmo,
3957 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3958                 (default enabled)]),, [enable_atmo="yes"])
3959 AS_IF([test "${enable_atmo}" != no], [
3960   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3961     AC_LANG_PUSH(C++)
3962     VLC_ADD_PLUGIN([atmo])
3963     AC_LANG_POP(C++)
3964   ])
3965 ])
3966
3967 dnl
3968 dnl  Bonjour services discovery
3969 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3970
3971 dnl
3972 dnl  libudev services discovery
3973 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3974
3975 dnl
3976 dnl MTP devices services discovery
3977 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3978
3979 dnl
3980 dnl  Lirc plugin
3981 dnl
3982 AC_ARG_ENABLE(lirc,
3983   [  --enable-lirc           lirc support (default disabled)])
3984 if test "${enable_lirc}" = "yes"
3985 then
3986   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3987   if test "${have_lirc}" = "true"
3988   then
3989     VLC_ADD_PLUGIN([lirc])
3990     VLC_ADD_LIBS([lirc],[-llirc_client])
3991   fi
3992 fi
3993
3994 EXTEND_HELP_STRING([Misc options:])
3995
3996 dnl
3997 dnl libgcrypt
3998 dnl
3999 AC_ARG_ENABLE(libgcrypt,
4000   [  --disable-libgcrypt     gcrypt support (default enabled)])
4001 AS_IF([test "${enable_libgcrypt}" != "no"], [
4002   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4003     libgcrypt-config --version >/dev/null || \
4004         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4005     AC_CHECK_LIB(gcrypt, gcry_control, [
4006       have_libgcrypt="yes"
4007       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4008       GCRYPT_LIBS="`libgcrypt-config --libs`"
4009     ], [
4010       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4011     ], [`libgcrypt-config --libs`])
4012   ], [
4013     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4014   ], [#include <gcrypt.h>]
4015   )
4016 ])
4017
4018 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4019   AS_IF([test "${have_libgcrypt}" = "yes"],[
4020     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4021   ])
4022 fi
4023 AC_SUBST(GCRYPT_CFLAGS)
4024 AC_SUBST(GCRYPT_LIBS)
4025 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4026
4027 dnl
4028 dnl TLS/SSL
4029 dnl
4030 AC_ARG_ENABLE(gnutls,
4031   [  --enable-gnutls         GNU TLS TLS/SSL support (default enabled)])
4032
4033 AS_IF([test "${have_libgcrypt}" != "yes"], [
4034   AS_IF([test "${enable_gnutls}" = "yes"], [
4035     AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
4036   ])
4037   enable_gnutls="no"
4038 ])
4039 AS_IF([test "${enable_gnutls}" != "no"], [
4040   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.0.0], [
4041     VLC_ADD_PLUGIN([gnutls])
4042     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4043     AS_IF([test "${SYS}" = "mingw32"], [
4044       dnl pkg-config --libs gnutls omits these
4045       VLC_ADD_LIBS([gnutls], [-lz ${LTLIBINTL} -lcrypt32])
4046     ])
4047     VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4048     VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4049     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4050   ], [
4051     AS_IF([test "${enable_gnutls}" = "yes"], [
4052       AC_MSG_ERROR([GNU TLS not present or too old (version 2.0.0 required)])
4053     ])
4054   ])
4055 ])
4056
4057
4058 dnl
4059 dnl RemoteOSD plugin (VNC client as video filter)
4060 dnl
4061 AC_MSG_CHECKING([whether to enable the RemoteOSD plugin])
4062 AS_IF([test "${have_libgcrypt}" = "yes"],[
4063   AC_MSG_RESULT(yes)
4064   VLC_ADD_PLUGIN([remoteosd])
4065   VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4066   VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4067 ], [
4068   AC_MSG_RESULT(no)
4069   AC_MSG_WARN([libgcrypt support required for RemoteOSD plugin])
4070 ])
4071
4072
4073 dnl
4074 dnl RAOP plugin
4075 dnl
4076 AC_MSG_CHECKING([whether to enable the RAOP plugin])
4077 AS_IF([test "${have_libgcrypt}" = "yes"], [
4078   AC_MSG_RESULT(yes)
4079   VLC_ADD_PLUGIN([stream_out_raop])
4080   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4081   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4082 ], [
4083   AC_MSG_RESULT(no)
4084   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4085 ])
4086
4087
4088 dnl
4089 dnl OSSO (Maemo screen blanking) plugin
4090 dnl
4091 PKG_ENABLE_MODULES_VLC([OSSO_SCREENSAVER], [], [libosso], [Maemo support], [auto])
4092
4093 AS_IF([test -f "/etc/maemo_version"], [
4094   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4095 ])
4096
4097
4098 dnl
4099 dnl update checking system
4100 dnl
4101 AC_ARG_ENABLE(update-check,
4102   [  --enable-update-check   update checking system (default disabled)])
4103 if test "${enable_update_check}" = "yes"
4104 then
4105   if test "${have_libgcrypt}" != "yes"
4106   then
4107     AC_MSG_ERROR([libgcrypt is required for update checking system])
4108   fi
4109   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4110   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4111   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4112 fi
4113
4114 dnl
4115 dnl SQLite
4116 dnl
4117 AC_ARG_WITH(sqlite,
4118   [  --with-sqlite=PATH      sqlite path linking])
4119 if test "${SYS}" != "darwin"; then
4120   PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4121 else
4122   if test "${enable_sqlite}" != "no"
4123   then
4124     AC_CHECK_HEADERS(sqlite3.h, [
4125         VLC_ADD_PLUGIN([sqlite])
4126         if test "${with_sqlite}" != "no" -a -n "${with_sqlite}"; then
4127           AC_MSG_CHECKING(existence of sqlite directory in ${with_sqlite})
4128           real_sqlite="`cd ${with_sqlite} 2>/dev/null && pwd`"
4129           if test -z "${real_sqlite}"
4130           then
4131             dnl  The given directory can't be found
4132             AC_MSG_RESULT(no)
4133             AC_MSG_ERROR([cannot cd to ${with_sqlite}])
4134           fi
4135           VLC_ADD_CFLAGS([sqlite],[-I${with_sqlite}/include])
4136           VLC_ADD_LIBS([sqlite], [-L${with_sqlite}/lib -lsqlite3])
4137           AC_MSG_RESULT(yes)
4138         else
4139           VLC_ADD_LIBS([sqlite], [-lsqlite3])
4140         fi
4141         AC_DEFINE([SQLITE_MODULE], 1, [Define if you want to use SQLite module]) ],
4142         AC_MSG_ERROR([sqlite3 is required for sqlite module]) )
4143   fi
4144 fi
4145 AM_CONDITIONAL([HAVE_SQLITE], [test "${enable_sqlite}" != "no"])
4146
4147 dnl
4148 dnl media library
4149 dnl
4150 AC_ARG_ENABLE(media-library, [--enable-media-library media library (default disabled)])
4151 if test "${enable_media_library}" = "yes"; then
4152     if test "${enable_sqlite}" != "yes"; then
4153        AC_MSG_ERROR([SQLite module is required for the media library])
4154     else
4155        AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
4156        VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
4157        VLC_ADD_PLUGIN([media_library])
4158     fi
4159 fi
4160 AM_CONDITIONAL([ENABLE_MEDIA_LIBRARY], [test "${enable_media_library}" = "yes"])
4161
4162 dnl
4163 dnl  Endianness check
4164 dnl
4165 AC_C_BIGENDIAN
4166 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4167   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4168 ], [
4169   DEFS_BIGENDIAN=""
4170 ])
4171 AC_SUBST(DEFS_BIGENDIAN)
4172
4173 dnl
4174 dnl Where to install KDE solid .desktop
4175 dnl
4176 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4177 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4178   KDE4_CONFIG="kde4-config"
4179 ])
4180
4181 AC_ARG_WITH(kde-solid,
4182   AS_HELP_STRING([--with-kde-solid=PATH],
4183                  [KDE Solid actions directory (auto)]),, [
4184
4185 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ; then
4186   with_kde_solid="yes"
4187 fi
4188 ])
4189 soliddatadir=""
4190 AS_IF([test "${with_kde_solid}" != "no"], [
4191   AS_IF([test "${with_kde_solid}" = "yes"], [
4192     kde4datadir="`${KDE4_CONFIG} --install data`"
4193     AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4194     soliddatadir="${kde4datadir}/solid/actions"
4195   ], [
4196     soliddatadir="${with_kde_solid}"
4197   ])
4198 ])
4199 AC_SUBST(soliddatadir)
4200 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4201
4202 dnl
4203 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4204 dnl
4205 loader=false
4206 AC_ARG_ENABLE(loader,
4207   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4208                   (default disabled)]))
4209 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4210 AS_IF([test "${enable_loader}" = "yes"],
4211   [ VLC_ADD_PLUGIN([dmo])
4212     VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/libs/loader])
4213     VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4214     VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4215     VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4216   ])
4217
4218 EXTEND_HELP_STRING([Components:])
4219
4220 dnl
4221 dnl  the VLC binary
4222 dnl
4223 AC_ARG_ENABLE(vlc,
4224   [  --enable-vlc            build the VLC media player (default enabled)])
4225 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4226
4227
4228 dnl
4229 dnl  Plugin and builtin checks
4230 dnl
4231 plugin_support=yes
4232
4233 dnl Automagically disable plugins if there is no system support for
4234 dnl dynamically loadable files (.so, .dll, .dylib).
4235 dnl don't forget vlc-win32 still can load .dll as plugins
4236 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
4237   AC_MSG_WARN([*** No plugin support! Building statically! ***])
4238   plugin_support=no
4239 ])
4240
4241 AS_IF([test "${plugin_support}" != "no"], [
4242   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
4243 ])
4244
4245 dnl
4246 dnl Pic and shared libvlc stuff
4247 dnl
4248 AS_IF([test "${SYS}" = "mingw32"], [
4249   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
4250   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
4251 ])
4252
4253 dnl
4254 dnl  Stuff used by the program
4255 dnl
4256 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4257 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4258 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4259 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4260 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4261 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4262 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4263 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4264 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4265 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4266 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4267 AC_SUBST(COPYRIGHT_MESSAGE)
4268 AC_SUBST(VERSION_MESSAGE)
4269 AC_SUBST(VERSION_MAJOR)
4270 AC_SUBST(VERSION_MINOR)
4271 AC_SUBST(VERSION_REVISION)
4272 AC_SUBST(VERSION_EXTRA)
4273 AC_SUBST(COPYRIGHT_YEARS)
4274 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4275 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4276 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4277 dnl
4278 dnl  Handle substvars that use $(top_srcdir)
4279 dnl
4280 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4281 AC_SUBST(VLC_CONFIG)
4282 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
4283
4284 dnl
4285 dnl  Restore *FLAGS
4286 dnl
4287 VLC_RESTORE_FLAGS
4288
4289 dnl
4290 dnl Sort the modules list
4291 dnl
4292 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4293
4294 dnl
4295 dnl  Create the vlc-config script
4296 dnl
4297 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
4298
4299 dnl
4300 dnl  Configuration is finished
4301 dnl
4302 AC_SUBST(SYS)
4303 AC_SUBST(ARCH)
4304 AC_SUBST(ALIASES)
4305 AC_SUBST(ASM)
4306 AC_SUBST(MOC)
4307 AC_SUBST(RCC)
4308 AC_SUBST(UIC)
4309 AC_SUBST(WINDRES)
4310 AC_SUBST(WINE_SDK_PATH)
4311 AC_SUBST(LIBEXT)
4312 AC_SUBST(AM_CPPFLAGS)
4313 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4314 AC_SUBST(FILE_LIBVLCCORE_DLL)
4315 AC_SUBST(FILE_LIBVLC_DLL)
4316
4317 dnl Create vlc-config.in
4318 VLC_OUTPUT_VLC_CONFIG_IN
4319
4320 AC_CONFIG_FILES([
4321   Makefile
4322   doc/Makefile
4323   libs/loader/Makefile
4324   libs/srtp/Makefile
4325   libs/unzip/Makefile
4326   modules/Makefile
4327   m4/Makefile
4328   po/Makefile.in
4329   share/Makefile
4330   compat/Makefile
4331   src/Makefile
4332   src/test/Makefile
4333   bin/Makefile
4334   test/Makefile
4335   modules/access/Makefile
4336   modules/access/bd/Makefile
4337   modules/access/dshow/Makefile
4338   modules/access/mms/Makefile
4339   modules/access/rtp/Makefile
4340   modules/access/rtsp/Makefile
4341   modules/access/vcd/Makefile
4342   modules/access/vcdx/Makefile
4343   modules/access/screen/Makefile
4344   modules/access/zip/Makefile
4345   modules/access_output/Makefile
4346   modules/audio_filter/Makefile
4347   modules/audio_mixer/Makefile
4348   modules/audio_output/Makefile
4349   modules/codec/Makefile
4350   modules/codec/avcodec/Makefile
4351   modules/codec/dmo/Makefile
4352   modules/codec/omxil/Makefile
4353   modules/codec/shine/Makefile
4354   modules/codec/spudec/Makefile
4355   modules/codec/wmafixed/Makefile
4356   modules/control/Makefile
4357   modules/control/dbus/Makefile
4358   modules/control/globalhotkeys/Makefile
4359   modules/demux/Makefile
4360   modules/demux/asf/Makefile
4361   modules/demux/avformat/Makefile
4362   modules/demux/avi/Makefile
4363   modules/demux/mkv/Makefile
4364   modules/demux/mp4/Makefile
4365   modules/demux/mpeg/Makefile
4366   modules/demux/playlist/Makefile
4367   modules/gui/Makefile
4368   modules/gui/macosx/Makefile
4369   modules/gui/hildon/Makefile
4370   modules/gui/minimal_macosx/Makefile
4371   modules/gui/macosx_dialog_provider/Makefile
4372   modules/gui/qt4/Makefile
4373   modules/gui/skins2/Makefile
4374   modules/lua/Makefile
4375   modules/meta_engine/Makefile
4376   modules/misc/Makefile
4377   modules/misc/playlist/Makefile
4378   modules/misc/osd/Makefile
4379   modules/misc/stats/Makefile
4380   modules/media_library/Makefile
4381   modules/mux/Makefile
4382   modules/mux/mpeg/Makefile
4383   modules/notify/Makefile
4384   modules/packetizer/Makefile
4385   modules/services_discovery/Makefile
4386   modules/stream_filter/Makefile
4387   modules/stream_out/Makefile
4388   modules/stream_out/transcode/Makefile
4389   modules/text_renderer/Makefile
4390   modules/video_chroma/Makefile
4391   modules/video_filter/Makefile
4392   modules/video_filter/dynamicoverlay/Makefile
4393   modules/video_output/Makefile
4394   modules/video_output/msw/Makefile
4395   modules/visualization/Makefile
4396   modules/visualization/visual/Makefile
4397   modules/mmx/Makefile
4398   modules/mmxext/Makefile
4399   modules/3dnow/Makefile
4400   modules/sse2/Makefile
4401   modules/altivec/Makefile
4402   modules/arm_neon/Makefile
4403 ])
4404
4405 AM_COND_IF([HAVE_WIN32], [
4406   AC_CONFIG_FILES([
4407     extras/package/win32/spad.nsi
4408     extras/package/win32/vlc.win32.nsi
4409   ])
4410 ])
4411
4412 AM_COND_IF([HAVE_DARWIN], [
4413   AC_CONFIG_FILES([
4414     extras/package/macosx/Info.plist
4415     extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4416   ])
4417 ])
4418
4419 dnl Generate makefiles
4420 AC_OUTPUT
4421
4422 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4423 # not provided with the source
4424 ${SHELL} ./config.status --file=vlc-config
4425 chmod 0755 vlc-config
4426
4427 /bin/echo -n "Enabled modules: ${PLUGINS}"
4428
4429 dnl Do we have to use make or gmake ?
4430 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4431 dnl Shortcut to nice compile message
4432 rm -f compile
4433 if test -n $SHELL; then
4434   SHELL=${CONFIG_SHELL-/bin/sh}
4435 fi
4436 echo '#! '$SHELL >compile
4437 echo rm -f .error\$\$ >>compile
4438 echo ERROR=0 >>compile
4439 echo export PATH=$PATH LANG=C >>compile
4440 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4441 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4442 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4443 echo rm -f .error\$\$ >>compile
4444 echo exit \$ERROR >>compile
4445 chmod a+x compile
4446
4447 printf "
4448 libvlc configuration
4449 --------------------
4450 version               : ${VERSION}
4451 system                : ${SYS}
4452 architecture          : ${ARCH}
4453 build flavour         : "
4454 test "${enable_optimizations}" != "no" && printf ${enable_optimizations}
4455 echo ""
4456 if test "${enable_vlc}" != "no"; then
4457 echo "vlc aliases           :${ALIASES}"
4458 else
4459 echo "build vlc executable  : no"
4460 fi
4461 echo "
4462 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'."