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