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