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