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