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