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