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