h264parse: ignore GST_H264_PARSER_NO_NAL return when last nal type is GST_H264_NAL_SE...
[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.16.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
7
8 AG_GST_INIT
9
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
12
13 dnl define PACKAGE_VERSION_* variables
14 AS_VERSION
15
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
18
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
21
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
24
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
27
28 dnl sets host_* variables
29 AC_CANONICAL_HOST
30
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33   [AM_DEFAULT_VERBOSITY=1
34    AC_SUBST(AM_DEFAULT_VERBOSITY)])
35
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
38
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
41 GST_API_VERSION=1.0
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44   [GStreamer API Version])
45
46 AG_GST_LIBTOOL_PREPARE
47
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 1602, 0, 1602)
55
56 dnl *** required versions of GStreamer stuff ***
57 GST_REQ=1.16.2
58 GSTPB_REQ=1.16.2
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 *** software ***
111
112 dnl check for large file support
113 dnl affected plugins must include config.h
114 AC_SYS_LARGEFILE
115
116 dnl *** checks for programs ***
117
118 dnl find a compiler
119 AC_PROG_CC
120 AC_PROG_CC_STDC
121
122 dnl determine c++ compiler
123 AC_PROG_CXX
124 dnl determine if c++ is available on this system
125 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
126
127 AC_PROG_OBJC
128
129 dnl check if the compiler supports '-c' and '-o' options
130 AM_PROG_CC_C_O
131
132 dnl check if the compiler supports do while(0) macros
133 AG_GST_CHECK_DOWHILE_MACROS
134
135 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
136 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
137
138 dnl check for gobject-introspection
139 GOBJECT_INTROSPECTION_CHECK([1.31.1])
140
141 dnl check for documentation tools
142 GTK_DOC_CHECK([1.12])
143 AG_GST_PLUGIN_DOCS([1.12])
144
145 dnl *** checks for libraries ***
146
147 dnl check for libm, for sin() etc.
148 LT_LIB_M
149 AC_SUBST(LIBM)
150
151 AC_FUNC_MMAP
152
153 dnl check for pthreads
154 AX_PTHREAD
155
156 dnl *** checks for header files ***
157
158 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
159 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
160
161 if test "x$HAVE_UNISTD_H" != "xyes"; then
162   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
163 fi
164
165 AC_CHECK_HEADERS([sys/time.h])
166
167 dnl used by ext/dts
168 AX_CREATE_STDINT_H
169
170 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
171 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
172
173 dnl *** checks for types/defines ***
174
175 dnl *** checks for structures ***
176
177 dnl *** checks for compiler characteristics ***
178
179 dnl *** checks for library functions ***
180 AC_CHECK_FUNCS([gmtime_r pipe2])
181
182 dnl *** checks for headers ***
183 AC_CHECK_HEADERS([sys/utsname.h])
184
185 dnl *** checks for dependency libraries ***
186
187 dnl *** checks for socket and nsl libraries ***
188 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
189 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
190
191 dnl GLib is required
192 GLIB_REQ=2.40.0
193 AG_GST_GLIB_CHECK([$GLIB_REQ])
194
195 dnl Needed by plugins that use g_module_*() API
196 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
197
198 dnl checks for gstreamer
199 dnl uninstalled is selected preferentially -- see pkg-config(1)
200 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
201 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
202 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
203 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
204 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
205 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GSTPB_REQ], yes)
206 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GSTPB_REQ], yes)
207 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GSTPB_REQ], yes)
208 AG_GST_PKG_CHECK_MODULES(GST_GL, gstreamer-gl-[$GST_API_VERSION], [$GSTPB_REQ], no)
209 AG_GST_PKG_CHECK_MODULES(GST_SDP, gstreamer-sdp-[$GST_API_VERSION], [$GSTPB_REQ], yes)
210
211 if test "x$HAVE_GST_GL" = "xyes"; then
212
213   AC_MSG_CHECKING([GStreamer OpenGL window systems ...])
214   GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0`
215   AC_MSG_RESULT([$GST_GL_WINSYS])
216   GST_GL_HAVE_WINDOW_X11=""
217   GST_GL_HAVE_WINDOW_WAYLAND=""
218   GST_GL_HAVE_WINDOW_ANDROID=""
219   GST_GL_HAVE_WINDOW_COCOA=""
220   GST_GL_HAVE_WINDOW_EAGL=""
221   case "$GST_GL_WINSYS" in  *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac
222   case "$GST_GL_WINSYS" in  *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac
223   case "$GST_GL_WINSYS" in  *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac
224   case "$GST_GL_WINSYS" in  *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac
225   case "$GST_GL_WINSYS" in  *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac
226
227   AC_MSG_CHECKING([GStreamer OpenGL platforms ...])
228   GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0`
229   AC_MSG_RESULT([$GST_GL_PLATFORMS])
230   GST_GL_HAVE_PLATFORM_GLX=""
231   GST_GL_HAVE_PLATFORM_EGL=""
232   GST_GL_HAVE_PLATFORM_CGL=""
233   GST_GL_HAVE_PLATFORM_EAGL=""
234   case "$GST_GL_PLATFORMS" in  *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac
235   case "$GST_GL_PLATFORMS" in  *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac
236   case "$GST_GL_PLATFORMS" in  *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac
237   case "$GST_GL_PLATFORMS" in  *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac
238
239   AC_MSG_CHECKING([GStreamer OpenGL apis ...])
240   GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0`
241   AC_MSG_RESULT([$GST_GL_APIS])
242   GST_GL_HAVE_API_GLES2=""
243   GST_GL_HAVE_API_GL=""
244   case "$GST_GL_APIS" in  *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac
245   case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac
246 fi
247 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
248
249 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
250
251 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
252
253 dnl check for uninstalled plugin directories for unit tests
254 AG_GST_CHECK_UNINSTALLED_SETUP([
255   AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [$GSTPB_REQ])
256   AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [$GSTPB_REQ])
257   AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [$GSTPB_REQ])
258 ])
259
260 dnl Check for documentation xrefs
261 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
262 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
263 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
264 AC_SUBST(GLIB_PREFIX)
265 AC_SUBST(GST_PREFIX)
266 AC_SUBST(GSTPB_PREFIX)
267
268 dnl GTK is optional and used in examples
269 HAVE_GTK=NO
270 GTK2_REQ=2.14.0
271 GTK3_REQ=2.91.3
272 if test "x$BUILD_EXAMPLES" = "xyes"; then
273   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
274   AC_ARG_WITH([gtk],
275     AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
276     [case "$with_gtk" in
277         2.0) GTK_REQ=$GTK2_REQ ;;
278         3.0) GTK_REQ=$GTK3_REQ ;;
279         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
280     esac],
281     [with_gtk=2.0
282      GTK_REQ=$GTK2_REQ])
283   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
284   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
285   AC_SUBST(GTK_LIBS)
286   AC_SUBST(GTK_CFLAGS)
287 fi
288 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
289
290 dnl Check for -Bsymbolic-functions linker flag used to avoid
291 dnl intra-library PLT jumps, if available.
292 AC_ARG_ENABLE(Bsymbolic,
293               [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
294               [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
295                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
296                LDFLAGS=-Wl,-Bsymbolic-functions
297                LIBS=
298                AC_TRY_LINK([], [return 0],
299                            AC_MSG_RESULT(yes)
300                            enable_Bsymbolic=yes,
301                            AC_MSG_RESULT(no)
302                            enable_Bsymbolic=no)
303                LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
304
305 dnl *** set variables based on configure arguments ***
306
307 dnl GTK is optional and used in examples
308 HAVE_GTK3=NO
309 HAVE_GTK3_WAYLAND=""
310 if test "x$BUILD_EXAMPLES" = "xyes"; then
311   PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
312   if test "x$HAVE_GTK3" = "xyes"; then
313     HAVE_GTK=yes
314     GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
315     AC_SUBST(GTK_VERSION)
316     GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
317     AC_SUBST(GTK_BASE_DIR)
318     GTK3_TARGETS=`$PKG_CONFIG --variable=targets gtk+-3.0`
319     case "$GTK3_TARGETS" in  *wayland*) HAVE_GTK3_WAYLAND="1" ;; esac
320   fi
321 fi
322 AC_SUBST(GTK3_LIBS)
323 AC_SUBST(GTK3_CFLAGS)
324 AC_SUBST(HAVE_GTK3)
325 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
326 AM_CONDITIONAL(HAVE_GTK3_WAYLAND, test "x$HAVE_GTK3_WAYLAND" = "x1")
327
328 dnl x11 is optional for librfb
329 HAVE_X11=NO
330 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
331 AC_SUBST(X11_LIBS)
332 AC_SUBST(X11_CFLAGS)
333 AC_SUBST(HAVE_X11)
334 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
335 if test "x$HAVE_X11" = "xyes"; then
336   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
337 fi
338
339 dnl exif (used on jifmux tests) ****
340 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
341 AC_SUBST(EXIF_LIBS)
342 AC_SUBST(EXIF_CFLAGS)
343 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
344
345 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
346   PKG_CHECK_MODULES(DSSIM, dssim, [
347     HAVE_DSSIM="yes"
348     HAVE_IQA="yes"
349   ], [
350     HAVE_DSSIM="no"
351     HAVE_IQA="no"
352   ])
353
354   if test "x$HAVE_DSSIM" = "xyes"; then
355     AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
356   fi
357   AC_SUBST(DSSIM_LIBS)
358   AC_SUBST(DSSIM_CFLAGS)
359 ])
360 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
361
362 dnl Orc
363 ORC_CHECK([0.4.17])
364
365 dnl set license and copyright notice
366 GST_LICENSE="LGPL"
367 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
368 AC_SUBST(GST_LICENSE)
369
370 dnl define LIBDIR so we can inform people where we live
371 AS_AC_EXPAND(LIBDIR, $libdir)
372 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
373
374 dnl set location of plugin directory
375 AG_GST_SET_PLUGINDIR
376
377 dnl set release date/time
378 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
379   ["${srcdir}/gst-plugins-bad.doap"],
380   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
381
382 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
383 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
384 if test x$enable_static = xyes -a x$enable_shared = xno; then
385   GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
386 fi
387
388 AC_ARG_WITH([player-tests],
389   AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
390 if test x$with_player_tests = xyes; then
391   AC_PATH_PROG([WGET], [wget], no)
392   if test x$WGET = xno; then
393     AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
394     with_player_tests=no
395   fi
396 fi
397 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
398
399 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
400 dnl make sure it doesn't complain about unused variables if debugging is disabled
401 NO_WARNINGS=""
402 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
403
404 dnl define an ERROR_CFLAGS Makefile variable
405 dnl -Waggregate-return - libexif returns aggregates
406 dnl -Wundef - Windows headers check _MSC_VER unconditionally
407 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
408     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
409     -Wwrite-strings -Wformat-security -Wold-style-definition
410     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
411     -Wnested-externs $NO_WARNINGS])
412
413 dnl define an ERROR_CXXFLAGS Makefile variable
414 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
415     -Wmissing-declarations -Wredundant-decls
416     -Wwrite-strings -Wformat-nonliteral -Wformat-security
417     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
418
419 dnl define an ERROR_OBJCFLAGS Makefile variable
420 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
421     -Wmissing-declarations -Wredundant-decls
422     -Wwrite-strings -Wformat-nonliteral -Wformat-security
423     -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
424
425 dnl define correct level for debugging messages
426 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
427
428 dnl used in examples
429 AG_GST_DEFAULT_ELEMENTS
430
431 dnl *** plug-ins to include ***
432
433 dnl these are all the gst plug-ins, compilable without additional libs
434 AG_GST_CHECK_PLUGIN(accurip)
435 AG_GST_CHECK_PLUGIN(adpcmdec)
436 AG_GST_CHECK_PLUGIN(adpcmenc)
437 AG_GST_CHECK_PLUGIN(aiff)
438 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
439 AG_GST_CHECK_PLUGIN(asfmux)
440 AG_GST_CHECK_PLUGIN(audiobuffersplit)
441 AG_GST_CHECK_PLUGIN(audiofxbad)
442 AG_GST_CHECK_PLUGIN(audiolatency)
443 AG_GST_CHECK_PLUGIN(audiomixmatrix)
444 AG_GST_CHECK_PLUGIN(audiovisualizers)
445 AG_GST_CHECK_PLUGIN(autoconvert)
446 AG_GST_CHECK_PLUGIN(bayer)
447 AG_GST_CHECK_PLUGIN(camerabin2)
448 AG_GST_CHECK_PLUGIN(coloreffects)
449 AG_GST_CHECK_PLUGIN(debugutils)
450 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
451 AG_GST_CHECK_PLUGIN(dvdspu)
452 AG_GST_CHECK_PLUGIN(faceoverlay)
453 AG_GST_CHECK_PLUGIN(festival)
454 AG_GST_CHECK_PLUGIN(fieldanalysis)
455 AG_GST_CHECK_PLUGIN(freeverb)
456 AG_GST_CHECK_PLUGIN(frei0r)
457 AG_GST_CHECK_PLUGIN(gaudieffects)
458 AG_GST_CHECK_PLUGIN(geometrictransform)
459 AG_GST_CHECK_PLUGIN(gdp)
460 AG_GST_CHECK_PLUGIN(id3tag)
461 AG_GST_CHECK_PLUGIN(inter)
462 AG_GST_CHECK_PLUGIN(interlace)
463 AG_GST_CHECK_PLUGIN(ivfparse)
464 AG_GST_CHECK_PLUGIN(ivtc)
465 AG_GST_CHECK_PLUGIN(jp2kdecimator)
466 AG_GST_CHECK_PLUGIN(jpegformat)
467 AG_GST_CHECK_PLUGIN(librfb)
468 AG_GST_CHECK_PLUGIN(midi)
469 AG_GST_CHECK_PLUGIN(mpegdemux)
470 AG_GST_CHECK_PLUGIN(mpegtsdemux)
471 AG_GST_CHECK_PLUGIN(mpegtsmux)
472 AG_GST_CHECK_PLUGIN(mpegpsmux)
473 AG_GST_CHECK_PLUGIN(mxf)
474 AG_GST_CHECK_PLUGIN(netsim)
475 AG_GST_CHECK_PLUGIN(onvif)
476 AG_GST_CHECK_PLUGIN(pcapparse)
477 AG_GST_CHECK_PLUGIN(pnm)
478 AG_GST_CHECK_PLUGIN(proxy)
479 AG_GST_CHECK_PLUGIN(rawparse)
480 AG_GST_CHECK_PLUGIN(removesilence)
481 AG_GST_CHECK_PLUGIN(sdp)
482 AG_GST_CHECK_PLUGIN(segmentclip)
483 AG_GST_CHECK_PLUGIN(siren)
484 AG_GST_CHECK_PLUGIN(smooth)
485 AG_GST_CHECK_PLUGIN(speed)
486 AG_GST_CHECK_PLUGIN(subenc)
487 AG_GST_CHECK_PLUGIN(timecode)
488 AG_GST_CHECK_PLUGIN(videofilters)
489 AG_GST_CHECK_PLUGIN(videoparsers)
490 AG_GST_CHECK_PLUGIN(videosignal)
491 AG_GST_CHECK_PLUGIN(vmnc)
492 AG_GST_CHECK_PLUGIN(y4m)
493 AG_GST_CHECK_PLUGIN(yadif)
494
495 dnl *** plug-ins to exclude ***
496
497 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
498 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
499 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
500
501 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
502   old_LIBS=$LIBS
503   LIBS="$LIBS -framework VideoToolbox"
504   AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
505     AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
506   ], [
507   ])
508   LIBS=$old_LIBS
509 fi
510
511 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
512 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
513   AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
514 fi
515
516 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
517 if test "x$HAVE_IOS" = "xyes"; then
518   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
519 fi
520
521 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
522 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
523   AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
524 fi
525
526 dnl disable gst plugins we might not be able to build on this
527 dnl platform: (ugly but minimally invasive)
528 dnl FIXME: maybe move to sys, or make work with winsock2
529 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
530 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
531
532 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
533   WINSOCK2_LIBS="-lws2_32"
534   AC_SUBST(WINSOCK2_LIBS)
535 fi
536
537 dnl Vulkan
538 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
539 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
540
541 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
542 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
543 VULKAN_CONFIG_DEFINES="
544 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
545 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
546
547 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
548         outfile=vkconfig.h-tmp
549         cat > $outfile <<\_______EOF
550 /* vkconfig.h
551  *
552  * This is a generated file.  Please modify `configure.ac'
553  */
554
555 #ifndef __GST_VULKAN_CONFIG_H__
556 #define __GST_VULKAN_CONFIG_H__
557
558 #include <gst/gst.h>
559
560 G_BEGIN_DECLS
561
562 _______EOF
563
564         cat >>$outfile <<_______EOF
565 $vulkan_config_defines
566 _______EOF
567
568         cat >>$outfile <<_______EOF
569
570 G_END_DECLS
571
572 #endif  /* __GST_VULKAN_CONFIG_H__ */
573 _______EOF
574
575
576         if cmp -s $outfile ext/vulkan/vkconfig.h; then
577           AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
578           rm -f $outfile
579         else
580           mv $outfile ext/vulkan/vkconfig.h
581         fi
582 ],[
583 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
584 ])
585
586 dnl *** sys plug-ins ***
587
588 dnl DirectSound
589 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
590 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
591   HAVE_DIRECTSOUND="no"
592   save_CFLAGS="$CFLAGS"
593   save_LDFLAGS="$LDFLAGS"
594   save_LIBS="$LIBS"
595   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
596   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
597   LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
598   AC_MSG_CHECKING(for DirectSound LDFLAGS)
599   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
600 #include <windows.h>
601 #include <dxerr9.h>
602 #include <dsound.h>
603 #include <mmsystem.h>
604 ]], [[
605   DXGetErrorString9 (0);
606   DirectSoundCreate(NULL, NULL, NULL);
607 ]])],
608     [HAVE_DIRECTSOUND="yes"],
609     [HAVE_DIRECTSOUND="no"])
610   AC_MSG_RESULT($HAVE_DIRECTSOUND)
611   CFLAGS=$save_CFLAGS
612   LDFLAGS=$save_LDFLAGS
613   LIBS=$save_LIBS
614
615   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
616     dnl this is much more than we want
617     DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
618     AC_SUBST(DIRECTX_CFLAGS)
619     AC_SUBST(DIRECTX_LDFLAGS)
620     AC_SUBST(DIRECTSOUND_LIBS)
621   fi
622   AC_SUBST(HAVE_DIRECTSOUND)
623 ])
624
625 dnl WASAPI
626 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
627 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
628   HAVE_WASAPI="no"
629   save_CFLAGS="$CFLAGS"
630   save_LDFLAGS="$LDFLAGS"
631   save_LIBS="$LIBS"
632   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
633   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
634   LIBS="$LIBS -lole32 -lwinmm -lksuser"
635   AC_MSG_CHECKING(for WASAPI LDFLAGS)
636   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
637 #include <windows.h>
638 #include <stdio.h>
639 #include <mmsystem.h>
640 #include <mmdeviceapi.h>
641 ]], [[
642 int main ()
643 {
644     HRESULT hr = S_OK;
645
646     hr = CoInitialize(NULL);
647     if (FAILED(hr)) {
648         printf("CoInitialize failed: hr = 0x%08x", hr);
649         return __LINE__;
650     }
651
652         int result = 0;
653     // result = do_everything(argc, argv);
654
655     CoUninitialize();
656     return result;
657 }
658 ]])],
659     [HAVE_WASAPI="yes"],
660     [HAVE_WASAPI="no"])
661   AC_MSG_RESULT($HAVE_WASAPI)
662   CFLAGS=$save_CFLAGS
663   LDFLAGS=$save_LDFLAGS
664   LIBS=$save_LIBS
665
666   if test "x$HAVE_WASAPI" = "xyes";  then
667     WASAPI_LIBS="-lole32 -lwinmm -lksuser"
668     AC_SUBST(WASAPI_LIBS)
669   fi
670   AC_SUBST(HAVE_WASAPI)
671 ])
672
673 dnl Direct3D
674 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
675 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
676   HAVE_DIRECT3D="no"
677   save_CFLAGS="$CFLAGS"
678   save_LDFLAGS="$LDFLAGS"
679   save_LIBS="$LIBS"
680   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
681   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
682   LIBS="$LIBS -ld3d9 -lgdi32"
683   AC_MSG_CHECKING(for Direct3D LDFLAGS)
684   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
685 #include <windows.h>
686 #include <d3d9.h>
687 ]], [[
688   Direct3DCreate9(D3D_SDK_VERSION);
689 ]])],
690     [HAVE_DIRECT3D="yes"],
691     [HAVE_DIRECT3D="no"])
692   AC_MSG_RESULT($HAVE_DIRECT3D)
693   CFLAGS=$save_CFLAGS
694   LDFLAGS=$save_LDFLAGS
695   LIBS=$save_LIBS
696
697   if test "x$HAVE_DIRECT3D" = "xyes";  then
698     DIRECT3D_LIBS="-ld3d9 -lgdi32"
699     AC_SUBST(DIRECT3D_LIBS)
700   fi
701   AC_SUBST(HAVE_DIRECT3D)
702 ])
703
704 dnl winscreencap
705 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
706 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
707   HAVE_WINSCREENCAP="no"
708   save_CFLAGS="$CFLAGS"
709   save_LDFLAGS="$LDFLAGS"
710   save_LIBS="$LIBS"
711   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
712   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
713   LIBS="$LIBS -ld3d9 -lgdi32"
714   AC_MSG_CHECKING(for Direct3D LDFLAGS)
715   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
716 #include <windows.h>
717 #include <d3d9.h>
718 ]], [[
719   Direct3DCreate9(D3D_SDK_VERSION);
720 ]])],
721     [HAVE_WINSCREENCAP="yes"],
722     [HAVE_WINSCREENCAP="no"])
723   AC_MSG_RESULT($HAVE_WINSCREENCAP)
724   CFLAGS=$save_CFLAGS
725   LDFLAGS=$save_LDFLAGS
726   LIBS=$save_LIBS
727
728   if test "x$HAVE_WINSCREENCAP" = "xyes";  then
729     WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
730     AC_SUBST(WINSCREENCAP_LIBS)
731   fi
732   AC_SUBST(HAVE_WINSCREENCAP)
733 ])
734
735 dnl winks
736 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
737 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
738   HAVE_WINKS="no"
739   save_CFLAGS="$CFLAGS"
740   save_LDFLAGS="$LDFLAGS"
741   save_LIBS="$LIBS"
742   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
743   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
744   LIBS="$LIBS -lole32 -luuid -lstrmiids"
745   AC_MSG_CHECKING(for Winks LDFLAGS)
746   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
747 #include <windows.h>
748 #include <strmif.h>
749 #include <uuids.h>
750 ]], [[
751 int main () {
752   IGraphBuilder *pGraph = NULL;
753   HRESULT hr = CoInitialize(NULL);
754   hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
755                         &IID_IGraphBuilder, (void **)&pGraph);
756
757   return 0;
758 }
759 ]])],
760     [HAVE_WINKS="yes"],
761     [HAVE_WINKS="no"])
762   AC_MSG_RESULT($HAVE_WINKS)
763   CFLAGS=$save_CFLAGS
764   LDFLAGS=$save_LDFLAGS
765   LIBS=$save_LIBS
766
767   if test "x$HAVE_WINKS" = "xyes";  then
768     dnl this is much more than we want
769     WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
770     AC_SUBST(DIRECTX_CFLAGS)
771     AC_SUBST(DIRECTX_LDFLAGS)
772     AC_SUBST(WINKS_LIBS)
773   fi
774   AC_SUBST(HAVE_WINKS)
775 ])
776
777 dnl *** Android Media ***
778 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
779 HAVE_ANDROID_MEDIA="no"
780 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
781   case "$host" in
782     *android*)
783       AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
784       ;;
785     *)
786       HAVE_ANDROID_MEDIA="no"
787       ;;
788   esac
789 ])
790
791 dnl *** AppleMedia (OS X and iOS) ***
792 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
793 HAVE_APPLE_MEDIA="no"
794 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
795 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
796   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
797   dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
798   if test "x$HAVE_IOS" = "xno"; then
799     AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
800   fi
801 ])
802
803 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
804 case "$host" in
805   *-*darwin*)
806     ;;
807   *)
808     HAVE_APPLE_MEDIA="no"
809     ;;
810 esac
811
812 dnl *** bluez ***
813 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
814 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
815   PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
816     PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
817       AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
818       HAVE_BLUEZ=yes
819       AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
820     ], [
821       HAVE_BLUEZ=no
822     ])
823   ], [
824     HAVE_BLUEZ=no
825   ])
826 ])
827
828 dnl *** OS/X AVCVideoServices ***
829 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
830 HAVE_AVC="no"
831 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
832   AC_LANG_PUSH([C++])
833   save_CPPFLAGS="$CPPFLAGS"
834   CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
835   save_LIBS="$LIBS"
836   LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
837   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
838   LIBS=$save_LIBS
839   CPPFLAGS=$save_CPPFLAGS
840   AC_LANG_POP([C++])
841 ])
842 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
843 case "$host" in
844   *-*darwin*)
845     ;;
846   *)
847     HAVE_AVC="no"
848     ;;
849 esac
850
851 dnl check for shm_open (for shm plugin)
852 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
853 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
854     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
855         case $host in
856         *-darwin* | *-macos10*)
857             AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
858             HAVE_SHM=yes
859             ;;
860         *-*-OpenBSD*)
861             HAVE_SHM=yes
862             ;;
863         *)
864             AC_CHECK_LIB([rt], [shm_open],
865                 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
866                 #include <sys/socket.h>
867                     ]),
868                 HAVE_SHM=no)
869             AC_SUBST(SHM_LIBS, "-lrt")
870             ;;
871         esac
872     else
873         HAVE_SHM=no
874     fi
875 ])
876
877 dnl check for unix sockets (ipcpipeline plugin)
878 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
879 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
880     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
881         AC_CHECK_FUNC(pipe, [
882           AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
883           ], [
884           HAVE_IPCPIPELINE=no
885         ])
886     else
887         HAVE_IPCPIPELINE=no
888     fi
889 ])
890
891 dnl check for OpenSL ES
892 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
893 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
894   AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
895 ])
896
897 dnl *** UVC H264 ***
898 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
899 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
900   AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
901   PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
902           AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
903           HAVE_GUDEV="yes" ],
904           [HAVE_GUDEV="no"])
905   PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
906           AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
907           HAVE_LIBUSB="yes" ],
908           [HAVE_LIBUSB="no"])
909   if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
910      test "x$HAVE_GUDEV" = "xyes" && \
911      test "x$HAVE_LIBUSB" = "xyes"; then
912     HAVE_UVCH264=yes
913   else
914     HAVE_UVCH264=no
915   fi
916 ])
917 AC_SUBST(LIBUDEV_CFLAGS)
918 AC_SUBST(LIBUDEV_LIBS)
919 AC_SUBST(LIBUSB_CFLAGS)
920 AC_SUBST(LIBUSB_LIBS)
921
922 dnl check for tv profile
923 AC_ARG_ENABLE(tv, AC_HELP_STRING([--enable-tv], [enable tv profile]),
924         [
925           case "${enableval}" in
926            yes) TV_PROFILE=yes ;;
927            no)  TV_PROFILE=no ;;
928            *)   AC_MSG_ERROR(bad value ${enableval} for --enable-tv) ;;
929           esac
930         ],
931         [TV_PROFILE=no])
932 AM_CONDITIONAL([TV_PROFILE], [test "x$TV_PROFILE" = "xyes"])
933
934 dnl *** CUDA ***
935 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
936 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
937   AC_ARG_WITH([cuda-prefix],
938           AS_HELP_STRING([--with-cuda-prefix],
939           [Use the provided prefix for detecting the cuda installation]),
940           [AS_IF([test "x$with_cuda_prefix" != "x"],
941                  [CUDA_PREFIX="$with_cuda_prefix"])],
942           [CUDA_PREFIX=""])
943
944   HAVE_CUDA="yes"
945   if test "x$CUDA_PREFIX" != "x"; then
946     dnl only override if not already set
947     if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
948       dnl this is an educated guess, user can always override these
949       CUDA_CFLAGS="-I$CUDA_PREFIX/include"
950       CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
951     fi
952   else
953     PKG_CHECK_MODULES([CUDA], [cuda-10.1 cudart-10.1],, [
954       PKG_CHECK_MODULES([CUDA], [cuda-10.0 cudart-10.0],, [
955         PKG_CHECK_MODULES([CUDA], [cuda-9.2 cudart-9.2],, [
956           PKG_CHECK_MODULES([CUDA], [cuda-9.1 cudart-9.1],, [
957             PKG_CHECK_MODULES([CUDA], [cuda-9.0 cudart-9.0],, [
958               PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
959                 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
960                   PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
961                     PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
962                       AC_MSG_WARN([Could not find cuda headers/libraries])])])])])])])])])])
963   fi
964
965   HAVE_CUDA_H=no
966   HAVE_CUDART_H=no
967   save_CPPFLAGS="$CPPFLAGS"
968   CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
969   AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
970       AC_MSG_WARN([Could not find cuda.h]))
971   AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
972       AC_MSG_WARN([Could not find cuda_runtime_api.h]))
973   CPPFLAGS=$save_CPPFLAGS
974
975   dnl libcuda and libcudart libraries
976   save_LIBS="$LIBS"
977   LIBS="$CUDA_LIBS $save_LIBS"
978   HAVE_CUDART_LIB="no"
979   AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
980       AC_MSG_WARN([Could not find cudart library])])
981   HAVE_CUDA_LIB="no"
982   AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
983       AC_MSG_WARN([Could not find cuda library])])
984   LIBS="$save_LIBS"
985 ])
986
987 dnl *** NVDEC ***
988 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
989 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
990   save_CPPFLAGS="$CPPFLAGS"
991   CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
992   CPPFLAGS=$save_CPPFLAGS
993
994   HAVE_NVCUVID=no
995   save_LIBS="$LIBS"
996   LIBS="$CUDA_LIBS $save_LIBS"
997   AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
998       AC_MSG_WARN([Could not find library nvcuvid]))
999   LIBS="$save_LIBS"
1000
1001   if test "x$HAVE_NVCUVID" = "xyes"; then
1002     HAVE_NVDEC=yes
1003   else
1004     HAVE_NVDEC=no
1005   fi
1006 ])
1007
1008 dnl *** NVENC ***
1009 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1010 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1011   dnl libnvnidia-encode library
1012   HAVE_NVENCODE_LIB=no
1013   AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1014   saved_LIBS="$LIBS"
1015   LIBS="$NVENCODE_LIBS $saved_LIBS"
1016   AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1017       AC_MSG_WARN([Could not find library nvidia-encode]))
1018   NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1019   AC_SUBST(NVENCODE_LIBS)
1020   LIBS="$saved_LIBS"
1021
1022   USE_NVENC_GST_GL=no
1023   if test "x$HAVE_CUDA_H" = "xyes" \
1024       -a "x$HAVE_CUDART_H" = "xyes" \
1025       -a "x$HAVE_CUDA_LIB" = "xyes" \
1026       -a "x$HAVE_CUDART_LIB" = "xyes" \
1027       -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1028     HAVE_NVENC="yes"
1029     if test "x$GST_GL_HAVE_API_GL" = "x1"; then
1030       dnl cuda-gl interop header
1031       save_CPPFLAGS="$CPPFLAGS"
1032       CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1033       AC_CHECK_HEADER([cuda_gl_interop.h], [
1034         USE_NVENC_GST_GL="yes"
1035         AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1036         ])
1037       CPPFLAGS="$save_CPPFLAGS"
1038     fi
1039   else
1040     HAVE_NVENC="no"
1041   fi
1042 ])
1043 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1044
1045 dnl check for tinyalsa
1046 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1047 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1048   AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1049 ])
1050
1051 dnl check for intel mediasdk
1052 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1053 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1054   AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1055   PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1056           AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1057           HAVE_GUDEV="yes" ],
1058           [HAVE_GUDEV="no"])
1059   PKG_CHECK_MODULES(LIBMFX, libmfx,
1060   [
1061     AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1062     HAVE_MSDK="yes"
1063     dnl external msdk dispatchers sometimes install headers into prefix/mfx/
1064     save_CPPFLAGS="$CPPFLAGS"
1065     CPPFLAGS="$LIBMFX_CFLAGS $save_CPPFLAGS"
1066     AC_CHECK_HEADER(mfx/mfxdefs.h, [HAVE_MFX_MFXDEFS_H=1], [HAVE_MFX_MFXDEFS_H=0])
1067     if test $HAVE_MFX_MFXDEFS_H -eq 1; then
1068       MFX_INCDIR="`$PKG_CONFIG --variable=includedir libmfx`"
1069       MSDK_CFLAGS="-I$MFX_INCDIR/mfx"
1070       AC_SUBST(MSDK_CFLAGS)
1071     fi
1072     CPPFLAGS="$save_CPPFLAGS"
1073   ], [
1074     AC_ARG_WITH([msdk-prefix],
1075             AS_HELP_STRING([--with-msdk-prefix],
1076             [Use the provided prefix for detecting the Intel MediaSDK]),
1077             [AS_IF([test "x$with_msdk_prefix" != "x"],
1078                    [MSDK_PREFIX="$with_msdk_prefix"])],
1079             [AS_IF([test "x$MFX_HOME" != "x"],
1080                    [MSDK_PREFIX="$MFX_HOME"],
1081                    [MSDK_PREFIX="/opt/intel/media"])])
1082     MSDK_CFLAGS="-I$MSDK_PREFIX/include -I$MSDK_PREFIX/include/mfx"
1083     MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -L$MSDK_PREFIX/lib/x64 -L$MSDK_PREFIX/lib64 -L$MSDK_PREFIX/lib -lmfx -ldl"
1084     AC_SUBST(MSDK_CFLAGS)
1085     AC_SUBST(MSDK_LIBS)
1086
1087     save_CPPFLAGS="$CPPFLAGS"
1088     CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1089     AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1090     CPPFLAGS="$save_CPPFLAGS"
1091
1092     save_LIBS="$LIBS"
1093     LIBS="$MSDK_LIBS $LIBS"
1094     AC_LANG_PUSH([C++])
1095     AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1096     AC_LANG_POP([C++])
1097     LIBS="$save_LIBS"
1098
1099     if test "x$HAVE_MFXDEFS_H" = "xyes" \
1100         -a "x$HAVE_MFX_LIB" = "xyes"; then
1101       HAVE_MSDK="yes"
1102     else
1103       HAVE_MSDK="no"
1104     fi
1105   ])
1106
1107   PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1108
1109   if test "x$HAVE_GUDEV" = "xyes" \
1110      -a  "x$HAVE_MSDK" = "xyes" \
1111      -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1112     HAVE_MSDK="yes"
1113   else
1114     HAVE_MSDK="no"
1115   fi
1116 ], [], [
1117   dnl check the availability of vp9 apis
1118   USE_MSDK_VP9_DEC=0
1119   save_CPPFLAGS="$CPPFLAGS"
1120   CPPFLAGS="$LIBMFX_CFLAGS $MSDK_CFLAGS $save_CPPFLAGS"
1121   AC_CHECK_HEADER(mfxvp9.h, [HAVE_MFXVP9_H=1], [HAVE_MFXVP9_H=0],
1122   [
1123     #include <mfxplugin.h>
1124   ])
1125
1126   if test $HAVE_MFXVP9_H -eq 1; then
1127       USE_MSDK_VP9_DEC=1
1128       AC_DEFINE(USE_MSDK_VP9_DEC, 1, [Define if MediaSDK VP9 decoder api is available])
1129   fi
1130 ], [USE_MSDK_VP9_DEC=0])
1131 AM_CONDITIONAL(USE_MSDK_LIBVA,
1132     test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1133 AM_CONDITIONAL([USE_MSDK_VP9_DEC],
1134     [test $USE_MSDK_VP9_DEC -eq 1])
1135
1136 dnl *** ext plug-ins ***
1137 dnl keep this list sorted alphabetically !
1138
1139 if test "x$BUILD_EXTERNAL" = "xyes"; then
1140
1141 dnl *** assrender ***
1142 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1143 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1144   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1145     HAVE_ASSRENDER="yes" ], [
1146     HAVE_ASSRENDER="no"
1147   ])
1148 ])
1149 AC_SUBST(ASSRENDER_CFLAGS)
1150 AC_SUBST(ASSRENDER_LIBS)
1151
1152 dnl *** AOM ***
1153 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1154 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1155   AG_GST_PKG_CHECK_MODULES(AOM, aom)
1156 ])
1157
1158 dnl *** vo-amrwbenc ***
1159 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1160 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1161   AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1162 ])
1163
1164 dnl *** vo-aacenc ***
1165 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1166 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1167   AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1168 ])
1169
1170 dnl *** bs2b ***
1171 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1172 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1173   PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1174     HAVE_BS2B="no"
1175   ])
1176   AC_SUBST(BS2B_CFLAGS)
1177   AC_SUBST(BS2B_LIBS)
1178 ])
1179
1180 dnl *** BZ2 ***
1181 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1182 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1183   save_LIBS=$LIBS
1184   LIBS="$LIBS -lbz2"
1185   AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1186   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1187   AC_MSG_RESULT($HAVE_BZ2)
1188   LIBS=$save_LIBS
1189   if test "x$HAVE_BZ2" = "xyes"; then
1190     BZ2_LIBS="-lbz2"
1191   fi
1192   AC_SUBST(BZ2_LIBS)
1193
1194 ])
1195
1196 #dnl *** cairo ***
1197 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1198 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1199 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1200 #    HAVE_CAIRO=no
1201 #  ])
1202 #  AC_SUBST(CAIRO_CFLAGS)
1203 #  AC_SUBST(CAIRO_LIBS)
1204 #])
1205
1206 dnl *** chromaprint ***
1207 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1208 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1209   PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1210     HAVE_CHROMAPRINT="no"
1211   ])
1212   AC_SUBST(CHROMAPRINT_CFLAGS)
1213   AC_SUBST(CHROMAPRINT_LIBS)
1214 ])
1215
1216 dnl *** Curl ***
1217 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1218 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1219   PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1220     HAVE_CURL="yes"
1221     AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1222       AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1223     ])
1224     AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1225     [[#ifdef HAVE_SYS_TYPES_H
1226      # include <sys/types.h>
1227      #endif
1228      #ifdef HAVE_NETINET_IN_H
1229      # include <netinet/in.h>
1230      #endif
1231     ]])
1232     AC_MSG_CHECKING([for socket support needed by curlsink])
1233     AC_MSG_RESULT($HAVE_CURL)
1234   ], [
1235     HAVE_CURL="no"
1236   ])
1237   AC_SUBST(CURL_CFLAGS)
1238   AC_SUBST(CURL_LIBS)
1239   PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1240     HAVE_SSH2="yes"
1241     AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1242   ], [
1243     HAVE_SSH2="no"
1244   ])
1245   AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1246   AC_SUBST(SSH2_CFLAGS)
1247   AC_SUBST(SSH2_LIBS)
1248 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1249
1250 dnl **** DASH ****
1251 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1252 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1253   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1254     HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1255     HAVE_DASH="no"])
1256   AC_SUBST(LIBXML2_CFLAGS)
1257   AC_SUBST(LIBXML2_LIBS)
1258 ])
1259
1260 dnl *** dc1394  ***
1261 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1262 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1263    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1264         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1265                 HAVE_DC1394="yes"
1266         else
1267                 HAVE_DC1394="no"
1268         fi
1269    ], [
1270         HAVE_DC1394="no"
1271         AC_MSG_RESULT(no)
1272    ])
1273    AC_SUBST(LIBDC1394_CFLAGS)
1274    AC_SUBST(LIBDC1394_LIBS)
1275 ])
1276
1277 dnl *** decklink  ***
1278 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1279 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1280    HAVE_DECKLINK=no
1281    case "$host" in
1282      *android*)
1283        HAVE_DECKLINK=no
1284        ;;
1285      *-*linux*)
1286        if test "x$HAVE_PTHREAD_H" = "xyes"; then
1287          AC_CHECK_LIB(dl, dlopen,
1288            [
1289             HAVE_DECKLINK=yes
1290             DECKLINK_CXXFLAGS=
1291             DECKLINK_LIBS="-lpthread -ldl"
1292            ])
1293        fi
1294        ;;
1295      *-*darwin*)
1296        if test "x$HAVE_PTHREAD_H" = "xyes"; then
1297          AC_CHECK_LIB(dl, dlopen,
1298            [
1299             HAVE_DECKLINK=yes
1300             DECKLINK_CXXFLAGS=
1301             DECKLINK_LIBS="-lpthread -ldl"
1302             HAVE_DECKLINK_OSX=yes
1303            ])
1304        fi
1305        ;;
1306      *-mingw*)
1307        HAVE_DECKLINK=yes
1308        DECKLINK_CXXFLAGS=
1309        DECKLINK_LIBS="-lole32 -loleaut32"
1310        HAVE_DECKLINK_WIN=yes
1311        ;;
1312      *)
1313        HAVE_DECKLINK=no
1314        ;;
1315    esac
1316
1317    AC_SUBST(DECKLINK_CXXFLAGS)
1318    AC_SUBST(DECKLINK_LIBS)
1319 ])
1320 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1321 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1322
1323 dnl **** DirectFB ****
1324 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1325 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1326   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1327     HAVE_DIRECTFB="no"
1328   ])
1329 ])
1330
1331 dnl **** Wayland ****
1332 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1333 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1334 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1335   PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.11.0 libdrm >= 2.4.55 wayland-protocols >= 1.15, [
1336     if test "x$wayland_scanner" != "x"; then
1337       HAVE_WAYLAND="yes"
1338       AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1339     else
1340       AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1341       HAVE_WAYLAND="no"
1342     fi
1343     ],
1344     [ HAVE_WAYLAND="no"
1345   ])
1346 ])
1347
1348 dnl **** use webrtctest ****
1349 AC_ARG_ENABLE(webrtctest, AC_HELP_STRING([--enable-webrtctest], [using webrtctest]),
1350 [
1351  case "${enableval}" in
1352          yes) ENABLE_WEBRTCTEST=yes ;;
1353          no)  ENABLE_WEBRTCTEST=no ;;
1354          *)   AC_MSG_ERROR(bad value ${enableval} for --enable-webrtctest) ;;
1355  esac
1356  ],
1357  [ENABLE_WEBRTCTEST=no])
1358 AM_CONDITIONAL(ENABLE_WEBRTCTEST, test "x$ENABLE_WEBRTCTEST" = "xyes")
1359 if test "x$ENABLE_WEBRTCTEST" = "xyes"; then
1360 PKG_CHECK_MODULES(JSON_GLIB, json-glib-1.0)
1361 AC_SUBST(JSON_GLIB_CFLAGS)
1362 AC_SUBST(JSON_GLIB_LIBS)
1363
1364 PKG_CHECK_MODULES(SOUP, libsoup-2.4)
1365 AC_SUBST(SOUP_CFLAGS)
1366 AC_SUBST(SOUP_LIBS)
1367 fi
1368
1369 dnl **** WebP ****
1370 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1371 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1372   PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1373     HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1374   ])
1375   AC_SUBST(WEBP_CFLAGS)
1376   AC_SUBST(WEBP_LIBS)
1377 ])
1378
1379 dnl *** DTS ***
1380 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1381 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1382   HAVE_DTS="yes"
1383   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1384     DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1385   if test $HAVE_DTS = "no"; then
1386     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1387       [ DTS_LIBS="-ldts_pic $LIBM"
1388         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1389       ])
1390   fi
1391   AC_SUBST(DTS_LIBS)
1392 ])
1393
1394 dnl *** resindvd ***
1395 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1396 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1397   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1398     HAVE_RESINDVD="no"
1399   ])
1400 ])
1401
1402 dnl **** Free AAC Encoder (FAAC) ****
1403 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1404 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1405   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1406     FAAC_LIBS="-lfaac $LIBM")
1407   AC_SUBST(FAAC_LIBS)
1408 ])
1409
1410 dnl **** Free AAC Decoder (FAAD2) ****
1411 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1412 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1413   AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1414     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1415       #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1416       #error Not faad2
1417       #elif !defined(LATM)
1418       #error Not faad2 >= 2.7
1419       #endif
1420     ]])],[
1421       HAVE_FAAD="yes"
1422       FAAD_LIBS="-lfaad"
1423     ], [
1424       AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1425       HAVE_FAAD="no"
1426     ])
1427   ], [
1428       HAVE_FAAD="no"
1429   ])
1430   AC_SUBST(FAAD_LIBS)
1431 ])
1432
1433 dnl *** fbdev ***
1434 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1435 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1436   if test "x$HAVE_FBDEV" != "xyes"; then
1437     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1438   fi
1439 ])
1440
1441 dnl *** fdkaac ***
1442 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1443 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1444   PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1445
1446   PKG_CHECK_EXISTS(fdk-aac >= 2.0.0, [
1447     AC_DEFINE(HAVE_FDK_AAC_2_0_0, 1, [Define if we have fdk-aac >= 2.0.0])
1448   ])
1449
1450   PKG_CHECK_EXISTS(fdk-aac >= 0.1.4, [
1451     AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1452   ])
1453 ])
1454
1455 dnl *** flite ***
1456 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1457 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1458   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1459     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1460
1461   AC_SUBST(FLITE_CFLAGS)
1462   AC_SUBST(FLITE_LIBS)
1463 ])
1464
1465 dnl *** gsm ***
1466 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1467 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1468   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1469   if test $HAVE_GSM != "yes"; then
1470     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1471     if test $HAVE_GSM = "yes"; then
1472       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1473     fi
1474   fi
1475   AC_SUBST(GSM_LIBS)
1476 ])
1477
1478 dnl *** fluidSynth ***
1479 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1480 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1481   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1482     HAVE_FLUIDSYNTH="no"
1483   ])
1484 ])
1485
1486 dnl *** kate ***
1487 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1488 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1489   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1490     HAVE_KATE="no"
1491   ])
1492   AC_SUBST(KATE_CFLAGS)
1493   AC_SUBST(KATE_LIBS)
1494   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1495     [
1496       HAVE_TIGER="yes"
1497       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1498     ],
1499     [
1500       HAVE_TIGER="no"
1501     ]
1502   )
1503   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1504   AC_SUBST(TIGER_CFLAGS)
1505   AC_SUBST(TIGER_LIBS)
1506 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1507
1508 dnl *** kms ***
1509 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1510 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1511   AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1512   PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1513 ])
1514
1515 dnl *** ladspa ***
1516 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1517 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1518   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1519
1520   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1521   if test $HAVE_LRDF = "yes"; then
1522     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1523   fi
1524   AC_SUBST(LRDF_LIBS)
1525   AC_SUBST(LRDF_CFLAGS)
1526 ])
1527
1528 dnl *** LCM2  ***
1529 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1530 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1531   PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1532     HAVE_LCMS2="no"
1533   ])
1534    AC_SUBST(LCMS2_LIBS)
1535 ])
1536
1537 dnl *** LV2 ***
1538 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1539 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1540   PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1541     HAVE_LV2="yes",
1542     HAVE_LILV_0_22="yes"
1543     AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1544   ],[
1545     PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1546   ])
1547   AC_SUBST(LILV_CFLAGS)
1548   AC_SUBST(LILV_LIBS)
1549 ])
1550
1551 dnl *** libde265 ***
1552 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1553 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1554   PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1555   AC_SUBST(LIBDE265_CFLAGS)
1556   AC_SUBST(LIBDE265_LIBS)
1557 ])
1558
1559 dnl *** libmms ***
1560 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1561 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1562   dnl check with pkg-config first
1563   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1564     HAVE_LIBMMS="no"
1565   ])
1566 ])
1567 AC_SUBST(LIBMMS_LIBS)
1568
1569 dnl *** libsrt ***
1570 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1571 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1572   PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1573   AC_SUBST(SRT_LIBS)
1574   AC_SUBST(SRT_CFLAGS)
1575 ])
1576
1577 dnl *** libsrtp ***
1578 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1579 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1580   HAVE_SRTP="no"
1581   AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1582   if test x"$HAVE_SRTP" = x"yes"; then
1583     AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1584   else
1585     PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1586       AG_GST_CHECK_LIBHEADER(SRTP, srtp, crypto_policy_set_aes_gcm_128_16_auth, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1587     )
1588   fi
1589   AC_SUBST(SRTP_LIBS)
1590   AC_SUBST(SRTP_CFLAGS)
1591 ])
1592
1593 dnl *** dtls ***
1594 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1595 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1596   PKG_CHECK_MODULES(DTLS, [ openssl1.1 >= 1.0.1  libcrypto1.1 ], [
1597     HAVE_DTLS="yes"
1598     AC_SUBST(DTLS_CFLAGS)
1599     AC_SUBST(DTLS_LIBS)
1600   ], [
1601     HAVE_DTLS="no"
1602   ])
1603 ])
1604
1605 dnl *** ttml ***
1606 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1607 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1608   PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1609     HAVE_TTML="yes"
1610   ], [
1611     HAVE_TTML="no"
1612   ])
1613 ])
1614
1615 dnl *** modplug ***
1616 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1617 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1618   if test "x$HAVE_CXX" != "xyes"; then
1619     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1620     HAVE_MODPLUG="no"
1621   else
1622     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1623   fi
1624   AC_SUBST(MODPLUG_CFLAGS)
1625   AC_SUBST(MODPLUG_LIBS)
1626 ])
1627
1628 dnl *** mjpegtools version info ***
1629 dnl some may prefer older version (given quirks above)
1630 dnl hm, no version info seems available within mjpegtools headers
1631 dnl and API really moves along
1632 echo
1633 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1634   mjpegtools_api=10601
1635 ], [
1636   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1637     mjpegtools_api=10800
1638   ], [
1639     PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1640       mjpegtools_api=20000
1641     ], [
1642       PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1643         dnl logging API changed in release candidates
1644         OLD_CFLAGS="$CFLAGS"
1645         OLD_LIBS="$LIBS"
1646         CFLAGS="$MJPEG_CFLAGS"
1647         LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1648         AC_CHECK_FUNC(mjpeg_loglev_t, [
1649           mjpegtools_api=10903
1650           ], [
1651           mjpegtools_api=10900
1652           ])
1653         CFLAGS="$OLD_CFLAGS"
1654         LIBS="$OLD_LIBS"
1655       ], [
1656         mjpegtools_api=0
1657       ])
1658     ])
1659   ])
1660 ])
1661 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1662   [mjpegtools API evolution])
1663
1664 dnl *** mpeg2enc ***
1665 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1666 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1667   HAVE_MPEG2ENC="no"
1668   dnl we require a c++ compiler for this one
1669   if [ test x$HAVE_CXX = xyes ]; then
1670     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1671     dnl since many distros include mjpegtools specifically without mplex
1672     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1673     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1674       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1675       touch config.h
1676       dnl switch over to c++ to test things
1677       AC_LANG([C++])
1678       OLD_CPPFLAGS="$CPPFLAGS"
1679       dnl HACK as above
1680       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1681       CPPFLAGS="$CPPFLAGS_GOOD -I."
1682       dnl check headers
1683       mpeg2enc_headers_ok=no
1684       AC_CHECK_HEADER([mpeg2encoder.hh], [
1685         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1686         OLD_LIBS="$LIBS"
1687         LIBS="$LIBS $MPEG2ENC_LIBS"
1688         AC_MSG_CHECKING([for valid mpeg2enc objects])
1689         AC_RUN_IFELSE([AC_LANG_SOURCE([[
1690           #include <mpeg2encoder.hh>
1691           #include <mpeg2encoptions.hh>
1692
1693           int
1694           main (int   argc,
1695                 char *argv[])
1696           {
1697             MPEG2EncOptions *options = new MPEG2EncOptions ();
1698             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1699             return 0;
1700           }
1701         ]])],[
1702           AC_MSG_RESULT(yes)
1703           dnl so far so good, let's check more things:
1704           dnl mjpegtools-1.8.0 does not install the required
1705           dnl mpeg2syntaxcodes.h header by default, and a new release
1706           dnl is not in sight, so check for this oversight in case
1707           dnl distros or folks have fixed this themselves
1708           if test "$mjpegtools_api" -ge "10800"; then
1709             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1710                 mpeg2enc_headers_ok=yes
1711               ], [
1712                 mpeg2enc_headers_ok=no
1713               ])
1714           else
1715             mpeg2enc_headers_ok=yes
1716           fi
1717           if test "x$mpeg2enc_headers_ok" = "xyes"; then
1718             HAVE_MPEG2ENC="yes"
1719           fi
1720           CPPFLAGS="$CPPFLAGS_GOOD"
1721           AC_SUBST(MPEG2ENC_CFLAGS)
1722           AC_SUBST(MPEG2ENC_LIBS)
1723         ],[
1724           AC_MSG_RESULT(no)
1725         ],[])
1726         LIBS="$OLD_LIBS"
1727       ])
1728
1729       CPPFLAGS="$OLD_CPPFLAGS"
1730       AC_LANG([C])
1731     ], [
1732       HAVE_MPEG2ENC="no"
1733     ])
1734   fi
1735 ])
1736
1737 dnl *** mplex ***
1738 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1739 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1740   HAVE_MPLEX="no"
1741   dnl we require a c++ compiler for this one
1742   if [ test x$HAVE_CXX = xyes ]; then
1743     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1744     dnl since many distros include mjpegtools specifically without mplex
1745     dnl and mpeg2enc, we check for mplex on its own, too.
1746     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1747     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1748       dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1749       touch config.h
1750       dnl switch over to c++ to test things
1751       AC_LANG([C++])
1752       OLD_CPPFLAGS="$CPPFLAGS"
1753       dnl HACK as above
1754       CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1755       CPPFLAGS="$CPPFLAGS_GOOD -I."
1756       AC_CHECK_HEADER(interact.hpp, [
1757         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1758         OLD_LIBS="$LIBS"
1759         LIBS="$LIBS $MPLEX_LIBS"
1760         OLD_LDFLAGS="$LDFLAGS"
1761         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1762         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1763         dnl don't want this here
1764         AC_MSG_CHECKING([for valid mplex objects])
1765         AC_RUN_IFELSE([AC_LANG_SOURCE([[
1766
1767 #include <interact.hpp>
1768 #include <outputstrm.hpp>
1769 #include <multiplexor.hpp>
1770 int
1771 main (int   argc,
1772       char *argv[])
1773 {
1774   class TestOutputStream : public OutputStream {
1775   public:
1776     TestOutputStream () : OutputStream () { }
1777     void Write (uint8_t *a, unsigned int b) { }
1778     void NextSegment () { }
1779     uint64_t SegmentSize () { return 0; }
1780     void Close () { }
1781     int Open () { return 0; }
1782 };
1783   MultiplexJob *job = new MultiplexJob ();
1784   vector<IBitStream *> inputs;
1785   job->SetupInputStreams (inputs);
1786   TestOutputStream *out = new TestOutputStream ();
1787   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1788   return 0;
1789 }
1790         ]])],[
1791           HAVE_MPLEX="yes"
1792           CPPFLAGS="$CPPFLAGS_GOOD"
1793           AC_SUBST(MPLEX_CFLAGS)
1794           AC_SUBST(MPLEX_LIBS)
1795           AC_SUBST(MPLEX_LDFLAGS)
1796           AC_MSG_RESULT(yes)
1797         ],[AC_MSG_RESULT(no)],[])
1798         LIBS="$OLD_LIBS"
1799         LDFLAGS="$OLD_LDFLAGS"
1800       ])
1801       CPPFLAGS="$OLD_CPPFLAGS"
1802       AC_LANG([C])
1803     ], HAVE_MPLEX="no")
1804   fi
1805 ])
1806
1807 dnl *** musepack ***
1808 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1809 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1810   AC_CHECK_HEADER([mpc/mpcdec.h], [
1811     HAVE_MUSEPACK="yes"
1812     MUSEPACK_LIBS="-lmpcdec"
1813     AC_SUBST(MUSEPACK_LIBS)
1814     ], [HAVE_MUSEPACK="no"])
1815 ])
1816
1817 dnl *** neon ***
1818 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1819 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1820   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.30.99, HAVE_NEON="yes", [
1821     HAVE_NEON="no"
1822   ])
1823   AC_SUBST(NEON_CFLAGS)
1824   AC_SUBST(NEON_LIBS)
1825 ])
1826
1827 dnl *** ofa ***
1828 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1829 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1830   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1831     HAVE_OFA="no"
1832   ])
1833   AC_SUBST(OFA_CFLAGS)
1834   AC_SUBST(OFA_LIBS)
1835 ])
1836
1837 dnl *** OpenAL ***
1838 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1839 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1840   PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1841     HAVE_OPENAL="no"
1842   ])
1843   AC_SUBST(OPENAL_CFLAGS)
1844   AC_SUBST(OPENAL_LIBS)
1845 ])
1846
1847 dnl *** opencv ***
1848 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1849 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1850   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1851   dnl and don't want the build to break when a new opencv version comes out.
1852   dnl Need to adjust this upwards once we know that our code compiles fine with
1853   dnl a new version and the no-backward-compatibility define. (There doesn't
1854   dnl seem to be a switch to suppress the warnings the cvcompat.h header
1855   dnl causes.)
1856   PKG_CHECK_MODULES([OPENCV], [opencv >= 3.0.0 opencv < 3.5.0] , [
1857     AC_PROG_CXX
1858     AC_LANG([C++])
1859     OLD_CPPFLAGS=$CPPFLAGS
1860     CPPFLAGS=$OPENCV_CFLAGS
1861     something_not_found=no
1862     AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1863                       opencv2/calib3d.hpp \
1864                       opencv2/core.hpp \
1865                       opencv2/imgproc.hpp \
1866                       opencv2/objdetect.hpp \
1867                       opencv2/opencv.hpp \
1868                       opencv2/video.hpp \
1869                       opencv2/bgsegm.hpp], [], [something_not_found=yes])
1870
1871     CPPFLAGS=$OLD_CPPFLAGS
1872     AC_LANG([C])
1873
1874     if test $something_not_found = "yes"; then
1875       AC_MSG_RESULT([not all opencv2 headers were found])
1876       HAVE_OPENCV="no"
1877     else
1878       HAVE_OPENCV="yes"
1879     fi
1880   ], [
1881     PKG_CHECK_MODULES([OPENCV], [opencv4 >= 4.0.0 opencv4 < 4.2.0] , [
1882     AC_PROG_CXX
1883     AC_LANG([C++])
1884     OLD_CPPFLAGS=$CPPFLAGS
1885     CPPFLAGS=$OPENCV_CFLAGS
1886     something_not_found=no
1887     AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1888                       opencv2/calib3d.hpp \
1889                       opencv2/core.hpp \
1890                       opencv2/imgproc.hpp \
1891                       opencv2/objdetect.hpp \
1892                       opencv2/opencv.hpp \
1893                       opencv2/video.hpp \
1894                       opencv2/bgsegm.hpp], [], [something_not_found=yes])
1895
1896     CPPFLAGS=$OLD_CPPFLAGS
1897     AC_LANG([C])
1898
1899     if test $something_not_found = "yes"; then
1900       AC_MSG_RESULT([not all opencv2 headers were found])
1901       HAVE_OPENCV="no"
1902     else
1903       HAVE_OPENCV="yes"
1904     fi
1905   ], [
1906     HAVE_OPENCV="no"
1907   ])
1908   ])
1909   OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1910   AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1911   AC_SUBST(OPENCV_PREFIX)
1912   OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1913   AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1914   AC_SUBST(OPENCV_PREFIX)
1915   AC_SUBST(OPENCV_CFLAGS)
1916   AC_SUBST(OPENCV_LIBS)
1917   dnl the OpenCV prefix is used at runtime for some object properties, and also
1918   dnl used here to detect which directory is the correct one. For the second
1919   dnl case, make sure the right sysroot is used, ensuring correct behavior
1920   dnl during cross compilation.
1921   if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1922     AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1923   else
1924     AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1925   fi
1926 ])
1927
1928 dnl *** OpenEXR ***
1929 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1930 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1931   AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1932   if test "x$HAVE_OPENEXR" = "xyes"; then
1933     AG_GST_PKG_CHECK_MODULES(OPENEXR240, OpenEXR >= 2.4.0)
1934     if test "x$HAVE_OPENEXR240" = "xyes"; then
1935       OPENEXR_STDCFLAGS=
1936     else
1937       OPENEXR_STDCFLAGS="-std=c++98"
1938     fi
1939     AC_SUBST([OPENEXR_STDCFLAGS])
1940   fi
1941 ])
1942
1943 dnl *** openh264 ***
1944 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1945 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1946   AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1947 ])
1948
1949 dnl *** OpenJPEG ***
1950 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1951 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1952   HAVE_OPENJPEG="no"
1953   AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1954   if test x"$HAVE_OPENJPEG" != x"yes"; then
1955     # Fallback to v1.5
1956     OPENJPEG_LIBS=""
1957     PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1958       HAVE_OPENJPEG="yes",
1959       AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1960     )
1961     if test x"$HAVE_OPENJPEG" = x"yes"; then
1962       AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1963     fi
1964   fi
1965   AC_SUBST(OPENJPEG_CFLAGS)
1966   AC_SUBST(OPENJPEG_LIBS)
1967 ])
1968
1969 dnl *** OpenMPT ***
1970 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1971 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1972   PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1973   AC_SUBST(OPENMPT_CFLAGS)
1974   AC_SUBST(OPENMPT_LIBS)
1975 ])
1976
1977 dnl *** OpenNI2 ***
1978 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1979 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1980   PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1981   AC_SUBST(OPENNI2_CFLAGS)
1982   AC_SUBST(OPENNI2_LIBS)
1983 ])
1984
1985 dnl *** Opus ***
1986 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1987 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1988   PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1989           AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1990           HAVE_OPUS="yes"
1991   ], [
1992           HAVE_OPUS="no"
1993   ])
1994   AC_SUBST(OPUS_CFLAGS)
1995   AC_SUBST(OPUS_LIBS)
1996 ])
1997
1998 dnl *** pango ***
1999 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
2000 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
2001   AG_GST_PKG_CHECK_MODULES(PANGO, pango >= 1.22.0  pangocairo >= 1.22.0)
2002 ])
2003
2004 dnl *** rsvg ***
2005 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2006 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2007   AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2008 ])
2009
2010 dnl *** gl ***
2011 HAVE_GL="no"
2012 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2013 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2014   if test "x$HAVE_GST_GL" = "xyes"; then
2015     HAVE_GL="yes"
2016   fi
2017 ])
2018 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
2019 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
2020
2021 dnl *** Vulkan ***
2022 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2023 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2024   AC_CHECK_HEADER(vulkan/vulkan.h, [
2025     AC_CHECK_LIB(vulkan, vkCreateDevice, [
2026       VULKAN_LIBS="-lvulkan"
2027       AC_SUBST(VULKAN_LIBS)
2028       if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
2029         HAVE_VULKAN="yes"
2030       fi
2031       if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
2032         HAVE_VULKAN="yes"
2033       fi
2034     ], [])
2035   ], [])
2036 ])
2037
2038 dnl *** teletextdec ***
2039 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2040 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2041   AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2042  ])
2043
2044 dnl *** wildmidi ***
2045 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2046 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2047   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2048                          WildMidi_Init, ,
2049                          wildmidi_lib.h,
2050                          WILDMIDI_LIBS="-lWildMidi")
2051   WILDMIDI_CFLAGS=
2052   WILDMIDI_LIBS=
2053   if test "x$HAVE_WILDMIDI" = "xyes"; then
2054     AC_MSG_CHECKING([for wildmidi >= 4.0])
2055     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
2056         #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
2057         #error "wildmidi too old"
2058         #endif
2059     ]])], [ AC_MSG_RESULT(yes)
2060       HAVE_WILDMIDI="yes"
2061       WILDMIDI_CFLAGS=
2062       WILDMIDI_LIBS=-lWildMidi
2063     ], [ AC_MSG_RESULT(no)
2064       HAVE_WILDMIDI="no"
2065     ])
2066   else
2067     AC_MSG_WARN([WildMidi library or development headers not found])
2068   fi
2069   AC_SUBST(WILDMIDI_CFLAGS)
2070   AC_SUBST(WILDMIDI_LIBS)
2071 ])
2072
2073 dnl **** Smooth Streaming ****
2074 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2075 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2076   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2077     [HAVE_LIBXML2="yes"
2078      HAVE_SMOOTHSTREAMING="yes"],
2079     [HAVE_LIBXML2="no"
2080      HAVE_SMOOTHSTREAMING="no"])
2081   AC_SUBST(LIBXML2_CFLAGS)
2082   AC_SUBST(LIBXML2_LIBS)
2083 ])
2084
2085 dnl *** sndfile ***
2086 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2087 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2088   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2089   AC_SUBST(SNDFILE_CFLAGS)
2090   AC_SUBST(SNDFILE_LIBS)
2091 ])
2092
2093 dnl *** soundtouch ***
2094 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2095 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2096   dnl We only need -lBPM on soundtouch < 1.4
2097   dnl We check for libSoundTouch since Debian used it before upstream
2098   dnl added a pkgconfig file.
2099   HAVE_SOUNDTOUCH_1_4=yes
2100   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2101     [HAVE_SOUNDTOUCH=yes],
2102     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2103       [HAVE_SOUNDTOUCH=yes],
2104       [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2105         [HAVE_SOUNDTOUCH=yes
2106           HAVE_SOUNDTOUCH_1_4=no
2107           SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2108         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2109           [HAVE_SOUNDTOUCH=yes],
2110           [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2111             [HAVE_SOUNDTOUCH=yes
2112               HAVE_SOUNDTOUCH_1_4=no
2113               SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2114             HAVE_SOUNDTOUCH=no)])])])])
2115   AC_SUBST(SOUNDTOUCH_CFLAGS)
2116   AC_SUBST(SOUNDTOUCH_LIBS)
2117   if test "x$HAVE_CXX" != "xyes"; then
2118     USE_SOUNDTOUCH=false
2119     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2120   fi
2121   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2122      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2123          [Defined if the available libSoundTouch is >= 1.4])
2124   fi
2125 ])
2126
2127 dnl *** gme ***
2128 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2129 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2130   AC_CHECK_HEADER(gme/gme.h, [
2131     AC_CHECK_LIB(gme, gme_new_emu, [
2132       GME_LIBS="-lgme"
2133       AC_SUBST(GME_LIBS)
2134       HAVE_GME=yes
2135     ], [
2136       HAVE_GME=no
2137     ])
2138   ], [
2139     HAVE_GME=no
2140   ])
2141
2142   if test "x$HAVE_GME" = "xyes"; then
2143     AC_CHECK_LIB(gme, gme_enable_accuracy, [
2144       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2145       ])
2146   fi
2147 ])
2148
2149 dnl *** dvb ***
2150 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2151 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2152   AC_MSG_CHECKING([Checking for up to date dvb installation])
2153   AC_CHECK_HEADER(linux/dvb/version.h, [
2154     AC_MSG_CHECKING([for up-to-date dvb API])
2155     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2156         #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2157         #error "Incompatible dvb API"
2158         #endif
2159     ]])], [ AC_MSG_RESULT(yes)
2160       HAVE_DVB="yes"
2161     ], [ AC_MSG_RESULT(no)
2162       HAVE_DVB="no"
2163     ])
2164   ], [HAVE_DVB="no"])
2165 ])
2166
2167 dnl *** vdpau ***
2168 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2169 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2170   VDPAU_CFLAGS=
2171   VDPAU_LIBS=-lvdpau
2172   HAVE_VDPAU=no
2173
2174   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2175   [
2176     if test "$HAVE_VDPAU" = "no"; then
2177       saved_CPPFLAGS="$CPPFLAGS"
2178       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2179
2180       if test -z "$HAVE_VDPAU_H"; then
2181         dnl Didn't find VDPAU header straight away.
2182         dnl Try /usr/include/nvidia. Need to clear caching vars first
2183         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2184         unset ac_cv_header_vdpau_vdpau_h
2185         unset ac_cv_header_vdpau_vdpau_x11_h
2186         VDPAU_CFLAGS="-I/usr/include/nvidia"
2187         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2188         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2189         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2190       fi
2191
2192       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2193
2194       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2195         dnl Found the headers - look for the lib
2196         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2197         saved_LIBS="$LIBS"
2198         LIBS="$VDPAU_LIBS $saved_LIBS"
2199         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2200         LIBS="$saved_LIBS"
2201       fi
2202     fi
2203   ])
2204
2205   if test "$HAVE_VDPAU" = "yes"; then
2206     AC_MSG_NOTICE([Found up to date VDPAU installation])
2207     AC_SUBST(VDPAU_CFLAGS)
2208     AC_SUBST(VDPAU_LIBS)
2209   fi
2210 ])
2211
2212 dnl *** sbc ***
2213 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2214 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2215   AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2216 ])
2217
2218 dnl *** zbar ***
2219 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2220 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2221   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2222 ])
2223
2224 dnl *** rtmp ***
2225 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2226 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2227   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2228 ])
2229
2230 dnl *** spandsp ***
2231 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2232 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2233   PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2234     HAVE_SPANDSP="yes" ], [
2235     HAVE_SPANDSP="no"
2236   ])
2237 ])
2238 AC_SUBST(SPANDSP_CFLAGS)
2239 AC_SUBST(SPANDSP_LIBS)
2240
2241 dnl *** hls-crypto ***
2242 AC_ARG_WITH([hls-crypto],
2243   AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2244     which cryptographic library version to compile against for hls (default: auto)
2245   ]), [
2246     AS_CASE([$with_hls_crypto],
2247       [nettle],[],
2248       [libgcrypt],[],
2249       [openssl],[],
2250       [with_hls_crypto=auto]
2251     )
2252   ]
2253 )
2254
2255 dnl *** hls ***
2256 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2257 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2258   AS_CASE([$with_hls_crypto],
2259     [nettle], [
2260       PKG_CHECK_MODULES(NETTLE, nettle, [
2261         AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2262         HAVE_HLS="yes"
2263       ],[AC_MSG_ERROR([Could not find nettle library])])
2264     ],
2265     [libgcrypt], [
2266       AM_PATH_LIBGCRYPT([1.2.0], [
2267         AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2268         HAVE_HLS="yes"
2269       ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2270     ],
2271     [openssl], [
2272       PKG_CHECK_MODULES(OPENSSL, openssl1.1, [
2273         AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2274         HAVE_HLS="yes"
2275       ],[AC_MSG_ERROR([Could not find openssl library])])
2276     ],
2277     [
2278       dnl Try to find a valid crypto library
2279       HAVE_HLS="yes"
2280       PKG_CHECK_MODULES(NETTLE, nettle, [
2281         AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2282       ],[
2283         AM_PATH_LIBGCRYPT([1.2.0], [
2284           AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2285         ],[
2286           PKG_CHECK_MODULES(OPENSSL, openssl1.1, [
2287             AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2288           ])
2289         ])
2290       ])
2291     ]
2292   )
2293 ])
2294
2295 dnl *** x265 (H.265/HEVC encoder) ***
2296 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2297 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2298   AG_GST_PKG_CHECK_MODULES(X265, x265)
2299 ])
2300
2301 dnl *** WebRTC Audio Processing ***
2302 dnl Note: We test for a specific version as there is no API stability
2303 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2304 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2305
2306   AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2307
2308   # On Android, C++ headers comes with the STL implementation
2309   AS_CASE(["${host}"],
2310     [*android*],
2311       [
2312         PKG_CHECK_MODULES(GNUSTL, gnustl, [
2313           WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2314           WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2315       ])
2316   AC_SUBST([WEBRTCDSP_CFLAGS])
2317   AC_SUBST([WEBRTCDSP_LIBS])
2318
2319   AC_LANG_PUSH([C++])
2320   old_CPPFLAGS=$CPPFLAGS
2321   CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2322   AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2323   CPPFLAGS=$old_CPPFLAGS
2324   AC_LANG_POP([C++])
2325 ])
2326
2327 dnl *** WebRTC ***
2328 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2329 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2330   PKG_CHECK_MODULES(NICE, nice >= 0.1.14, [
2331     HAVE_WEBRTC="yes" ], [
2332     HAVE_WEBRTC="no"
2333   ])
2334 ])
2335
2336 dnl *** WPE ***
2337 translit(dnm, m, l) AM_CONDITIONAL(USE_WPE, true)
2338 AG_GST_CHECK_FEATURE(WPE, [WPE plug-in], wpe, [
2339 PKG_CHECK_MODULES(WPE, [ wpe-webkit-1.0 >= 2.24 wpebackend-fdo-1.0 egl xkbcommon ], [
2340     HAVE_WPE="yes" ], [
2341     HAVE_WPE="no"
2342   ])
2343 ])
2344
2345 dnl *** usrsctp ***
2346 translit(dnm, m, l) AM_CONDITIONAL(USE_SCTP, true)
2347 AG_GST_CHECK_FEATURE(SCTP, [sctp plug-in], sctp, [
2348   AC_CHECK_HEADER(usrsctp.h, [
2349     AC_CHECK_LIB(usrsctp, usrsctp_init, [
2350       USRSCTP_LIBS="-lusrsctp"
2351       AC_SUBST(USRSCTP_LIBS)
2352       HAVE_SCTP=yes
2353     ], [
2354       HAVE_SCTP=no
2355     ])
2356   ], [
2357     HAVE_SCTP=no
2358   ])
2359 ])
2360
2361 else
2362
2363 dnl not building plugins with external dependencies,
2364 dnl but we still need to set the conditionals
2365
2366 AM_CONDITIONAL(USE_ASSRENDER, false)
2367 AM_CONDITIONAL(USE_AOM, false)
2368 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2369 AM_CONDITIONAL(USE_VOAACENC, false)
2370 AM_CONDITIONAL(USE_BS2B, false)
2371 AM_CONDITIONAL(USE_BZ2, false)
2372 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2373 AM_CONDITIONAL(USE_CURL, false)
2374 AM_CONDITIONAL(USE_SSH2, false)
2375 AM_CONDITIONAL(USE_DASH, false)
2376 AM_CONDITIONAL(USE_DC1394, false)
2377 AM_CONDITIONAL(USE_DECKLINK, false)
2378 AM_CONDITIONAL(DECKLINK_OSX, false)
2379 AM_CONDITIONAL(DECKLINK_WIN, false)
2380 AM_CONDITIONAL(USE_DIRECTFB, false)
2381 AM_CONDITIONAL(USE_WAYLAND, false)
2382 AM_CONDITIONAL(USE_DTS, false)
2383 AM_CONDITIONAL(USE_EXIF, false)
2384 AM_CONDITIONAL(USE_RESINDVD, false)
2385 AM_CONDITIONAL(USE_FAAC, false)
2386 AM_CONDITIONAL(USE_FAAD, false)
2387 AM_CONDITIONAL(USE_FBDEV, false)
2388 AM_CONDITIONAL(USE_FDK_AAC, false)
2389 AM_CONDITIONAL(USE_FLITE, false)
2390 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2391 AM_CONDITIONAL(USE_GL, false)
2392 AM_CONDITIONAL(USE_GSM, false)
2393 AM_CONDITIONAL(USE_HLS, false)
2394 AM_CONDITIONAL(USE_IQA, false)
2395 AM_CONDITIONAL(USE_KATE, false)
2396 AM_CONDITIONAL(USE_KMS, false)
2397 AM_CONDITIONAL(USE_TIGER, false)
2398 AM_CONDITIONAL(USE_LADSPA, false)
2399 AM_CONDITIONAL(USE_LCMS2, false)
2400 AM_CONDITIONAL(USE_LV2, false)
2401 AM_CONDITIONAL(USE_LIBDE265, false)
2402 AM_CONDITIONAL(USE_LIBMMS, false)
2403 AM_CONDITIONAL(USE_MODPLUG, false)
2404 AM_CONDITIONAL(USE_MPEG2ENC, false)
2405 AM_CONDITIONAL(USE_MPLEX, false)
2406 AM_CONDITIONAL(USE_MUSEPACK, false)
2407 AM_CONDITIONAL(USE_NEON, false)
2408 AM_CONDITIONAL(USE_OFA, false)
2409 AM_CONDITIONAL(USE_OPENAL, false)
2410 AM_CONDITIONAL(USE_OPENCV, false)
2411 AM_CONDITIONAL(USE_OPENEXR, false)
2412 AM_CONDITIONAL(USE_OPENGL, false)
2413 AM_CONDITIONAL(USE_OPENJPEG, false)
2414 AM_CONDITIONAL(USE_OPENMPT, false)
2415 AM_CONDITIONAL(USE_OPENNI2, false)
2416 AM_CONDITIONAL(USE_OPUS, false)
2417 AM_CONDITIONAL(USE_PANGO, false)
2418 AM_CONDITIONAL(USE_WILDMIDI, false)
2419 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2420 AM_CONDITIONAL(USE_SNDFILE, false)
2421 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2422 AM_CONDITIONAL(USE_SPANDSP, false)
2423 AM_CONDITIONAL(USE_SRTP, false)
2424 AM_CONDITIONAL(USE_SRT, false)
2425 AM_CONDITIONAL(USE_GME, false)
2426 AM_CONDITIONAL(USE_DVB, false)
2427 AM_CONDITIONAL(USE_VDPAU, false)
2428 AM_CONDITIONAL(USE_SBC, false)
2429 AM_CONDITIONAL(USE_ZBAR, false)
2430 AM_CONDITIONAL(USE_RSVG, false)
2431 AM_CONDITIONAL(USE_RTMP, false)
2432 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2433 AM_CONDITIONAL(USE_UVCH264, false)
2434 AM_CONDITIONAL(USE_WEBP, false)
2435 AM_CONDITIONAL(USE_WEBRTC, false)
2436 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2437 AM_CONDITIONAL(USE_OPENH264, false)
2438 AM_CONDITIONAL(USE_X265, false)
2439 AM_CONDITIONAL(USE_DTLS, false)
2440 AM_CONDITIONAL(USE_VULKAN, false)
2441 AM_CONDITIONAL(USE_TTML, false)
2442 AM_CONDITIONAL(USE_SCTP, false)
2443
2444 fi dnl of EXT plugins
2445
2446 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2447
2448 dnl Overview:
2449 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
2450 dnl GST_*:              flags shared by built objects to link against GStreamer
2451 dnl GST_ALL_LDFLAGS:    linker flags shared by all
2452 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
2453 dnl GST_LT_LDFLAGS:     library versioning of our libraries
2454 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2455
2456 dnl GST_OPTION_CFLAGS
2457 if test "x$USE_DEBUG" = xyes; then
2458    PROFILE_CFLAGS="-g"
2459 fi
2460 AC_SUBST(PROFILE_CFLAGS)
2461
2462 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2463   dnl Define _only_ during CVS (not pre-releases or releases)
2464   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2465 else
2466   DEPRECATED_CFLAGS=""
2467 fi
2468 AC_SUBST(DEPRECATED_CFLAGS)
2469
2470 VISIBILITY_CFLAGS=""
2471 AS_COMPILER_FLAG([-fvisibility=hidden], [
2472   VISIBILITY_CFLAGS="-fvisibility=hidden"
2473   AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
2474 ], [
2475   VISIBILITY_CFLAGS=""
2476   AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
2477 ])
2478 AC_SUBST(VISIBILITY_CFLAGS)
2479
2480 VISIBILITY_CXXFLAGS=""
2481 if test "x$HAVE_CXX" = "xyes"; then
2482   AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2483 fi
2484 AC_SUBST(VISIBILITY_CXXFLAGS)
2485
2486 dnl disable strict aliasing
2487 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2488 AC_SUBST(EXTRA_CFLAGS)
2489
2490 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2491 dnl at make time with e.g. make ERROR_CFLAGS=""
2492 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2493 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2494 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2495 AC_SUBST(GST_OPTION_CFLAGS)
2496 AC_SUBST(GST_OPTION_CXXFLAGS)
2497 AC_SUBST(GST_OPTION_OBJCFLAGS)
2498
2499 dnl FIXME: do we want to rename to GST_ALL_* ?
2500 dnl prefer internal headers to already installed ones
2501 dnl also add builddir include for enumtypes and marshal
2502 dnl add GST_OPTION_CFLAGS, but overridable
2503 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2504 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2505 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2506 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2507 AC_SUBST(GST_CFLAGS)
2508 AC_SUBST(GST_CXXFLAGS)
2509 AC_SUBST(GST_OBJCFLAGS)
2510 AC_SUBST(GST_LIBS)
2511 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2512 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2513 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2514 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2515 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2516 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2517
2518 dnl LDFLAGS really should only contain flags, not libs - they get added before
2519 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2520 GST_ALL_LDFLAGS="-no-undefined"
2521 if test "x${enable_Bsymbolic}" = "xyes"; then
2522   GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2523 fi
2524 AC_SUBST(GST_ALL_LDFLAGS)
2525
2526 dnl GST_LIB_LDFLAGS
2527 dnl linker flags shared by all libraries
2528 dnl LDFLAGS modifier defining exported symbols from built libraries
2529 dnl (export _gst_foo but not __gst_foo)
2530 GST_LIB_LDFLAGS=""
2531 AC_SUBST(GST_LIB_LDFLAGS)
2532
2533 dnl this really should only contain flags, not libs - they get added before
2534 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2535 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2536 AC_SUBST(GST_PLUGIN_LDFLAGS)
2537
2538 dnl *** output files ***
2539
2540 $MKDIR_P tests/check/orc
2541
2542 dnl po/Makefile.in
2543
2544 AC_CONFIG_FILES(
2545 Makefile
2546 common/Makefile
2547 common/m4/Makefile
2548 gst/Makefile
2549 gst/accurip/Makefile
2550 gst/adpcmdec/Makefile
2551 gst/adpcmenc/Makefile
2552 gst/aiff/Makefile
2553 gst/videoframe_audiolevel/Makefile
2554 gst/asfmux/Makefile
2555 gst/audiobuffersplit/Makefile
2556 gst/audiofxbad/Makefile
2557 gst/audiolatency/Makefile
2558 gst/audiomixmatrix/Makefile
2559 gst/audiovisualizers/Makefile
2560 gst/autoconvert/Makefile
2561 gst/bayer/Makefile
2562 gst/camerabin2/Makefile
2563 gst/coloreffects/Makefile
2564 gst/debugutils/Makefile
2565 gst/dvbsuboverlay/Makefile
2566 gst/dvdspu/Makefile
2567 gst/faceoverlay/Makefile
2568 gst/festival/Makefile
2569 gst/fieldanalysis/Makefile
2570 gst/freeverb/Makefile
2571 gst/frei0r/Makefile
2572 gst/gaudieffects/Makefile
2573 gst/geometrictransform/Makefile
2574 gst/gdp/Makefile
2575 gst/id3tag/Makefile
2576 gst/inter/Makefile
2577 gst/interlace/Makefile
2578 gst/ivfparse/Makefile
2579 gst/ivtc/Makefile
2580 gst/jp2kdecimator/Makefile
2581 gst/jpegformat/Makefile
2582 gst/librfb/Makefile
2583 gst/midi/Makefile
2584 gst/mpegdemux/Makefile
2585 gst/mpegtsdemux/Makefile
2586 gst/mpegtsmux/Makefile
2587 gst/mpegtsmux/tsmux/Makefile
2588 gst/mpegpsmux/Makefile
2589 gst/mxf/Makefile
2590 gst/netsim/Makefile
2591 gst/onvif/Makefile
2592 gst/pcapparse/Makefile
2593 gst/pnm/Makefile
2594 gst/proxy/Makefile
2595 gst/rawparse/Makefile
2596 gst/removesilence/Makefile
2597 gst/sdp/Makefile
2598 gst/segmentclip/Makefile
2599 gst/siren/Makefile
2600 gst/smooth/Makefile
2601 gst/speed/Makefile
2602 gst/subenc/Makefile
2603 gst/timecode/Makefile
2604 gst/videofilters/Makefile
2605 gst/videoparsers/Makefile
2606 gst/videosignal/Makefile
2607 gst/vmnc/Makefile
2608 gst/y4m/Makefile
2609 gst/yadif/Makefile
2610 gst-libs/Makefile
2611 gst-libs/gst/Makefile
2612 gst-libs/gst/adaptivedemux/Makefile
2613 gst-libs/gst/basecamerabinsrc/Makefile
2614 gst-libs/gst/insertbin/Makefile
2615 gst-libs/gst/interfaces/Makefile
2616 gst-libs/gst/isoff/Makefile
2617 gst-libs/gst/codecparsers/Makefile
2618 gst-libs/gst/mpegts/Makefile
2619 gst-libs/gst/sctp/Makefile
2620 gst-libs/gst/uridownloader/Makefile
2621 gst-libs/gst/wayland/Makefile
2622 gst-libs/gst/webrtc/Makefile
2623 gst-libs/gst/player/Makefile
2624 gst-libs/gst/audio/Makefile
2625 gst-libs/gst/opencv/Makefile
2626 sys/Makefile
2627 sys/dshowdecwrapper/Makefile
2628 sys/androidmedia/Makefile
2629 sys/applemedia/Makefile
2630 sys/bluez/Makefile
2631 sys/d3dvideosink/Makefile
2632 sys/decklink/Makefile
2633 sys/directsound/Makefile
2634 sys/dshowsrcwrapper/Makefile
2635 sys/dshowvideosink/Makefile
2636 sys/dvb/Makefile
2637 sys/fbdev/Makefile
2638 sys/ipcpipeline/Makefile
2639 sys/kms/Makefile
2640 sys/msdk/Makefile
2641 sys/nvdec/Makefile
2642 sys/nvenc/Makefile
2643 sys/opensles/Makefile
2644 sys/shm/Makefile
2645 sys/tinyalsa/Makefile
2646 sys/uvch264/Makefile
2647 sys/vdpau/Makefile
2648 sys/wasapi/Makefile
2649 sys/winks/Makefile
2650 sys/winscreencap/Makefile
2651 tests/Makefile
2652 tests/check/Makefile
2653 tests/files/Makefile
2654 tests/examples/Makefile
2655 tests/examples/avsamplesink/Makefile
2656 tests/examples/camerabin2/Makefile
2657 tests/examples/codecparsers/Makefile
2658 tests/examples/directfb/Makefile
2659 tests/examples/audiomixmatrix/Makefile
2660 tests/examples/ipcpipeline/Makefile
2661 tests/examples/mpegts/Makefile
2662 tests/examples/mxf/Makefile
2663 tests/examples/opencv/Makefile
2664 tests/examples/uvch264/Makefile
2665 tests/examples/waylandsink/Makefile
2666 tests/examples/webrtc/Makefile
2667 tests/icles/Makefile
2668 ext/voamrwbenc/Makefile
2669 ext/voaacenc/Makefile
2670 ext/assrender/Makefile
2671 ext/aom/Makefile
2672 ext/bs2b/Makefile
2673 ext/bz2/Makefile
2674 ext/chromaprint/Makefile
2675 ext/closedcaption/Makefile
2676 ext/colormanagement/Makefile
2677 ext/curl/Makefile
2678 ext/dash/Makefile
2679 ext/dc1394/Makefile
2680 ext/directfb/Makefile
2681 ext/wayland/Makefile
2682 ext/dts/Makefile
2683 ext/faac/Makefile
2684 ext/faad/Makefile
2685 ext/fdkaac/Makefile
2686 ext/flite/Makefile
2687 ext/fluidsynth/Makefile
2688 ext/gsm/Makefile
2689 ext/hls/Makefile
2690 ext/iqa/Makefile
2691 ext/kate/Makefile
2692 ext/ladspa/Makefile
2693 ext/lv2/Makefile
2694 ext/libde265/Makefile
2695 ext/libmms/Makefile
2696 ext/Makefile
2697 ext/modplug/Makefile
2698 ext/mpeg2enc/Makefile
2699 ext/mplex/Makefile
2700 ext/musepack/Makefile
2701 ext/neon/Makefile
2702 ext/ofa/Makefile
2703 ext/openal/Makefile
2704 ext/opencv/Makefile
2705 ext/openexr/Makefile
2706 ext/openh264/Makefile
2707 ext/openjpeg/Makefile
2708 ext/openmpt/Makefile
2709 ext/openni2/Makefile
2710 ext/opus/Makefile
2711 ext/rsvg/Makefile
2712 ext/resindvd/Makefile
2713 ext/rtmp/Makefile
2714 ext/sbc/Makefile
2715 ext/sctp/Makefile
2716 ext/smoothstreaming/Makefile
2717 ext/sndfile/Makefile
2718 ext/soundtouch/Makefile
2719 ext/spandsp/Makefile
2720 ext/srt/Makefile
2721 ext/srtp/Makefile
2722 ext/teletextdec/Makefile
2723 ext/gme/Makefile
2724 ext/wildmidi/Makefile
2725 ext/vulkan/Makefile
2726 ext/vulkan/xcb/Makefile
2727 ext/vulkan/wayland/Makefile
2728 ext/webp/Makefile
2729 ext/x265/Makefile
2730 ext/zbar/Makefile
2731 ext/dtls/Makefile
2732 ext/webrtc/Makefile
2733 ext/webrtcdsp/Makefile
2734 ext/wpe/Makefile
2735 ext/ttml/Makefile
2736 po/Makefile.in
2737 docs/Makefile
2738 docs/plugins/Makefile
2739 docs/libs/Makefile
2740 docs/version.entities
2741 pkgconfig/Makefile
2742 pkgconfig/gstreamer-plugins-bad.pc
2743 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2744 pkgconfig/gstreamer-codecparsers.pc
2745 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2746 pkgconfig/gstreamer-insertbin.pc
2747 pkgconfig/gstreamer-insertbin-uninstalled.pc
2748 pkgconfig/gstreamer-mpegts.pc
2749 pkgconfig/gstreamer-mpegts-uninstalled.pc
2750 pkgconfig/gstreamer-player.pc
2751 pkgconfig/gstreamer-player-uninstalled.pc
2752 pkgconfig/gstreamer-sctp.pc
2753 pkgconfig/gstreamer-sctp-uninstalled.pc
2754 pkgconfig/gstreamer-wayland.pc
2755 pkgconfig/gstreamer-wayland-uninstalled.pc
2756 pkgconfig/gstreamer-webrtc.pc
2757 pkgconfig/gstreamer-webrtc-uninstalled.pc
2758 pkgconfig/gstreamer-bad-audio.pc
2759 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2760 tools/Makefile
2761 m4/Makefile
2762 )
2763
2764 AC_OUTPUT
2765
2766 AG_GST_OUTPUT_PLUGINS
2767 ORC_OUTPUT