winscreencap: Fix configure check and compilation
[platform/upstream/gstreamer.git] / configure.ac
1 AC_PREREQ([2.68])
2
3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, cvs and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.1.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
7
8 AG_GST_INIT
9
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar])
12
13 dnl define PACKAGE_VERSION_* variables
14 AS_VERSION
15
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
18
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
21
22 dnl define the output header for config
23 AM_CONFIG_HEADER([config.h])
24
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
27
28 dnl sets host_* variables
29 AC_CANONICAL_HOST
30
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33   [AM_DEFAULT_VERBOSITY=1
34    AC_SUBST(AM_DEFAULT_VERBOSITY)])
35
36 dnl our libraries and install dirs use GST_API_VERSION in the filename
37 dnl to allow side-by-side installation of different API versions
38 GST_API_VERSION=1.0
39 AC_SUBST(GST_API_VERSION)
40 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
41   [GStreamer API Version])
42
43 AG_GST_LIBTOOL_PREPARE
44
45 dnl CURRENT, REVISION, AGE
46 dnl - library source changed -> increment REVISION
47 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
48 dnl - interfaces added -> increment AGE
49 dnl - interfaces removed -> AGE = 0
50 dnl sets GST_LT_LDFLAGS
51 AS_LIBTOOL(GST, 2, 0, 2)
52
53 dnl *** required versions of GStreamer stuff ***
54 GST_REQ=1.1.0
55 GSTPB_REQ=1.1.0
56
57 dnl *** autotools stuff ****
58
59 dnl allow for different autotools
60 AS_AUTOTOOLS_ALTERNATE
61
62 dnl Add parameters for aclocal
63 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
64
65 dnl set up gettext
66 dnl the version check needs to stay here because autopoint greps for it
67 AM_GNU_GETTEXT_VERSION([0.17])
68 AM_GNU_GETTEXT([external])
69 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
70
71 dnl *** check for arguments to configure ***
72
73 AG_GST_ARG_DISABLE_FATAL_WARNINGS
74
75 AG_GST_ARG_DEBUG
76 AG_GST_ARG_PROFILING
77 AG_GST_ARG_VALGRIND
78 AG_GST_ARG_GCOV
79
80 AG_GST_ARG_EXAMPLES
81
82 AG_GST_ARG_WITH_PKG_CONFIG_PATH
83 AG_GST_ARG_WITH_PACKAGE_NAME
84 AG_GST_ARG_WITH_PACKAGE_ORIGIN
85
86 AG_GST_ARG_WITH_PLUGINS
87
88 AG_GST_ARG_ENABLE_EXTERNAL
89
90 AG_GST_ARG_ENABLE_EXPERIMENTAL
91
92 dnl *** checks for platform ***
93 AG_GST_PLATFORM
94
95 dnl * hardware/architecture *
96
97 dnl common/m4/gst-arch.m4
98 dnl check CPU type
99 AG_GST_ARCH
100
101 dnl Determine endianness
102 AC_C_BIGENDIAN
103
104 dnl *** checks for programs ***
105
106 dnl find a compiler
107 AC_PROG_CC
108 AC_PROG_CC_STDC
109
110 dnl determine c++ compiler
111 AC_PROG_CXX
112 dnl determine if c++ is available on this system
113 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
114
115 AC_PROG_OBJC
116
117 dnl check if the compiler supports '-c' and '-o' options
118 AM_PROG_CC_C_O
119
120 dnl check if the compiler supports do while(0) macros
121 AG_GST_CHECK_DOWHILE_MACROS
122
123 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
124 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
125
126 dnl check for documentation tools
127 GTK_DOC_CHECK([1.12])
128 AG_GST_PLUGIN_DOCS([1.12])
129
130 dnl *** checks for libraries ***
131
132 dnl check for libm, for sin() etc.
133 LT_LIB_M
134 AC_SUBST(LIBM)
135
136 AC_FUNC_MMAP
137
138 dnl *** checks for header files ***
139
140 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
141 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
142
143 if test "x$HAVE_UNISTD_H" != "xyes"; then
144   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
145 fi
146
147 AC_CHECK_HEADERS([sys/time.h])
148
149 dnl used by ext/dts
150 AX_CREATE_STDINT_H
151
152 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
153 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
154
155 if test "x$HAVE_PTHREAD_H" != "xyes"; then
156   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
157 fi
158
159 dnl *** checks for types/defines ***
160
161 dnl Check for FIONREAD ioctl declaration
162 dnl used in gst/dccp
163 GST_CHECK_FIONREAD
164
165 dnl *** checks for structures ***
166
167 dnl *** checks for compiler characteristics ***
168
169 dnl *** checks for library functions ***
170 AC_CHECK_FUNCS([gmtime_r])
171
172 dnl *** checks for headers ***
173 AC_CHECK_HEADERS([sys/utsname.h])
174
175 dnl *** checks for dependency libraries ***
176
177 dnl *** checks for socket and nsl libraries ***
178 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
179 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
180
181 dnl GLib is required
182 GLIB_REQ=2.32.0
183 AG_GST_GLIB_CHECK([$GLIB_REQ])
184
185 dnl checks for gstreamer
186 dnl uninstalled is selected preferentially -- see pkg-config(1)
187 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
188 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
189 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
190 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
191 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
192
193 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
194
195 dnl check for uninstalled plugin directories for unit tests
196 AG_GST_CHECK_UNINSTALLED_SETUP([
197   AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
198   AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
199   AG_GST_CHECK_GST_PLUGINS_FFMPEG($GST_API_VERSION, [0.11.0])
200 ])
201
202 dnl Check for documentation xrefs
203 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
204 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
205 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
206 AC_SUBST(GLIB_PREFIX)
207 AC_SUBST(GST_PREFIX)
208 AC_SUBST(GSTPB_PREFIX)
209
210 dnl GTK is optional and used in examples
211 HAVE_GTK=NO
212 GTK2_REQ=2.14.0
213 GTK3_REQ=2.91.3
214 if test "x$BUILD_EXAMPLES" = "xyes"; then
215   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
216   AC_ARG_WITH([gtk],
217     AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
218     [case "$with_gtk" in
219         2.0) GTK_REQ=$GTK2_REQ ;;
220         3.0) GTK_REQ=$GTK3_REQ ;;
221         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
222     esac],
223     [with_gtk=2.0
224      GTK_REQ=$GTK2_REQ])
225   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
226   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
227   AC_SUBST(GTK_LIBS)
228   AC_SUBST(GTK_CFLAGS)
229 fi
230 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
231
232
233
234 dnl Needed for GtkBuilder to autoconnect signals
235 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
236
237 dnl Needed by plugins that use g_module_*() API
238 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
239
240 dnl x11 is optional for librfb
241 HAVE_X11=NO
242 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
243 AC_SUBST(X11_LIBS)
244 AC_SUBST(X11_CFLAGS)
245 AC_SUBST(HAVE_X11)
246 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
247 if test "x$HAVE_X11" = "xyes"; then
248   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
249 fi
250
251 dnl exif (used on jifmux tests) ****
252 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
253 AC_SUBST(EXIF_LIBS)
254 AC_SUBST(EXIF_CFLAGS)
255 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
256
257 dnl Orc
258 ORC_CHECK([0.4.16])
259
260 dnl set license and copyright notice
261 GST_LICENSE="LGPL"
262 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
263 AC_SUBST(GST_LICENSE)
264
265 dnl define LIBDIR so we can inform people where we live
266 AS_AC_EXPAND(LIBDIR, $libdir)
267 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
268
269 dnl set location of plugin directory
270 AG_GST_SET_PLUGINDIR
271
272 dnl set release date/time
273 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
274   ["${srcdir}/gst-plugins-bad.doap"],
275   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
276
277 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
278 dnl make sure it doesn't complain about unused variables if debugging is disabled
279 NO_WARNINGS=""
280 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
281
282 dnl define an ERROR_CFLAGS Makefile variable
283 dnl -Waggregate-return - libexif returns aggregates
284 dnl -Wundef - Windows headers check _MSC_VER unconditionally
285 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
286     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
287     -Wwrite-strings -Wformat-security -Wold-style-definition
288     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
289     -Wnested-externs $NO_WARNINGS])
290
291 dnl define an ERROR_CXXFLAGS Makefile variable
292 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
293     -Wmissing-declarations -Wredundant-decls
294     -Wwrite-strings -Wformat-nonliteral -Wformat-security
295     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
296
297 dnl define an ERROR_OBJCFLAGS Makefile variable
298 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
299     -Wmissing-declarations -Wredundant-decls
300     -Wwrite-strings -Wformat-nonliteral -Wformat-security
301     -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
302
303 dnl define correct level for debugging messages
304 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
305
306 dnl used in examples
307 AG_GST_DEFAULT_ELEMENTS
308
309 dnl *** plug-ins to include ***
310 dnl Non ported plugins (non-dependant, then dependant)
311 dnl Make sure you have a space before and after all plugins
312 GST_PLUGINS_NONPORTED=" aiff \
313  cdxaparse \
314  dccp faceoverlay \
315  freeverb \
316  hdvparse ivfparse jp2kdecimator \
317  kate librfb \
318  mpegpsmux mve mythtv nsf nuvdemux \
319  patchdetect real \
320  sdi stereo tta videofilters \
321  videomeasure videosignal vmnc \
322  decklink fbdev linsys vcd \
323  apexsink cdaudio cog dc1394 dirac directfb \
324  gsettings jasper ladspa \
325  musepack musicbrainz nas neon ofa openal rsvg sdl sndfile timidity \
326  directdraw direct3d9 acm wininet \
327  wildmidi xvid lv2 teletextdec sndio uvch264 wasapi"
328 AC_SUBST(GST_PLUGINS_NONPORTED)
329
330 dnl these are all the gst plug-ins, compilable without additional libs
331 AG_GST_CHECK_PLUGIN(accurip)
332 AG_GST_CHECK_PLUGIN(adpcmdec)
333 AG_GST_CHECK_PLUGIN(adpcmenc)
334 AG_GST_CHECK_PLUGIN(aiff)
335 AG_GST_CHECK_PLUGIN(asfmux)
336 AG_GST_CHECK_PLUGIN(audiovisualizers)
337 AG_GST_CHECK_PLUGIN(autoconvert)
338 AG_GST_CHECK_PLUGIN(bayer)
339 AG_GST_CHECK_PLUGIN(camerabin2)
340 AG_GST_CHECK_PLUGIN(cdxaparse)
341 AG_GST_CHECK_PLUGIN(coloreffects)
342 AG_GST_CHECK_PLUGIN(dataurisrc)
343 AG_GST_CHECK_PLUGIN(dccp)
344 AG_GST_CHECK_PLUGIN(debugutils)
345 AG_GST_CHECK_PLUGIN(dtmf)
346 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
347 AG_GST_CHECK_PLUGIN(dvdspu)
348 AG_GST_CHECK_PLUGIN(faceoverlay)
349 AG_GST_CHECK_PLUGIN(festival)
350 AG_GST_CHECK_PLUGIN(fieldanalysis)
351 AG_GST_CHECK_PLUGIN(freeverb)
352 AG_GST_CHECK_PLUGIN(frei0r)
353 AG_GST_CHECK_PLUGIN(gaudieffects)
354 AG_GST_CHECK_PLUGIN(geometrictransform)
355 AG_GST_CHECK_PLUGIN(gdp)
356 AG_GST_CHECK_PLUGIN(hdvparse)
357 AG_GST_CHECK_PLUGIN(hls)
358 AG_GST_CHECK_PLUGIN(id3tag)
359 AG_GST_CHECK_PLUGIN(inter)
360 AG_GST_CHECK_PLUGIN(interlace)
361 AG_GST_CHECK_PLUGIN(ivfparse)
362 AG_GST_CHECK_PLUGIN(jp2kdecimator)
363 AG_GST_CHECK_PLUGIN(jpegformat)
364 AG_GST_CHECK_PLUGIN(librfb)
365 AG_GST_CHECK_PLUGIN(liveadder)
366 AG_GST_CHECK_PLUGIN(mpegdemux)
367 AG_GST_CHECK_PLUGIN(mpegtsdemux)
368 AG_GST_CHECK_PLUGIN(mpegtsmux)
369 AG_GST_CHECK_PLUGIN(mpegpsmux)
370 AG_GST_CHECK_PLUGIN(mve)
371 AG_GST_CHECK_PLUGIN(mxf)
372 AG_GST_CHECK_PLUGIN(nsf)
373 AG_GST_CHECK_PLUGIN(nuvdemux)
374 AG_GST_CHECK_PLUGIN(patchdetect)
375 AG_GST_CHECK_PLUGIN(pcapparse)
376 AG_GST_CHECK_PLUGIN(pnm)
377 AG_GST_CHECK_PLUGIN(rawparse)
378 AG_GST_CHECK_PLUGIN(real)
379 AG_GST_CHECK_PLUGIN(removesilence)
380 AG_GST_CHECK_PLUGIN(rtpmux)
381 AG_GST_CHECK_PLUGIN(scaletempo)
382 AG_GST_CHECK_PLUGIN(sdi)
383 AG_GST_CHECK_PLUGIN(sdp)
384 AG_GST_CHECK_PLUGIN(segmentclip)
385 AG_GST_CHECK_PLUGIN(siren)
386 AG_GST_CHECK_PLUGIN(smooth)
387 AG_GST_CHECK_PLUGIN(speed)
388 AG_GST_CHECK_PLUGIN(subenc)
389 AG_GST_CHECK_PLUGIN(stereo)
390 AG_GST_CHECK_PLUGIN(tta)
391 AG_GST_CHECK_PLUGIN(videofilters)
392 AG_GST_CHECK_PLUGIN(videomeasure)
393 AG_GST_CHECK_PLUGIN(videoparsers)
394 AG_GST_CHECK_PLUGIN(videosignal)
395 AG_GST_CHECK_PLUGIN(vmnc)
396 AG_GST_CHECK_PLUGIN(y4m)
397
398 dnl *** plug-ins to exclude ***
399
400 dnl real plugin only works on i386 and x86_64 for the time being.
401 if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then
402   AC_MSG_WARN([Not building real plugin, only works on 32bit and 64bit x86 platforms])
403   AG_GST_DISABLE_PLUGIN(real)
404 fi
405
406 dnl disable gst plugins we might not be able to build on this
407 dnl platform: librfb (ugly but minimally invasive)
408 dnl FIXME: maybe move to sys, or make work with winsock2
409 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
410 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
411
412 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
413   WINSOCK2_LIBS="-lws2_32"
414   AC_SUBST(WINSOCK2_LIBS)
415 fi
416
417 if test "x$HAVE_PTHREAD_H" = "xyes"; then
418   DCCP_LIBS="$DCCP_LIBS -lpthread"
419   AC_SUBST(DCCP_LIBS)
420 else
421   AG_GST_DISABLE_PLUGIN(dccp)
422 fi
423
424 dnl *** sys plug-ins ***
425
426 dnl DirectSound
427 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
428 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
429   HAVE_DIRECTSOUND="no"
430   save_CFLAGS="$CFLAGS"
431   save_LDFLAGS="$LDFLAGS"
432   save_LIBS="$LIBS"
433   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
434   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
435   LIBS="$LIBS -ldsound -ldxerr9 -luser32"
436   AC_MSG_CHECKING(for DirectSound LDFLAGS)
437   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
438 #include <windows.h>
439 #include <dxerr9.h>
440 #include <dsound.h>
441 ]], [[
442   DXGetErrorString9 (0);
443   DirectSoundCreate(NULL, NULL, NULL);
444 ]])],
445     [HAVE_DIRECTSOUND="yes"],
446     [HAVE_DIRECTSOUND="no"])
447   AC_MSG_RESULT($HAVE_DIRECTSOUND)
448   CFLAGS=$save_CFLAGS
449   LDFLAGS=$save_LDFLAGS
450   LIBS=$save_LIBS
451
452   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
453     dnl this is much more than we want
454     DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32"
455     AC_SUBST(DIRECTX_CFLAGS)
456     AC_SUBST(DIRECTX_LDFLAGS)
457     AC_SUBST(DIRECTSOUND_LIBS)
458   fi
459   AC_SUBST(HAVE_DIRECTSOUND)
460 ])
461
462 dnl WASAPI
463 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
464 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
465   HAVE_WASAPI="no"
466   save_CFLAGS="$CFLAGS"
467   save_LDFLAGS="$LDFLAGS"
468   save_LIBS="$LIBS"
469   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
470   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
471   LIBS="$LIBS -lole32 -lwinmm -lksuser"
472   AC_MSG_CHECKING(for WASAPI LDFLAGS)
473   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
474 #include <windows.h>
475 #include <stdio.h>
476 #include <mmsystem.h>
477 #include <mmdeviceapi.h>
478 ]], [[
479 int main ()
480 {
481     HRESULT hr = S_OK;
482
483     hr = CoInitialize(NULL);
484     if (FAILED(hr)) {
485         printf("CoInitialize failed: hr = 0x%08x", hr);
486         return __LINE__;
487     }
488
489         int result = 0;
490     // result = do_everything(argc, argv);
491     
492     CoUninitialize();
493     return result;
494 }
495 ]])],
496     [HAVE_WASAPI="yes"],
497     [HAVE_WASAPI="no"])
498   AC_MSG_RESULT($HAVE_WASAPI)
499   CFLAGS=$save_CFLAGS
500   LDFLAGS=$save_LDFLAGS
501   LIBS=$save_LIBS
502
503   if test "x$HAVE_WASAPI" = "xyes";  then
504     WASAPI_LIBS="-lole32 -lwinmm -lksuser"
505     AC_SUBST(WASAPI_LIBS)
506   fi
507   AC_SUBST(HAVE_WASAPI)
508 ])
509
510 dnl Direct3D
511 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
512 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
513   HAVE_DIRECT3D="no"
514   save_CFLAGS="$CFLAGS"
515   save_LDFLAGS="$LDFLAGS"
516   save_LIBS="$LIBS"
517   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
518   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
519   LIBS="$LIBS -ld3d9 -lgdi32"
520   AC_MSG_CHECKING(for Direct3D LDFLAGS)
521   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
522 #include <windows.h>
523 #include <d3d9.h>
524 ]], [[
525   Direct3DCreate9(D3D_SDK_VERSION);
526 ]])],
527     [HAVE_DIRECT3D="yes"],
528     [HAVE_DIRECT3D="no"])
529   AC_MSG_RESULT($HAVE_DIRECT3D)
530   CFLAGS=$save_CFLAGS
531   LDFLAGS=$save_LDFLAGS
532   LIBS=$save_LIBS
533
534   if test "x$HAVE_DIRECT3D" = "xyes";  then
535     DIRECT3D_LIBS="-lgdi32"
536     AC_SUBST(DIRECT3D_LIBS)
537   fi
538   AC_SUBST(HAVE_DIRECT3D)
539 ])
540
541 dnl DirectDraw
542 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true)
543 AG_GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [
544   HAVE_DIRECTDRAW="no"
545   save_CFLAGS="$CFLAGS"
546   save_LDFLAGS="$LDFLAGS"
547   save_LIBS="$LIBS"
548   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
549   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
550   LIBS="$LIBS -lddraw -lgdi32"
551   AC_MSG_CHECKING(for DirectDraw LDFLAGS)
552   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
553 #include <windows.h>
554 #include <ddraw.h>
555 ]], [[
556   GetStockObject(0);
557   DirectDrawCreate(NULL, NULL, NULL);
558 ]])],
559     [HAVE_DIRECTDRAW="yes"],
560     [HAVE_DIRECTDRAW="no"])
561   AC_MSG_RESULT($HAVE_DIRECTDRAW)
562   CFLAGS=$save_CFLAGS
563   LDFLAGS=$save_LDFLAGS
564   LIBS=$save_LIBS
565
566   if test "x$HAVE_DIRECTDRAW" = "xyes";  then
567     dnl this is much more than we want
568     DIRECTDRAW_LIBS="-lddraw -ldxguid -lgdi32"
569     AC_SUBST(DIRECTX_CFLAGS)
570     AC_SUBST(DIRECTX_LDFLAGS)
571     AC_SUBST(DIRECTDRAW_LIBS)
572   fi
573   AC_SUBST(HAVE_DIRECTDRAW)
574 ])
575
576 dnl Direct3D9
577 AM_CONDITIONAL(USE_DIRECT3D9, true)
578 AG_GST_CHECK_FEATURE(DIRECT3D9, [Direct3D9], winscreencap, [
579   HAVE_DIRECT3D9="no"
580   save_CFLAGS="$CFLAGS"
581   save_LDFLAGS="$LDFLAGS"
582   save_LIBS="$LIBS"
583   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
584   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
585   LIBS="$LIBS -ld3d9 -lgdi32"
586   AC_MSG_CHECKING(for Direct3D9 LDFLAGS)
587   AC_LINK_IFELSE([
588 #include <windows.h>
589 #include <d3d9.h>
590
591 int main ()
592 {
593   Direct3DCreate9(D3D_SDK_VERSION);
594
595   return 0;
596 }
597 ],
598     [HAVE_DIRECT3D9="yes"],
599     [HAVE_DIRECT3D9="no"])
600   AC_MSG_RESULT($HAVE_DIRECT3D9)
601   CFLAGS=$save_CFLAGS
602   LDFLAGS=$save_LDFLAGS
603   LIBS=$save_LIBS
604
605   if test "x$HAVE_DIRECT3D9" = "xyes";  then
606
607     DIRECT3D9_LIBS="-ld3d9 -lgdi32"
608     AC_SUBST(DIRECT3D9_LIBS)
609   fi
610   AC_SUBST(HAVE_DIRECT3D9)
611 ])
612
613 dnl DirectShow
614 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSHOW, true)
615 AG_GST_CHECK_FEATURE(DIRECTSHOW, [DirectShow plug-in], winks, [
616   HAVE_DIRECTSHOW="no"
617   save_CFLAGS="$CFLAGS"
618   save_LDFLAGS="$LDFLAGS"
619   save_LIBS="$LIBS"
620   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
621   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
622   LIBS="$LIBS -lole32 -luuid -lstrmiids"
623   AC_MSG_CHECKING(for DirectShow LDFLAGS)
624   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
625 #include <windows.h>
626 #include <strmif.h>
627 #include <uuids.h>
628
629 int main () {
630   IGraphBuilder *pGraph = NULL;
631   HRESULT hr = CoInitialize(NULL);
632   hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
633                         &IID_IGraphBuilder, (void **)&pGraph);
634
635   return 0;
636 }
637 ]])],
638     [HAVE_DIRECTSHOW="yes"],
639     [HAVE_DIRECTSHOW="no"])
640   AC_MSG_RESULT($HAVE_DIRECTSHOW)
641   CFLAGS=$save_CFLAGS
642   LDFLAGS=$save_LDFLAGS
643   LIBS=$save_LIBS
644
645   if test "x$HAVE_DIRECTSHOW" = "xyes";  then
646     dnl this is much more than we want
647     DIRECTSHOW_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
648     AC_SUBST(DIRECTX_CFLAGS)
649     AC_SUBST(DIRECTX_LDFLAGS)
650     AC_SUBST(DIRECTSHOW_LIBS)
651   fi
652   AC_SUBST(HAVE_DIRECTSHOW)
653 ])
654
655 dnl *** Android Media ***
656 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
657 HAVE_ANDROID_MEDIA="no"
658 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
659   case "$host" in
660     *android*)
661       AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
662       ;;
663     *)
664       HAVE_ANDROID_MEDIA="no"
665       ;;
666   esac
667 ])
668
669 dnl *** AppleMedia (OS X and iOS) ***
670 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
671 HAVE_APPLE_MEDIA="no"
672 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
673 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
674   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
675 ])
676 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
677 case "$host" in
678   *-*darwin*)
679     ;;
680   *)
681     HAVE_APPLE_MEDIA="no"
682     ;;
683 esac
684 HAVE_IOS="no"
685 if test "x$HAVE_APPLE_MEDIA" = "xyes"; then
686   AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
687 fi
688
689 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
690 if test "x$HAVE_IOS" = "xyes"; then
691   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
692 fi
693
694 dnl *** OS X videosrc ***
695 translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_VIDEO, true)
696 HAVE_OSX_VIDEO="no"
697 AG_GST_CHECK_FEATURE(OSX_VIDEO, [OSX video], osxvideosrc, [
698   AC_CHECK_TYPE([SeqGrabComponent], HAVE_OSX_VIDEO="yes", HAVE_OSX_VIDEO="no",
699       [#include <Quicktime/Quicktime.h>])
700 ])
701 dnl in case header Quicktime/Quicktime.h is found on other platforms
702 case "$host" in
703   *-*darwin*)
704     ;;
705   *)
706     HAVE_OSX_VIDEO="no"
707     ;;
708 esac
709
710 dnl *** OS/X AVCVideoServices ***
711 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
712 HAVE_AVC="no"
713 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
714   AC_LANG_PUSH([C++])
715   save_CPPFLAGS="$CPPFLAGS"
716   CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
717   save_LIBS="$LIBS"
718   LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
719   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
720   LIBS=$save_LIBS
721   CPPFLAGS=$save_CPPFLAGS
722   AC_LANG_POP([C++])
723 ])
724 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
725 case "$host" in
726   *-*darwin*)
727     ;;
728   *)
729     HAVE_AVC="no"
730     ;;
731 esac
732
733 dnl check for QuickTime
734 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
735 AG_GST_CHECK_FEATURE(QUICKTIME, [QuickTime wrapper], qtwrapper, [
736   AC_CHECK_TYPE([SampleReferenceRecord], HAVE_QUICKTIME="yes", HAVE_QUICKTIME="no",
737       [#include <Quicktime/Quicktime.h>])
738 ])
739
740 dnl check for shm_open (for shm plugin)
741 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
742 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
743     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
744         case $host in
745         *-darwin* | *-macos10*)
746             AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
747             HAVE_SHM=yes
748             ;;
749         *)
750             AC_CHECK_LIB([rt], [shm_open],
751                 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
752                 #include <sys/socket.h>
753                     ]),
754                 HAVE_SHM=no)
755             AC_SUBST(SHM_LIBS, "-lrt")
756             ;;
757         esac
758     else
759         HAVE_SHM=no
760     fi
761 ])
762
763 dnl check for Video CD
764 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
765 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
766   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
767 ])
768
769 dnl check for OpenSL ES
770 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
771 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
772   AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
773 ])
774
775 dnl *** UVC H264 ***
776 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
777 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
778   AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
779   AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-0.10 >= 0.10.36)
780   PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
781           AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
782           HAVE_GUDEV="yes" ],
783           [HAVE_GUDEV="no"])
784   PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
785           AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
786           HAVE_LIBUSB="yes" ],
787           [HAVE_LIBUSB="no"])
788   if test "x$HAVE_UVCVIDEO_H" == "xyes" && \
789      test "x$HAVE_GUDEV" == "xyes" && \
790      test "x$HAVE_LIBUSB" == "xyes"; then
791     HAVE_UVCH264=yes
792   else
793     HAVE_UVCH264=no
794   fi
795 ])
796 AC_SUBST(LIBUDEV_CFLAGS)
797 AC_SUBST(LIBUDEV_LIBS)
798 AC_SUBST(LIBUSB_CFLAGS)
799 AC_SUBST(LIBUSB_LIBS)
800
801
802 dnl *** ext plug-ins ***
803 dnl keep this list sorted alphabetically !
804
805 if test "x$BUILD_EXTERNAL" = "xyes"; then
806
807 dnl *** assrender ***
808 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
809 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
810   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.9.4, [
811     HAVE_ASSRENDER="yes" ], [
812     HAVE_ASSRENDER="no"
813   ])
814 ])
815 AC_SUBST(ASSRENDER_CFLAGS)
816 AC_SUBST(ASSRENDER_LIBS)
817
818 dnl *** vo-amrwbenc ***
819 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
820 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
821   AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
822 ])
823
824 dnl *** vo-aacenc ***
825 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
826 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
827   AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
828 ])
829
830 dnl *** apexsink ***
831 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
832 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
833   PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5  libcrypto ], [
834     HAVE_APEXSINK="yes"
835     saved_LIBS="$LIBS"
836     LIBS=""
837     AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
838     AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
839     APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
840     LIBS="$saved_LIBS"
841     AC_SUBST(APEXSINK_CFLAGS)
842     AC_SUBST(APEXSINK_LIBS)
843   ], [
844     APEXSINK="no"
845   ])
846 ])
847
848 dnl *** BZ2 ***
849 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
850 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
851   AG_GST_CHECK_LIBHEADER(BZ2, bz2, BZ2_bzCompress, ,bzlib.h, BZ2_LIBS="-lbz2")
852   AC_SUBST(BZ2_LIBS)
853 ])
854
855 #dnl *** cairo ***
856 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
857 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
858 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
859 #    HAVE_CAIRO=no
860 #  ])
861 #  AC_SUBST(CAIRO_CFLAGS)
862 #  AC_SUBST(CAIRO_LIBS)
863 #])
864
865 dnl *** cdaudio ***
866 translit(dnm, m, l) AM_CONDITIONAL(USE_CDAUDIO, true)
867 AG_GST_CHECK_FEATURE(CDAUDIO, [cdaudio], cdaudio, [
868   PKG_CHECK_MODULES(CDAUDIO, libcdaudio, [
869           HAVE_CDAUDIO="yes"
870   ], [
871           HAVE_CDAUDIO="no"
872   ])
873   AC_SUBST(CDAUDIO_CFLAGS)
874   AC_SUBST(CDAUDIO_LIBS)
875 ])
876
877 dnl *** celt ***
878 translit(dnm, m, l) AM_CONDITIONAL(USE_CELT, true)
879 AG_GST_CHECK_FEATURE(CELT, [celt], celt, [
880   PKG_CHECK_MODULES(CELT, celt >= 0.5.0, [
881           AC_DEFINE([HAVE_CELT], 1, [Define if libcelt 0.5 is installed])
882           HAVE_CELT="yes"
883   ], [
884           HAVE_CELT="no"
885   ])
886
887   PKG_CHECK_MODULES(CELT_0_7, celt >= 0.7.0, [
888           AC_DEFINE([HAVE_CELT_0_7], 1, [Define if libcelt 0.7 is installed])
889   ], [
890           dnl to prevent an error
891           true
892   ])
893
894   PKG_CHECK_MODULES(CELT_0_8, celt >= 0.8.0, [
895           AC_DEFINE([HAVE_CELT_0_8], 1, [Define if libcelt 0.8 is installed])
896   ], [
897           dnl to prevent an error
898           true
899   ])
900
901   PKG_CHECK_MODULES(CELT_0_11, celt >= 0.11.0, [
902           AC_DEFINE([HAVE_CELT_0_11], 1, [Define if libcelt 0.11 is installed])
903   ], [
904           dnl to prevent an error
905           true
906   ])
907   AC_SUBST(CELT_CFLAGS)
908   AC_SUBST(CELT_LIBS)
909 ])
910
911 dnl *** chromaprint ***
912 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
913 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
914   PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
915     HAVE_CHROMAPRINT="no"
916   ])
917   AC_SUBST(CHROMAPRINT_CFLAGS)
918   AC_SUBST(CHROMAPRINT_LIBS)
919 ])
920
921 dnl *** Cog ***
922 translit(dnm, m, l) AM_CONDITIONAL(USE_COG, true)
923 AG_GST_CHECK_FEATURE(COG, [Cog plugin], cog, [
924   PKG_CHECK_MODULES(COG, libpng >= 1.2, HAVE_COG="yes", [
925     HAVE_COG="no"
926   ])
927   AC_SUBST(COG_CFLAGS)
928   AC_SUBST(COG_LIBS)
929 ])
930
931 dnl *** Curl ***
932 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
933 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
934   PKG_CHECK_MODULES(CURL, libcurl >= 7.21.0, [
935     HAVE_CURL="yes"
936     AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/ip.h netinet/tcp.h fcntl.h], [ ], [
937       AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
938     ])
939     AC_MSG_CHECKING([for socket support needed by curlsink])
940     AC_MSG_RESULT($HAVE_CURL)
941   ], [
942     HAVE_CURL="no"
943   ])
944   AC_SUBST(CURL_CFLAGS)
945   AC_SUBST(CURL_LIBS)
946 ])
947
948 dnl *** dc1394  ***
949 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
950 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
951    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
952         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
953                 HAVE_DC1394="yes"
954         else
955                 HAVE_DC1394="no"
956         fi
957    ], [
958         HAVE_DC1394="no"
959         AC_MSG_RESULT(no)
960    ])
961    AC_SUBST(LIBDC1394_CFLAGS)
962    AC_SUBST(LIBDC1394_LIBS)
963 ])
964
965 dnl *** decklink  ***
966 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
967 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
968    HAVE_DECKLINK=no
969    case "$host" in
970      *-*linux*)
971        if test "x$HAVE_PTHREAD_H" = "xyes"; then
972          AC_CHECK_LIB(dl, dlopen,
973            [
974             HAVE_DECKLINK=yes
975             DECKLINK_CXXFLAGS=
976             DECKLINK_LIBS="-lpthread -ldl"
977            ])
978        fi
979        ;;
980      *-*darwin*)
981        if test "x$HAVE_PTHREAD_H" = "xyes"; then
982          AC_CHECK_LIB(dl, dlopen,
983            [
984             HAVE_DECKLINK=yes
985             DECKLINK_CXXFLAGS=
986             DECKLINK_LIBS="-lpthread -ldl"
987             HAVE_DECKLINK_OSX=yes
988            ])
989        fi
990        ;;
991      *)
992        HAVE_DECKLINK=no
993        ;;
994    esac
995
996    AC_SUBST(DECKLINK_CXXFLAGS)
997    AC_SUBST(DECKLINK_LIBS)
998 ])
999 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1000
1001 dnl **** DirectFB ****
1002 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1003 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1004   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1005     HAVE_DIRECTFB="no"
1006   ])
1007 ])
1008
1009 dnl **** Wayland ****
1010 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1011 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1012   PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.0.0, [
1013     HAVE_WAYLAND="yes" ], [ HAVE_WAYLAND="no"
1014   ])
1015 ])
1016
1017 dnl **** Dirac ****
1018 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRAC, true)
1019 AG_GST_CHECK_FEATURE(DIRAC, [dirac], dirac, [
1020   PKG_CHECK_MODULES(DIRAC, dirac >= 0.10, HAVE_DIRAC="yes", [
1021     HAVE_DIRAC="no"
1022   ])
1023 ])
1024
1025 dnl *** DTS ***
1026 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1027 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1028   HAVE_DTS="yes"
1029   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1030     DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1031   if test $HAVE_DTS = "no"; then
1032     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1033       [ DTS_LIBS="-ldts_pic $LIBM"
1034         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1035       ])
1036   fi
1037   AC_SUBST(DTS_LIBS)
1038 ])
1039
1040 dnl *** resindvd ***
1041 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1042 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1043   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1044     HAVE_RESINDVD="no"
1045   ])
1046 ])
1047
1048 dnl **** Free AAC Encoder (FAAC) ****
1049 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1050 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1051   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1052     FAAC_LIBS="-lfaac $LIBM")
1053   AS_SCRUB_INCLUDE(FAAC_CFLAGS)
1054   AC_SUBST(FAAC_LIBS)
1055 ])
1056
1057 dnl **** Free AAC Decoder (FAAD) ****
1058 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1059 AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
1060   HAVE_FAAD="yes"
1061   faad_hdr=""
1062   AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, $LIBM, faad.h,
1063     FAAD_LIBS="-lfaad $LIBM", HAVE_FAAD="no")
1064   if test $HAVE_FAAD = "no"; then
1065     AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h,
1066       [ FAAD_LIBS="-lfaad $LIBM"
1067         AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
1068         faad_hdr="neaacdec.h"
1069       ], [
1070         HAVE_FAAD="no"
1071       ],)
1072   else
1073     faad_hdr="faad.h"
1074   fi
1075   if test $HAVE_FAAD = "yes"; then
1076     AC_MSG_CHECKING([Checking for FAAD >= 2.0])
1077     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1078         #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1079         #error Not faad2
1080         #else
1081         /* Release candidate of 2.0 is not good enough for us. This field
1082          * was added only in 2.0 final and does not exist in 2.0-RC3 */
1083         faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
1084         #endif
1085     ]])],[
1086       HAVE_FAAD="yes"
1087
1088       AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr])
1089       for minor in 10 9 8 7 6 5 0; do
1090         if test x$faad2_minor_version = "x"; then
1091           AC_EGREP_CPP([GST_CHECK_FAAD_VERSION \"2\.$minor\"], [
1092               #include <$faad_hdr>
1093               GST_CHECK_FAAD_VERSION FAAD2_VERSION
1094             ], [
1095               faad2_minor_version=$minor
1096             ])
1097         fi
1098       done
1099       if test x$faad2_minor_version = "x"; then
1100         AC_MSG_RESULT([no idea])
1101       else
1102         AC_MSG_RESULT([2.$faad2_minor_version])
1103         AC_DEFINE_UNQUOTED([FAAD2_MINOR_VERSION], [$faad2_minor_version], [The x in 2.x])
1104       fi
1105     ],[
1106       HAVE_FAAD="no"
1107     ])
1108   fi
1109   AS_SCRUB_INCLUDE(FAAD_CFLAGS)
1110   AC_SUBST(FAAD_LIBS)
1111   AC_SUBST(FAAD_IS_NEAAC)
1112 ])
1113
1114 dnl *** fbdev ***
1115 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1116 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1117   if test "x$HAVE_FBDEV" != "xyes"; then
1118     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1119   fi
1120 ])
1121
1122 dnl *** flite ***
1123 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1124 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1125   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1126     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1127
1128   AC_SUBST(FLITE_CFLAGS)
1129   AC_SUBST(FLITE_LIBS)
1130 ])
1131
1132 dnl *** gsm ***
1133 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1134 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1135   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1136   if test $HAVE_GSM != "yes"; then
1137     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1138     if test $HAVE_GSM = "yes"; then
1139       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1140     fi
1141   fi
1142   AC_SUBST(GSM_LIBS)
1143 ])
1144
1145 dnl *** jasper ***
1146 translit(dnm, m, l) AM_CONDITIONAL(USE_JASPER, true)
1147 AG_GST_CHECK_FEATURE(JASPER, [jasper], jasperdec jasperenc, [
1148   AG_GST_CHECK_LIBHEADER(JASPER, jasper, jas_stream_fopen, , jasper/jasper.h,
1149     JASPER_LIBS="-ljasper")
1150   AC_SUBST(JASPER_LIBS)
1151 ])
1152
1153 dnl *** kate ***
1154 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1155 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1156   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1157     HAVE_KATE="no"
1158   ])
1159   AC_SUBST(KATE_CFLAGS)
1160   AC_SUBST(KATE_LIBS)
1161   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1162     [
1163       HAVE_TIGER="yes"
1164       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1165     ],
1166     [
1167       HAVE_TIGER="no"
1168     ]
1169   )
1170   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1171   AC_SUBST(TIGER_CFLAGS)
1172   AC_SUBST(TIGER_LIBS)
1173 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1174
1175 dnl *** ladspa ***
1176 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1177 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1178   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1179
1180   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1181   if test $HAVE_LRDF = "yes"; then
1182     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1183   fi
1184   AC_SUBST(LRDF_LIBS)
1185   AC_SUBST(LRDF_CFLAGS)
1186 ])
1187
1188 dnl *** LV2 ***
1189 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1190 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1191   PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
1192   AC_SUBST(SLV2_CFLAGS)
1193   AC_SUBST(SLV2_LIBS)
1194 ])
1195
1196 dnl *** libmms ***
1197 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1198 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1199   dnl check with pkg-config first
1200   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1201     HAVE_LIBMMS="no"
1202   ])
1203 ])
1204 AC_SUBST(LIBMMS_LIBS)
1205
1206 dnl *** linsys ***
1207 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
1208 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
1209   case "$host" in
1210     *-*linux*)
1211       HAVE_LINSYS=yes
1212       ;;
1213     *)
1214       HAVE_LINSYS=no
1215       ;;
1216   esac
1217 ])
1218
1219 dnl *** modplug ***
1220 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1221 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1222   if test "x$HAVE_CXX" != "xyes"; then
1223     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1224     HAVE_MODPLUG="no"
1225   else
1226     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1227   fi
1228   AC_SUBST(MODPLUG_CFLAGS)
1229   AC_SUBST(MODPLUG_LIBS)
1230 ])
1231
1232 dnl *** mimic ***
1233 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
1234 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
1235   MIMIC_REQUIRED=1.0
1236   PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
1237       HAVE_MIMIC=yes, HAVE_MIMIC=no)
1238   AC_SUBST(MIMIC_CFLAGS)
1239   AC_SUBST(MIMIC_LIBS)
1240 ])
1241
1242 dnl *** mjpegtools version info ***
1243 dnl some may prefer older version (given quirks above)
1244 dnl hm, no version info seems available within mjpegtools headers
1245 dnl and API really moves along
1246 echo
1247 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1248   mjpegtools_api=10601
1249 ], [
1250   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1251     mjpegtools_api=10800
1252   ], [
1253     PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1254       mjpegtools_api=20000
1255     ], [
1256       PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1257         dnl logging API changed in release candidates
1258         OLD_CFLAGS="$CFLAGS"
1259         OLD_LIBS="$LIBS"
1260         CFLAGS="$MJPEG_CFLAGS"
1261         LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM -lpthread"
1262         AC_CHECK_FUNC(mjpeg_loglev_t, [
1263           mjpegtools_api=10903
1264           ], [
1265           mjpegtools_api=10900
1266           ])
1267         CFLAGS="$OLD_CFLAGS"
1268         LIBS="$OLD_LIBS"
1269       ], [
1270         mjpegtools_api=0
1271       ])
1272     ])
1273   ])
1274 ])
1275 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1276   [mjpegtools API evolution])
1277
1278 dnl *** mpeg2enc ***
1279 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1280 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1281   HAVE_MPEG2ENC="no"
1282   dnl we require a c++ compiler for this one
1283   if [ test x$HAVE_CXX = xyes ]; then
1284     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1285     dnl since many distros include mjpegtools specifically without mplex
1286     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1287     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1288       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1289       touch config.h
1290       dnl switch over to c++ to test things
1291       AC_LANG([C++])
1292       OLD_CPPFLAGS="$CPPFLAGS"
1293       dnl HACK as above
1294       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1295       CPPFLAGS="$CPPFLAGS_GOOD -I."
1296       dnl check headers
1297       mpeg2enc_headers_ok=no
1298       AC_CHECK_HEADER([mpeg2encoder.hh], [
1299         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM -lpthread"
1300         OLD_LIBS="$LIBS"
1301         LIBS="$LIBS $MPEG2ENC_LIBS"
1302         AC_MSG_CHECKING([for valid mpeg2enc objects])
1303         AC_RUN_IFELSE([AC_LANG_SOURCE([[
1304           #include <mpeg2encoder.hh>
1305           #include <mpeg2encoptions.hh>
1306
1307           int
1308           main (int   argc,
1309                 char *argv[])
1310           {
1311             MPEG2EncOptions *options = new MPEG2EncOptions ();
1312             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1313             return 0;
1314           }
1315         ]])],[
1316           AC_MSG_RESULT(yes)
1317           dnl so far so good, let's check more things:
1318           dnl mjpegtools-1.8.0 does not install the required
1319           dnl mpeg2syntaxcodes.h header by default, and a new release
1320           dnl is not in sight, so check for this oversight in case
1321           dnl distros or folks have fixed this themselves
1322           if test "$mjpegtools_api" -ge "10800"; then
1323             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1324                 mpeg2enc_headers_ok=yes
1325               ], [
1326                 mpeg2enc_headers_ok=no
1327               ])
1328           else
1329             mpeg2enc_headers_ok=yes
1330           fi
1331           if test "x$mpeg2enc_headers_ok" = "xyes"; then
1332             HAVE_MPEG2ENC="yes"
1333           fi
1334           CPPFLAGS="$CPPFLAGS_GOOD"
1335           AC_SUBST(MPEG2ENC_CFLAGS)
1336           AC_SUBST(MPEG2ENC_LIBS)
1337         ],[
1338           AC_MSG_RESULT(no)
1339         ],[])
1340         LIBS="$OLD_LIBS"
1341       ])
1342
1343       CPPFLAGS="$OLD_CPPFLAGS"
1344       AC_LANG([C])
1345     ], [
1346       HAVE_MPEG2ENC="no"
1347     ])
1348   fi
1349 ])
1350
1351 dnl *** mpg123 ***
1352 translit(dnm, m, l) AM_CONDITIONAL(USE_MPG123, true)
1353 AG_GST_CHECK_FEATURE(MPG123, [mpg123 audio decoder], mpg123, [
1354   PKG_CHECK_MODULES(MPG123, libmpg123 >= 1.13, HAVE_MPG123="yes", HAVE_MPG123="no")
1355   AC_SUBST(MPG123_CFLAGS)
1356   AC_SUBST(MPG123_LIBS)
1357 ])
1358
1359 dnl *** mplex ***
1360 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1361 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1362   HAVE_MPLEX="no"
1363   dnl we require a c++ compiler for this one
1364   if [ test x$HAVE_CXX = xyes ]; then
1365     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1366     dnl since many distros include mjpegtools specifically without mplex
1367     dnl and mpeg2enc, we check for mplex on its own, too.
1368     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1369     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1370       dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1371       touch config.h
1372       dnl switch over to c++ to test things
1373       AC_LANG([C++])
1374       OLD_CPPFLAGS="$CPPFLAGS"
1375       dnl HACK as above
1376       CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1377       CPPFLAGS="$CPPFLAGS_GOOD -I."
1378       AC_CHECK_HEADER(interact.hpp, [
1379         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1380         OLD_LIBS="$LIBS"
1381         LIBS="$LIBS $MPLEX_LIBS"
1382         OLD_LDFLAGS="$LDFLAGS"
1383         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1384         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1385         dnl don't want this here
1386         AC_MSG_CHECKING([for valid mplex objects])
1387         AC_RUN_IFELSE([AC_LANG_SOURCE([[
1388
1389 #include <interact.hpp>
1390 #include <outputstrm.hpp>
1391 #include <multiplexor.hpp>
1392 int
1393 main (int   argc,
1394       char *argv[])
1395 {
1396   class TestOutputStream : public OutputStream {
1397   public:
1398     TestOutputStream () : OutputStream () { }
1399     void Write (uint8_t *a, unsigned int b) { }
1400     void NextSegment () { }
1401     uint64_t SegmentSize () { }
1402     void Close () { }
1403     int Open () { }
1404 };
1405   MultiplexJob *job = new MultiplexJob ();
1406   vector<IBitStream *> inputs;
1407   job->SetupInputStreams (inputs);
1408   TestOutputStream *out = new TestOutputStream ();
1409   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1410   return 0;
1411 }
1412         ]])],[
1413           HAVE_MPLEX="yes"
1414           CPPFLAGS="$CPPFLAGS_GOOD"
1415           AC_SUBST(MPLEX_CFLAGS)
1416           AC_SUBST(MPLEX_LIBS)
1417           AC_SUBST(MPLEX_LDFLAGS)
1418           AC_MSG_RESULT(yes)
1419         ],[AC_MSG_RESULT(no)],[])
1420         LIBS="$OLD_LIBS"
1421         LDFLAGS="$OLD_LDFLAGS"
1422       ])
1423       CPPFLAGS="$OLD_CPPFLAGS"
1424       AC_LANG([C])
1425     ], HAVE_MPLEX="no")
1426   fi
1427 ])
1428
1429 dnl *** musepack ***
1430 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1431 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1432   AC_CHECK_HEADER([mpc/mpcdec.h], [
1433     HAVE_MUSEPACK="yes"
1434     MUSEPACK_LIBS="-lmpcdec"
1435     AC_SUBST(MUSEPACK_LIBS)
1436     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1437       HAVE_MUSEPACK="yes"
1438       MUSEPACK_LIBS="-lmpcdec"
1439       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1440       AC_SUBST(MUSEPACK_LIBS)
1441     ], [HAVE_MUSEPACK="no"])])
1442 ])
1443
1444 dnl *** musicbrainz ***
1445 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true)
1446 AG_GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz tag generation], musicbrainz, [
1447   PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz >= 2.1.0, HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no")
1448   AC_SUBST(MUSICBRAINZ_CFLAGS)
1449   AC_SUBST(MUSICBRAINZ_LIBS)
1450 ])
1451
1452 dnl *** MythTV ***
1453 translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true)
1454 AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [
1455   PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [
1456     HAVE_MYTHTV="no"
1457   ])
1458   AC_SUBST(GMYTH_CFLAGS)
1459   AC_SUBST(GMYTH_LIBS)
1460 ])
1461
1462 dnl *** nas ***
1463 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
1464 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
1465   HAVE_NAS="no"
1466   AG_GST_CHECK_X
1467   if test "x$HAVE_X" = "xyes"; then
1468     save_cppflags=$CFLAGS
1469     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1470     AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
1471       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
1472     CPPFLAGS="$save_cppflags"
1473   fi
1474   AC_SUBST(NAS_CFLAGS)
1475   AC_SUBST(NAS_LIBS)
1476 ])
1477
1478 dnl *** neon ***
1479 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1480 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1481   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.29.99, HAVE_NEON="yes", [
1482     HAVE_NEON="no"
1483   ])
1484   AC_SUBST(NEON_CFLAGS)
1485   AC_SUBST(NEON_LIBS)
1486 ])
1487
1488 dnl *** ofa ***
1489 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1490 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1491   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1492     HAVE_OFA="no"
1493   ])
1494   AC_SUBST(OFA_CFLAGS)
1495   AC_SUBST(OFA_LIBS)
1496 ])
1497
1498 dnl *** OpenAL ***
1499 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1500 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1501   PKG_CHECK_MODULES(OPENAL, openal, HAVE_OPENAL="yes", [
1502     HAVE_OPENAL="no"
1503   ])
1504   AC_SUBST(OPENAL_CFLAGS)
1505   AC_SUBST(OPENAL_LIBS)
1506 ])
1507
1508 dnl *** opencv ***
1509 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1510 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1511   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1512   dnl and don't want the build to break when a new opencv version comes out.
1513   dnl Need to adjust this upwards once we know that our code compiles fine with
1514   dnl a new version and the no-backward-compatibility define. (There doesn't
1515   dnl seem to be a switch to suppress the warnings the cvcompat.h header
1516   dnl causes.)
1517   PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv <= 2.4.2 , [
1518     AC_PROG_CXX
1519     AC_LANG([C++])
1520     OLD_CPPFLAGS=$CPPFLAGS
1521     CPPFLAGS=$OPENCV_CFLAGS
1522     AC_CHECK_HEADERS([highgui.h opencv2/highgui/highgui_c.h])
1523     CPPFLAGS=$OLD_CPPFLAGS
1524     AC_LANG([C])
1525
1526     if test $ac_cv_header_highgui_h = "yes" -o $ac_cv_header_opencv2_highgui_highgui_c_h = "yes" ; then
1527       HAVE_OPENCV="yes"
1528     else
1529       AC_MSG_RESULT([neither highgui.h nor opencv2/highgui/highgui_c.h could not be found])
1530       HAVE_OPENCV="no"
1531     fi
1532   ], [
1533     HAVE_OPENCV="no"
1534   ])
1535   OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1536   AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1537   AC_SUBST(OPENCV_PREFIX)
1538   AC_SUBST(OPENCV_CFLAGS)
1539   AC_SUBST(OPENCV_LIBS)
1540 ])
1541
1542 dnl *** Opus ***
1543 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1544 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1545   PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1546           AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1547           HAVE_OPUS="yes"
1548   ], [
1549           HAVE_OPUS="no"
1550   ])
1551   AC_SUBST(OPUS_CFLAGS)
1552   AC_SUBST(OPUS_LIBS)
1553 ])
1554
1555 dnl *** pvr ***
1556 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
1557 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
1558   PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
1559   AC_SUBST(PVR_CFLAGS)
1560   AC_SUBST(PVR_LIBS)
1561 ])
1562
1563  AC_ARG_WITH([pvr-external-headers],
1564               AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
1565               [AS_IF([test "x$with_pvr_external_headers" = "xno"],
1566                      [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
1567               [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
1568
1569 dnl *** rsvg ***
1570 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1571 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1572   PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.14 cairo, [
1573     HAVE_RSVG="yes"
1574     PKG_CHECK_MODULES(RSVG_2_35_0, librsvg-2.0 >= 2.35.0, HAVE_RSVG_2_35_0="yes", HAVE_RSVG_2_35_0="no")
1575     if test "x$HAVE_RSVG_2_35_0" = "xyes"; then
1576       AC_DEFINE(HAVE_RSVG_2_35_0, [1], [Have RSVG 2.35.0 or newer])
1577     fi
1578   ], [
1579     HAVE_RSVG="no"
1580   ])
1581   AC_SUBST(RSVG_CFLAGS)
1582   AC_SUBST(RSVG_LIBS)
1583 ])
1584
1585 dnl *** eglgles ***
1586 translit(dnm, m, l) AM_CONDITIONAL(USE_EGLGLES, true)
1587 AG_GST_CHECK_FEATURE(EGLGLES, [eglgles sink], eglgles, [
1588   HAVE_EGLGLES="no"
1589   PKG_CHECK_MODULES(EGLGLES, egl glesv2, HAVE_EGLGLES="yes", [
1590     HAVE_EGLGLES="no"
1591     old_LIBS=$LIBS
1592     old_CFLAGS=$CFLAGS
1593     AC_CHECK_LIB([GLESv2], [glEnable],
1594       [
1595         AC_CHECK_HEADER([GLES2/gl2.h],
1596           [
1597             AC_CHECK_LIB([EGL], [eglGetProcAddress],
1598               [
1599                 AC_CHECK_HEADER([EGL/egl.h],
1600                   [
1601                     HAVE_EGLGLES="yes"
1602                     EGLGLES_LIBS="-lGLESv2 -lEGL"
1603                     EGLGLES_CFLAGS=""
1604                   ])
1605               ])
1606           ])
1607       ])
1608     LIBS=$old_LIBS
1609     CFLAGS=$old_CFLAGS
1610   ])
1611   AC_SUBST(EGLGLES_CFLAGS)
1612   AC_SUBST(EGLGLES_LIBS)
1613 ])
1614
1615 dnl *** timidity ***
1616 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
1617 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
1618   PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
1619     HAVE_TIMIDITY="yes",
1620         AC_MSG_CHECKING([for timidity.cfg])
1621         timidity_cfg=""
1622         if test -r /etc/timidity.cfg; then
1623           timidity_cfg=/etc/timidity.cfg
1624         elif test -r /etc/timidity/timidity.cfg; then
1625           timidity_cfg=/etc/timidity/timidity.cfg
1626         elif test -r /usr/share/timidity/timidity.cfg; then
1627           timidity_cfg=/usr/share/timidity/timidity.cfg
1628         elif test -r /usr/local/share/timidity/timidity.cfg; then
1629           timidity_cfg=/usr/local/share/timidity/timidity.cfg
1630         fi
1631         if test "x$timidity_cfg" != "x"; then
1632           AC_MSG_RESULT($timidity_cfg)
1633       AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
1634         else
1635           AC_MSG_RESULT([not found])
1636         fi
1637   ], [
1638     HAVE_TIMIDITY="no"
1639   ])
1640   AC_SUBST(TIMIDITY_CFLAGS)
1641   AC_SUBST(TIMIDITY_LIBS)
1642 ])
1643
1644 dnl *** teletextdec ***
1645 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
1646 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
1647   AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
1648  ])
1649
1650 dnl *** wildmidi ***
1651 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
1652 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
1653   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
1654                          WildMidi_Init, ,
1655                          wildmidi_lib.h,
1656                          WILDMIDI_LIBS="-lWildMidi")
1657   AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
1658
1659   if test "x$HAVE_WILDMIDI" = "xyes"; then
1660          WILDMIDI_CFLAGS=
1661          WILDMIDI_LIBS=-lWildMidi
1662          AC_MSG_NOTICE(compiling gstWildMidi)
1663   else
1664          WILDMIDI_CFLAGS=
1665          WILDMIDI_LIBS=
1666          AC_MSG_WARN(no WildMidi library found (libWildMidi))
1667   fi
1668   AC_SUBST(WILDMIDI_CFLAGS)
1669   AC_SUBST(WILDMIDI_LIBS)
1670 ])
1671
1672 dnl *** SDL ***
1673 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
1674 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
1675     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
1676 ])
1677
1678 dnl *** sndfile ***
1679 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
1680 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
1681   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
1682   AC_SUBST(SNDFILE_CFLAGS)
1683   AC_SUBST(SNDFILE_LIBS)
1684 ])
1685
1686 dnl *** soundtouch ***
1687 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
1688 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
1689   dnl We only need -lBPM on soundtouch < 1.4
1690   dnl We check for libSoundTouch since Debian used it before upstream
1691   dnl added a pkgconfig file.
1692   HAVE_SOUNDTOUCH_1_4=yes
1693   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
1694     [HAVE_SOUNDTOUCH=yes],
1695     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
1696       [HAVE_SOUNDTOUCH=yes],
1697       [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
1698         [HAVE_SOUNDTOUCH=yes
1699           HAVE_SOUNDTOUCH_1_4=no
1700           SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
1701         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
1702           [HAVE_SOUNDTOUCH=yes],
1703           [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
1704             [HAVE_SOUNDTOUCH=yes
1705               HAVE_SOUNDTOUCH_1_4=no
1706               SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
1707             HAVE_SOUNDTOUCH=no)])])])])
1708   AC_SUBST(SOUNDTOUCH_CFLAGS)
1709   AC_SUBST(SOUNDTOUCH_LIBS)
1710   if test "x$HAVE_CXX" != "xyes"; then
1711     USE_SOUNDTOUCH=false
1712     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
1713   fi
1714   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
1715      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
1716          [Defined if the available libSoundTouch is >= 1.4])
1717   fi
1718 ])
1719
1720 dnl *** spc ***
1721 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
1722 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
1723   AC_CHECK_HEADER(openspc.h, [
1724     AC_CHECK_LIB(openspc, OSPC_Init, [
1725       SPC_LIBS="-lopenspc"
1726       AC_SUBST(SPC_LIBS)
1727       HAVE_SPC=yes
1728     ], [
1729       HAVE_SPC=no
1730     ])
1731   ], [
1732     HAVE_SPC=no
1733   ])
1734 ])
1735
1736 dnl *** gme ***
1737 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
1738 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
1739   AC_CHECK_HEADER(gme/gme.h, [
1740     AC_CHECK_LIB(gme, gme_new_emu, [
1741       GME_LIBS="-lgme"
1742       AC_SUBST(GME_LIBS)
1743       HAVE_GME=yes
1744     ], [
1745       HAVE_GME=no
1746     ])
1747   ], [
1748     HAVE_GME=no
1749   ])
1750
1751   if test "x$HAVE_GME" = "xyes"; then
1752     AC_CHECK_LIB(gme, gme_enable_accuracy, [
1753       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
1754       ])
1755   fi
1756 ])
1757
1758 dnl *** swfdec ***
1759 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
1760 AG_GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
1761   PKG_CHECK_MODULES(SWFDEC, swfdec-0.3 >= 0.3.6, HAVE_SWFDEC=yes, [
1762     HAVE_SWFDEC=no
1763   ])
1764   AC_SUBST(SWFDEC_CFLAGS)
1765   AC_SUBST(SWFDEC_LIBS)
1766 ])
1767
1768 dnl *** XVID ***
1769 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
1770 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
1771   HAVE_XVID=no
1772   AC_CHECK_HEADER(xvid.h, [
1773     OLD_LIBS="$LIBS"
1774     LIBS="-lpthread $LIBM"
1775     AC_CHECK_LIB(xvidcore, xvid_encore, [
1776       AC_CHECK_LIB(xvidcore, xvid_decore, [
1777         AC_CHECK_LIB(xvidcore, xvid_global, [
1778           AC_MSG_CHECKING([for uptodate XviD API version])
1779           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
1780               #if XVID_API_MAJOR(XVID_API) != 4
1781               #error "Incompatible XviD API version"
1782               #endif
1783               #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
1784               #error "Incompatible XviD API version"
1785               #endif
1786           ]])],[ AC_MSG_RESULT(yes)
1787             XVID_LIBS="-lxvidcore $LIBM"
1788             AC_SUBST(XVID_LIBS)
1789             HAVE_XVID=yes
1790           ],[AC_MSG_RESULT(no) ])
1791         ], )
1792       ], )
1793     ], )
1794     LIBS="$OLD_LIBS"
1795   ], )
1796 ])
1797
1798 dnl *** dvb ***
1799 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
1800 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
1801   AC_MSG_CHECKING([Checking for up to date dvb installation])
1802   AC_CHECK_HEADER(linux/dvb/frontend.h, [HAVE_DVB="yes"], [HAVE_DVB="no"])
1803 ])
1804
1805 dnl *** wininet ***
1806 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
1807 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
1808   AC_MSG_CHECKING([Checking for windows internet support])
1809   AC_CHECK_HEADERS([windows.h wininet.h],
1810       [HAVE_WININET="yes"], [HAVE_WININET="no"],
1811       [AC_INCLUDES_DEFAULT
1812 #include <windows.h>])
1813 ])
1814
1815 dnl *** acm ***
1816 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
1817 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
1818   AC_MSG_CHECKING([Checking for ACM support])
1819   AC_CHECK_HEADERS([windows.h msacm.h],
1820       [HAVE_ACM="yes"
1821        AC_SUBST(ACMENC_CFLAGS)
1822        AC_SUBST(ACMMP3DEC_CFLAGS)
1823       ], [HAVE_ACM="no"],
1824       [AC_INCLUDES_DEFAULT
1825 #include <windows.h>])
1826 ])
1827
1828 dnl *** vdpau ***
1829 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
1830 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
1831   VDPAU_CFLAGS=
1832   VDPAU_LIBS=-lvdpau
1833   HAVE_VDPAU=no
1834
1835   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
1836   [
1837     if test "$HAVE_VDPAU" = "no"; then
1838       saved_CPPFLAGS="$CPPFLAGS"
1839       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
1840
1841       if test -z "$HAVE_VDPAU_H"; then
1842         dnl Didn't find VDPAU header straight away.
1843         dnl Try /usr/include/nvidia. Need to clear caching vars first
1844         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
1845         unset ac_cv_header_vdpau_vdpau_h
1846         unset ac_cv_header_vdpau_vdpau_x11_h
1847         VDPAU_CFLAGS="-I/usr/include/nvidia"
1848         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
1849         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
1850         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
1851       fi
1852
1853       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
1854
1855       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
1856         dnl Found the headers - look for the lib
1857         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
1858         saved_LIBS="$LIBS"
1859         LIBS="$VDPAU_LIBS $saved_LIBS"
1860         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
1861         LIBS="$saved_LIBS"
1862       fi
1863     fi
1864   ])
1865
1866   if test "$HAVE_VDPAU" = "yes"; then
1867     AC_MSG_NOTICE([Found up to date VDPAU installation])
1868     AC_SUBST(VDPAU_CFLAGS)
1869     AC_SUBST(VDPAU_LIBS)
1870   fi
1871 ])
1872
1873 dnl *** schroedinger ***
1874 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
1875 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
1876   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
1877 ])
1878
1879 dnl *** zbar ***
1880 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
1881 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
1882   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
1883 ])
1884
1885 dnl *** rtmp ***
1886 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
1887 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
1888   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
1889 ])
1890
1891 dnl *** spandsp ***
1892 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
1893 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
1894   PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
1895     HAVE_SPANDSP="yes" ], [
1896     HAVE_SPANDSP="no"
1897   ])
1898 ])
1899 AC_SUBST(SPANDSP_CFLAGS)
1900 AC_SUBST(SPANDSP_LIBS)
1901
1902 dnl *** GSettings ***
1903 translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true)
1904 AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [
1905   AG_GST_PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.25.0)
1906   if test "x$HAVE_GSETTINGS" = "xyes"; then
1907     GLIB_GSETTINGS
1908   fi
1909 ])
1910
1911 dnl *** sndio ***
1912 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
1913 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
1914   AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
1915   if test "x$HAVE_SNDIO" = "xyes"; then
1916     AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
1917     if test "x$HAVE_SNDIO" = "xyes"; then
1918       SNDIO_LIBS=-lsndio
1919       AC_SUBST(SNDIO_LIBS)
1920     fi
1921   fi
1922 ])
1923
1924 else
1925
1926 dnl not building plugins with external dependencies,
1927 dnl but we still need to set the conditionals
1928
1929 AM_CONDITIONAL(USE_ASSRENDER, false)
1930 AM_CONDITIONAL(USE_VOAMRWBENC, false)
1931 AM_CONDITIONAL(USE_VOAACENC, false)
1932 AM_CONDITIONAL(USE_APEXSINK, false)
1933 AM_CONDITIONAL(USE_BZ2, false)
1934 AM_CONDITIONAL(USE_CDAUDIO, false)
1935 AM_CONDITIONAL(USE_CELT, false)
1936 AM_CONDITIONAL(USE_CHROMAPRINT, false)
1937 AM_CONDITIONAL(USE_COG, false)
1938 AM_CONDITIONAL(USE_CURL, false)
1939 AM_CONDITIONAL(USE_DC1394, false)
1940 AM_CONDITIONAL(USE_DECKLINK, false)
1941 AM_CONDITIONAL(DECKLINK_OSX, false)
1942 AM_CONDITIONAL(USE_DIRECTFB, false)
1943 AM_CONDITIONAL(USE_WAYLAND, false)
1944 AM_CONDITIONAL(USE_DIRAC, false)
1945 AM_CONDITIONAL(USE_DTS, false)
1946 AM_CONDITIONAL(USE_EXIF, false)
1947 AM_CONDITIONAL(USE_RESINDVD, false)
1948 AM_CONDITIONAL(USE_FAAC, false)
1949 AM_CONDITIONAL(USE_FAAD, false)
1950 AM_CONDITIONAL(USE_FBDEV, false)
1951 AM_CONDITIONAL(USE_FLITE, false)
1952 AM_CONDITIONAL(USE_GSM, false)
1953 AM_CONDITIONAL(USE_JASPER, false)
1954 AM_CONDITIONAL(USE_KATE, false)
1955 AM_CONDITIONAL(USE_TIGER, false)
1956 AM_CONDITIONAL(USE_LADSPA, false)
1957 AM_CONDITIONAL(USE_LV2, false)
1958 AM_CONDITIONAL(USE_LIBMMS, false)
1959 AM_CONDITIONAL(USE_LINSYS, false)
1960 AM_CONDITIONAL(USE_MODPLUG, false)
1961 AM_CONDITIONAL(USE_MIMIC, false)
1962 AM_CONDITIONAL(USE_MPEG2ENC, false)
1963 AM_CONDITIONAL(USE_MPG123, false)
1964 AM_CONDITIONAL(USE_MPLEX, false)
1965 AM_CONDITIONAL(USE_MUSEPACK, false)
1966 AM_CONDITIONAL(USE_MUSICBRAINZ, false)
1967 AM_CONDITIONAL(USE_MYTHTV, false)
1968 AM_CONDITIONAL(USE_NAS, false)
1969 AM_CONDITIONAL(USE_NEON, false)
1970 AM_CONDITIONAL(USE_OFA, false)
1971 AM_CONDITIONAL(USE_OPENAL, false)
1972 AM_CONDITIONAL(USE_OPENCV, false)
1973 AM_CONDITIONAL(USE_OPUS, false)
1974 AM_CONDITIONAL(USE_PVR, false)
1975 AM_CONDITIONAL(USE_RSVG, false)
1976 AM_CONDITIONAL(USE_TIMIDITY, false)
1977 AM_CONDITIONAL(USE_WILDMIDI, false)
1978 AM_CONDITIONAL(USE_SDL, false)
1979 AM_CONDITIONAL(USE_SNDFILE, false)
1980 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
1981 AM_CONDITIONAL(USE_SPANDSP, false)
1982 AM_CONDITIONAL(USE_SPC, false)
1983 AM_CONDITIONAL(USE_GME, false)
1984 AM_CONDITIONAL(USE_GSETTINGS, false)
1985 AM_CONDITIONAL(USE_SWFDEC, false)
1986 AM_CONDITIONAL(USE_XVID, false)
1987 AM_CONDITIONAL(USE_DVB, false)
1988 AM_CONDITIONAL(USE_WININET, false)
1989 AM_CONDITIONAL(USE_ACM, false)
1990 AM_CONDITIONAL(USE_VDPAU, false)
1991 AM_CONDITIONAL(USE_SCHRO, false)
1992 AM_CONDITIONAL(USE_ZBAR, false)
1993 AM_CONDITIONAL(USE_RTMP, false)
1994 AM_CONDITIONAL(USE_TELETEXTDEC, false)
1995 AM_CONDITIONAL(USE_SNDIO, false)
1996 AM_CONDITIONAL(USE_UVCH264, false)
1997
1998 fi dnl of EXT plugins
1999
2000 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2001
2002 dnl Overview:
2003 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
2004 dnl GST_*:              flags shared by built objects to link against GStreamer
2005 dnl GST_ALL_LDFLAGS:    linker flags shared by all
2006 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
2007 dnl GST_LT_LDFLAGS:     library versioning of our libraries
2008 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2009
2010 dnl GST_OPTION_CFLAGS
2011 if test "x$USE_DEBUG" = xyes; then
2012    PROFILE_CFLAGS="-g"
2013 fi
2014 AC_SUBST(PROFILE_CFLAGS)
2015
2016 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2017   dnl Define _only_ during CVS (not pre-releases or releases)
2018   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2019 else
2020   DEPRECATED_CFLAGS=""
2021 fi
2022 AC_SUBST(DEPRECATED_CFLAGS)
2023
2024 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2025 dnl at make time with e.g. make ERROR_CFLAGS=""
2026 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2027 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2028 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2029 AC_SUBST(GST_OPTION_CFLAGS)
2030 AC_SUBST(GST_OPTION_CXXFLAGS)
2031 AC_SUBST(GST_OPTION_OBJCFLAGS)
2032
2033 dnl FIXME: do we want to rename to GST_ALL_* ?
2034 dnl prefer internal headers to already installed ones
2035 dnl also add builddir include for enumtypes and marshal
2036 dnl add GST_OPTION_CFLAGS, but overridable
2037 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
2038 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
2039 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
2040 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
2041 AC_SUBST(GST_CFLAGS)
2042 AC_SUBST(GST_CXXFLAGS)
2043 AC_SUBST(GST_OBJCFLAGS)
2044 AC_SUBST(GST_LIBS)
2045 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2046 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2047 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2048 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2049 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2050 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2051
2052 dnl LDFLAGS really should only contain flags, not libs - they get added before
2053 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2054 GST_ALL_LDFLAGS="-no-undefined"
2055 AC_SUBST(GST_ALL_LDFLAGS)
2056
2057 dnl GST_LIB_LDFLAGS
2058 dnl linker flags shared by all libraries
2059 dnl LDFLAGS modifier defining exported symbols from built libraries
2060 dnl (export _gst_foo but not __gst_foo)
2061 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
2062 AC_SUBST(GST_LIB_LDFLAGS)
2063
2064 dnl this really should only contain flags, not libs - they get added before
2065 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2066 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc.*' $GST_ALL_LDFLAGS"
2067 AC_SUBST(GST_PLUGIN_LDFLAGS)
2068
2069 dnl *** output files ***
2070
2071 dnl po/Makefile.in
2072
2073 AC_CONFIG_FILES(
2074 Makefile
2075 common/Makefile
2076 common/m4/Makefile
2077 gst-plugins-bad.spec
2078 gst/Makefile
2079 gst/accurip/Makefile
2080 gst/adpcmdec/Makefile
2081 gst/adpcmenc/Makefile
2082 gst/aiff/Makefile
2083 gst/asfmux/Makefile
2084 gst/audiovisualizers/Makefile
2085 gst/autoconvert/Makefile
2086 gst/bayer/Makefile
2087 gst/camerabin2/Makefile
2088 gst/cdxaparse/Makefile
2089 gst/coloreffects/Makefile
2090 gst/dataurisrc/Makefile
2091 gst/dccp/Makefile
2092 gst/debugutils/Makefile
2093 gst/dtmf/Makefile
2094 gst/dvbsuboverlay/Makefile
2095 gst/dvdspu/Makefile
2096 gst/faceoverlay/Makefile
2097 gst/festival/Makefile
2098 gst/fieldanalysis/Makefile
2099 gst/freeverb/Makefile
2100 gst/frei0r/Makefile
2101 gst/gaudieffects/Makefile
2102 gst/geometrictransform/Makefile
2103 gst/gdp/Makefile
2104 gst/hdvparse/Makefile
2105 gst/hls/Makefile
2106 gst/id3tag/Makefile
2107 gst/inter/Makefile
2108 gst/interlace/Makefile
2109 gst/ivfparse/Makefile
2110 gst/jp2kdecimator/Makefile
2111 gst/jpegformat/Makefile
2112 gst/librfb/Makefile
2113 gst/liveadder/Makefile
2114 gst/mpegdemux/Makefile
2115 gst/mpegtsdemux/Makefile
2116 gst/mpegtsmux/Makefile
2117 gst/mpegtsmux/tsmux/Makefile
2118 gst/mpegpsmux/Makefile
2119 gst/mve/Makefile
2120 gst/mxf/Makefile
2121 gst/nsf/Makefile
2122 gst/nuvdemux/Makefile
2123 gst/patchdetect/Makefile
2124 gst/pcapparse/Makefile
2125 gst/pnm/Makefile
2126 gst/rawparse/Makefile
2127 gst/real/Makefile
2128 gst/removesilence/Makefile
2129 gst/rtpmux/Makefile
2130 gst/scaletempo/Makefile
2131 gst/sdi/Makefile
2132 gst/sdp/Makefile
2133 gst/segmentclip/Makefile
2134 gst/siren/Makefile
2135 gst/smooth/Makefile
2136 gst/speed/Makefile
2137 gst/subenc/Makefile
2138 gst/stereo/Makefile
2139 gst/tta/Makefile
2140 gst/videofilters/Makefile
2141 gst/videomeasure/Makefile
2142 gst/videoparsers/Makefile
2143 gst/videosignal/Makefile
2144 gst/vmnc/Makefile
2145 gst/y4m/Makefile
2146 gst-libs/Makefile
2147 gst-libs/gst/Makefile
2148 gst-libs/gst/basecamerabinsrc/Makefile
2149 gst-libs/gst/interfaces/Makefile
2150 gst-libs/gst/signalprocessor/Makefile
2151 gst-libs/gst/codecparsers/Makefile
2152 gst-libs/gst/video/Makefile
2153 sys/Makefile
2154 sys/dshowdecwrapper/Makefile
2155 sys/acmenc/Makefile
2156 sys/acmmp3dec/Makefile
2157 sys/androidmedia/Makefile
2158 sys/applemedia/Makefile
2159 sys/avc/Makefile
2160 sys/d3dvideosink/Makefile
2161 sys/decklink/Makefile
2162 sys/directdraw/Makefile
2163 sys/directsound/Makefile
2164 sys/dshowsrcwrapper/Makefile
2165 sys/dshowvideosink/Makefile
2166 sys/dvb/Makefile
2167 sys/fbdev/Makefile
2168 sys/linsys/Makefile
2169 sys/opensles/Makefile
2170 sys/osxvideo/Makefile
2171 sys/qtwrapper/Makefile
2172 sys/shm/Makefile
2173 sys/uvch264/Makefile
2174 sys/vcd/Makefile
2175 sys/vdpau/Makefile
2176 sys/vdpau/gstvdp/Makefile
2177 sys/vdpau/basevideodecoder/Makefile
2178 sys/pvr2d/Makefile
2179 sys/wasapi/Makefile
2180 sys/wininet/Makefile
2181 sys/winks/Makefile
2182 sys/winscreencap/Makefile
2183 tests/Makefile
2184 tests/check/Makefile
2185 tests/files/Makefile
2186 tests/examples/Makefile
2187 tests/examples/camerabin2/Makefile
2188 tests/examples/directfb/Makefile
2189 tests/examples/mxf/Makefile
2190 tests/examples/scaletempo/Makefile
2191 tests/examples/opencv/Makefile
2192 tests/examples/uvch264/Makefile
2193 tests/icles/Makefile
2194 ext/voamrwbenc/Makefile
2195 ext/voaacenc/Makefile
2196 ext/assrender/Makefile
2197 ext/apexsink/Makefile
2198 ext/bz2/Makefile
2199 ext/cdaudio/Makefile
2200 ext/celt/Makefile
2201 ext/chromaprint/Makefile
2202 ext/cog/Makefile
2203 ext/curl/Makefile
2204 ext/dc1394/Makefile
2205 ext/dirac/Makefile
2206 ext/directfb/Makefile
2207 ext/wayland/Makefile
2208 ext/dts/Makefile
2209 ext/eglgles/Makefile
2210 ext/faac/Makefile
2211 ext/faad/Makefile
2212 ext/flite/Makefile
2213 ext/gsm/Makefile
2214 ext/jasper/Makefile
2215 ext/kate/Makefile
2216 ext/ladspa/Makefile
2217 ext/lv2/Makefile
2218 ext/libmms/Makefile
2219 ext/Makefile
2220 ext/modplug/Makefile
2221 ext/mpeg2enc/Makefile
2222 ext/mpg123/Makefile
2223 ext/mimic/Makefile
2224 ext/mplex/Makefile
2225 ext/musepack/Makefile
2226 ext/musicbrainz/Makefile
2227 ext/mythtv/Makefile
2228 ext/nas/Makefile
2229 ext/neon/Makefile
2230 ext/ofa/Makefile
2231 ext/openal/Makefile
2232 ext/opencv/Makefile
2233 ext/opus/Makefile
2234 ext/rsvg/Makefile
2235 ext/resindvd/Makefile
2236 ext/rtmp/Makefile
2237 ext/schroedinger/Makefile
2238 ext/sdl/Makefile
2239 ext/sndfile/Makefile
2240 ext/soundtouch/Makefile
2241 ext/spandsp/Makefile
2242 ext/sndio/Makefile
2243 ext/teletextdec/Makefile
2244 ext/gme/Makefile
2245 ext/gsettings/Makefile
2246 ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml
2247 ext/spc/Makefile
2248 ext/swfdec/Makefile
2249 ext/timidity/Makefile
2250 ext/xvid/Makefile
2251 ext/zbar/Makefile
2252 po/Makefile.in
2253 docs/Makefile
2254 docs/plugins/Makefile
2255 docs/libs/Makefile
2256 docs/version.entities
2257 pkgconfig/Makefile
2258 pkgconfig/gstreamer-plugins-bad.pc
2259 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2260 pkgconfig/gstreamer-codecparsers.pc
2261 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2262 pkgconfig/gstreamer-basevideo.pc
2263 pkgconfig/gstreamer-basevideo-uninstalled.pc
2264 tools/Makefile
2265 m4/Makefile
2266 win32/common/config.h
2267 )
2268 AC_OUTPUT
2269
2270 AG_GST_OUTPUT_PLUGINS
2271 ORC_OUTPUT
2272