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