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