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