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