Migrate to openssl 1.1
[platform/upstream/gstreamer.git] / configure.ac
1 AC_PREREQ([2.69])
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, git and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.12.2],[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.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
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 AC_CONFIG_HEADERS([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 PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
38
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
41 GST_API_VERSION=1.0
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44   [GStreamer API Version])
45
46 AG_GST_LIBTOOL_PREPARE
47
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 1202, 0, 1202)
55
56 dnl *** required versions of GStreamer stuff ***
57 GST_REQ=1.12.0
58 GSTPB_REQ=1.12.0
59
60 dnl *** autotools stuff ****
61
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
64
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
67
68 dnl set up gettext
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
73
74 dnl *** check for arguments to configure ***
75
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
78
79 AG_GST_ARG_DEBUG
80 AG_GST_ARG_PROFILING
81 AG_GST_ARG_VALGRIND
82 AG_GST_ARG_GCOV
83
84 AG_GST_ARG_EXAMPLES
85
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
89
90 AG_GST_ARG_WITH_PLUGINS
91
92 AG_GST_ARG_ENABLE_EXTERNAL
93
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
95
96 AG_GST_PKG_CONFIG_PATH
97
98 dnl *** checks for platform ***
99 AG_GST_PLATFORM
100
101 dnl * hardware/architecture *
102
103 dnl common/m4/gst-arch.m4
104 dnl check CPU type
105 AG_GST_ARCH
106
107 dnl Determine endianness
108 AC_C_BIGENDIAN
109
110 dnl *** checks for programs ***
111
112 dnl find a compiler
113 AC_PROG_CC
114 AC_PROG_CC_STDC
115
116 dnl determine c++ compiler
117 AC_PROG_CXX
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
120
121 AC_PROG_OBJC
122
123 dnl check if the compiler supports '-c' and '-o' options
124 AM_PROG_CC_C_O
125
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
128
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
131
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
134
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
138
139 dnl *** checks for libraries ***
140
141 dnl check for libm, for sin() etc.
142 LT_LIB_M
143 AC_SUBST(LIBM)
144
145 AC_FUNC_MMAP
146
147 dnl check for pthreads
148 AX_PTHREAD
149
150 dnl *** checks for header files ***
151
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
154
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
157 fi
158
159 AC_CHECK_HEADERS([sys/time.h])
160
161 dnl used by ext/dts
162 AX_CREATE_STDINT_H
163
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
166
167 dnl *** checks for types/defines ***
168
169 dnl *** checks for structures ***
170
171 dnl *** checks for compiler characteristics ***
172
173 dnl *** checks for library functions ***
174 AC_CHECK_FUNCS([gmtime_r])
175
176 dnl *** checks for headers ***
177 AC_CHECK_HEADERS([sys/utsname.h])
178
179 dnl *** checks for dependency libraries ***
180
181 dnl *** checks for socket and nsl libraries ***
182 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
183 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
184
185 dnl GLib is required
186 GLIB_REQ=2.40.0
187 AG_GST_GLIB_CHECK([$GLIB_REQ])
188
189 dnl checks for gstreamer
190 dnl uninstalled is selected preferentially -- see pkg-config(1)
191 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
192 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
193 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
194 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
195 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
196 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GST_REQ], yes)
197 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GST_REQ], yes)
198 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GST_REQ], yes)
199
200 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
201
202 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
203
204 dnl check for uninstalled plugin directories for unit tests
205 AG_GST_CHECK_UNINSTALLED_SETUP([
206   AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
207   AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
208   AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
209 ])
210
211 dnl Check for documentation xrefs
212 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
213 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
214 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
215 AC_SUBST(GLIB_PREFIX)
216 AC_SUBST(GST_PREFIX)
217 AC_SUBST(GSTPB_PREFIX)
218
219 dnl GTK is optional and used in examples
220 HAVE_GTK=NO
221 GTK2_REQ=2.14.0
222 GTK3_REQ=2.91.3
223 if test "x$BUILD_EXAMPLES" = "xyes"; then
224   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
225   AC_ARG_WITH([gtk],
226     AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
227     [case "$with_gtk" in
228         2.0) GTK_REQ=$GTK2_REQ ;;
229         3.0) GTK_REQ=$GTK3_REQ ;;
230         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
231     esac],
232     [with_gtk=2.0
233      GTK_REQ=$GTK2_REQ])
234   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
235   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
236   AC_SUBST(GTK_LIBS)
237   AC_SUBST(GTK_CFLAGS)
238 fi
239 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
240
241 dnl Check for -Bsymbolic-functions linker flag used to avoid
242 dnl intra-library PLT jumps, if available.
243 AC_ARG_ENABLE(Bsymbolic,
244               [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
245               [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
246                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
247                LDFLAGS=-Wl,-Bsymbolic-functions
248                LIBS=
249                AC_TRY_LINK([], [return 0],
250                            AC_MSG_RESULT(yes)
251                            enable_Bsymbolic=yes,
252                            AC_MSG_RESULT(no)
253                            enable_Bsymbolic=no)
254                LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
255
256 dnl *** set variables based on configure arguments ***
257
258 dnl GTK is optional and used in examples
259 HAVE_GTK3=NO
260 if test "x$BUILD_EXAMPLES" = "xyes"; then
261   PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
262   if test "x$HAVE_GTK3" = "xyes"; then
263     HAVE_GTK=yes
264     GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
265     AC_SUBST(GTK_VERSION)
266     GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
267     AC_SUBST(GTK_BASE_DIR)
268   fi
269 fi
270 AC_SUBST(GTK3_LIBS)
271 AC_SUBST(GTK3_CFLAGS)
272 AC_SUBST(HAVE_GTK3)
273 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
274
275 dnl clutter is optional and used in examples
276 HAVE_CLUTTER=no
277 HAVE_CLUTTER_X11=no
278 HAVE_CLUTTER_GLX=no
279 if test "x$BUILD_EXAMPLES" = "xyes"; then
280   PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
281   AC_SUBST(CLUTTER_LIBS)
282   AC_SUBST(CLUTTER_CFLAGS)
283   AC_SUBST(HAVE_CLUTTER)
284
285   PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
286   AC_SUBST(CLUTTER_GLX_LIBS)
287   AC_SUBST(CLUTTER_GLX_CFLAGS)
288   AC_SUBST(HAVE_CLUTTER_GLX)
289
290   PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
291   AC_SUBST(CLUTTER_X11_LIBS)
292   AC_SUBST(CLUTTER_X11_CFLAGS)
293   AC_SUBST(HAVE_CLUTTER_X11)
294 fi
295 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
296 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
297 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
298
299 dnl used in the gl/clutteractor example
300 if test "x$BUILD_EXAMPLES" = "xyes"; then
301   PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
302   AC_SUBST(XCOMPOSITE_CFLAGS)
303   AC_SUBST(XCOMPOSITE_LIBS)
304 fi
305 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
306
307 dnl graphene-1.0 is optional and used in gltransformation
308 HAVE_GRAPHENE=NO
309 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.4.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
310 if test "x$HAVE_GRAPHENE" = "xyes"; then
311   AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
312 fi
313 AC_SUBST(HAVE_GRAPHENE)
314 AC_SUBST(GRAPHENE_LIBS)
315 AC_SUBST(GRAPHENE_CFLAGS)
316 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
317
318
319 dnl sdl is optional and used in examples
320 HAVE_SDL=NO
321 if test "x$BUILD_EXAMPLES" = "xyes"; then
322   PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
323   AC_SUBST(SDL_LIBS)
324   AC_SUBST(SDL_CFLAGS)
325   AC_SUBST(SDL_CLUTTER)
326 fi
327 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
328
329
330 dnl Needed for GtkBuilder to autoconnect signals
331 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
332
333 dnl Needed by plugins that use g_module_*() API
334 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
335
336 dnl x11 is optional for librfb
337 HAVE_X11=NO
338 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
339 AC_SUBST(X11_LIBS)
340 AC_SUBST(X11_CFLAGS)
341 AC_SUBST(HAVE_X11)
342 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
343 if test "x$HAVE_X11" = "xyes"; then
344   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
345 fi
346
347 dnl exif (used on jifmux tests) ****
348 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
349 AC_SUBST(EXIF_LIBS)
350 AC_SUBST(EXIF_CFLAGS)
351 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
352
353 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
354   PKG_CHECK_MODULES(DSSIM, dssim, [
355     HAVE_DSSIM="yes"
356     HAVE_IQA="yes"
357   ], [
358     HAVE_DSSIM="no"
359     HAVE_IQA="no"
360   ])
361
362   if test "x$HAVE_DSSIM" = "xyes"; then
363     AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
364   fi
365   AC_SUBST(DSSIM_LIBS)
366   AC_SUBST(DSSIM_CFLAGS)
367 ])
368 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
369
370 dnl Orc
371 ORC_CHECK([0.4.17])
372
373 dnl set license and copyright notice
374 GST_LICENSE="LGPL"
375 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
376 AC_SUBST(GST_LICENSE)
377
378 dnl define LIBDIR so we can inform people where we live
379 AS_AC_EXPAND(LIBDIR, $libdir)
380 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
381
382 dnl set location of plugin directory
383 AG_GST_SET_PLUGINDIR
384
385 dnl set release date/time
386 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
387   ["${srcdir}/gst-plugins-bad.doap"],
388   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
389
390 dnl build static plugins or not
391 AC_MSG_CHECKING([whether to build static plugins or not])
392 AC_ARG_ENABLE(
393   static-plugins,
394   AC_HELP_STRING(
395     [--enable-static-plugins],
396     [build static plugins @<:@default=no@:>@]),
397   [AS_CASE(
398     [$enableval], [no], [], [yes], [],
399     [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
400   [enable_static_plugins=no])
401 AC_MSG_RESULT([$enable_static_plugins])
402 if test "x$enable_static_plugins" = xyes; then
403   AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
404     [Define if static plugins should be built])
405   GST_PLUGIN_LIBTOOLFLAGS=""
406 else
407   GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
408 fi
409 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
410 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
411
412 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
413 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
414 if test x$enable_static = xyes -a x$enable_shared = xno; then
415   GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
416 fi
417
418 AC_ARG_WITH([player-tests],
419   AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
420 if test x$with_player_tests = xyes; then
421   AC_PATH_PROG([WGET], [wget], no)
422   if test x$WGET = xno; then
423     AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
424     with_player_tests=no
425   fi
426 fi
427 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
428
429 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
430 dnl make sure it doesn't complain about unused variables if debugging is disabled
431 NO_WARNINGS=""
432 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
433
434 dnl define an ERROR_CFLAGS Makefile variable
435 dnl -Waggregate-return - libexif returns aggregates
436 dnl -Wundef - Windows headers check _MSC_VER unconditionally
437 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
438     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
439     -Wwrite-strings -Wformat-security -Wold-style-definition
440     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
441     -Wnested-externs $NO_WARNINGS])
442
443 dnl define an ERROR_CXXFLAGS Makefile variable
444 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
445     -Wmissing-declarations -Wredundant-decls
446     -Wwrite-strings -Wformat-nonliteral -Wformat-security
447     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
448
449 dnl define an ERROR_OBJCFLAGS Makefile variable
450 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
451     -Wmissing-declarations -Wredundant-decls
452     -Wwrite-strings -Wformat-nonliteral -Wformat-security
453     -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
454
455 dnl define correct level for debugging messages
456 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
457
458 dnl used in examples
459 AG_GST_DEFAULT_ELEMENTS
460
461 dnl *** plug-ins to include ***
462
463 dnl these are all the gst plug-ins, compilable without additional libs
464 AG_GST_CHECK_PLUGIN(accurip)
465 AG_GST_CHECK_PLUGIN(adpcmdec)
466 AG_GST_CHECK_PLUGIN(adpcmenc)
467 AG_GST_CHECK_PLUGIN(aiff)
468 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
469 AG_GST_CHECK_PLUGIN(asfmux)
470 AG_GST_CHECK_PLUGIN(audiobuffersplit)
471 AG_GST_CHECK_PLUGIN(audiofxbad)
472 AG_GST_CHECK_PLUGIN(audiomixer)
473 AG_GST_CHECK_PLUGIN(audiomixmatrix)
474 AG_GST_CHECK_PLUGIN(compositor)
475 AG_GST_CHECK_PLUGIN(audiovisualizers)
476 AG_GST_CHECK_PLUGIN(autoconvert)
477 AG_GST_CHECK_PLUGIN(bayer)
478 AG_GST_CHECK_PLUGIN(camerabin2)
479 AG_GST_CHECK_PLUGIN(coloreffects)
480 AG_GST_CHECK_PLUGIN(debugutils)
481 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
482 AG_GST_CHECK_PLUGIN(dvdspu)
483 AG_GST_CHECK_PLUGIN(faceoverlay)
484 AG_GST_CHECK_PLUGIN(festival)
485 AG_GST_CHECK_PLUGIN(fieldanalysis)
486 AG_GST_CHECK_PLUGIN(freeverb)
487 AG_GST_CHECK_PLUGIN(frei0r)
488 AG_GST_CHECK_PLUGIN(gaudieffects)
489 AG_GST_CHECK_PLUGIN(geometrictransform)
490 AG_GST_CHECK_PLUGIN(gdp)
491 AG_GST_CHECK_PLUGIN(id3tag)
492 AG_GST_CHECK_PLUGIN(inter)
493 AG_GST_CHECK_PLUGIN(interlace)
494 AG_GST_CHECK_PLUGIN(ivfparse)
495 AG_GST_CHECK_PLUGIN(ivtc)
496 AG_GST_CHECK_PLUGIN(jp2kdecimator)
497 AG_GST_CHECK_PLUGIN(jpegformat)
498 AG_GST_CHECK_PLUGIN(librfb)
499 AG_GST_CHECK_PLUGIN(midi)
500 AG_GST_CHECK_PLUGIN(mpegdemux)
501 AG_GST_CHECK_PLUGIN(mpegtsdemux)
502 AG_GST_CHECK_PLUGIN(mpegtsmux)
503 AG_GST_CHECK_PLUGIN(mpegpsmux)
504 AG_GST_CHECK_PLUGIN(mxf)
505 AG_GST_CHECK_PLUGIN(netsim)
506 AG_GST_CHECK_PLUGIN(onvif)
507 AG_GST_CHECK_PLUGIN(pcapparse)
508 AG_GST_CHECK_PLUGIN(pnm)
509 AG_GST_CHECK_PLUGIN(rawparse)
510 AG_GST_CHECK_PLUGIN(removesilence)
511 AG_GST_CHECK_PLUGIN(sdp)
512 AG_GST_CHECK_PLUGIN(segmentclip)
513 AG_GST_CHECK_PLUGIN(siren)
514 AG_GST_CHECK_PLUGIN(smooth)
515 AG_GST_CHECK_PLUGIN(speed)
516 AG_GST_CHECK_PLUGIN(subenc)
517 AG_GST_CHECK_PLUGIN(stereo)
518 AG_GST_CHECK_PLUGIN(timecode)
519 AG_GST_CHECK_PLUGIN(videofilters)
520 AG_GST_CHECK_PLUGIN(videoparsers)
521 AG_GST_CHECK_PLUGIN(videosignal)
522 AG_GST_CHECK_PLUGIN(vmnc)
523 AG_GST_CHECK_PLUGIN(y4m)
524 AG_GST_CHECK_PLUGIN(yadif)
525
526 dnl *** plug-ins to exclude ***
527
528 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
529 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
530 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
531
532 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
533   old_LIBS=$LIBS
534   LIBS="$LIBS -framework VideoToolbox"
535   AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
536     AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
537   ], [
538   ])
539   LIBS=$old_LIBS
540 fi
541
542 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
543 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
544   AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
545 fi
546
547 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
548 if test "x$HAVE_IOS" = "xyes"; then
549   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
550 fi
551
552 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
553 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
554   AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
555 fi
556
557 dnl disable gst plugins we might not be able to build on this
558 dnl platform: (ugly but minimally invasive)
559 dnl FIXME: maybe move to sys, or make work with winsock2
560 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
561 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
562
563 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
564   WINSOCK2_LIBS="-lws2_32"
565   AC_SUBST(WINSOCK2_LIBS)
566 fi
567
568 dnl *** opengl ***
569 AC_ARG_ENABLE([opengl],
570      [  --enable-opengl         Enable Desktop OpenGL support @<:@default=auto@:>@],
571      [case "${enableval}" in
572        yes)  NEED_GL=yes ;;
573        no)   NEED_GL=no ;;
574        auto) NEED_GL=auto ;;
575        *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
576      esac],[NEED_GL=auto])
577
578 AC_ARG_WITH([opengl-module-name],
579   AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
580 if test x$with_opengl_module_name != x; then
581   AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
582 fi
583
584 AC_ARG_ENABLE([gles2],
585      [  --enable-gles2          Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
586      [case "${enableval}" in
587        yes)  NEED_GLES2=yes ;;
588        no)   NEED_GLES2=no ;;
589        auto) NEED_GLES2=auto ;;
590        *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
591      esac],[NEED_GLES2=auto])
592
593 AC_ARG_WITH([gles2-module-name],
594   AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
595 if test x$with_gles2_module_name != x; then
596   AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
597 fi
598
599 AC_ARG_ENABLE([egl],
600      [  --enable-egl            Enable EGL support @<:@default=auto@:>@],
601      [case "${enableval}" in
602        yes)  NEED_EGL=yes ;;
603        no)   NEED_EGL=no ;;
604        auto) NEED_EGL=auto ;;
605        *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
606      esac],[NEED_EGL=auto])
607
608 AC_ARG_WITH([egl-module-name],
609   AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
610 if test x$with_egl_module_name != x; then
611   AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
612 fi
613
614 AC_ARG_ENABLE([wgl],
615      [  --enable-wgl            Enable WGL support @<:@default=auto@:>@],
616      [case "${enableval}" in
617        yes)  NEED_WGL=yes ;;
618        no)   NEED_WGL=no ;;
619        auto) NEED_WGL=auto ;;
620        *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
621      esac],[NEED_WGL=auto])
622
623 AC_ARG_ENABLE([glx],
624      [  --enable-glx            Enable GLX support @<:@default=auto@:>@],
625      [case "${enableval}" in
626        yes)  NEED_GLX=yes ;;
627        no)   NEED_GLX=no ;;
628        auto) NEED_GLX=auto ;;
629        *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
630      esac],[NEED_GLX=auto])
631
632 AC_ARG_ENABLE([cocoa],
633      [  --enable-cocoa          Enable Cocoa support @<:@default=auto@:>@],
634      [case "${enableval}" in
635        yes)  NEED_COCOA=yes ;;
636        no)   NEED_COCOA=no ;;
637        auto) NEED_COCOA=auto ;;
638        *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
639      esac],[NEED_COCOA=auto])
640
641 AC_ARG_ENABLE([x11],
642      [  --enable-x11            Enable x11 support @<:@default=auto@:>@],
643      [case "${enableval}" in
644        yes)  NEED_X11=yes ;;
645        no)   NEED_X11=no ;;
646        auto) NEED_X11=auto ;;
647        *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
648      esac],[NEED_X11=auto])
649
650 AC_ARG_ENABLE([wayland],
651      [  --enable-wayland        Enable Wayland support (requires EGL) @<:@default=auto@:>@],
652      [case "${enableval}" in
653        yes)  NEED_WAYLAND_EGL=yes ;;
654        no)   NEED_WAYLAND_EGL=no ;;
655        auto) NEED_WAYLAND_EGL=auto ;;
656        *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
657      esac],[NEED_WAYLAND_EGL=auto])
658
659 AC_ARG_ENABLE([dispmanx],
660      [  --enable-dispmanx        Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
661      [case "${enableval}" in
662        yes)  NEED_DISPMANX=yes ;;
663        no)   NEED_DISPMANX=no ;;
664        auto) NEED_DISPMANX=auto ;;
665        *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
666      esac],[NEED_DISPMANX=auto])
667
668 AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb)
669 save_CPPFLAGS="$CPPFLAGS"
670 save_LIBS="$LIBS"
671
672 HAVE_GL=no
673 HAVE_GLES2=no
674 HAVE_GLES3_H=no
675 HAVE_WAYLAND_EGL=no
676 HAVE_VIV_FB_EGL=no
677 HAVE_EGL_RPI=no
678
679 case $host in
680   *-mingw32* )
681     LIBS="$LIBS -lgdi32"
682     AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
683     AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
684     if test "x$HAVE_WGLEXT" = "xyes"; then
685       HAVE_WGL=yes
686       HAVE_GL=yes
687     fi
688   ;;
689   *)
690     if test "x$NEED_GL" != "xno"; then
691       AG_GST_PKG_CHECK_MODULES(GL, gl)
692       if test "x$HAVE_GL" != "xyes"; then
693         AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
694       fi
695     fi
696     if test "x$NEED_GLES2" != "xno"; then
697       AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
698       if test "x$HAVE_GLES2" != "xyes"; then
699         AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
700       fi
701       AC_CHECK_HEADER([GLES3/gl3.h GLES3/gl3ext.h], [HAVE_GLES3_H=yes])
702     fi
703     if test "x$NEED_EGL" != "xno"; then
704       AG_GST_PKG_CHECK_MODULES(EGL, egl)
705       if test "x$HAVE_EGL" != "xyes"; then
706         AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
707       fi
708     fi
709
710     old_LIBS=$LIBS
711     old_CFLAGS=$CFLAGS
712
713     dnl imx6 / Vivante specifics
714     if test "x$HAVE_EGL" = "xyes"; then
715         AC_CHECK_LIB([EGL], [fbGetDisplay], [HAVE_VIV_FB_EGL=yes])
716     fi
717
718     dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
719     AC_CHECK_HEADER([EGL/fbdev_window.h],
720       [
721         LIBS="$LIBS -lUMP"
722         AC_CHECK_LIB([Mali], [mali_image_create],
723           [
724             LIBS="$LIBS -lMali"
725             AC_CHECK_LIB([GLESv2], [glEnable],
726               [
727                 AC_CHECK_HEADER([GLES2/gl2.h],
728                   [
729                     AC_CHECK_LIB([EGL], [eglGetProcAddress],
730                       [
731                         AC_CHECK_HEADER([EGL/egl.h],
732                           [
733                             HAVE_EGL=yes
734                             HAVE_GLES2=yes
735                             EGL_LIBS="-lMali -lUMP"
736                             EGL_CFLAGS=""
737                             AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
738                           ])
739                       ])
740                   ])
741               ])
742           ])
743       ])
744
745     dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
746     dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
747     LIBS="$LIBS -lvcos -lvchiq_arm"
748     AC_CHECK_LIB([bcm_host], [bcm_host_init],
749       [
750         LIBS="$LIBS -lbcm_host"
751         AC_CHECK_HEADER(bcm_host.h,
752           [
753             LIBS="$LIBS -lGLESv2"
754             AC_CHECK_LIB([EGL], [eglGetProcAddress],
755               [
756                 LIBS="$LIBS -lEGL"
757                 AC_CHECK_HEADER([EGL/egl.h],
758                   [
759                     AC_CHECK_LIB([GLESv2], [glEnable],
760                       [
761                         AC_CHECK_HEADER([GLES2/gl2.h],
762                           [
763                             HAVE_EGL=yes
764                             HAVE_GLES2=yes
765                             HAVE_EGL_RPI=yes
766                             EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
767                             EGL_CFLAGS=""
768                             AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
769                           ])
770                       ])
771                   ])
772               ])
773           ])
774       ])
775
776     LIBS=$old_LIBS
777     CFLAGS=$old_CFLAGS
778
779     PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
780
781     # OS X and iOS always have GL available
782     case $host in
783       *-darwin*)
784         if test "x$HAVE_IOS" = "xyes"; then
785           HAVE_GLES2=yes
786         else
787           HAVE_GL=yes
788         fi
789       ;;
790     esac
791   ;;
792 esac
793
794 CPPFLAGS="$save_CPPFLAGS"
795 LIBS="$save_LIBS"
796
797 USE_OPENGL=no
798 USE_GLES2=no
799 USE_GLX=no
800 USE_COCOA=no
801 USE_WGL=no
802 USE_X11=no
803 USE_EAGL=no
804 GL_LIBS=
805 GL_CFLAGS=
806 GL_OBJCFLAGS=
807
808 dnl Check for what the user asked for and what we could find
809 if test "x$HAVE_EGL" = "xno"; then
810   if test "x$NEED_EGL" = "xyes"; then
811     AC_MSG_ERROR([Could not find the required EGL libraries])
812   fi
813 fi
814
815 if test "x$HAVE_GL" = "xno"; then
816   if test "x$NEED_GL" = "xyes"; then
817     AC_MSG_ERROR([Could not find the required OpenGL libraries])
818   fi
819 fi
820
821 if test "x$HAVE_GLES2" = "xno"; then
822   if test "x$NEED_GLES2" = "xyes"; then
823     AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
824   fi
825 fi
826
827 dnl X, GLX and OpenGL
828 if test "x$HAVE_X11_XCB" = "xno"; then
829   if test "x$NEED_GLX" = "xyes"; then
830     AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
831   fi
832   if test "x$NEED_X11" = "xyes"; then
833     AC_MSG_ERROR([Could not find X11 development libraries])
834   fi
835 else
836   if test "x$NEED_GL" != "xno"; then
837     if test "x$HAVE_GL" = "xno"; then
838       if test "x$NEED_GLX" = "xyes"; then
839         AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
840       fi
841     else dnl HAVE_GL=yes
842       USE_OPENGL=yes
843       if test "x$NEED_GLX" != "xno"; then
844         USE_GLX=yes
845       fi
846     fi
847   fi
848 fi
849
850 dnl check for DMABUF support
851 HAVE_DRM_FOURCC_HEADER=no
852 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
853   HAVE_DRM_FOURCC_HEADER=yes, )
854
855 HAVE_GST_ALLOCATORS=no
856 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
857   HAVE_GST_ALLOCATORS=yes, )
858
859 GST_GL_HAVE_DMABUF=0
860 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
861         "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
862         "x$HAVE_EGL" = "xyes"; then
863           GST_GL_HAVE_DMABUF=1
864 fi
865
866 dnl check for Vivante DirectVIV support
867 AC_CHECK_LIB(GLESv2, glTexDirectVIV, [HAVE_VIV_DIRECTVIV=yes], [HAVE_VIV_DIRECTVIV=no])
868
869 GST_GL_HAVE_VIV_DIRECTVIV=0
870 if test "x$HAVE_VIV_DIRECTVIV" = "xyes"; then
871           GST_GL_HAVE_VIV_DIRECTVIV=1
872 fi
873
874 dnl check if we can include both GL and GLES2 at the same time
875 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
876   GLES3_H_DEFINE=0
877   if test "x$HAVE_GLES3_H" == "xyes"; then
878     GLES3_H_DEFINE=1
879   fi
880   GL_INCLUDES="
881 #ifdef __GNUC__
882 #  pragma GCC diagnostic push
883 #  pragma GCC diagnostic ignored \"-Wredundant-decls\"
884 #endif
885 #ifndef GL_GLEXT_PROTOTYPES
886 #define GL_GLEXT_PROTOTYPES 1
887 #endif
888 # ifdef HAVE_IOS
889 #  include <OpenGLES/ES2/gl.h>
890 #  include <OpenGLES/ES2/glext.h>
891 # else
892 #  if $GLES3_H_DEFINE
893 #   include <GLES3/gl3.h>
894 #   include <GLES3/gl3ext.h>
895 #  else
896 #   include <GLES2/gl2.h>
897 #   include <GLES2/gl2ext.h>
898 #  endif
899 # endif
900 # ifdef __APPLE__
901 #  include <OpenGL/OpenGL.h>
902 #  include <OpenGL/gl.h>
903 #  if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
904 #   define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
905 #   include <OpenGL/gl3.h>
906 #  endif
907 # else
908 #  include <GL/gl.h>
909 #  if __WIN32__ || _WIN32
910 #   include <GL/glext.h>
911 #  endif
912 # endif
913 int main (int argc, char **argv) { return 0; }
914 "
915   AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
916   save_CFLAGS="$CFLAGS"
917   CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
918   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
919     #if !defined(GL_FALSE)
920     #error Failed to include GL headers
921     #endif
922     ]])],[ AC_MSG_RESULT(yes)
923     ],[AC_MSG_RESULT(no)
924     if test "x$NEED_GLES2" = "xyes"; then
925       if test "x$NEED_GL" = "xyes"; then
926         AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
927       fi
928       AC_MSG_WARN([Disabling Desktop GL support])
929       HAVE_GL=no
930       USE_OPENGL=no
931     else
932       AC_MSG_WARN([Disabling GL|ES 2.0 support])
933       HAVE_GLES2=no
934       HAVE_GLES3_H=no
935     fi
936   ])
937   CFLAGS="$save_CFLAGS"
938 fi
939
940 #dnl Check for OpenGL
941 echo host is $host
942 case $host in
943   *-android*)
944     if test "x$NEED_WGL" = "xyes"; then
945       AC_MSG_ERROR([WGL is not available on Android])
946     fi
947     if test "x$NEED_GLX" = "xyes"; then
948       AC_MSG_ERROR([GLX is not available on Android])
949     fi
950     if test "x$NEED_GL" = "xyes"; then
951       AC_MSG_ERROR([GL is not available on Android])
952     fi
953     if test "x$NEED_X11" = "xyes"; then
954       AC_MSG_ERROR([X11 is not available on Android])
955     fi
956     if test "x$NEED_COCOA" = "xyes"; then
957       AC_MSG_ERROR([Cocoa is not available on Android])
958     fi
959
960     dnl OpenGL|ES 2.0
961     if test "x$HAVE_GLES2" = "xyes"; then
962       if test "x$NEED_GLES2" != "xno"; then
963         GL_LIBS="$GL_LIBS -lGLESv2"
964         USE_GLES2=yes
965       fi
966     fi
967
968     dnl EGL
969     if test "x$HAVE_EGL" = "xyes"; then
970       if test "x$NEED_EGL" != "xno"; then
971         GL_LIBS="$GL_LIBS -lEGL"
972         USE_EGL=yes
973       fi
974     fi
975
976     if test "x$USE_EGL" != "xyes"; then
977       AC_MSG_ERROR([Need EGL on Android])
978     fi
979
980     if test "x$USE_GLES2" != "xyes"; then
981       AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
982     fi
983
984     HAVE_WINDOW_ANDROID=yes
985     ;;
986   *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
987     if test "x$NEED_WGL" = "xyes"; then
988       AC_MSG_ERROR([WGL is not available on unix])
989     fi
990
991     if test "x$HAVE_X11_XCB" = "xno"; then
992       if test "x$HAVE_WAYLAND_EGL" = "xno"; then
993         AC_MSG_WARN([X or Wayland is required for OpenGL support])
994       fi
995     fi
996
997     dnl check Desktop OpenGL
998     if test "x$HAVE_GL" = "xyes"; then
999       if test "x$NEED_GL" != "xno"; then
1000         GL_LIBS="$GL_LIBS -lGL"
1001       fi
1002     fi
1003
1004     dnl OpenGL|ES 2.0
1005     if test "x$HAVE_GLES2" = "xyes"; then
1006       if test "x$NEED_GLES2" != "xno"; then
1007         GL_LIBS="$GL_LIBS -lGLESv2"
1008         USE_GLES2=yes
1009       fi
1010     fi
1011
1012     if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1013       if test "x$NEED_X11" != "xno"; then
1014         GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1015         GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1016         HAVE_WINDOW_X11=yes
1017       fi
1018     fi
1019
1020     if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1021       if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1022         AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1023       else
1024         if test "x$NEED_WAYLAND_EGL" != "xno"; then
1025           HAVE_WINDOW_WAYLAND=yes
1026           GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1027           GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1028         fi
1029       fi
1030     fi
1031
1032     if test "x$HAVE_VIV_FB_EGL" = "xyes"; then
1033       if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1034         AC_MSG_WARN([EGL is required by the Vivante EGL FB backend])
1035       else
1036         HAVE_WINDOW_VIV_FB=yes
1037         GL_LIBS="$GL_LIBS"
1038         GL_CFLAGS="$GL_CFLAGS"
1039       fi
1040     fi
1041
1042     if test "x$HAVE_EGL_RPI" = "xyes"; then
1043       if test "x$NEED_DISPMANX" != "xno"; then
1044         HAVE_WINDOW_DISPMANX=yes
1045         USE_EGL=yes
1046       fi
1047     fi
1048
1049     dnl EGL
1050     if test "x$HAVE_EGL" = "xno"; then
1051       if test "x$HAVE_GL" = "xno"; then
1052         AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1053       fi
1054     else
1055       if test "x$NEED_EGL" != "xno"; then
1056         if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes" -o "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1057           GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1058           GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1059           USE_EGL=yes
1060         fi
1061       fi
1062     fi
1063     ;;
1064   *-darwin*)
1065     if test "x$HAVE_IOS" = "xyes"; then
1066       if test "x$NEED_WGL" = "xyes"; then
1067         AC_MSG_ERROR([WGL is not available on iOS])
1068       fi
1069       if test "x$NEED_GLX" = "xyes"; then
1070         AC_MSG_ERROR([GLX is not available on iOS])
1071       fi
1072       if test "x$NEED_GL" = "xyes"; then
1073         AC_MSG_ERROR([GL is not available on iOS])
1074       fi
1075       if test "x$NEED_X11" = "xyes"; then
1076         AC_MSG_ERROR([X11 is not available on iOS])
1077       fi
1078       if test "x$NEED_COCOA" = "xyes"; then
1079         AC_MSG_ERROR([Cocoa is not available on iOS])
1080       fi
1081       if test "x$NEED_EGL" = "xyes"; then
1082         AC_MSG_ERROR([EGL is not available on iOS])
1083       fi
1084
1085       GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1086       GL_CFLAGS="$GL_CFLAGS"
1087       USE_GLES2=yes
1088       USE_EAGL=yes
1089       HAVE_WINDOW_EAGL=yes
1090
1091       ac_cv_type_GLsizeiptr=yes
1092       ac_cv_type_GLintptr=yes
1093       ac_cv_type_GLchar=yes
1094     else
1095       dnl Only osx supports cocoa.
1096       if test "x$NEED_WGL" = "xyes"; then
1097         AC_MSG_ERROR([WGL is not available on Mac OS X])
1098       fi
1099
1100       if test "x$NEED_COCOA" != "xno"; then
1101         GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1102         GL_CFLAGS="$GL_CFLAGS"
1103         USE_COCOA=yes
1104         HAVE_WINDOW_COCOA=yes
1105         USE_OPENGL=yes
1106       fi
1107
1108       if test "x$USE_GLX" = "xyes"; then
1109         if test "x$HAVE_X11_XCB" = "xyes"; then
1110           if test "x$NEED_X11" != "xno"; then
1111             GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1112             GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1113             HAVE_WINDOW_X11=yes
1114           fi
1115         fi
1116
1117         if test "x$HAVE_GL" = "xyes"; then
1118           if test "x$NEED_GL" != "xno"; then
1119             GL_LIBS="$GL_LIBS -lGL"
1120           fi
1121           USE_OPENGL=yes
1122         fi
1123       fi
1124
1125       if test "x$HAVE_EGL" = "xyes"; then
1126         if test "x$NEED_EGL" != "xno"; then
1127           if test "x$HAVE_WINDOW_X11" = "xyes"; then
1128             GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1129             GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1130             USE_EGL=yes
1131           fi
1132         fi
1133       fi
1134
1135       dnl OpenGL|ES 2.0
1136       if test "x$HAVE_GLES2" = "xyes"; then
1137         if test "x$NEED_GLES2" != "xno"; then
1138           GL_LIBS="$GL_LIBS -lGLESv2"
1139           USE_GLES2=yes
1140         fi
1141       fi
1142     fi
1143     ;;
1144   *-mingw32*)
1145     if test "x$NEED_GLX" = "xyes"; then
1146       AC_MSG_ERROR([GLX is not available on Windows])
1147     fi
1148     if test "x$NEED_GLES2" = "xyes"; then
1149       AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1150     fi
1151
1152     if test "x$HAVE_GL" = "xyes"; then
1153       if test "x$NEED_GL" != "xno"; then
1154         if test "x$HAVE_WGL" = "xyes"; then
1155           if test "$NEED_WGL" != "xno"; then
1156             GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1157             HAVE_WINDOW_WIN32=yes
1158             USE_OPENGL=yes
1159             USE_WGL=yes
1160           fi
1161         fi
1162       fi
1163     fi
1164     ;;
1165   *)
1166     AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1167     ;;
1168 esac
1169
1170 GL_PLATFORMS=
1171 GL_WINDOWS=
1172 GL_APIS=
1173 GL_CONFIG_DEFINES=
1174
1175 dnl APIs
1176
1177 GST_GL_HAVE_OPENGL=0
1178 GST_GL_HAVE_GLES2=0
1179 GST_GL_HAVE_GLES3=0
1180
1181 if test "x$USE_OPENGL" = "xyes"; then
1182   GL_APIS="gl $GL_APIS"
1183   GST_GL_HAVE_OPENGL=1
1184 fi
1185 if test "x$USE_GLES2" = "xyes"; then
1186   GL_APIS="gles2 $GL_APIS"
1187   GST_GL_HAVE_GLES2=1
1188   if test "x$HAVE_GLES3_H" = "xyes"; then
1189     GST_GL_HAVE_GLES3=1
1190   fi
1191 fi
1192
1193 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1194 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1195 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1196 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1197 "
1198
1199 dnl WINDOW's
1200
1201 GST_GL_HAVE_WINDOW_X11=0
1202 GST_GL_HAVE_WINDOW_COCOA=0
1203 GST_GL_HAVE_WINDOW_WIN32=0
1204 GST_GL_HAVE_WINDOW_WAYLAND=0
1205 GST_GL_HAVE_WINDOW_ANDROID=0
1206 GST_GL_HAVE_WINDOW_DISPMANX=0
1207 GST_GL_HAVE_WINDOW_EAGL=0
1208 GST_GL_HAVE_WINDOW_VIV_FB=0
1209
1210 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1211   GL_WINDOWS="x11 $GL_WINDOWS"
1212   GST_GL_HAVE_WINDOW_X11=1
1213 fi
1214 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1215   GL_WINDOWS="cocoa $GL_WINDOWS"
1216   GST_GL_HAVE_WINDOW_COCOA=1
1217 fi
1218 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1219   GL_WINDOWS="win32 $GL_WINDOWS"
1220   GST_GL_HAVE_WINDOW_WIN32=1
1221 fi
1222 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1223   GL_WINDOWS="wayland $GL_WINDOWS"
1224   GST_GL_HAVE_WINDOW_WAYLAND=1
1225 fi
1226 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1227   GL_WINDOWS="android $GL_WINDOWS"
1228   GST_GL_HAVE_WINDOW_ANDROID=1
1229 fi
1230 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1231   GL_WINDOWS="dispmanx $GL_WINDOWS"
1232   GST_GL_HAVE_WINDOW_DISPMANX=1
1233 fi
1234 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1235   GL_WINDOWS="eagl $GL_WINDOWS"
1236   GST_GL_HAVE_WINDOW_EAGL=1
1237 fi
1238 if test "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1239   GL_WINDOWS="viv-fb $GL_WINDOWS"
1240   GST_GL_HAVE_WINDOW_VIV_FB=1
1241 fi
1242
1243 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1244 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1245 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1246 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1247 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1248 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1249 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1250 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1251 #define GST_GL_HAVE_WINDOW_VIV_FB $GST_GL_HAVE_WINDOW_VIV_FB
1252 "
1253
1254 dnl PLATFORM's
1255
1256 GST_GL_HAVE_PLATFORM_EGL=0
1257 GST_GL_HAVE_PLATFORM_GLX=0
1258 GST_GL_HAVE_PLATFORM_WGL=0
1259 GST_GL_HAVE_PLATFORM_CGL=0
1260 GST_GL_HAVE_PLATFORM_EAGL=0
1261
1262 if test "x$USE_EGL" = "xyes"; then
1263   GL_PLATFORMS="egl $GL_PLATFORMS"
1264   GST_GL_HAVE_PLATFORM_EGL=1
1265 fi
1266 if test "x$USE_GLX" = "xyes"; then
1267   GL_PLATFORMS="glx $GL_PLATFORMS"
1268   GST_GL_HAVE_PLATFORM_GLX=1
1269 fi
1270 if test "x$USE_WGL" = "xyes"; then
1271   GL_PLATFORMS="wgl $GL_PLATFORMS"
1272   GST_GL_HAVE_PLATFORM_WGL=1
1273 fi
1274 if test "x$USE_COCOA" = "xyes"; then
1275   GL_PLATFORMS="cgl $GL_PLATFORMS"
1276   GST_GL_HAVE_PLATFORM_CGL=1
1277 fi
1278 if test "x$USE_EAGL" = "xyes"; then
1279   GL_PLATFORMS="eagl $GL_PLATFORMS"
1280   GST_GL_HAVE_PLATFORM_EAGL=1
1281 fi
1282
1283 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1284 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1285 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1286 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1287 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1288 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1289 "
1290
1291 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1292 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1293 #define GST_GL_HAVE_VIV_DIRECTVIV $GST_GL_HAVE_VIV_DIRECTVIV
1294 "
1295
1296 dnl Check for no platforms/window systems
1297 if test "x$GL_APIS" = "x"; then
1298   AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1299 fi
1300 if test "x$GL_PLATFORMS" = "x"; then
1301   AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1302 fi
1303 if test "x$GL_WINDOWS" = "x"; then
1304   AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1305 fi
1306
1307 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1308   GL_LIBS=
1309   GL_CFLAGS=
1310   GL_OBJCFLAGS=
1311   USE_OPENGL=no
1312   USE_GLES2=no
1313   USE_GLX=no
1314   USE_EGL=no
1315   USE_WGL=no
1316   USE_COCOA=no
1317   USE_EGL_MALI=no
1318   USE_EGL_RPI=no
1319   USE_EAGL=no
1320
1321   HAVE_WINDOW_X11=no
1322   HAVE_WINDOW_WIN32=no
1323   HAVE_WINDOW_DISPMANX=no
1324   HAVE_WINDOW_WAYLAND=no
1325   HAVE_WINDOW_ANDROID=no
1326   HAVE_WINDOW_COCOA=no
1327   HAVE_WINDOW_EAGL=no
1328   HAVE_WINDOW_VIV_FB=no
1329 fi
1330
1331 AC_SUBST(GL_APIS)
1332 AC_SUBST(GL_PLATFORMS)
1333 AC_SUBST(GL_WINDOWS)
1334 AC_SUBST(GL_LIBS)
1335 AC_SUBST(GL_CFLAGS)
1336 AC_SUBST(GL_OBJCFLAGS)
1337 AC_SUBST(USE_OPENGL)
1338 AC_SUBST(USE_GLES2)
1339
1340 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1341 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1342 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1343 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1344 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1345 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1346 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1347 AM_CONDITIONAL(HAVE_WINDOW_VIV_FB, test "x$HAVE_WINDOW_VIV_FB" = "xyes")
1348
1349 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1350 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1351 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1352 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1353 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1354 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1355 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1356 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1357 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1358
1359 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1360
1361 dnl Check for some types that are not always present
1362 GL_INCLUDES=""
1363 if test "x$USE_GLES2" = "xyes"; then
1364   GL_INCLUDES="$GL_INCLUDES
1365 #ifndef GL_GLEXT_PROTOTYPES
1366 #define GL_GLEXT_PROTOTYPES 1
1367 #endif
1368 # ifdef HAVE_IOS
1369 #  include <OpenGLES/ES2/gl.h>
1370 #  include <OpenGLES/ES2/glext.h>
1371 # else
1372 #  if $GST_GL_HAVE_GLES3
1373 #   include <GLES3/gl3.h>
1374 #   include <GLES3/gl3ext.h>
1375 #  else
1376 #   include <GLES2/gl2.h>
1377 #   include <GLES2/gl2ext.h>
1378 #  endif
1379 # endif
1380 "
1381 fi
1382
1383 if test "x$USE_OPENGL" = "xyes"; then
1384   GL_INCLUDES="$GL_INCLUDES
1385 # ifdef __APPLE__
1386 #  include <OpenGL/OpenGL.h>
1387 #  include <OpenGL/gl.h>
1388 # else
1389 #  include <GL/gl.h>
1390 #  if __WIN32__ || _WIN32
1391 #   include <GL/glext.h>
1392 #  endif
1393 # endif
1394 "
1395 fi
1396
1397 GST_GL_HAVE_GLEGLIMAGEOES=0
1398 GST_GL_HAVE_GLCHAR=0
1399 GST_GL_HAVE_GLSIZEIPTR=0
1400 GST_GL_HAVE_GLINTPTR=0
1401 GST_GL_HAVE_GLSYNC=0
1402 GST_GL_HAVE_GLUINT64=0
1403 GST_GL_HAVE_GLINT64=0
1404 GST_GL_HAVE_EGLATTRIB=0
1405
1406 old_CFLAGS=$CFLAGS
1407 CFLAGS="$GL_CFLAGS $CFLAGS"
1408
1409 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1410 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1411   GST_GL_HAVE_GLEGLIMAGEOES=1
1412 fi
1413
1414 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1415 if test "x$ac_cv_type_GLchar" = "xyes"; then
1416   GST_GL_HAVE_GLCHAR=1
1417 fi
1418
1419 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1420 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1421   GST_GL_HAVE_GLSIZEIPTR=1
1422 fi
1423
1424 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1425 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1426   GST_GL_HAVE_GLINTPTR=1
1427 fi
1428
1429 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1430 if test "x$ac_cv_type_GLsync" = "xyes"; then
1431   GST_GL_HAVE_GLSYNC=1
1432 fi
1433
1434 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1435 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1436   GST_GL_HAVE_GLUINT64=1
1437 fi
1438
1439 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1440 if test "x$ac_cv_type_GLint64" = "xyes"; then
1441   GST_GL_HAVE_GLINT64=1
1442 fi
1443
1444 if test "x$USE_EGL" = "xyes"; then
1445   EGL_INCLUDES="$GL_INCLUDES
1446   #include <EGL/egl.h>
1447   #include <EGL/eglext.h>
1448   "
1449   AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1450   if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1451     GST_GL_HAVE_EGLATTRIB=1
1452   fi
1453 fi
1454
1455 CFLAGS=$old_CFLAGS
1456
1457 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1458 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1459 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1460 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1461 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1462 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1463 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1464 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1465 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1466 "
1467
1468 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1469         outfile=gstglconfig.h-tmp
1470         cat > $outfile <<\_______EOF
1471 /* gstglconfig.h
1472  *
1473  * This is a generated file.  Please modify `configure.ac'
1474  */
1475
1476 #ifndef __GST_GL_CONFIG_H__
1477 #define __GST_GL_CONFIG_H__
1478
1479 #include <gst/gst.h>
1480
1481 G_BEGIN_DECLS
1482
1483 _______EOF
1484
1485         cat >>$outfile <<_______EOF
1486 $gl_config_defines
1487 _______EOF
1488
1489         cat >>$outfile <<_______EOF
1490
1491 G_END_DECLS
1492
1493 #endif  /* __GST_GL_CONFIG_H__ */
1494 _______EOF
1495
1496
1497         if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1498           AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1499           rm -f $outfile
1500         else
1501           mv $outfile gst-libs/gst/gl/gstglconfig.h
1502         fi
1503 ],[
1504 gl_config_defines='$GL_CONFIG_DEFINES'
1505 ])
1506
1507 dnl libpng is optional
1508 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1509 if test "x$HAVE_PNG" = "xyes"; then
1510   AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1511 fi
1512 AC_SUBST(HAVE_PNG)
1513 AC_SUBST(LIBPNG_LIBS)
1514 AC_SUBST(LIBPNG_CFLAGS)
1515 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1516
1517 dnl libjpeg is optional
1518 AC_ARG_WITH(jpeg-mmx, [  --with-jpeg-mmx, path to MMX'ified JPEG library])
1519 OLD_LIBS="$LIBS"
1520 if test x$with_jpeg_mmx != x; then
1521   LIBS="$LIBS -L$with_jpeg_mmx"
1522 fi
1523 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1524 JPEG_LIBS="$LIBS -ljpeg-mmx"
1525 LIBS="$OLD_LIBS"
1526 if test x$HAVE_JPEG != xyes; then
1527   JPEG_LIBS="-ljpeg"
1528   AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1529 fi
1530
1531 if test x$HAVE_JPEG = xyes; then
1532   AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1533 else
1534   AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1535   JPEG_LIBS=
1536 fi
1537 AC_SUBST(JPEG_LIBS)
1538 AC_SUBST(HAVE_JPEG)
1539 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1540
1541 dnl Vulkan
1542 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1543 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1544
1545 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1546 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1547 VULKAN_CONFIG_DEFINES="
1548 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1549 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1550
1551 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1552         outfile=vkconfig.h-tmp
1553         cat > $outfile <<\_______EOF
1554 /* vkconfig.h
1555  *
1556  * This is a generated file.  Please modify `configure.ac'
1557  */
1558
1559 #ifndef __GST_VULKAN_CONFIG_H__
1560 #define __GST_VULKAN_CONFIG_H__
1561
1562 #include <gst/gst.h>
1563
1564 G_BEGIN_DECLS
1565
1566 _______EOF
1567
1568         cat >>$outfile <<_______EOF
1569 $vulkan_config_defines
1570 _______EOF
1571
1572         cat >>$outfile <<_______EOF
1573
1574 G_END_DECLS
1575
1576 #endif  /* __GST_VULKAN_CONFIG_H__ */
1577 _______EOF
1578
1579
1580         if cmp -s $outfile ext/vulkan/vkconfig.h; then
1581           AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1582           rm -f $outfile
1583         else
1584           mv $outfile ext/vulkan/vkconfig.h
1585         fi
1586 ],[
1587 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1588 ])
1589
1590 dnl *** sys plug-ins ***
1591
1592 dnl DirectSound
1593 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1594 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1595   HAVE_DIRECTSOUND="no"
1596   save_CFLAGS="$CFLAGS"
1597   save_LDFLAGS="$LDFLAGS"
1598   save_LIBS="$LIBS"
1599   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1600   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1601   LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1602   AC_MSG_CHECKING(for DirectSound LDFLAGS)
1603   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1604 #include <windows.h>
1605 #include <dxerr9.h>
1606 #include <dsound.h>
1607 #include <mmsystem.h>
1608 ]], [[
1609   DXGetErrorString9 (0);
1610   DirectSoundCreate(NULL, NULL, NULL);
1611 ]])],
1612     [HAVE_DIRECTSOUND="yes"],
1613     [HAVE_DIRECTSOUND="no"])
1614   AC_MSG_RESULT($HAVE_DIRECTSOUND)
1615   CFLAGS=$save_CFLAGS
1616   LDFLAGS=$save_LDFLAGS
1617   LIBS=$save_LIBS
1618
1619   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
1620     dnl this is much more than we want
1621     DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1622     AC_SUBST(DIRECTX_CFLAGS)
1623     AC_SUBST(DIRECTX_LDFLAGS)
1624     AC_SUBST(DIRECTSOUND_LIBS)
1625   fi
1626   AC_SUBST(HAVE_DIRECTSOUND)
1627 ])
1628
1629 dnl WASAPI
1630 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1631 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1632   HAVE_WASAPI="no"
1633   save_CFLAGS="$CFLAGS"
1634   save_LDFLAGS="$LDFLAGS"
1635   save_LIBS="$LIBS"
1636   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1637   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1638   LIBS="$LIBS -lole32 -lwinmm -lksuser"
1639   AC_MSG_CHECKING(for WASAPI LDFLAGS)
1640   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1641 #include <windows.h>
1642 #include <stdio.h>
1643 #include <mmsystem.h>
1644 #include <mmdeviceapi.h>
1645 ]], [[
1646 int main ()
1647 {
1648     HRESULT hr = S_OK;
1649
1650     hr = CoInitialize(NULL);
1651     if (FAILED(hr)) {
1652         printf("CoInitialize failed: hr = 0x%08x", hr);
1653         return __LINE__;
1654     }
1655
1656         int result = 0;
1657     // result = do_everything(argc, argv);
1658
1659     CoUninitialize();
1660     return result;
1661 }
1662 ]])],
1663     [HAVE_WASAPI="yes"],
1664     [HAVE_WASAPI="no"])
1665   AC_MSG_RESULT($HAVE_WASAPI)
1666   CFLAGS=$save_CFLAGS
1667   LDFLAGS=$save_LDFLAGS
1668   LIBS=$save_LIBS
1669
1670   if test "x$HAVE_WASAPI" = "xyes";  then
1671     WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1672     AC_SUBST(WASAPI_LIBS)
1673   fi
1674   AC_SUBST(HAVE_WASAPI)
1675 ])
1676
1677 dnl Direct3D
1678 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1679 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1680   HAVE_DIRECT3D="no"
1681   save_CFLAGS="$CFLAGS"
1682   save_LDFLAGS="$LDFLAGS"
1683   save_LIBS="$LIBS"
1684   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1685   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1686   LIBS="$LIBS -ld3d9 -lgdi32"
1687   AC_MSG_CHECKING(for Direct3D LDFLAGS)
1688   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1689 #include <windows.h>
1690 #include <d3d9.h>
1691 ]], [[
1692   Direct3DCreate9(D3D_SDK_VERSION);
1693 ]])],
1694     [HAVE_DIRECT3D="yes"],
1695     [HAVE_DIRECT3D="no"])
1696   AC_MSG_RESULT($HAVE_DIRECT3D)
1697   CFLAGS=$save_CFLAGS
1698   LDFLAGS=$save_LDFLAGS
1699   LIBS=$save_LIBS
1700
1701   if test "x$HAVE_DIRECT3D" = "xyes";  then
1702     DIRECT3D_LIBS="-ld3d9 -lgdi32"
1703     AC_SUBST(DIRECT3D_LIBS)
1704   fi
1705   AC_SUBST(HAVE_DIRECT3D)
1706 ])
1707
1708 dnl winscreencap
1709 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1710 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1711   HAVE_WINSCREENCAP="no"
1712   save_CFLAGS="$CFLAGS"
1713   save_LDFLAGS="$LDFLAGS"
1714   save_LIBS="$LIBS"
1715   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1716   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1717   LIBS="$LIBS -ld3d9 -lgdi32"
1718   AC_MSG_CHECKING(for Direct3D LDFLAGS)
1719   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1720 #include <windows.h>
1721 #include <d3d9.h>
1722 ]], [[
1723   Direct3DCreate9(D3D_SDK_VERSION);
1724 ]])],
1725     [HAVE_WINSCREENCAP="yes"],
1726     [HAVE_WINSCREENCAP="no"])
1727   AC_MSG_RESULT($HAVE_WINSCREENCAP)
1728   CFLAGS=$save_CFLAGS
1729   LDFLAGS=$save_LDFLAGS
1730   LIBS=$save_LIBS
1731
1732   if test "x$HAVE_WINSCREENCAP" = "xyes";  then
1733     WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1734     AC_SUBST(WINSCREENCAP_LIBS)
1735   fi
1736   AC_SUBST(HAVE_WINSCREENCAP)
1737 ])
1738
1739 dnl winks
1740 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1741 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1742   HAVE_WINKS="no"
1743   save_CFLAGS="$CFLAGS"
1744   save_LDFLAGS="$LDFLAGS"
1745   save_LIBS="$LIBS"
1746   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1747   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1748   LIBS="$LIBS -lole32 -luuid -lstrmiids"
1749   AC_MSG_CHECKING(for Winks LDFLAGS)
1750   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1751 #include <windows.h>
1752 #include <strmif.h>
1753 #include <uuids.h>
1754 ]], [[
1755 int main () {
1756   IGraphBuilder *pGraph = NULL;
1757   HRESULT hr = CoInitialize(NULL);
1758   hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1759                         &IID_IGraphBuilder, (void **)&pGraph);
1760
1761   return 0;
1762 }
1763 ]])],
1764     [HAVE_WINKS="yes"],
1765     [HAVE_WINKS="no"])
1766   AC_MSG_RESULT($HAVE_WINKS)
1767   CFLAGS=$save_CFLAGS
1768   LDFLAGS=$save_LDFLAGS
1769   LIBS=$save_LIBS
1770
1771   if test "x$HAVE_WINKS" = "xyes";  then
1772     dnl this is much more than we want
1773     WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1774     AC_SUBST(DIRECTX_CFLAGS)
1775     AC_SUBST(DIRECTX_LDFLAGS)
1776     AC_SUBST(WINKS_LIBS)
1777   fi
1778   AC_SUBST(HAVE_WINKS)
1779 ])
1780
1781 dnl *** Android Media ***
1782 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1783 HAVE_ANDROID_MEDIA="no"
1784 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1785   case "$host" in
1786     *android*)
1787       AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1788       ;;
1789     *)
1790       HAVE_ANDROID_MEDIA="no"
1791       ;;
1792   esac
1793 ])
1794
1795 dnl *** AppleMedia (OS X and iOS) ***
1796 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1797 HAVE_APPLE_MEDIA="no"
1798 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1799 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1800   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1801   dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1802   if test "x$HAVE_IOS" = "xno"; then
1803     AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1804   fi
1805 ])
1806
1807 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1808 case "$host" in
1809   *-*darwin*)
1810     ;;
1811   *)
1812     HAVE_APPLE_MEDIA="no"
1813     ;;
1814 esac
1815
1816 dnl *** bluez ***
1817 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1818 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1819   PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1820     PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1821       AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1822       HAVE_BLUEZ=yes
1823       AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1824     ], [
1825       HAVE_BLUEZ=no
1826     ])
1827   ], [
1828     HAVE_BLUEZ=no
1829   ])
1830 ])
1831
1832 dnl *** OS/X AVCVideoServices ***
1833 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1834 HAVE_AVC="no"
1835 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1836   AC_LANG_PUSH([C++])
1837   save_CPPFLAGS="$CPPFLAGS"
1838   CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1839   save_LIBS="$LIBS"
1840   LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1841   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1842   LIBS=$save_LIBS
1843   CPPFLAGS=$save_CPPFLAGS
1844   AC_LANG_POP([C++])
1845 ])
1846 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1847 case "$host" in
1848   *-*darwin*)
1849     ;;
1850   *)
1851     HAVE_AVC="no"
1852     ;;
1853 esac
1854
1855 dnl check for shm_open (for shm plugin)
1856 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1857 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1858     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1859         case $host in
1860         *-darwin* | *-macos10*)
1861             AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1862             HAVE_SHM=yes
1863             ;;
1864         *-*-OpenBSD*)
1865             HAVE_SHM=yes
1866             ;;
1867         *)
1868             AC_CHECK_LIB([rt], [shm_open],
1869                 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1870                 #include <sys/socket.h>
1871                     ]),
1872                 HAVE_SHM=no)
1873             AC_SUBST(SHM_LIBS, "-lrt")
1874             ;;
1875         esac
1876     else
1877         HAVE_SHM=no
1878     fi
1879 ])
1880
1881 dnl check for Video CD
1882 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1883 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1884   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1885 ])
1886
1887 dnl check for OpenSL ES
1888 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1889 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1890   AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1891 ])
1892
1893 dnl *** UVC H264 ***
1894 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1895 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1896   AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1897   PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1898           AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1899           HAVE_GUDEV="yes" ],
1900           [HAVE_GUDEV="no"])
1901   PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1902           AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1903           HAVE_LIBUSB="yes" ],
1904           [HAVE_LIBUSB="no"])
1905   if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1906      test "x$HAVE_GUDEV" = "xyes" && \
1907      test "x$HAVE_LIBUSB" = "xyes"; then
1908     HAVE_UVCH264=yes
1909   else
1910     HAVE_UVCH264=no
1911   fi
1912 ])
1913 AC_SUBST(LIBUDEV_CFLAGS)
1914 AC_SUBST(LIBUDEV_LIBS)
1915 AC_SUBST(LIBUSB_CFLAGS)
1916 AC_SUBST(LIBUSB_LIBS)
1917
1918 dnl check for tv profile
1919 AC_ARG_ENABLE(tv, AC_HELP_STRING([--enable-tv], [enable tv profile]),
1920         [
1921           case "${enableval}" in
1922            yes) TV_PROFILE=yes ;;
1923            no)  TV_PROFILE=no ;;
1924            *)   AC_MSG_ERROR(bad value ${enableval} for --enable-tv) ;;
1925           esac
1926         ],
1927         [TV_PROFILE=no])
1928 AM_CONDITIONAL([TV_PROFILE], [test "x$TV_PROFILE" = "xyes"])
1929
1930 dnl *** NVENC ***
1931 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1932 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1933   AC_ARG_WITH([cuda-prefix],
1934           AS_HELP_STRING([--with-cuda-prefix],
1935           [Use the provided prefix for detecting the cuda installation]),
1936           [AS_IF([test "x$with_cuda_prefix" != "x"],
1937                  [CUDA_PREFIX="$with_cuda_prefix"])],
1938           [CUDA_PREFIX=""])
1939
1940   HAVE_CUDA="yes"
1941   if test "x$CUDA_PREFIX" != "x"; then
1942     dnl only override if not already set
1943     if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1944       dnl this is an educated guess, user can always override these
1945       CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1946       CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1947     fi
1948   else
1949     PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
1950       PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1951         PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1952           PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1953             AC_MSG_WARN([Could not find cuda headers/libraries])])])])])
1954   fi
1955
1956   HAVE_CUDA_H=no
1957   HAVE_CUDART_H=no
1958   save_CPPFLAGS="$CPPFLAGS"
1959   CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1960   AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1961       AC_MSG_WARN([Could not find cuda.h]))
1962   AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1963       AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1964   CPPFLAGS=$save_CPPFLAGS
1965
1966   dnl libcuda and libcudart libraries
1967   save_LIBS="$LIBS"
1968   LIBS="$CUDA_LIBS $save_LIBS"
1969   HAVE_CUDART_LIB="no"
1970   AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1971       AC_MSG_WARN([Could not find cudart library])])
1972   HAVE_CUDA_LIB="no"
1973   AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1974       AC_MSG_WARN([Could not find cuda library])])
1975   LIBS="$save_LIBS"
1976
1977   dnl nvEncodeAPI.h header
1978   HAVE_NVENCODEAPI_H=no
1979   AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1980   save_CPPFLAGS="$CPPFLAGS"
1981   CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1982   AC_CHECK_HEADER([nvEncodeAPI.h], [
1983       AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1984           #if NVENCAPI_MAJOR_VERSION < 5
1985           #error "Need nvEncodeAPI.h >= 5.0"
1986           #endif
1987           ]])], [
1988           HAVE_NVENCODEAPI_H=yes
1989           ], [
1990           AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1991           ])
1992       ],
1993       AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1994   AC_SUBST(NVENCODE_CFLAGS)
1995   CPPFLAGS="$save_CPPFLAGS"
1996
1997   dnl libnvnidia-encode library
1998   HAVE_NVENCODE_LIB=no
1999   AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
2000   saved_LIBS="$LIBS"
2001   LIBS="$NVENCODE_LIBS $saved_LIBS"
2002   AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
2003       AC_MSG_WARN([Could not find library nvidia-encode]))
2004   NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
2005   AC_SUBST(NVENCODE_LIBS)
2006   LIBS="$saved_LIBS"
2007
2008   USE_NVENC_GST_GL=no
2009   if test "x$HAVE_CUDA_H" = "xyes" \
2010       -a "x$HAVE_CUDART_H" = "xyes" \
2011       -a "x$HAVE_CUDA_LIB" = "xyes" \
2012       -a "x$HAVE_CUDART_LIB" = "xyes" \
2013       -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
2014       -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
2015     HAVE_NVENC="yes"
2016     if test x"$USE_OPENGL" = x"yes"; then
2017       dnl cuda-gl interop header
2018       save_CPPFLAGS="$CPPFLAGS"
2019       CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
2020       AC_CHECK_HEADER([cuda_gl_interop.h], [
2021         USE_NVENC_GST_GL="yes"
2022         AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
2023         ])
2024       CPPFLAGS="$save_CPPFLAGS"
2025     fi
2026   else
2027     HAVE_NVENC="no"
2028   fi
2029 ])
2030 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
2031
2032 dnl check for tinyalsa
2033 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
2034 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
2035   AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
2036 ])
2037
2038 dnl check for intel mediasdk
2039 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
2040 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
2041   AC_ARG_WITH([msdk-prefix],
2042           AS_HELP_STRING([--with-msdk-prefix],
2043           [Use the provided prefix for detecting the Intel MediaSDK]),
2044           [AS_IF([test "x$with_msdk_prefix" != "x"],
2045                  [MSDK_PREFIX="$with_msdk_prefix"])],
2046           [AS_IF([test "x$MFX_HOME" != "x"],
2047                  [MSDK_PREFIX="$MFX_HOME"],
2048                  [MSDK_PREFIX="/opt/intel/media"])])
2049   MSDK_CFLAGS="-I$MSDK_PREFIX/include"
2050   MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
2051   AC_SUBST(MSDK_CFLAGS)
2052   AC_SUBST(MSDK_LIBS)
2053
2054   save_CPPFLAGS="$CPPFLAGS"
2055   CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
2056   AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
2057   CPPFLAGS="$save_CPPFLAGS"
2058
2059   save_LIBS="$LIBS"
2060   LIBS="$MSDK_LIBS $LIBS"
2061   AC_LANG_PUSH([C++])
2062   AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
2063   AC_LANG_POP([C++])
2064   LIBS="$save_LIBS"
2065
2066   PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
2067
2068   if test "x$HAVE_MFXDEFS_H" = "xyes" \
2069       -a "x$HAVE_MFX_LIB" = "xyes" \
2070       -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2071     HAVE_MSDK="yes"
2072   else
2073     HAVE_MSDK="no"
2074   fi
2075 ])
2076 AM_CONDITIONAL(USE_MSDK_LIBVA,
2077     test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2078
2079 dnl *** ext plug-ins ***
2080 dnl keep this list sorted alphabetically !
2081
2082 if test "x$BUILD_EXTERNAL" = "xyes"; then
2083
2084 dnl *** assrender ***
2085 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2086 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2087   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2088     HAVE_ASSRENDER="yes" ], [
2089     HAVE_ASSRENDER="no"
2090   ])
2091 ])
2092 AC_SUBST(ASSRENDER_CFLAGS)
2093 AC_SUBST(ASSRENDER_LIBS)
2094
2095 dnl *** vo-amrwbenc ***
2096 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2097 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2098   AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2099 ])
2100
2101 dnl *** vo-aacenc ***
2102 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2103 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2104   AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2105 ])
2106
2107 dnl *** bs2b ***
2108 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2109 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2110   PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2111     HAVE_BS2B="no"
2112   ])
2113   AC_SUBST(BS2B_CFLAGS)
2114   AC_SUBST(BS2B_LIBS)
2115 ])
2116
2117 dnl *** BZ2 ***
2118 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2119 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2120   save_LIBS=$LIBS
2121   LIBS="$LIBS -lbz2"
2122   AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2123   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2124   AC_MSG_RESULT($HAVE_BZ2)
2125   LIBS=$save_LIBS
2126   if test "x$HAVE_BZ2" = "xyes"; then
2127     BZ2_LIBS="-lbz2"
2128   fi
2129   AC_SUBST(BZ2_LIBS)
2130
2131 ])
2132
2133 #dnl *** cairo ***
2134 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2135 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2136 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2137 #    HAVE_CAIRO=no
2138 #  ])
2139 #  AC_SUBST(CAIRO_CFLAGS)
2140 #  AC_SUBST(CAIRO_LIBS)
2141 #])
2142
2143 dnl *** chromaprint ***
2144 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2145 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2146   PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2147     HAVE_CHROMAPRINT="no"
2148   ])
2149   AC_SUBST(CHROMAPRINT_CFLAGS)
2150   AC_SUBST(CHROMAPRINT_LIBS)
2151 ])
2152
2153 dnl *** Curl ***
2154 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2155 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2156   PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2157     HAVE_CURL="yes"
2158     AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2159       AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2160     ])
2161     AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2162     [[#ifdef HAVE_SYS_TYPES_H
2163      # include <sys/types.h>
2164      #endif
2165      #ifdef HAVE_NETINET_IN_H
2166      # include <netinet/in.h>
2167      #endif
2168     ]])
2169     AC_MSG_CHECKING([for socket support needed by curlsink])
2170     AC_MSG_RESULT($HAVE_CURL)
2171   ], [
2172     HAVE_CURL="no"
2173   ])
2174   AC_SUBST(CURL_CFLAGS)
2175   AC_SUBST(CURL_LIBS)
2176   PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2177     HAVE_SSH2="yes"
2178     AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2179   ], [
2180     HAVE_SSH2="no"
2181   ])
2182   AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2183   AC_SUBST(SSH2_CFLAGS)
2184   AC_SUBST(SSH2_LIBS)
2185 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2186
2187 dnl **** DASH ****
2188 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2189 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2190   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2191     HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2192     HAVE_DASH="no"])
2193   AC_SUBST(LIBXML2_CFLAGS)
2194   AC_SUBST(LIBXML2_LIBS)
2195 ])
2196
2197 dnl *** dc1394  ***
2198 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2199 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2200    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2201         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2202                 HAVE_DC1394="yes"
2203         else
2204                 HAVE_DC1394="no"
2205         fi
2206    ], [
2207         HAVE_DC1394="no"
2208         AC_MSG_RESULT(no)
2209    ])
2210    AC_SUBST(LIBDC1394_CFLAGS)
2211    AC_SUBST(LIBDC1394_LIBS)
2212 ])
2213
2214 dnl *** decklink  ***
2215 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2216 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2217    HAVE_DECKLINK=no
2218    case "$host" in
2219      *android*)
2220        HAVE_DECKLINK=no
2221        ;;
2222      *-*linux*)
2223        if test "x$HAVE_PTHREAD_H" = "xyes"; then
2224          AC_CHECK_LIB(dl, dlopen,
2225            [
2226             HAVE_DECKLINK=yes
2227             DECKLINK_CXXFLAGS=
2228             DECKLINK_LIBS="-lpthread -ldl"
2229            ])
2230        fi
2231        ;;
2232      *-*darwin*)
2233        if test "x$HAVE_PTHREAD_H" = "xyes"; then
2234          AC_CHECK_LIB(dl, dlopen,
2235            [
2236             HAVE_DECKLINK=yes
2237             DECKLINK_CXXFLAGS=
2238             DECKLINK_LIBS="-lpthread -ldl"
2239             HAVE_DECKLINK_OSX=yes
2240            ])
2241        fi
2242        ;;
2243      *)
2244        HAVE_DECKLINK=no
2245        ;;
2246    esac
2247
2248    AC_SUBST(DECKLINK_CXXFLAGS)
2249    AC_SUBST(DECKLINK_LIBS)
2250 ])
2251 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2252
2253 dnl **** DirectFB ****
2254 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2255 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2256   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2257     HAVE_DIRECTFB="no"
2258   ])
2259 ])
2260
2261 dnl **** Wayland ****
2262 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2263 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2264 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2265   PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2266     if test "x$wayland_scanner" != "x"; then
2267       HAVE_WAYLAND="yes"
2268       AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2269     else
2270       AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2271       HAVE_WAYLAND="no"
2272     fi
2273     ],
2274     [ HAVE_WAYLAND="no"
2275   ])
2276 ])
2277
2278 dnl **** WebP ****
2279 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2280 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2281   PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2282     HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2283   ])
2284   AC_SUBST(WEBP_CFLAGS)
2285   AC_SUBST(WEBP_LIBS)
2286 ])
2287
2288 dnl *** Daala ***
2289 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2290 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2291   if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2292     PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2293             HAVE_DAALA="yes"
2294     ], [
2295             HAVE_DAALA="no"
2296     ])
2297     AC_SUBST(DAALA_CFLAGS)
2298     AC_SUBST(DAALA_LIBS)
2299   fi
2300 ])
2301
2302 dnl *** DTS ***
2303 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2304 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2305   HAVE_DTS="yes"
2306   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2307     DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2308   if test $HAVE_DTS = "no"; then
2309     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2310       [ DTS_LIBS="-ldts_pic $LIBM"
2311         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2312       ])
2313   fi
2314   AC_SUBST(DTS_LIBS)
2315 ])
2316
2317 dnl *** resindvd ***
2318 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2319 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2320   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2321     HAVE_RESINDVD="no"
2322   ])
2323 ])
2324
2325 dnl **** Free AAC Encoder (FAAC) ****
2326 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2327 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2328   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2329     FAAC_LIBS="-lfaac $LIBM")
2330   AC_SUBST(FAAC_LIBS)
2331 ])
2332
2333 dnl **** Free AAC Decoder (FAAD2) ****
2334 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2335 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2336   AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2337     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2338       #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2339       #error Not faad2
2340       #elif !defined(LATM)
2341       #error Not faad2 >= 2.7
2342       #endif
2343     ]])],[
2344       HAVE_FAAD="yes"
2345       FAAD_LIBS="-lfaad"
2346     ], [
2347       AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2348       HAVE_FAAD="no"
2349     ])
2350   ], [
2351       HAVE_FAAD="no"
2352   ])
2353   AC_SUBST(FAAD_LIBS)
2354 ])
2355
2356 dnl *** fbdev ***
2357 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2358 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2359   if test "x$HAVE_FBDEV" != "xyes"; then
2360     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2361   fi
2362 ])
2363
2364 dnl *** fdkaac ***
2365 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2366 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2367   PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2368     HAVE_FDK_AAC="yes",
2369     HAVE_FDK_AAC_0_1_4="yes"
2370     AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2371   ],[
2372     PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2373   ])
2374 ])
2375
2376 dnl *** flite ***
2377 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2378 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2379   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2380     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2381
2382   AC_SUBST(FLITE_CFLAGS)
2383   AC_SUBST(FLITE_LIBS)
2384 ])
2385
2386 dnl *** gsm ***
2387 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2388 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2389   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2390   if test $HAVE_GSM != "yes"; then
2391     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2392     if test $HAVE_GSM = "yes"; then
2393       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2394     fi
2395   fi
2396   AC_SUBST(GSM_LIBS)
2397 ])
2398
2399 dnl *** fluidSynth ***
2400 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2401 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2402   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2403     HAVE_FLUIDSYNTH="no"
2404   ])
2405 ])
2406
2407 dnl *** kate ***
2408 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2409 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2410   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2411     HAVE_KATE="no"
2412   ])
2413   AC_SUBST(KATE_CFLAGS)
2414   AC_SUBST(KATE_LIBS)
2415   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2416     [
2417       HAVE_TIGER="yes"
2418       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2419     ],
2420     [
2421       HAVE_TIGER="no"
2422     ]
2423   )
2424   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2425   AC_SUBST(TIGER_CFLAGS)
2426   AC_SUBST(TIGER_LIBS)
2427 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2428
2429 dnl *** kms ***
2430 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2431 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2432   AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2433   PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2434 ])
2435
2436 dnl *** ladspa ***
2437 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2438 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2439   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2440
2441   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2442   if test $HAVE_LRDF = "yes"; then
2443     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2444   fi
2445   AC_SUBST(LRDF_LIBS)
2446   AC_SUBST(LRDF_CFLAGS)
2447 ])
2448
2449 dnl *** LV2 ***
2450 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2451 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2452   PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2453     HAVE_LV2="yes",
2454     HAVE_LILV_0_22="yes"
2455     AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2456   ],[
2457     PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2458   ])
2459   AC_SUBST(LILV_CFLAGS)
2460   AC_SUBST(LILV_LIBS)
2461 ])
2462
2463 dnl *** libde265 ***
2464 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2465 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2466   PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2467   AC_SUBST(LIBDE265_CFLAGS)
2468   AC_SUBST(LIBDE265_LIBS)
2469 ])
2470
2471 dnl *** libmms ***
2472 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2473 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2474   dnl check with pkg-config first
2475   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2476     HAVE_LIBMMS="no"
2477   ])
2478 ])
2479 AC_SUBST(LIBMMS_LIBS)
2480
2481
2482 dnl *** libsrtp ***
2483 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2484 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2485   PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2486     AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2487   )
2488   AC_SUBST(SRTP_LIBS)
2489   AC_SUBST(SRTP_CFLAGS)
2490 ])
2491
2492 dnl *** dtls ***
2493 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2494 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2495   PKG_CHECK_MODULES(DTLS, [ openssl1.1 >= 1.0.1  libcrypto1.1 ], [
2496     HAVE_DTLS="yes"
2497     AC_SUBST(DTLS_CFLAGS)
2498     AC_SUBST(DTLS_LIBS)
2499   ], [
2500     HAVE_DTLS="no"
2501   ])
2502 ])
2503
2504 dnl *** ttml ***
2505 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2506 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2507   PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2508     HAVE_TTML="yes"
2509   ], [
2510     HAVE_TTML="no"
2511   ])
2512 ])
2513
2514 dnl *** modplug ***
2515 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2516 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2517   if test "x$HAVE_CXX" != "xyes"; then
2518     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2519     HAVE_MODPLUG="no"
2520   else
2521     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2522   fi
2523   AC_SUBST(MODPLUG_CFLAGS)
2524   AC_SUBST(MODPLUG_LIBS)
2525 ])
2526
2527 dnl *** mjpegtools version info ***
2528 dnl some may prefer older version (given quirks above)
2529 dnl hm, no version info seems available within mjpegtools headers
2530 dnl and API really moves along
2531 echo
2532 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2533   mjpegtools_api=10601
2534 ], [
2535   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2536     mjpegtools_api=10800
2537   ], [
2538     PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2539       mjpegtools_api=20000
2540     ], [
2541       PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2542         dnl logging API changed in release candidates
2543         OLD_CFLAGS="$CFLAGS"
2544         OLD_LIBS="$LIBS"
2545         CFLAGS="$MJPEG_CFLAGS"
2546         LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2547         AC_CHECK_FUNC(mjpeg_loglev_t, [
2548           mjpegtools_api=10903
2549           ], [
2550           mjpegtools_api=10900
2551           ])
2552         CFLAGS="$OLD_CFLAGS"
2553         LIBS="$OLD_LIBS"
2554       ], [
2555         mjpegtools_api=0
2556       ])
2557     ])
2558   ])
2559 ])
2560 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2561   [mjpegtools API evolution])
2562
2563 dnl *** mpeg2enc ***
2564 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2565 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2566   HAVE_MPEG2ENC="no"
2567   dnl we require a c++ compiler for this one
2568   if [ test x$HAVE_CXX = xyes ]; then
2569     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2570     dnl since many distros include mjpegtools specifically without mplex
2571     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2572     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2573       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2574       touch config.h
2575       dnl switch over to c++ to test things
2576       AC_LANG([C++])
2577       OLD_CPPFLAGS="$CPPFLAGS"
2578       dnl HACK as above
2579       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2580       CPPFLAGS="$CPPFLAGS_GOOD -I."
2581       dnl check headers
2582       mpeg2enc_headers_ok=no
2583       AC_CHECK_HEADER([mpeg2encoder.hh], [
2584         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2585         OLD_LIBS="$LIBS"
2586         LIBS="$LIBS $MPEG2ENC_LIBS"
2587         AC_MSG_CHECKING([for valid mpeg2enc objects])
2588         AC_RUN_IFELSE([AC_LANG_SOURCE([[
2589           #include <mpeg2encoder.hh>
2590           #include <mpeg2encoptions.hh>
2591
2592           int
2593           main (int   argc,
2594                 char *argv[])
2595           {
2596             MPEG2EncOptions *options = new MPEG2EncOptions ();
2597             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2598             return 0;
2599           }
2600         ]])],[
2601           AC_MSG_RESULT(yes)
2602           dnl so far so good, let's check more things:
2603           dnl mjpegtools-1.8.0 does not install the required
2604           dnl mpeg2syntaxcodes.h header by default, and a new release
2605           dnl is not in sight, so check for this oversight in case
2606           dnl distros or folks have fixed this themselves
2607           if test "$mjpegtools_api" -ge "10800"; then
2608             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2609                 mpeg2enc_headers_ok=yes
2610               ], [
2611                 mpeg2enc_headers_ok=no
2612               ])
2613           else
2614             mpeg2enc_headers_ok=yes
2615           fi
2616           if test "x$mpeg2enc_headers_ok" = "xyes"; then
2617             HAVE_MPEG2ENC="yes"
2618           fi
2619           CPPFLAGS="$CPPFLAGS_GOOD"
2620           AC_SUBST(MPEG2ENC_CFLAGS)
2621           AC_SUBST(MPEG2ENC_LIBS)
2622         ],[
2623           AC_MSG_RESULT(no)
2624         ],[])
2625         LIBS="$OLD_LIBS"
2626       ])
2627
2628       CPPFLAGS="$OLD_CPPFLAGS"
2629       AC_LANG([C])
2630     ], [
2631       HAVE_MPEG2ENC="no"
2632     ])
2633   fi
2634 ])
2635
2636 dnl *** mplex ***
2637 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2638 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2639   HAVE_MPLEX="no"
2640   dnl we require a c++ compiler for this one
2641   if [ test x$HAVE_CXX = xyes ]; then
2642     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2643     dnl since many distros include mjpegtools specifically without mplex
2644     dnl and mpeg2enc, we check for mplex on its own, too.
2645     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2646     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2647       dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2648       touch config.h
2649       dnl switch over to c++ to test things
2650       AC_LANG([C++])
2651       OLD_CPPFLAGS="$CPPFLAGS"
2652       dnl HACK as above
2653       CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2654       CPPFLAGS="$CPPFLAGS_GOOD -I."
2655       AC_CHECK_HEADER(interact.hpp, [
2656         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2657         OLD_LIBS="$LIBS"
2658         LIBS="$LIBS $MPLEX_LIBS"
2659         OLD_LDFLAGS="$LDFLAGS"
2660         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2661         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2662         dnl don't want this here
2663         AC_MSG_CHECKING([for valid mplex objects])
2664         AC_RUN_IFELSE([AC_LANG_SOURCE([[
2665
2666 #include <interact.hpp>
2667 #include <outputstrm.hpp>
2668 #include <multiplexor.hpp>
2669 int
2670 main (int   argc,
2671       char *argv[])
2672 {
2673   class TestOutputStream : public OutputStream {
2674   public:
2675     TestOutputStream () : OutputStream () { }
2676     void Write (uint8_t *a, unsigned int b) { }
2677     void NextSegment () { }
2678     uint64_t SegmentSize () { }
2679     void Close () { }
2680     int Open () { }
2681 };
2682   MultiplexJob *job = new MultiplexJob ();
2683   vector<IBitStream *> inputs;
2684   job->SetupInputStreams (inputs);
2685   TestOutputStream *out = new TestOutputStream ();
2686   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2687   return 0;
2688 }
2689         ]])],[
2690           HAVE_MPLEX="yes"
2691           CPPFLAGS="$CPPFLAGS_GOOD"
2692           AC_SUBST(MPLEX_CFLAGS)
2693           AC_SUBST(MPLEX_LIBS)
2694           AC_SUBST(MPLEX_LDFLAGS)
2695           AC_MSG_RESULT(yes)
2696         ],[AC_MSG_RESULT(no)],[])
2697         LIBS="$OLD_LIBS"
2698         LDFLAGS="$OLD_LDFLAGS"
2699       ])
2700       CPPFLAGS="$OLD_CPPFLAGS"
2701       AC_LANG([C])
2702     ], HAVE_MPLEX="no")
2703   fi
2704 ])
2705
2706 dnl *** musepack ***
2707 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2708 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2709   AC_CHECK_HEADER([mpc/mpcdec.h], [
2710     HAVE_MUSEPACK="yes"
2711     MUSEPACK_LIBS="-lmpcdec"
2712     AC_SUBST(MUSEPACK_LIBS)
2713     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2714       HAVE_MUSEPACK="yes"
2715       MUSEPACK_LIBS="-lmpcdec"
2716       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2717       AC_SUBST(MUSEPACK_LIBS)
2718     ], [HAVE_MUSEPACK="no"])])
2719 ])
2720
2721 dnl *** neon ***
2722 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2723 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2724   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.30.99, HAVE_NEON="yes", [
2725     HAVE_NEON="no"
2726   ])
2727   AC_SUBST(NEON_CFLAGS)
2728   AC_SUBST(NEON_LIBS)
2729 ])
2730
2731 dnl *** ofa ***
2732 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2733 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2734   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2735     HAVE_OFA="no"
2736   ])
2737   AC_SUBST(OFA_CFLAGS)
2738   AC_SUBST(OFA_LIBS)
2739 ])
2740
2741 dnl *** OpenAL ***
2742 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2743 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2744   PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2745     HAVE_OPENAL="no"
2746   ])
2747   AC_SUBST(OPENAL_CFLAGS)
2748   AC_SUBST(OPENAL_LIBS)
2749 ])
2750
2751 dnl *** opencv ***
2752 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2753 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2754   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2755   dnl and don't want the build to break when a new opencv version comes out.
2756   dnl Need to adjust this upwards once we know that our code compiles fine with
2757   dnl a new version and the no-backward-compatibility define. (There doesn't
2758   dnl seem to be a switch to suppress the warnings the cvcompat.h header
2759   dnl causes.)
2760   PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.2.0 , [
2761     AC_PROG_CXX
2762     AC_LANG([C++])
2763     OLD_CPPFLAGS=$CPPFLAGS
2764     CPPFLAGS=$OPENCV_CFLAGS
2765     something_not_found=no
2766     AC_CHECK_HEADERS([opencv2/core/core_c.h \
2767                       opencv2/core/version.hpp \
2768                       opencv2/highgui/highgui_c.h \
2769                       opencv2/imgproc/imgproc.hpp \
2770                       opencv2/imgproc/imgproc_c.h \
2771                       opencv2/objdetect/objdetect.hpp \
2772                       opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2773
2774     dnl Only required for OpenCV >= 3, we have compat code for older versions
2775     PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2776       dnl check opencv_contrib headers (not always present in opencv distributions)
2777       AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2778       [NOT_A_PROBLEM=yes])
2779
2780     CPPFLAGS=$OLD_CPPFLAGS
2781     AC_LANG([C])
2782
2783     if test $something_not_found = "yes"; then
2784       AC_MSG_RESULT([not all opencv2 headers were found])
2785       HAVE_OPENCV="no"
2786     else
2787       HAVE_OPENCV="yes"
2788     fi
2789   ], [
2790     HAVE_OPENCV="no"
2791   ])
2792   OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2793   AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2794   AC_SUBST(OPENCV_PREFIX)
2795   AC_SUBST(OPENCV_CFLAGS)
2796   AC_SUBST(OPENCV_LIBS)
2797   dnl the OpenCV prefix is used at runtime for some object properties, and also
2798   dnl used here to detect which directory is the correct one. For the second
2799   dnl case, make sure the right sysroot is used, ensuring correct behavior
2800   dnl during cross compilation.
2801   if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2802     AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2803   else
2804     AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2805   fi
2806 ])
2807
2808 dnl *** OpenEXR ***
2809 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2810 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2811   AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2812 ])
2813
2814 dnl *** openh264 ***
2815 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2816 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2817   AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2818 ])
2819
2820 dnl *** OpenJPEG ***
2821 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2822 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2823   HAVE_OPENJPEG="no"
2824   AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2825   if test x"$HAVE_OPENJPEG" = x"yes"; then
2826     dnl minor API changes in v2.1
2827     AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2828     if test x"$HAVE_OPENJPEG" = x"yes"; then
2829       AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2830     fi
2831   else
2832     # Fallback to v1.5
2833     OPENJPEG_LIBS=""
2834     PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2835       HAVE_OPENJPEG="yes",
2836       AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2837     )
2838     if test x"$HAVE_OPENJPEG" = x"yes"; then
2839       AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2840     fi
2841   fi
2842   AC_SUBST(OPENJPEG_CFLAGS)
2843   AC_SUBST(OPENJPEG_LIBS)
2844 ])
2845
2846 dnl *** OpenNI2 ***
2847 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2848 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2849   PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2850   AC_SUBST(OPENNI2_CFLAGS)
2851   AC_SUBST(OPENNI2_LIBS)
2852 ])
2853
2854 dnl *** Opus ***
2855 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2856 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2857   PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2858           AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2859           HAVE_OPUS="yes"
2860   ], [
2861           HAVE_OPUS="no"
2862   ])
2863   AC_SUBST(OPUS_CFLAGS)
2864   AC_SUBST(OPUS_LIBS)
2865 ])
2866
2867 dnl *** rsvg ***
2868 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2869 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2870   AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2871 ])
2872
2873 dnl *** gl ***
2874 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2875 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2876   HAVE_GL="no"
2877
2878   if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2879     HAVE_GL="yes"
2880   fi
2881 ])
2882
2883 dnl *** gtk+ ***
2884 HAVE_GTK3_GL="no"
2885 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2886 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2887   PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2888     AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2889     HAVE_GTK3="yes"
2890   ], [
2891     HAVE_GTK3="no"
2892   ])
2893   PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2894     GDK_WINDOWING="no"
2895     if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2896       PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2897         GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2898         GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2899         GDK_WINDOWING="yes"
2900       ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2901     fi
2902     if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2903       PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2904         GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2905         GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2906         GDK_WINDOWING="yes"
2907       ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2908     fi
2909     if test "x$GDK_WINDOWING" = "xyes"; then
2910       AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2911       HAVE_GTK3_GL="yes"
2912     fi
2913   ], [
2914       HAVE_GTK3_GL="no"
2915   ])
2916 ])
2917 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2918
2919 dnl *** Qt ***
2920 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2921 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2922   PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2923       QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2924       QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2925       AC_ARG_WITH([moc],
2926            AS_HELP_STRING([--with-moc], [Set location of qt moc tool]),
2927            [MOC=$withval])
2928       AC_PATH_PROGS(MOC, [moc-qt5 moc], [moc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2929       AC_ARG_WITH([rcc],
2930            AS_HELP_STRING([--with-rcc], [Set location of qt rcc tool]),
2931            [RCC=$withval])
2932       AC_PATH_PROGS(RCC, [rcc-qt5 rcc], [rcc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2933       AC_ARG_WITH([uic],
2934                AS_HELP_STRING([--with-uic], [Set location of qt uic tool]),
2935                [UIC=$withval])
2936       AC_PATH_PROGS(UIC, [uic-qt5 uic], [uic], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2937       if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2938         AC_MSG_WARN([One of the required qt build programs was not found])
2939         HAVE_QT="no"
2940       else
2941         HAVE_QT="yes"
2942         HAVE_QT_WINDOWING="no"
2943         QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
2944         QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2945         AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2946           QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
2947           HAVE_QT_QPA_HEADER="yes"
2948         ], [AC_MSG_NOTICE([Cannot find QPA])])
2949         if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2950           PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2951             AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2952             QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2953             QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2954             HAVE_QT_WINDOWING="yes"
2955           ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2956         fi
2957         if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; then
2958           PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2959             AC_DEFINE([HAVE_QT_WAYLAND], [],
2960                 [Define if Qt Wayland integration is installed])
2961             QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2962             QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2963             HAVE_QT_WINDOWING="yes"
2964           ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2965         fi
2966         if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2967           if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2968             PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2969               # c++ on android requires a standard library and there are multiple
2970               # choices.  cerbero provides a pkg-config file the describes a choice
2971               # so try to use that.  Outside cerbero one has to pass these flags
2972               # manually for the library one is using
2973               PKG_CHECK_MODULES(GNUSTL, gnustl, [
2974                 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2975                 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2976                 ], [
2977                 AC_MSG_NOTICE([Could not find Standard C++ library])])
2978               AC_DEFINE([HAVE_QT_EGLFS], [],
2979                 [Define if Qt eglfs integration is installed])
2980               QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2981               QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2982               HAVE_QT_WINDOWING="yes"
2983             ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2984           else
2985               AC_DEFINE([HAVE_QT_EGLFS], [],
2986                 [Define if Qt eglfs integration is installed])
2987               HAVE_QT_WINDOWING="yes"
2988           fi
2989         fi
2990         if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2991           PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2992             AC_DEFINE([HAVE_QT_MAC], [],
2993                 [Define if Qt Mac integration is installed])
2994             QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2995             QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2996             QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2997             HAVE_QT_WINDOWING="yes"
2998           ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2999         fi
3000         if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
3001           if test "x$HAVE_IOS" = "xyes"; then
3002             # iOS doesn't have its own extras package so if we have the core
3003             # modules we are good to go
3004             AC_DEFINE([HAVE_QT_IOS], [],
3005                 [Define if Qt iOS integration is installed])
3006             HAVE_QT_WINDOWING="yes"
3007           fi
3008         fi
3009         if test "x$HAVE_QT_WINDOWING" = "xno"; then
3010           AC_MSG_WARN([Could not find any Qt Windowing integration])
3011           HAVE_QT="no"
3012         fi
3013         AC_SUBST([QT_CFLAGS])
3014         AC_SUBST([QT_LIBS])
3015       fi
3016   ], [
3017       HAVE_QT="no"
3018   ])
3019 ])
3020
3021 dnl *** Vulkan ***
3022 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
3023 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
3024   AC_CHECK_HEADER(vulkan/vulkan.h, [
3025     AC_CHECK_LIB(vulkan, vkCreateDevice, [
3026       VULKAN_LIBS="-lvulkan"
3027       AC_SUBST(VULKAN_LIBS)
3028       if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
3029         HAVE_VULKAN="yes"
3030       fi
3031       if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
3032         HAVE_VULKAN="yes"
3033       fi
3034     ], [])
3035   ], [])
3036 ])
3037
3038 dnl *** teletextdec ***
3039 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3040 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3041   AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3042  ])
3043
3044 dnl *** wildmidi ***
3045 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3046 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3047   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3048                          WildMidi_Init, ,
3049                          wildmidi_lib.h,
3050                          WILDMIDI_LIBS="-lWildMidi")
3051   AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3052
3053   if test "x$HAVE_WILDMIDI" = "xyes"; then
3054          WILDMIDI_CFLAGS=
3055          WILDMIDI_LIBS=-lWildMidi
3056          AC_MSG_NOTICE(compiling gstWildMidi)
3057   else
3058          WILDMIDI_CFLAGS=
3059          WILDMIDI_LIBS=
3060          AC_MSG_WARN(no WildMidi library found (libWildMidi))
3061   fi
3062   AC_SUBST(WILDMIDI_CFLAGS)
3063   AC_SUBST(WILDMIDI_LIBS)
3064 ])
3065
3066 dnl **** Smooth Streaming ****
3067 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3068 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3069   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3070     [HAVE_LIBXML2="yes"
3071      HAVE_SMOOTHSTREAMING="yes"],
3072     [HAVE_LIBXML2="no"
3073      HAVE_SMOOTHSTREAMING="no"])
3074   AC_SUBST(LIBXML2_CFLAGS)
3075   AC_SUBST(LIBXML2_LIBS)
3076 ])
3077
3078 dnl *** sndfile ***
3079 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3080 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3081   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3082   AC_SUBST(SNDFILE_CFLAGS)
3083   AC_SUBST(SNDFILE_LIBS)
3084 ])
3085
3086 dnl *** soundtouch ***
3087 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3088 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3089   dnl We only need -lBPM on soundtouch < 1.4
3090   dnl We check for libSoundTouch since Debian used it before upstream
3091   dnl added a pkgconfig file.
3092   HAVE_SOUNDTOUCH_1_4=yes
3093   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3094     [HAVE_SOUNDTOUCH=yes],
3095     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3096       [HAVE_SOUNDTOUCH=yes],
3097       [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3098         [HAVE_SOUNDTOUCH=yes
3099           HAVE_SOUNDTOUCH_1_4=no
3100           SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3101         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3102           [HAVE_SOUNDTOUCH=yes],
3103           [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3104             [HAVE_SOUNDTOUCH=yes
3105               HAVE_SOUNDTOUCH_1_4=no
3106               SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3107             HAVE_SOUNDTOUCH=no)])])])])
3108   AC_SUBST(SOUNDTOUCH_CFLAGS)
3109   AC_SUBST(SOUNDTOUCH_LIBS)
3110   if test "x$HAVE_CXX" != "xyes"; then
3111     USE_SOUNDTOUCH=false
3112     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3113   fi
3114   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3115      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3116          [Defined if the available libSoundTouch is >= 1.4])
3117   fi
3118 ])
3119
3120 dnl *** spc ***
3121 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3122 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3123   AC_CHECK_HEADER(openspc.h, [
3124     AC_CHECK_LIB(openspc, OSPC_Init, [
3125       SPC_LIBS="-lopenspc"
3126       AC_SUBST(SPC_LIBS)
3127       HAVE_SPC=yes
3128     ], [
3129       HAVE_SPC=no
3130     ])
3131   ], [
3132     HAVE_SPC=no
3133   ])
3134 ])
3135
3136 dnl *** gme ***
3137 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3138 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3139   AC_CHECK_HEADER(gme/gme.h, [
3140     AC_CHECK_LIB(gme, gme_new_emu, [
3141       GME_LIBS="-lgme"
3142       AC_SUBST(GME_LIBS)
3143       HAVE_GME=yes
3144     ], [
3145       HAVE_GME=no
3146     ])
3147   ], [
3148     HAVE_GME=no
3149   ])
3150
3151   if test "x$HAVE_GME" = "xyes"; then
3152     AC_CHECK_LIB(gme, gme_enable_accuracy, [
3153       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3154       ])
3155   fi
3156 ])
3157
3158 dnl *** dvb ***
3159 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3160 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3161   AC_MSG_CHECKING([Checking for up to date dvb installation])
3162   AC_CHECK_HEADER(linux/dvb/version.h, [
3163     AC_MSG_CHECKING([for up-to-date dvb API])
3164     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3165         #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3166         #error "Incompatible dvb API"
3167         #endif
3168     ]])], [ AC_MSG_RESULT(yes)
3169       HAVE_DVB="yes"
3170     ], [ AC_MSG_RESULT(no)
3171       HAVE_DVB="no"
3172     ])
3173   ], [HAVE_DVB="no"])
3174 ])
3175
3176 dnl *** acm ***
3177 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3178 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3179   AC_MSG_CHECKING([Checking for ACM support])
3180   AC_CHECK_HEADERS([windows.h msacm.h],
3181       [HAVE_ACM="yes"
3182        AC_SUBST(ACMENC_CFLAGS)
3183        AC_SUBST(ACMMP3DEC_CFLAGS)
3184       ], [HAVE_ACM="no"],
3185       [AC_INCLUDES_DEFAULT
3186 #include <windows.h>])
3187 ])
3188
3189 dnl *** vdpau ***
3190 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3191 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3192   VDPAU_CFLAGS=
3193   VDPAU_LIBS=-lvdpau
3194   HAVE_VDPAU=no
3195
3196   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3197   [
3198     if test "$HAVE_VDPAU" = "no"; then
3199       saved_CPPFLAGS="$CPPFLAGS"
3200       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3201
3202       if test -z "$HAVE_VDPAU_H"; then
3203         dnl Didn't find VDPAU header straight away.
3204         dnl Try /usr/include/nvidia. Need to clear caching vars first
3205         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3206         unset ac_cv_header_vdpau_vdpau_h
3207         unset ac_cv_header_vdpau_vdpau_x11_h
3208         VDPAU_CFLAGS="-I/usr/include/nvidia"
3209         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3210         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3211         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3212       fi
3213
3214       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3215
3216       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3217         dnl Found the headers - look for the lib
3218         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3219         saved_LIBS="$LIBS"
3220         LIBS="$VDPAU_LIBS $saved_LIBS"
3221         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3222         LIBS="$saved_LIBS"
3223       fi
3224     fi
3225   ])
3226
3227   if test "$HAVE_VDPAU" = "yes"; then
3228     AC_MSG_NOTICE([Found up to date VDPAU installation])
3229     AC_SUBST(VDPAU_CFLAGS)
3230     AC_SUBST(VDPAU_LIBS)
3231   fi
3232 ])
3233
3234 dnl *** sbc ***
3235 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3236 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3237   AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3238 ])
3239
3240 dnl *** schroedinger ***
3241 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3242 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3243   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3244 ])
3245
3246 dnl *** zbar ***
3247 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3248 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3249   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3250 ])
3251
3252 dnl *** rtmp ***
3253 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3254 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3255   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3256 ])
3257
3258 dnl *** spandsp ***
3259 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3260 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3261   PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3262     HAVE_SPANDSP="yes" ], [
3263     HAVE_SPANDSP="no"
3264   ])
3265 ])
3266 AC_SUBST(SPANDSP_CFLAGS)
3267 AC_SUBST(SPANDSP_LIBS)
3268
3269 dnl *** hls-crypto ***
3270 AC_ARG_WITH([hls-crypto],
3271   AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3272     which cryptographic library version to compile against for hls (default: auto)
3273   ]), [
3274     AS_CASE([$with_hls_crypto],
3275       [nettle],[],
3276       [libgcrypt],[],
3277       [openssl],[],
3278       [with_hls_crypto=auto]
3279     )
3280   ]
3281 )
3282
3283 dnl *** hls ***
3284 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3285 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3286   AS_CASE([$with_hls_crypto],
3287     [nettle], [
3288       PKG_CHECK_MODULES(NETTLE, nettle, [
3289         AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3290         HAVE_HLS="yes"
3291       ],[AC_MSG_ERROR([Could not find nettle library])])
3292     ],
3293     [libgcrypt], [
3294       AM_PATH_LIBGCRYPT([1.2.0], [
3295         AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3296         HAVE_HLS="yes"
3297       ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3298     ],
3299     [openssl], [
3300       PKG_CHECK_MODULES(OPENSSL, openssl1.1, [
3301         AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3302         HAVE_HLS="yes"
3303       ],[AC_MSG_ERROR([Could not find openssl library])])
3304     ],
3305     [
3306       dnl Try to find a valid crypto library
3307       PKG_CHECK_MODULES(NETTLE, nettle, [
3308         AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3309         HAVE_HLS="yes"
3310       ],[
3311         AM_PATH_LIBGCRYPT([1.2.0], [
3312           AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3313           HAVE_HLS="yes"
3314         ],[
3315           PKG_CHECK_MODULES(OPENSSL, openssl1.1, [
3316             AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3317             HAVE_HLS="yes"
3318           ],[
3319             HAVE_HLS="no"
3320           ])
3321         ])
3322       ])
3323     ]
3324   )
3325 ])
3326
3327 dnl *** x265 (H.265/HEVC encoder) ***
3328 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3329 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3330   AG_GST_PKG_CHECK_MODULES(X265, x265)
3331 ])
3332
3333 dnl *** WebRTC Audio Processing ***
3334 dnl Note: We test for a specific version as there is no API stability
3335 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3336 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3337
3338   AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3339
3340   # On Android, C++ headers comes with the STL implementation
3341   AS_CASE(["${host}"],
3342     [*android*],
3343       [
3344         PKG_CHECK_MODULES(GNUSTL, gnustl, [
3345           WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3346           WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3347       ])
3348   AC_SUBST([WEBRTCDSP_CFLAGS])
3349   AC_SUBST([WEBRTCDSP_LIBS])
3350
3351   AC_LANG_PUSH([C++])
3352   old_CPPFLAGS=$CPPFLAGS
3353   CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3354   AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3355   CPPFLAGS=$old_CPPFLAGS
3356   AC_LANG_POP([C++])
3357 ])
3358
3359 else
3360
3361 dnl not building plugins with external dependencies,
3362 dnl but we still need to set the conditionals
3363
3364 AM_CONDITIONAL(USE_ASSRENDER, false)
3365 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3366 AM_CONDITIONAL(USE_VOAACENC, false)
3367 AM_CONDITIONAL(USE_BS2B, false)
3368 AM_CONDITIONAL(USE_BZ2, false)
3369 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3370 AM_CONDITIONAL(USE_CURL, false)
3371 AM_CONDITIONAL(USE_SSH2, false)
3372 AM_CONDITIONAL(USE_DASH, false)
3373 AM_CONDITIONAL(USE_DC1394, false)
3374 AM_CONDITIONAL(USE_DECKLINK, false)
3375 AM_CONDITIONAL(DECKLINK_OSX, false)
3376 AM_CONDITIONAL(USE_DIRECTFB, false)
3377 AM_CONDITIONAL(USE_WAYLAND, false)
3378 AM_CONDITIONAL(USE_DAALA, false)
3379 AM_CONDITIONAL(USE_DTS, false)
3380 AM_CONDITIONAL(USE_EXIF, false)
3381 AM_CONDITIONAL(USE_RESINDVD, false)
3382 AM_CONDITIONAL(USE_FAAC, false)
3383 AM_CONDITIONAL(USE_FAAD, false)
3384 AM_CONDITIONAL(USE_FBDEV, false)
3385 AM_CONDITIONAL(USE_FDK_AAC, false)
3386 AM_CONDITIONAL(USE_FLITE, false)
3387 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3388 AM_CONDITIONAL(USE_GL, false)
3389 AM_CONDITIONAL(USE_GSM, false)
3390 AM_CONDITIONAL(USE_GTK3, false)
3391 AM_CONDITIONAL(USE_GTK3_GL, false)
3392 AM_CONDITIONAL(USE_HLS, false)
3393 AM_CONDITIONAL(USE_IQA, false)
3394 AM_CONDITIONAL(USE_KATE, false)
3395 AM_CONDITIONAL(USE_KMS, false)
3396 AM_CONDITIONAL(USE_TIGER, false)
3397 AM_CONDITIONAL(USE_LADSPA, false)
3398 AM_CONDITIONAL(USE_LV2, false)
3399 AM_CONDITIONAL(USE_LIBDE265, false)
3400 AM_CONDITIONAL(USE_LIBMMS, false)
3401 AM_CONDITIONAL(USE_MODPLUG, false)
3402 AM_CONDITIONAL(USE_MPEG2ENC, false)
3403 AM_CONDITIONAL(USE_MPLEX, false)
3404 AM_CONDITIONAL(USE_MUSEPACK, false)
3405 AM_CONDITIONAL(USE_NEON, false)
3406 AM_CONDITIONAL(USE_OFA, false)
3407 AM_CONDITIONAL(USE_OPENAL, false)
3408 AM_CONDITIONAL(USE_OPENCV, false)
3409 AM_CONDITIONAL(USE_OPENEXR, false)
3410 AM_CONDITIONAL(USE_OPENJPEG, false)
3411 AM_CONDITIONAL(USE_OPENNI2, false)
3412 AM_CONDITIONAL(USE_OPUS, false)
3413 AM_CONDITIONAL(USE_QT, false)
3414 AM_CONDITIONAL(USE_WILDMIDI, false)
3415 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3416 AM_CONDITIONAL(USE_SNDFILE, false)
3417 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3418 AM_CONDITIONAL(USE_SPANDSP, false)
3419 AM_CONDITIONAL(USE_SPC, false)
3420 AM_CONDITIONAL(USE_SRTP, false)
3421 AM_CONDITIONAL(USE_GME, false)
3422 AM_CONDITIONAL(USE_DVB, false)
3423 AM_CONDITIONAL(USE_ACM, false)
3424 AM_CONDITIONAL(USE_VDPAU, false)
3425 AM_CONDITIONAL(USE_SBC, false)
3426 AM_CONDITIONAL(USE_SCHRO, false)
3427 AM_CONDITIONAL(USE_ZBAR, false)
3428 AM_CONDITIONAL(USE_RSVG, false)
3429 AM_CONDITIONAL(USE_RTMP, false)
3430 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3431 AM_CONDITIONAL(USE_UVCH264, false)
3432 AM_CONDITIONAL(USE_WEBP, false)
3433 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3434 AM_CONDITIONAL(USE_OPENH264, false)
3435 AM_CONDITIONAL(USE_X265, false)
3436 AM_CONDITIONAL(USE_DTLS, false)
3437 AM_CONDITIONAL(USE_VULKAN, false)
3438 AM_CONDITIONAL(USE_TTML, false)
3439
3440 fi dnl of EXT plugins
3441
3442 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3443
3444 dnl Overview:
3445 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
3446 dnl GST_*:              flags shared by built objects to link against GStreamer
3447 dnl GST_ALL_LDFLAGS:    linker flags shared by all
3448 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
3449 dnl GST_LT_LDFLAGS:     library versioning of our libraries
3450 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3451
3452 dnl GST_OPTION_CFLAGS
3453 if test "x$USE_DEBUG" = xyes; then
3454    PROFILE_CFLAGS="-g"
3455 fi
3456 AC_SUBST(PROFILE_CFLAGS)
3457
3458 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3459   dnl Define _only_ during CVS (not pre-releases or releases)
3460   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3461 else
3462   DEPRECATED_CFLAGS=""
3463 fi
3464 AC_SUBST(DEPRECATED_CFLAGS)
3465
3466 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3467 dnl at make time with e.g. make ERROR_CFLAGS=""
3468 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3469 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3470 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3471 AC_SUBST(GST_OPTION_CFLAGS)
3472 AC_SUBST(GST_OPTION_CXXFLAGS)
3473 AC_SUBST(GST_OPTION_OBJCFLAGS)
3474
3475 dnl FIXME: do we want to rename to GST_ALL_* ?
3476 dnl prefer internal headers to already installed ones
3477 dnl also add builddir include for enumtypes and marshal
3478 dnl add GST_OPTION_CFLAGS, but overridable
3479 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3480 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3481 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3482 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3483 AC_SUBST(GST_CFLAGS)
3484 AC_SUBST(GST_CXXFLAGS)
3485 AC_SUBST(GST_OBJCFLAGS)
3486 AC_SUBST(GST_LIBS)
3487 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3488 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3489 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3490 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3491 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3492 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3493
3494 dnl LDFLAGS really should only contain flags, not libs - they get added before
3495 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3496 GST_ALL_LDFLAGS="-no-undefined"
3497 if test "x${enable_Bsymbolic}" = "xyes"; then
3498   GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3499 fi
3500 AC_SUBST(GST_ALL_LDFLAGS)
3501
3502 dnl GST_LIB_LDFLAGS
3503 dnl linker flags shared by all libraries
3504 dnl LDFLAGS modifier defining exported symbols from built libraries
3505 dnl (export _gst_foo but not __gst_foo)
3506 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3507 AC_SUBST(GST_LIB_LDFLAGS)
3508
3509 dnl this really should only contain flags, not libs - they get added before
3510 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3511 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3512 AC_SUBST(GST_PLUGIN_LDFLAGS)
3513
3514 dnl *** output files ***
3515
3516 $MKDIR_P tests/check/orc
3517
3518 dnl po/Makefile.in
3519
3520 AC_CONFIG_FILES(
3521 Makefile
3522 common/Makefile
3523 common/m4/Makefile
3524 gst/Makefile
3525 gst/accurip/Makefile
3526 gst/adpcmdec/Makefile
3527 gst/adpcmenc/Makefile
3528 gst/aiff/Makefile
3529 gst/videoframe_audiolevel/Makefile
3530 gst/asfmux/Makefile
3531 gst/audiobuffersplit/Makefile
3532 gst/audiofxbad/Makefile
3533 gst/audiomixer/Makefile
3534 gst/audiomixmatrix/Makefile
3535 gst/audiovisualizers/Makefile
3536 gst/autoconvert/Makefile
3537 gst/bayer/Makefile
3538 gst/camerabin2/Makefile
3539 gst/coloreffects/Makefile
3540 gst/debugutils/Makefile
3541 gst/dvbsuboverlay/Makefile
3542 gst/dvdspu/Makefile
3543 gst/faceoverlay/Makefile
3544 gst/festival/Makefile
3545 gst/fieldanalysis/Makefile
3546 gst/freeverb/Makefile
3547 gst/frei0r/Makefile
3548 gst/gaudieffects/Makefile
3549 gst/geometrictransform/Makefile
3550 gst/gdp/Makefile
3551 gst/id3tag/Makefile
3552 gst/inter/Makefile
3553 gst/interlace/Makefile
3554 gst/ivfparse/Makefile
3555 gst/ivtc/Makefile
3556 gst/jp2kdecimator/Makefile
3557 gst/jpegformat/Makefile
3558 gst/librfb/Makefile
3559 gst/midi/Makefile
3560 gst/mpegdemux/Makefile
3561 gst/mpegtsdemux/Makefile
3562 gst/mpegtsmux/Makefile
3563 gst/mpegtsmux/tsmux/Makefile
3564 gst/mpegpsmux/Makefile
3565 gst/mxf/Makefile
3566 gst/netsim/Makefile
3567 gst/onvif/Makefile
3568 gst/pcapparse/Makefile
3569 gst/pnm/Makefile
3570 gst/rawparse/Makefile
3571 gst/removesilence/Makefile
3572 gst/sdp/Makefile
3573 gst/segmentclip/Makefile
3574 gst/siren/Makefile
3575 gst/smooth/Makefile
3576 gst/speed/Makefile
3577 gst/subenc/Makefile
3578 gst/stereo/Makefile
3579 gst/timecode/Makefile
3580 gst/videofilters/Makefile
3581 gst/videoparsers/Makefile
3582 gst/videosignal/Makefile
3583 gst/vmnc/Makefile
3584 gst/y4m/Makefile
3585 gst/yadif/Makefile
3586 gst/compositor/Makefile
3587 gst-libs/Makefile
3588 gst-libs/gst/Makefile
3589 gst-libs/gst/adaptivedemux/Makefile
3590 gst-libs/gst/basecamerabinsrc/Makefile
3591 gst-libs/gst/gl/Makefile
3592 gst-libs/gst/gl/android/Makefile
3593 gst-libs/gst/gl/cocoa/Makefile
3594 gst-libs/gst/gl/dispmanx/Makefile
3595 gst-libs/gst/gl/glprototypes/Makefile
3596 gst-libs/gst/gl/eagl/Makefile
3597 gst-libs/gst/gl/egl/Makefile
3598 gst-libs/gst/gl/wayland/Makefile
3599 gst-libs/gst/gl/win32/Makefile
3600 gst-libs/gst/gl/x11/Makefile
3601 gst-libs/gst/gl/viv-fb/Makefile
3602 gst-libs/gst/insertbin/Makefile
3603 gst-libs/gst/interfaces/Makefile
3604 gst-libs/gst/isoff/Makefile
3605 gst-libs/gst/codecparsers/Makefile
3606 gst-libs/gst/mpegts/Makefile
3607 gst-libs/gst/uridownloader/Makefile
3608 gst-libs/gst/wayland/Makefile
3609 gst-libs/gst/base/Makefile
3610 gst-libs/gst/player/Makefile
3611 gst-libs/gst/video/Makefile
3612 gst-libs/gst/audio/Makefile
3613 gst-libs/gst/opencv/Makefile
3614 gst-libs/gst/allocators/Makefile
3615 sys/Makefile
3616 sys/dshowdecwrapper/Makefile
3617 sys/acmenc/Makefile
3618 sys/acmmp3dec/Makefile
3619 sys/androidmedia/Makefile
3620 sys/applemedia/Makefile
3621 sys/bluez/Makefile
3622 sys/d3dvideosink/Makefile
3623 sys/decklink/Makefile
3624 sys/directsound/Makefile
3625 sys/dshowsrcwrapper/Makefile
3626 sys/dshowvideosink/Makefile
3627 sys/dvb/Makefile
3628 sys/fbdev/Makefile
3629 sys/kms/Makefile
3630 sys/msdk/Makefile
3631 sys/nvenc/Makefile
3632 sys/opensles/Makefile
3633 sys/shm/Makefile
3634 sys/tinyalsa/Makefile
3635 sys/uvch264/Makefile
3636 sys/vcd/Makefile
3637 sys/vdpau/Makefile
3638 sys/wasapi/Makefile
3639 sys/winks/Makefile
3640 sys/winscreencap/Makefile
3641 tests/Makefile
3642 tests/check/Makefile
3643 tests/files/Makefile
3644 tests/examples/Makefile
3645 tests/examples/avsamplesink/Makefile
3646 tests/examples/camerabin2/Makefile
3647 tests/examples/codecparsers/Makefile
3648 tests/examples/directfb/Makefile
3649 tests/examples/audiomixmatrix/Makefile
3650 tests/examples/gl/Makefile
3651 tests/examples/gl/cocoa/Makefile
3652 tests/examples/gl/clutter/Makefile
3653 tests/examples/gl/generic/Makefile
3654 tests/examples/gl/generic/cube/Makefile
3655 tests/examples/gl/generic/cubeyuv/Makefile
3656 tests/examples/gl/generic/doublecube/Makefile
3657 tests/examples/gl/generic/recordgraphic/Makefile
3658 tests/examples/gl/gtk/Makefile
3659 tests/examples/gl/gtk/3dvideo/Makefile
3660 tests/examples/gl/gtk/filternovideooverlay/Makefile
3661 tests/examples/gl/gtk/filtervideooverlay/Makefile
3662 tests/examples/gl/gtk/fxtest/Makefile
3663 tests/examples/gl/gtk/switchvideooverlay/Makefile
3664 tests/examples/gl/qt/Makefile
3665 tests/examples/gl/sdl/Makefile
3666 tests/examples/gtk/Makefile
3667 tests/examples/mpegts/Makefile
3668 tests/examples/mxf/Makefile
3669 tests/examples/opencv/Makefile
3670 tests/examples/uvch264/Makefile
3671 tests/examples/waylandsink/Makefile
3672 tests/icles/Makefile
3673 ext/voamrwbenc/Makefile
3674 ext/voaacenc/Makefile
3675 ext/assrender/Makefile
3676 ext/bs2b/Makefile
3677 ext/bz2/Makefile
3678 ext/chromaprint/Makefile
3679 ext/curl/Makefile
3680 ext/dash/Makefile
3681 ext/dc1394/Makefile
3682 ext/directfb/Makefile
3683 ext/wayland/Makefile
3684 ext/daala/Makefile
3685 ext/dts/Makefile
3686 ext/gl/Makefile
3687 ext/gtk/Makefile
3688 ext/faac/Makefile
3689 ext/faad/Makefile
3690 ext/fdkaac/Makefile
3691 ext/flite/Makefile
3692 ext/fluidsynth/Makefile
3693 ext/gsm/Makefile
3694 ext/hls/Makefile
3695 ext/iqa/Makefile
3696 ext/kate/Makefile
3697 ext/ladspa/Makefile
3698 ext/lv2/Makefile
3699 ext/libde265/Makefile
3700 ext/libmms/Makefile
3701 ext/Makefile
3702 ext/modplug/Makefile
3703 ext/mpeg2enc/Makefile
3704 ext/mplex/Makefile
3705 ext/musepack/Makefile
3706 ext/neon/Makefile
3707 ext/ofa/Makefile
3708 ext/openal/Makefile
3709 ext/opencv/Makefile
3710 ext/openexr/Makefile
3711 ext/openh264/Makefile
3712 ext/openjpeg/Makefile
3713 ext/openni2/Makefile
3714 ext/opus/Makefile
3715 ext/qt/Makefile
3716 ext/rsvg/Makefile
3717 ext/resindvd/Makefile
3718 ext/rtmp/Makefile
3719 ext/sbc/Makefile
3720 ext/schroedinger/Makefile
3721 ext/smoothstreaming/Makefile
3722 ext/sndfile/Makefile
3723 ext/soundtouch/Makefile
3724 ext/spandsp/Makefile
3725 ext/srtp/Makefile
3726 ext/teletextdec/Makefile
3727 ext/gme/Makefile
3728 ext/spc/Makefile
3729 ext/wildmidi/Makefile
3730 ext/vulkan/Makefile
3731 ext/vulkan/xcb/Makefile
3732 ext/vulkan/wayland/Makefile
3733 ext/webp/Makefile
3734 ext/x265/Makefile
3735 ext/zbar/Makefile
3736 ext/dtls/Makefile
3737 ext/webrtcdsp/Makefile
3738 ext/ttml/Makefile
3739 po/Makefile.in
3740 docs/Makefile
3741 docs/plugins/Makefile
3742 docs/libs/Makefile
3743 docs/version.entities
3744 pkgconfig/Makefile
3745 pkgconfig/gstreamer-plugins-bad.pc
3746 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3747 pkgconfig/gstreamer-codecparsers.pc
3748 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3749 pkgconfig/gstreamer-insertbin.pc
3750 pkgconfig/gstreamer-insertbin-uninstalled.pc
3751 pkgconfig/gstreamer-gl.pc
3752 pkgconfig/gstreamer-gl-uninstalled.pc
3753 pkgconfig/gstreamer-mpegts.pc
3754 pkgconfig/gstreamer-mpegts-uninstalled.pc
3755 pkgconfig/gstreamer-player.pc
3756 pkgconfig/gstreamer-player-uninstalled.pc
3757 pkgconfig/gstreamer-wayland.pc
3758 pkgconfig/gstreamer-wayland-uninstalled.pc
3759 pkgconfig/gstreamer-bad-base.pc
3760 pkgconfig/gstreamer-bad-base-uninstalled.pc
3761 pkgconfig/gstreamer-bad-video.pc
3762 pkgconfig/gstreamer-bad-video-uninstalled.pc
3763 pkgconfig/gstreamer-bad-audio.pc
3764 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3765 pkgconfig/gstreamer-bad-allocators.pc
3766 pkgconfig/gstreamer-bad-allocators-uninstalled.pc
3767 tools/Makefile
3768 m4/Makefile
3769 )
3770
3771 AC_OUTPUT
3772
3773 AG_GST_OUTPUT_PLUGINS
3774 ORC_OUTPUT
3775