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