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