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