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