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