gl: add a sync meta for synchronizing across GL contexts
[platform/upstream/gstreamer.git] / configure.ac
1 AC_PREREQ([2.68])
2
3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, cvs and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.5.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
7
8 AG_GST_INIT
9
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar subdir-objects])
12
13 dnl define PACKAGE_VERSION_* variables
14 AS_VERSION
15
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
18
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
21
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
24
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
27
28 dnl sets host_* variables
29 AC_CANONICAL_HOST
30
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33   [AM_DEFAULT_VERBOSITY=1
34    AC_SUBST(AM_DEFAULT_VERBOSITY)])
35
36 dnl our libraries and install dirs use GST_API_VERSION in the filename
37 dnl to allow side-by-side installation of different API versions
38 GST_API_VERSION=1.0
39 AC_SUBST(GST_API_VERSION)
40 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
41   [GStreamer API Version])
42
43 AG_GST_LIBTOOL_PREPARE
44
45 dnl CURRENT, REVISION, AGE
46 dnl - library source changed -> increment REVISION
47 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
48 dnl - interfaces added -> increment AGE
49 dnl - interfaces removed -> AGE = 0
50 dnl sets GST_LT_LDFLAGS
51 AS_LIBTOOL(GST, 501, 0, 501)
52
53 dnl *** required versions of GStreamer stuff ***
54 GST_REQ=1.5.0.1
55 GSTPB_REQ=1.5.0.1
56
57 dnl *** autotools stuff ****
58
59 dnl allow for different autotools
60 AS_AUTOTOOLS_ALTERNATE
61
62 dnl Add parameters for aclocal
63 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
64
65 dnl set up gettext
66 dnl the version check needs to stay here because autopoint greps for it
67 AM_GNU_GETTEXT_VERSION([0.17])
68 AM_GNU_GETTEXT([external])
69 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
70
71 dnl *** check for arguments to configure ***
72
73 AG_GST_ARG_DISABLE_FATAL_WARNINGS
74
75 AG_GST_ARG_DEBUG
76 AG_GST_ARG_PROFILING
77 AG_GST_ARG_VALGRIND
78 AG_GST_ARG_GCOV
79
80 AG_GST_ARG_EXAMPLES
81
82 AG_GST_ARG_WITH_PKG_CONFIG_PATH
83 AG_GST_ARG_WITH_PACKAGE_NAME
84 AG_GST_ARG_WITH_PACKAGE_ORIGIN
85
86 AG_GST_ARG_WITH_PLUGINS
87
88 AG_GST_ARG_ENABLE_EXTERNAL
89
90 AG_GST_ARG_ENABLE_EXPERIMENTAL
91
92 AG_GST_PKG_CONFIG_PATH
93
94 dnl *** checks for platform ***
95 AG_GST_PLATFORM
96
97 dnl * hardware/architecture *
98
99 dnl common/m4/gst-arch.m4
100 dnl check CPU type
101 AG_GST_ARCH
102
103 dnl Determine endianness
104 AC_C_BIGENDIAN
105
106 dnl *** checks for programs ***
107
108 dnl find a compiler
109 AC_PROG_CC
110 AC_PROG_CC_STDC
111
112 dnl determine c++ compiler
113 AC_PROG_CXX
114 dnl determine if c++ is available on this system
115 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
116
117 AC_PROG_OBJC
118
119 dnl check if the compiler supports '-c' and '-o' options
120 AM_PROG_CC_C_O
121
122 dnl check if the compiler supports do while(0) macros
123 AG_GST_CHECK_DOWHILE_MACROS
124
125 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
126 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
127
128 dnl check for gobject-introspection
129 GOBJECT_INTROSPECTION_CHECK([1.31.1])
130
131 dnl check for documentation tools
132 GTK_DOC_CHECK([1.12])
133 AG_GST_PLUGIN_DOCS([1.12])
134
135 dnl *** checks for libraries ***
136
137 dnl check for libm, for sin() etc.
138 LT_LIB_M
139 AC_SUBST(LIBM)
140
141 AC_FUNC_MMAP
142
143 dnl check for pthreads
144 AX_PTHREAD
145
146 dnl *** checks for header files ***
147
148 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
149 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
150
151 if test "x$HAVE_UNISTD_H" != "xyes"; then
152   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
153 fi
154
155 AC_CHECK_HEADERS([sys/time.h])
156
157 dnl used by ext/dts
158 AX_CREATE_STDINT_H
159
160 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
161 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
162
163 if test "x$HAVE_PTHREAD_H" != "xyes"; then
164   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
165 fi
166
167 dnl *** checks for types/defines ***
168
169 dnl Check for FIONREAD ioctl declaration
170 dnl used in gst/dccp
171 GST_CHECK_FIONREAD
172
173 dnl *** checks for structures ***
174
175 dnl *** checks for compiler characteristics ***
176
177 dnl *** checks for library functions ***
178 AC_CHECK_FUNCS([gmtime_r])
179
180 dnl *** checks for headers ***
181 AC_CHECK_HEADERS([sys/utsname.h])
182
183 dnl *** checks for dependency libraries ***
184
185 dnl *** checks for socket and nsl libraries ***
186 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
187 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
188
189 dnl GLib is required
190 GLIB_REQ=2.32.0
191 AG_GST_GLIB_CHECK([$GLIB_REQ])
192
193 dnl checks for gstreamer
194 dnl uninstalled is selected preferentially -- see pkg-config(1)
195 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
196 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
197 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
198 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
199 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
200
201 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
202
203 dnl check for uninstalled plugin directories for unit tests
204 AG_GST_CHECK_UNINSTALLED_SETUP([
205   AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
206   AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
207   AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
208 ])
209
210 dnl Check for documentation xrefs
211 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
212 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
213 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
214 AC_SUBST(GLIB_PREFIX)
215 AC_SUBST(GST_PREFIX)
216 AC_SUBST(GSTPB_PREFIX)
217
218 dnl GTK is optional and used in examples
219 HAVE_GTK=NO
220 GTK2_REQ=2.14.0
221 GTK3_REQ=2.91.3
222 if test "x$BUILD_EXAMPLES" = "xyes"; then
223   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
224   AC_ARG_WITH([gtk],
225     AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
226     [case "$with_gtk" in
227         2.0) GTK_REQ=$GTK2_REQ ;;
228         3.0) GTK_REQ=$GTK3_REQ ;;
229         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
230     esac],
231     [with_gtk=2.0
232      GTK_REQ=$GTK2_REQ])
233   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
234   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
235   AC_SUBST(GTK_LIBS)
236   AC_SUBST(GTK_CFLAGS)
237 fi
238 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
239
240
241 dnl GTK is optional and used in examples
242 HAVE_GTK3=NO
243 if test "x$BUILD_EXAMPLES" = "xyes"; then
244   PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
245   if test "x$HAVE_GTK3" = "xyes"; then
246     HAVE_GTK=yes
247     GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
248     AC_SUBST(GTK_VERSION)
249     GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
250     AC_SUBST(GTK_BASE_DIR)
251   fi
252 fi
253 AC_SUBST(GTK3_LIBS)
254 AC_SUBST(GTK3_CFLAGS)
255 AC_SUBST(HAVE_GTK3)
256 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
257
258 dnl clutter is optional and used in examples
259 HAVE_CLUTTER=no
260 HAVE_CLUTTER_X11=no
261 HAVE_CLUTTER_GLX=no
262 if test "x$BUILD_EXAMPLES" = "xyes"; then
263   PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
264   AC_SUBST(CLUTTER_LIBS)
265   AC_SUBST(CLUTTER_CFLAGS)
266   AC_SUBST(HAVE_CLUTTER)
267
268   PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
269   AC_SUBST(CLUTTER_GLX_LIBS)
270   AC_SUBST(CLUTTER_GLX_CFLAGS)
271   AC_SUBST(HAVE_CLUTTER_GLX)
272
273   PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
274   AC_SUBST(CLUTTER_X11_LIBS)
275   AC_SUBST(CLUTTER_X11_CFLAGS)
276   AC_SUBST(HAVE_CLUTTER_X11)
277 fi
278 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
279 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
280 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
281
282 dnl used in the gl/clutteractor example
283 if test "x$BUILD_EXAMPLES" = "xyes"; then
284   PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
285   AC_SUBST(XCOMPOSITE_CFLAGS)
286   AC_SUBST(XCOMPOSITE_LIBS)
287 fi
288 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
289
290 dnl graphene-1.0 is optional and used in gltransformation
291 HAVE_GRAPHENE=NO
292 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
293 if test "x$HAVE_GRAPHENE" = "xyes"; then
294   AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
295 fi
296 AC_SUBST(HAVE_GRAPHENE)
297 AC_SUBST(GRAPHENE_LIBS)
298 AC_SUBST(GRAPHENE_CFLAGS)
299 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
300
301
302 dnl sdl is optional and used in examples
303 HAVE_SDL=NO
304 if test "x$BUILD_EXAMPLES" = "xyes"; then
305   PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
306   AC_SUBST(SDL_LIBS)
307   AC_SUBST(SDL_CFLAGS)
308   AC_SUBST(SDL_CLUTTER)
309 fi
310 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
311
312
313 dnl Needed for GtkBuilder to autoconnect signals
314 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
315
316 dnl Needed by plugins that use g_module_*() API
317 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
318
319 dnl x11 is optional for librfb
320 HAVE_X11=NO
321 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
322 AC_SUBST(X11_LIBS)
323 AC_SUBST(X11_CFLAGS)
324 AC_SUBST(HAVE_X11)
325 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
326 if test "x$HAVE_X11" = "xyes"; then
327   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
328 fi
329
330 dnl exif (used on jifmux tests) ****
331 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
332 AC_SUBST(EXIF_LIBS)
333 AC_SUBST(EXIF_CFLAGS)
334 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
335
336 dnl Orc
337 ORC_CHECK([0.4.17])
338
339 dnl set license and copyright notice
340 GST_LICENSE="LGPL"
341 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
342 AC_SUBST(GST_LICENSE)
343
344 dnl define LIBDIR so we can inform people where we live
345 AS_AC_EXPAND(LIBDIR, $libdir)
346 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
347
348 dnl set location of plugin directory
349 AG_GST_SET_PLUGINDIR
350
351 dnl set release date/time
352 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
353   ["${srcdir}/gst-plugins-bad.doap"],
354   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
355
356 dnl build static plugins or not
357 AC_MSG_CHECKING([whether to build static plugins or not])
358 AC_ARG_ENABLE(
359   static-plugins,
360   AC_HELP_STRING(
361     [--enable-static-plugins],
362     [build static plugins @<:@default=no@:>@]),
363   [AS_CASE(
364     [$enableval], [no], [], [yes], [],
365     [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
366   [enable_static_plugins=no])
367 AC_MSG_RESULT([$enable_static_plugins])
368 if test "x$enable_static_plugins" = xyes; then
369   AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
370     [Define if static plugins should be built])
371   GST_PLUGIN_LIBTOOLFLAGS=""
372 else
373   GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
374 fi
375 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
376 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
377
378 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
379 dnl make sure it doesn't complain about unused variables if debugging is disabled
380 NO_WARNINGS=""
381 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
382
383 dnl define an ERROR_CFLAGS Makefile variable
384 dnl -Waggregate-return - libexif returns aggregates
385 dnl -Wundef - Windows headers check _MSC_VER unconditionally
386 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
387     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
388     -Wwrite-strings -Wformat-security -Wold-style-definition
389     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
390     -Wnested-externs $NO_WARNINGS])
391
392 dnl define an ERROR_CXXFLAGS Makefile variable
393 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
394     -Wmissing-declarations -Wredundant-decls
395     -Wwrite-strings -Wformat-nonliteral -Wformat-security
396     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
397
398 dnl define an ERROR_OBJCFLAGS Makefile variable
399 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
400     -Wmissing-declarations -Wredundant-decls
401     -Wwrite-strings -Wformat-nonliteral -Wformat-security
402     -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
403
404 dnl define correct level for debugging messages
405 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
406
407 dnl used in examples
408 AG_GST_DEFAULT_ELEMENTS
409
410 dnl *** plug-ins to include ***
411 dnl Non ported plugins (non-dependant, then dependant)
412 dnl Make sure you have a space before and after all plugins
413 GST_PLUGINS_NONPORTED=" cdxaparse \
414  dccp faceoverlay \
415  hdvparse \
416  mve mythtv nuvdemux \
417  patchdetect real \
418  sdi tta \
419  videomeasure \
420  linsys 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 GST_GL_HAVE_GLSYNC=0
1297
1298 old_CFLAGS=$CFLAGS
1299 CFLAGS="$GL_CFLAGS $CFLAGS"
1300
1301 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1302 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1303   GST_GL_HAVE_GLEGLIMAGEOES=1
1304 fi
1305
1306 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1307 if test "x$ac_cv_type_GLchar" = "xyes"; then
1308   GST_GL_HAVE_GLCHAR=1
1309 fi
1310
1311 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1312 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1313   GST_GL_HAVE_GLSIZEIPTR=1
1314 fi
1315
1316 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1317 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1318   GST_GL_HAVE_GLINTPTR=1
1319 fi
1320
1321 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1322 if test "x$ac_cv_type_GLsync" = "xyes"; then
1323   GST_GL_HAVE_GLSYNC=1
1324 fi
1325
1326 CFLAGS=$old_CFLAGS
1327
1328 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1329 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1330 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1331 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1332 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1333 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1334 "
1335
1336 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1337         outfile=gstglconfig.h-tmp
1338         cat > $outfile <<\_______EOF
1339 /* gstglconfig.h
1340  *
1341  * This is a generated file.  Please modify `configure.ac'
1342  */
1343
1344 #ifndef __GST_GL_CONFIG_H__
1345 #define __GST_GL_CONFIG_H__
1346
1347 #include <gst/gst.h>
1348
1349 G_BEGIN_DECLS
1350
1351 _______EOF
1352
1353         cat >>$outfile <<_______EOF
1354 $gl_config_defines
1355 _______EOF
1356
1357         cat >>$outfile <<_______EOF
1358
1359 G_END_DECLS
1360
1361 #endif  /* __GST_GL_CONFIG_H__ */
1362 _______EOF
1363
1364
1365         if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1366           AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1367           rm -f $outfile
1368         else
1369           mv $outfile gst-libs/gst/gl/gstglconfig.h
1370         fi
1371 ],[
1372 gl_config_defines='$GL_CONFIG_DEFINES'
1373 ])
1374
1375 dnl libpng is optional
1376 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1377 if test "x$HAVE_PNG" = "xyes"; then
1378   AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1379 fi
1380 AC_SUBST(HAVE_PNG)
1381 AC_SUBST(LIBPNG_LIBS)
1382 AC_SUBST(LIBPNG_CFLAGS)
1383 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1384
1385 dnl libjpeg is optional
1386 AC_ARG_WITH(jpeg-mmx, [  --with-jpeg-mmx, path to MMX'ified JPEG library])
1387 OLD_LIBS="$LIBS"
1388 if test x$with_jpeg_mmx != x; then
1389   LIBS="$LIBS -L$with_jpeg_mmx"
1390 fi
1391 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1392 JPEG_LIBS="$LIBS -ljpeg-mmx"
1393 LIBS="$OLD_LIBS"
1394 if test x$HAVE_JPEG != xyes; then
1395   JPEG_LIBS="-ljpeg"
1396   AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1397 fi
1398
1399 if test x$HAVE_JPEG = xyes; then
1400   AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1401 else
1402   AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1403   JPEG_LIBS=
1404 fi
1405 AC_SUBST(JPEG_LIBS)
1406 AC_SUBST(HAVE_JPEG)
1407 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1408
1409
1410 dnl *** sys plug-ins ***
1411
1412 dnl DirectSound
1413 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1414 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1415   HAVE_DIRECTSOUND="no"
1416   save_CFLAGS="$CFLAGS"
1417   save_LDFLAGS="$LDFLAGS"
1418   save_LIBS="$LIBS"
1419   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1420   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1421   LIBS="$LIBS -ldsound -ldxerr9 -luser32"
1422   AC_MSG_CHECKING(for DirectSound LDFLAGS)
1423   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1424 #include <windows.h>
1425 #include <dxerr9.h>
1426 #include <dsound.h>
1427 ]], [[
1428   DXGetErrorString9 (0);
1429   DirectSoundCreate(NULL, NULL, NULL);
1430 ]])],
1431     [HAVE_DIRECTSOUND="yes"],
1432     [HAVE_DIRECTSOUND="no"])
1433   AC_MSG_RESULT($HAVE_DIRECTSOUND)
1434   CFLAGS=$save_CFLAGS
1435   LDFLAGS=$save_LDFLAGS
1436   LIBS=$save_LIBS
1437
1438   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
1439     dnl this is much more than we want
1440     DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32"
1441     AC_SUBST(DIRECTX_CFLAGS)
1442     AC_SUBST(DIRECTX_LDFLAGS)
1443     AC_SUBST(DIRECTSOUND_LIBS)
1444   fi
1445   AC_SUBST(HAVE_DIRECTSOUND)
1446 ])
1447
1448 dnl WASAPI
1449 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1450 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1451   HAVE_WASAPI="no"
1452   save_CFLAGS="$CFLAGS"
1453   save_LDFLAGS="$LDFLAGS"
1454   save_LIBS="$LIBS"
1455   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1456   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1457   LIBS="$LIBS -lole32 -lwinmm -lksuser"
1458   AC_MSG_CHECKING(for WASAPI LDFLAGS)
1459   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1460 #include <windows.h>
1461 #include <stdio.h>
1462 #include <mmsystem.h>
1463 #include <mmdeviceapi.h>
1464 ]], [[
1465 int main ()
1466 {
1467     HRESULT hr = S_OK;
1468
1469     hr = CoInitialize(NULL);
1470     if (FAILED(hr)) {
1471         printf("CoInitialize failed: hr = 0x%08x", hr);
1472         return __LINE__;
1473     }
1474
1475         int result = 0;
1476     // result = do_everything(argc, argv);
1477
1478     CoUninitialize();
1479     return result;
1480 }
1481 ]])],
1482     [HAVE_WASAPI="yes"],
1483     [HAVE_WASAPI="no"])
1484   AC_MSG_RESULT($HAVE_WASAPI)
1485   CFLAGS=$save_CFLAGS
1486   LDFLAGS=$save_LDFLAGS
1487   LIBS=$save_LIBS
1488
1489   if test "x$HAVE_WASAPI" = "xyes";  then
1490     WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1491     AC_SUBST(WASAPI_LIBS)
1492   fi
1493   AC_SUBST(HAVE_WASAPI)
1494 ])
1495
1496 dnl Direct3D
1497 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1498 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1499   HAVE_DIRECT3D="no"
1500   save_CFLAGS="$CFLAGS"
1501   save_LDFLAGS="$LDFLAGS"
1502   save_LIBS="$LIBS"
1503   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1504   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1505   LIBS="$LIBS -ld3d9 -lgdi32"
1506   AC_MSG_CHECKING(for Direct3D LDFLAGS)
1507   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1508 #include <windows.h>
1509 #include <d3d9.h>
1510 ]], [[
1511   Direct3DCreate9(D3D_SDK_VERSION);
1512 ]])],
1513     [HAVE_DIRECT3D="yes"],
1514     [HAVE_DIRECT3D="no"])
1515   AC_MSG_RESULT($HAVE_DIRECT3D)
1516   CFLAGS=$save_CFLAGS
1517   LDFLAGS=$save_LDFLAGS
1518   LIBS=$save_LIBS
1519
1520   if test "x$HAVE_DIRECT3D" = "xyes";  then
1521     DIRECT3D_LIBS="-ld3d9 -lgdi32"
1522     AC_SUBST(DIRECT3D_LIBS)
1523   fi
1524   AC_SUBST(HAVE_DIRECT3D)
1525 ])
1526
1527 dnl DirectDraw
1528 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true)
1529 AG_GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [
1530   HAVE_DIRECTDRAW="no"
1531   save_CFLAGS="$CFLAGS"
1532   save_LDFLAGS="$LDFLAGS"
1533   save_LIBS="$LIBS"
1534   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1535   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1536   LIBS="$LIBS -lddraw -lgdi32"
1537   AC_MSG_CHECKING(for DirectDraw LDFLAGS)
1538   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1539 #include <windows.h>
1540 #include <ddraw.h>
1541 ]], [[
1542   GetStockObject(0);
1543   DirectDrawCreate(NULL, NULL, NULL);
1544 ]])],
1545     [HAVE_DIRECTDRAW="yes"],
1546     [HAVE_DIRECTDRAW="no"])
1547   AC_MSG_RESULT($HAVE_DIRECTDRAW)
1548   CFLAGS=$save_CFLAGS
1549   LDFLAGS=$save_LDFLAGS
1550   LIBS=$save_LIBS
1551
1552   if test "x$HAVE_DIRECTDRAW" = "xyes";  then
1553     dnl this is much more than we want
1554     DIRECTDRAW_LIBS="-lddraw -ldxguid -lgdi32"
1555     AC_SUBST(DIRECTX_CFLAGS)
1556     AC_SUBST(DIRECTX_LDFLAGS)
1557     AC_SUBST(DIRECTDRAW_LIBS)
1558   fi
1559   AC_SUBST(HAVE_DIRECTDRAW)
1560 ])
1561
1562 dnl winscreencap
1563 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1564 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1565   HAVE_WINSCREENCAP="no"
1566   save_CFLAGS="$CFLAGS"
1567   save_LDFLAGS="$LDFLAGS"
1568   save_LIBS="$LIBS"
1569   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1570   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1571   LIBS="$LIBS -ld3d9 -lgdi32"
1572   AC_MSG_CHECKING(for Direct3D LDFLAGS)
1573   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1574 #include <windows.h>
1575 #include <d3d9.h>
1576 ]], [[
1577   Direct3DCreate9(D3D_SDK_VERSION);
1578 ]])],
1579     [HAVE_WINSCREENCAP="yes"],
1580     [HAVE_WINSCREENCAP="no"])
1581   AC_MSG_RESULT($HAVE_WINSCREENCAP)
1582   CFLAGS=$save_CFLAGS
1583   LDFLAGS=$save_LDFLAGS
1584   LIBS=$save_LIBS
1585
1586   if test "x$HAVE_WINSCREENCAP" = "xyes";  then
1587     WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1588     AC_SUBST(WINSCREENCAP_LIBS)
1589   fi
1590   AC_SUBST(HAVE_WINSCREENCAP)
1591 ])
1592
1593 dnl winks
1594 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1595 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1596   HAVE_WINKS="no"
1597   save_CFLAGS="$CFLAGS"
1598   save_LDFLAGS="$LDFLAGS"
1599   save_LIBS="$LIBS"
1600   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1601   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1602   LIBS="$LIBS -lole32 -luuid -lstrmiids"
1603   AC_MSG_CHECKING(for Winks LDFLAGS)
1604   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1605 #include <windows.h>
1606 #include <strmif.h>
1607 #include <uuids.h>
1608 ]], [[
1609 int main () {
1610   IGraphBuilder *pGraph = NULL;
1611   HRESULT hr = CoInitialize(NULL);
1612   hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1613                         &IID_IGraphBuilder, (void **)&pGraph);
1614
1615   return 0;
1616 }
1617 ]])],
1618     [HAVE_WINKS="yes"],
1619     [HAVE_WINKS="no"])
1620   AC_MSG_RESULT($HAVE_WINKS)
1621   CFLAGS=$save_CFLAGS
1622   LDFLAGS=$save_LDFLAGS
1623   LIBS=$save_LIBS
1624
1625   if test "x$HAVE_WINKS" = "xyes";  then
1626     dnl this is much more than we want
1627     WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1628     AC_SUBST(DIRECTX_CFLAGS)
1629     AC_SUBST(DIRECTX_LDFLAGS)
1630     AC_SUBST(WINKS_LIBS)
1631   fi
1632   AC_SUBST(HAVE_WINKS)
1633 ])
1634
1635 dnl *** Android Media ***
1636 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1637 HAVE_ANDROID_MEDIA="no"
1638 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1639   case "$host" in
1640     *android*)
1641       AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1642       ;;
1643     *)
1644       HAVE_ANDROID_MEDIA="no"
1645       ;;
1646   esac
1647 ])
1648
1649 dnl *** AppleMedia (OS X and iOS) ***
1650 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1651 HAVE_APPLE_MEDIA="no"
1652 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1653 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1654   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1655   dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1656   if test "x$HAVE_IOS" = "xno"; then
1657     AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1658   fi
1659 ])
1660
1661 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1662 case "$host" in
1663   *-*darwin*)
1664     ;;
1665   *)
1666     HAVE_APPLE_MEDIA="no"
1667     ;;
1668 esac
1669
1670 dnl *** bluez ***
1671 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1672 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1673   PKG_CHECK_MODULES([BLUEZ], [bluez < 5.0], [
1674     dnl FIXME: we should be able to replace this with the GLib DBus stuff
1675     PKG_CHECK_MODULES([DBUS], [dbus-1], [HAVE_BLUEZ=yes], [HAVE_BLUEZ=no])
1676   ], [
1677     HAVE_BLUEZ=no
1678   ])
1679 ])
1680
1681 dnl *** OS X videosrc ***
1682 translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_VIDEO, true)
1683 HAVE_OSX_VIDEO="no"
1684 AG_GST_CHECK_FEATURE(OSX_VIDEO, [OSX video], osxvideosrc, [
1685   AC_CHECK_TYPE([SeqGrabComponent], HAVE_OSX_VIDEO="yes", HAVE_OSX_VIDEO="no",
1686       [#include <Quicktime/Quicktime.h>])
1687 ])
1688 dnl in case header Quicktime/Quicktime.h is found on other platforms
1689 case "$host" in
1690   *-*darwin*)
1691     ;;
1692   *)
1693     HAVE_OSX_VIDEO="no"
1694     ;;
1695 esac
1696
1697 dnl *** OS/X AVCVideoServices ***
1698 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1699 HAVE_AVC="no"
1700 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1701   AC_LANG_PUSH([C++])
1702   save_CPPFLAGS="$CPPFLAGS"
1703   CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1704   save_LIBS="$LIBS"
1705   LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1706   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1707   LIBS=$save_LIBS
1708   CPPFLAGS=$save_CPPFLAGS
1709   AC_LANG_POP([C++])
1710 ])
1711 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1712 case "$host" in
1713   *-*darwin*)
1714     ;;
1715   *)
1716     HAVE_AVC="no"
1717     ;;
1718 esac
1719
1720 dnl check for shm_open (for shm plugin)
1721 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1722 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1723     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1724         case $host in
1725         *-darwin* | *-macos10*)
1726             AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1727             HAVE_SHM=yes
1728             ;;
1729         *)
1730             AC_CHECK_LIB([rt], [shm_open],
1731                 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1732                 #include <sys/socket.h>
1733                     ]),
1734                 HAVE_SHM=no)
1735             AC_SUBST(SHM_LIBS, "-lrt")
1736             ;;
1737         esac
1738     else
1739         HAVE_SHM=no
1740     fi
1741 ])
1742
1743 dnl check for Video CD
1744 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1745 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1746   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1747 ])
1748
1749 dnl check for OpenSL ES
1750 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1751 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1752   AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1753 ])
1754
1755 dnl *** UVC H264 ***
1756 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1757 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1758   AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1759   AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1760   PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1761           AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1762           HAVE_GUDEV="yes" ],
1763           [HAVE_GUDEV="no"])
1764   PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1765           AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1766           HAVE_LIBUSB="yes" ],
1767           [HAVE_LIBUSB="no"])
1768   if test "x$HAVE_UVCVIDEO_H" == "xyes" && \
1769      test "x$HAVE_GUDEV" == "xyes" && \
1770      test "x$HAVE_LIBUSB" == "xyes"; then
1771     HAVE_UVCH264=yes
1772   else
1773     HAVE_UVCH264=no
1774   fi
1775 ])
1776 AC_SUBST(LIBUDEV_CFLAGS)
1777 AC_SUBST(LIBUDEV_LIBS)
1778 AC_SUBST(LIBUSB_CFLAGS)
1779 AC_SUBST(LIBUSB_LIBS)
1780
1781
1782 dnl *** ext plug-ins ***
1783 dnl keep this list sorted alphabetically !
1784
1785 if test "x$BUILD_EXTERNAL" = "xyes"; then
1786
1787 dnl *** assrender ***
1788 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1789 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1790   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.9.4, [
1791     HAVE_ASSRENDER="yes" ], [
1792     HAVE_ASSRENDER="no"
1793   ])
1794 ])
1795 AC_SUBST(ASSRENDER_CFLAGS)
1796 AC_SUBST(ASSRENDER_LIBS)
1797
1798 dnl *** vo-amrwbenc ***
1799 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1800 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1801   AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1802 ])
1803
1804 dnl *** vo-aacenc ***
1805 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1806 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1807   AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1808 ])
1809
1810 dnl *** apexsink ***
1811 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
1812 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
1813   PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5  libcrypto ], [
1814     HAVE_APEXSINK="yes"
1815     saved_LIBS="$LIBS"
1816     LIBS=""
1817     AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
1818     AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
1819     APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
1820     LIBS="$saved_LIBS"
1821     AC_SUBST(APEXSINK_CFLAGS)
1822     AC_SUBST(APEXSINK_LIBS)
1823   ], [
1824     APEXSINK="no"
1825   ])
1826 ])
1827
1828 dnl *** BZ2 ***
1829 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1830 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1831   save_LIBS=$LIBS
1832   LIBS="$LIBS -lbz2"
1833   AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1834   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1835   AC_MSG_RESULT($HAVE_BZ2)
1836   LIBS=$save_LIBS
1837   if test "x$HAVE_BZ2" = "xyes"; then
1838     BZ2_LIBS="-lbz2"
1839   fi
1840   AC_SUBST(BZ2_LIBS)
1841
1842 ])
1843
1844 #dnl *** cairo ***
1845 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1846 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1847 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1848 #    HAVE_CAIRO=no
1849 #  ])
1850 #  AC_SUBST(CAIRO_CFLAGS)
1851 #  AC_SUBST(CAIRO_LIBS)
1852 #])
1853
1854 dnl *** chromaprint ***
1855 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1856 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1857   PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1858     HAVE_CHROMAPRINT="no"
1859   ])
1860   AC_SUBST(CHROMAPRINT_CFLAGS)
1861   AC_SUBST(CHROMAPRINT_LIBS)
1862 ])
1863
1864 dnl *** Curl ***
1865 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1866 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1867   PKG_CHECK_MODULES(CURL, libcurl >= 7.21.0, [
1868     HAVE_CURL="yes"
1869     AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/ip.h netinet/tcp.h fcntl.h], [ ], [
1870       AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1871     ])
1872     AC_MSG_CHECKING([for socket support needed by curlsink])
1873     AC_MSG_RESULT($HAVE_CURL)
1874   ], [
1875     HAVE_CURL="no"
1876   ])
1877   AC_SUBST(CURL_CFLAGS)
1878   AC_SUBST(CURL_LIBS)
1879   PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1880     HAVE_SSH2="yes"
1881     AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1882   ], [
1883     HAVE_SSH2="no"
1884   ])
1885   AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1886   AC_SUBST(SSH2_CFLAGS)
1887   AC_SUBST(SSH2_LIBS)
1888 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1889
1890 dnl **** DASH ****
1891 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1892 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1893   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4, [HAVE_LIBXML2="yes"
1894     HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1895     HAVE_DASH="no"])
1896   AC_SUBST(LIBXML2_CFLAGS)
1897   AC_SUBST(LIBXML2_LIBS)
1898 ])
1899
1900 dnl *** dc1394  ***
1901 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1902 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1903    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1904         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1905                 HAVE_DC1394="yes"
1906         else
1907                 HAVE_DC1394="no"
1908         fi
1909    ], [
1910         HAVE_DC1394="no"
1911         AC_MSG_RESULT(no)
1912    ])
1913    AC_SUBST(LIBDC1394_CFLAGS)
1914    AC_SUBST(LIBDC1394_LIBS)
1915 ])
1916
1917 dnl *** decklink  ***
1918 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1919 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1920    HAVE_DECKLINK=no
1921    case "$host" in
1922      *-*linux*)
1923        if test "x$HAVE_PTHREAD_H" = "xyes"; then
1924          AC_CHECK_LIB(dl, dlopen,
1925            [
1926             HAVE_DECKLINK=yes
1927             DECKLINK_CXXFLAGS=
1928             DECKLINK_LIBS="-lpthread -ldl"
1929            ])
1930        fi
1931        ;;
1932      *-*darwin*)
1933        if test "x$HAVE_PTHREAD_H" = "xyes"; then
1934          AC_CHECK_LIB(dl, dlopen,
1935            [
1936             HAVE_DECKLINK=yes
1937             DECKLINK_CXXFLAGS=
1938             DECKLINK_LIBS="-lpthread -ldl"
1939             HAVE_DECKLINK_OSX=yes
1940            ])
1941        fi
1942        ;;
1943      *)
1944        HAVE_DECKLINK=no
1945        ;;
1946    esac
1947
1948    AC_SUBST(DECKLINK_CXXFLAGS)
1949    AC_SUBST(DECKLINK_LIBS)
1950 ])
1951 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1952
1953 dnl **** DirectFB ****
1954 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1955 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1956   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1957     HAVE_DIRECTFB="no"
1958   ])
1959 ])
1960
1961 dnl **** Wayland ****
1962 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1963 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1964   PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 wayland-scanner, [
1965     HAVE_WAYLAND="yes" ], [ HAVE_WAYLAND="no"
1966   ])
1967 ])
1968
1969 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1970
1971 dnl **** WebP ****
1972 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1973 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1974   PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1975     HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1976   ])
1977   AC_SUBST(WEBP_CFLAGS)
1978   AC_SUBST(WEBP_LIBS)
1979 ])
1980
1981 dnl *** Daala ***
1982 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
1983 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
1984   if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
1985     PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
1986             HAVE_DAALA="yes"
1987     ], [
1988             HAVE_DAALA="no"
1989     ])
1990     AC_SUBST(DAALA_CFLAGS)
1991     AC_SUBST(DAALA_LIBS)
1992   fi
1993 ])
1994
1995 dnl *** DTS ***
1996 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1997 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1998   HAVE_DTS="yes"
1999   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2000     DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2001   if test $HAVE_DTS = "no"; then
2002     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2003       [ DTS_LIBS="-ldts_pic $LIBM"
2004         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2005       ])
2006   fi
2007   AC_SUBST(DTS_LIBS)
2008 ])
2009
2010 dnl *** resindvd ***
2011 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2012 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2013   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2014     HAVE_RESINDVD="no"
2015   ])
2016 ])
2017
2018 dnl **** Free AAC Encoder (FAAC) ****
2019 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2020 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2021   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2022     FAAC_LIBS="-lfaac $LIBM")
2023   AC_SUBST(FAAC_LIBS)
2024 ])
2025
2026 dnl **** Free AAC Decoder (FAAD) ****
2027 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2028 AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
2029   HAVE_FAAD="yes"
2030   faad_hdr=""
2031   AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, $LIBM, faad.h,
2032     FAAD_LIBS="-lfaad $LIBM", HAVE_FAAD="no")
2033   if test $HAVE_FAAD = "no"; then
2034     AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h,
2035       [ FAAD_LIBS="-lfaad $LIBM"
2036         AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
2037         faad_hdr="neaacdec.h"
2038       ], [
2039         HAVE_FAAD="no"
2040       ],)
2041   else
2042     faad_hdr="faad.h"
2043   fi
2044   if test $HAVE_FAAD = "yes"; then
2045     AC_MSG_CHECKING([Checking for FAAD >= 2.0])
2046     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2047         #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2048         #error Not faad2
2049         #else
2050         /* Release candidate of 2.0 is not good enough for us. This field
2051          * was added only in 2.0 final and does not exist in 2.0-RC3 */
2052         faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
2053         #endif
2054     ]])],[
2055       HAVE_FAAD="yes"
2056
2057       AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr])
2058       for minor in 10 9 8 7 6 5 0; do
2059         if test x$faad2_minor_version = "x"; then
2060           AC_EGREP_CPP([GST_CHECK_FAAD_VERSION \"2\.$minor\"], [
2061               #include <$faad_hdr>
2062               GST_CHECK_FAAD_VERSION FAAD2_VERSION
2063             ], [
2064               faad2_minor_version=$minor
2065             ])
2066         fi
2067       done
2068       if test x$faad2_minor_version = "x"; then
2069         AC_MSG_RESULT([no idea])
2070       else
2071         AC_MSG_RESULT([2.$faad2_minor_version])
2072         AC_DEFINE_UNQUOTED([FAAD2_MINOR_VERSION], [$faad2_minor_version], [The x in 2.x])
2073       fi
2074     ],[
2075       HAVE_FAAD="no"
2076     ])
2077   fi
2078   AC_SUBST(FAAD_LIBS)
2079   AC_SUBST(FAAD_IS_NEAAC)
2080 ])
2081
2082 dnl *** fbdev ***
2083 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2084 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2085   if test "x$HAVE_FBDEV" != "xyes"; then
2086     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2087   fi
2088 ])
2089
2090 dnl *** flite ***
2091 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2092 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2093   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2094     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2095
2096   AC_SUBST(FLITE_CFLAGS)
2097   AC_SUBST(FLITE_LIBS)
2098 ])
2099
2100 dnl *** gsm ***
2101 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2102 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2103   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2104   if test $HAVE_GSM != "yes"; then
2105     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2106     if test $HAVE_GSM = "yes"; then
2107       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2108     fi
2109   fi
2110   AC_SUBST(GSM_LIBS)
2111 ])
2112
2113 dnl *** fluidSynth ***
2114 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2115 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2116   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2117     HAVE_FLUIDSYNTH="no"
2118   ])
2119 ])
2120
2121 dnl *** kate ***
2122 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2123 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2124   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2125     HAVE_KATE="no"
2126   ])
2127   AC_SUBST(KATE_CFLAGS)
2128   AC_SUBST(KATE_LIBS)
2129   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2130     [
2131       HAVE_TIGER="yes"
2132       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2133     ],
2134     [
2135       HAVE_TIGER="no"
2136     ]
2137   )
2138   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2139   AC_SUBST(TIGER_CFLAGS)
2140   AC_SUBST(TIGER_LIBS)
2141 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2142
2143 dnl *** ladspa ***
2144 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2145 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2146   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2147
2148   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2149   if test $HAVE_LRDF = "yes"; then
2150     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2151   fi
2152   AC_SUBST(LRDF_LIBS)
2153   AC_SUBST(LRDF_CFLAGS)
2154 ])
2155
2156 dnl *** LV2 ***
2157 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2158 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2159   PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2160   AC_SUBST(SLV2_CFLAGS)
2161   AC_SUBST(SLV2_LIBS)
2162 ])
2163
2164 dnl *** libde265 ***
2165 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2166 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2167   PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2168   AC_SUBST(LIBDE265_CFLAGS)
2169   AC_SUBST(LIBDE265_LIBS)
2170 ])
2171
2172 dnl *** libmms ***
2173 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2174 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2175   dnl check with pkg-config first
2176   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2177     HAVE_LIBMMS="no"
2178   ])
2179 ])
2180 AC_SUBST(LIBMMS_LIBS)
2181
2182
2183 dnl *** libsrtp ***
2184 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2185 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2186   PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes", 
2187     AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2188   )
2189   AC_SUBST(SRTP_LIBS)
2190   AC_SUBST(SRTP_CFLAGS)
2191 ])
2192
2193 dnl *** linsys ***
2194 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2195 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2196   case "$host" in
2197     *-*linux*)
2198       HAVE_LINSYS=yes
2199       ;;
2200     *)
2201       HAVE_LINSYS=no
2202       ;;
2203   esac
2204 ])
2205
2206 dnl *** modplug ***
2207 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2208 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2209   if test "x$HAVE_CXX" != "xyes"; then
2210     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2211     HAVE_MODPLUG="no"
2212   else
2213     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2214   fi
2215   AC_SUBST(MODPLUG_CFLAGS)
2216   AC_SUBST(MODPLUG_LIBS)
2217 ])
2218
2219 dnl *** mimic ***
2220 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2221 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2222   MIMIC_REQUIRED=1.0
2223   PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2224       HAVE_MIMIC=yes, HAVE_MIMIC=no)
2225   AC_SUBST(MIMIC_CFLAGS)
2226   AC_SUBST(MIMIC_LIBS)
2227 ])
2228
2229 dnl *** mjpegtools version info ***
2230 dnl some may prefer older version (given quirks above)
2231 dnl hm, no version info seems available within mjpegtools headers
2232 dnl and API really moves along
2233 echo
2234 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2235   mjpegtools_api=10601
2236 ], [
2237   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2238     mjpegtools_api=10800
2239   ], [
2240     PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2241       mjpegtools_api=20000
2242     ], [
2243       PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2244         dnl logging API changed in release candidates
2245         OLD_CFLAGS="$CFLAGS"
2246         OLD_LIBS="$LIBS"
2247         CFLAGS="$MJPEG_CFLAGS"
2248         LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2249         AC_CHECK_FUNC(mjpeg_loglev_t, [
2250           mjpegtools_api=10903
2251           ], [
2252           mjpegtools_api=10900
2253           ])
2254         CFLAGS="$OLD_CFLAGS"
2255         LIBS="$OLD_LIBS"
2256       ], [
2257         mjpegtools_api=0
2258       ])
2259     ])
2260   ])
2261 ])
2262 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2263   [mjpegtools API evolution])
2264
2265 dnl *** mpeg2enc ***
2266 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2267 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2268   HAVE_MPEG2ENC="no"
2269   dnl we require a c++ compiler for this one
2270   if [ test x$HAVE_CXX = xyes ]; then
2271     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2272     dnl since many distros include mjpegtools specifically without mplex
2273     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2274     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2275       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2276       touch config.h
2277       dnl switch over to c++ to test things
2278       AC_LANG([C++])
2279       OLD_CPPFLAGS="$CPPFLAGS"
2280       dnl HACK as above
2281       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2282       CPPFLAGS="$CPPFLAGS_GOOD -I."
2283       dnl check headers
2284       mpeg2enc_headers_ok=no
2285       AC_CHECK_HEADER([mpeg2encoder.hh], [
2286         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2287         OLD_LIBS="$LIBS"
2288         LIBS="$LIBS $MPEG2ENC_LIBS"
2289         AC_MSG_CHECKING([for valid mpeg2enc objects])
2290         AC_RUN_IFELSE([AC_LANG_SOURCE([[
2291           #include <mpeg2encoder.hh>
2292           #include <mpeg2encoptions.hh>
2293
2294           int
2295           main (int   argc,
2296                 char *argv[])
2297           {
2298             MPEG2EncOptions *options = new MPEG2EncOptions ();
2299             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2300             return 0;
2301           }
2302         ]])],[
2303           AC_MSG_RESULT(yes)
2304           dnl so far so good, let's check more things:
2305           dnl mjpegtools-1.8.0 does not install the required
2306           dnl mpeg2syntaxcodes.h header by default, and a new release
2307           dnl is not in sight, so check for this oversight in case
2308           dnl distros or folks have fixed this themselves
2309           if test "$mjpegtools_api" -ge "10800"; then
2310             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2311                 mpeg2enc_headers_ok=yes
2312               ], [
2313                 mpeg2enc_headers_ok=no
2314               ])
2315           else
2316             mpeg2enc_headers_ok=yes
2317           fi
2318           if test "x$mpeg2enc_headers_ok" = "xyes"; then
2319             HAVE_MPEG2ENC="yes"
2320           fi
2321           CPPFLAGS="$CPPFLAGS_GOOD"
2322           AC_SUBST(MPEG2ENC_CFLAGS)
2323           AC_SUBST(MPEG2ENC_LIBS)
2324         ],[
2325           AC_MSG_RESULT(no)
2326         ],[])
2327         LIBS="$OLD_LIBS"
2328       ])
2329
2330       CPPFLAGS="$OLD_CPPFLAGS"
2331       AC_LANG([C])
2332     ], [
2333       HAVE_MPEG2ENC="no"
2334     ])
2335   fi
2336 ])
2337
2338 dnl *** mpg123 ***
2339 translit(dnm, m, l) AM_CONDITIONAL(USE_MPG123, true)
2340 AG_GST_CHECK_FEATURE(MPG123, [mpg123 audio decoder], mpg123, [
2341   PKG_CHECK_MODULES(MPG123, libmpg123 >= 1.13, HAVE_MPG123="yes", HAVE_MPG123="no")
2342   AC_SUBST(MPG123_CFLAGS)
2343   AC_SUBST(MPG123_LIBS)
2344 ])
2345
2346 dnl *** mplex ***
2347 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2348 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2349   HAVE_MPLEX="no"
2350   dnl we require a c++ compiler for this one
2351   if [ test x$HAVE_CXX = xyes ]; then
2352     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2353     dnl since many distros include mjpegtools specifically without mplex
2354     dnl and mpeg2enc, we check for mplex on its own, too.
2355     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2356     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2357       dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2358       touch config.h
2359       dnl switch over to c++ to test things
2360       AC_LANG([C++])
2361       OLD_CPPFLAGS="$CPPFLAGS"
2362       dnl HACK as above
2363       CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2364       CPPFLAGS="$CPPFLAGS_GOOD -I."
2365       AC_CHECK_HEADER(interact.hpp, [
2366         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2367         OLD_LIBS="$LIBS"
2368         LIBS="$LIBS $MPLEX_LIBS"
2369         OLD_LDFLAGS="$LDFLAGS"
2370         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2371         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2372         dnl don't want this here
2373         AC_MSG_CHECKING([for valid mplex objects])
2374         AC_RUN_IFELSE([AC_LANG_SOURCE([[
2375
2376 #include <interact.hpp>
2377 #include <outputstrm.hpp>
2378 #include <multiplexor.hpp>
2379 int
2380 main (int   argc,
2381       char *argv[])
2382 {
2383   class TestOutputStream : public OutputStream {
2384   public:
2385     TestOutputStream () : OutputStream () { }
2386     void Write (uint8_t *a, unsigned int b) { }
2387     void NextSegment () { }
2388     uint64_t SegmentSize () { }
2389     void Close () { }
2390     int Open () { }
2391 };
2392   MultiplexJob *job = new MultiplexJob ();
2393   vector<IBitStream *> inputs;
2394   job->SetupInputStreams (inputs);
2395   TestOutputStream *out = new TestOutputStream ();
2396   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2397   return 0;
2398 }
2399         ]])],[
2400           HAVE_MPLEX="yes"
2401           CPPFLAGS="$CPPFLAGS_GOOD"
2402           AC_SUBST(MPLEX_CFLAGS)
2403           AC_SUBST(MPLEX_LIBS)
2404           AC_SUBST(MPLEX_LDFLAGS)
2405           AC_MSG_RESULT(yes)
2406         ],[AC_MSG_RESULT(no)],[])
2407         LIBS="$OLD_LIBS"
2408         LDFLAGS="$OLD_LDFLAGS"
2409       ])
2410       CPPFLAGS="$OLD_CPPFLAGS"
2411       AC_LANG([C])
2412     ], HAVE_MPLEX="no")
2413   fi
2414 ])
2415
2416 dnl *** musepack ***
2417 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2418 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2419   AC_CHECK_HEADER([mpc/mpcdec.h], [
2420     HAVE_MUSEPACK="yes"
2421     MUSEPACK_LIBS="-lmpcdec"
2422     AC_SUBST(MUSEPACK_LIBS)
2423     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2424       HAVE_MUSEPACK="yes"
2425       MUSEPACK_LIBS="-lmpcdec"
2426       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2427       AC_SUBST(MUSEPACK_LIBS)
2428     ], [HAVE_MUSEPACK="no"])])
2429 ])
2430
2431 dnl *** MythTV ***
2432 translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true)
2433 AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [
2434   PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [
2435     HAVE_MYTHTV="no"
2436   ])
2437   AC_SUBST(GMYTH_CFLAGS)
2438   AC_SUBST(GMYTH_LIBS)
2439 ])
2440
2441 dnl *** nas ***
2442 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2443 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2444   HAVE_NAS="no"
2445   if test "x$HAVE_X" = "xyes"; then
2446     save_cppflags=$CFLAGS
2447     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2448     AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2449       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2450     CPPFLAGS="$save_cppflags"
2451   fi
2452   AC_SUBST(NAS_CFLAGS)
2453   AC_SUBST(NAS_LIBS)
2454 ])
2455
2456 dnl *** neon ***
2457 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2458 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2459   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.30.99, HAVE_NEON="yes", [
2460     HAVE_NEON="no"
2461   ])
2462   AC_SUBST(NEON_CFLAGS)
2463   AC_SUBST(NEON_LIBS)
2464 ])
2465
2466 dnl *** ofa ***
2467 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2468 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2469   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2470     HAVE_OFA="no"
2471   ])
2472   AC_SUBST(OFA_CFLAGS)
2473   AC_SUBST(OFA_LIBS)
2474 ])
2475
2476 dnl *** OpenAL ***
2477 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2478 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2479   PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2480     HAVE_OPENAL="no"
2481   ])
2482   AC_SUBST(OPENAL_CFLAGS)
2483   AC_SUBST(OPENAL_LIBS)
2484 ])
2485
2486 dnl *** opencv ***
2487 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2488 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2489   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2490   dnl and don't want the build to break when a new opencv version comes out.
2491   dnl Need to adjust this upwards once we know that our code compiles fine with
2492   dnl a new version and the no-backward-compatibility define. (There doesn't
2493   dnl seem to be a switch to suppress the warnings the cvcompat.h header
2494   dnl causes.)
2495   PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv < 2.5.0 , [
2496     AC_PROG_CXX
2497     AC_LANG([C++])
2498     OLD_CPPFLAGS=$CPPFLAGS
2499     CPPFLAGS=$OPENCV_CFLAGS
2500     AC_CHECK_HEADERS([highgui.h opencv2/highgui/highgui_c.h])
2501     CPPFLAGS=$OLD_CPPFLAGS
2502     AC_LANG([C])
2503
2504     if test $ac_cv_header_highgui_h = "yes" -o $ac_cv_header_opencv2_highgui_highgui_c_h = "yes" ; then
2505       HAVE_OPENCV="yes"
2506     else
2507       AC_MSG_RESULT([neither highgui.h nor opencv2/highgui/highgui_c.h could not be found])
2508       HAVE_OPENCV="no"
2509     fi
2510   ], [
2511     HAVE_OPENCV="no"
2512   ])
2513   OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2514   AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2515   AC_SUBST(OPENCV_PREFIX)
2516   AC_SUBST(OPENCV_CFLAGS)
2517   AC_SUBST(OPENCV_LIBS)
2518 ])
2519
2520 dnl *** OpenEXR ***
2521 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2522 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2523   AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2524 ])
2525
2526 dnl *** openh264 ***
2527 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2528 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2529   AC_LANG_PUSH([C++])
2530   AG_GST_CHECK_LIBHEADER(OPENH264, openh264, WelsSnprintf, $PTHREAD_LIBS,
2531     wels/codec_api.h, [
2532     AC_MSG_CHECKING([for right openh264 version/snapshot])
2533     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wels/codec_app_def.h>
2534 #include <wels/codec_api.h>]], [[
2535         SFrameBSInfo frame_info;
2536         SEncParamExt enc_params;
2537         enc_params.iInputCsp = videoFormatI420;
2538         int *p = (int *) &frame_info.eFrameType;
2539         *p = RC_LOW_BW_MODE;
2540     ]])], [
2541       AC_MSG_RESULT(yes)
2542       OPENH264_LIBS="-lopenh264 $PTHREAD_LIBS"
2543     ], [
2544       AC_MSG_RESULT(no)
2545       HAVE_OPENH264="no"
2546     ])
2547   ])
2548   AC_LANG_POP([C++])
2549   AC_SUBST(OPENH264_LIBS)
2550 ])
2551
2552 dnl *** OpenJPEG ***
2553 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2554 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2555   HAVE_OPENJPEG="no"
2556
2557   save_LIBS="$LIBS"
2558   save_CFLAGS="$CFLAGS"
2559   OPENJPEG_LIBS="-lopenjp2"
2560   LIBS="$LIBS $OPENJPEG_LIBS"
2561   CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
2562   AC_LINK_IFELSE([
2563     AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
2564                     [return (int) *opj_version ();])
2565                  ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
2566   LIBS="$save_LIBS"
2567   CFLAGS="$save_CFLAGS"
2568
2569   if test x"$HAVE_OPENJPEG" = x"no"; then
2570     OPENJPEG_LIBS=""
2571     PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2572       HAVE_OPENJPEG="yes",
2573       AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2574     )
2575     if test x"$HAVE_OPENJPEG" = x"yes"; then
2576       AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2577     fi
2578   fi
2579   AC_SUBST(OPENJPEG_CFLAGS)
2580   AC_SUBST(OPENJPEG_LIBS)
2581 ])
2582
2583 dnl *** OpenNI2 ***
2584 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2585 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2586   PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2587   AC_SUBST(OPENNI2_CFLAGS)
2588   AC_SUBST(OPENNI2_LIBS)
2589 ])
2590
2591 dnl *** Opus ***
2592 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2593 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2594   PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2595           AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2596           HAVE_OPUS="yes"
2597   ], [
2598           HAVE_OPUS="no"
2599   ])
2600   AC_SUBST(OPUS_CFLAGS)
2601   AC_SUBST(OPUS_LIBS)
2602 ])
2603
2604 dnl *** pvr ***
2605 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2606 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2607   PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2608   AC_SUBST(PVR_CFLAGS)
2609   AC_SUBST(PVR_LIBS)
2610 ])
2611
2612  AC_ARG_WITH([pvr-external-headers],
2613               AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2614               [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2615                      [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2616               [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2617
2618 dnl *** rsvg ***
2619 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2620 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2621   PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36 cairo, [
2622     HAVE_RSVG="yes"
2623     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")
2624     if test "x$HAVE_RSVG_2_36_2" = "xyes"; then
2625       AC_DEFINE(HAVE_RSVG_2_36_2, [1], [Have RSVG 2.36.2 or newer])
2626     fi
2627   ], [
2628     HAVE_RSVG="no"
2629   ])
2630   AC_SUBST(RSVG_CFLAGS)
2631   AC_SUBST(RSVG_LIBS)
2632 ])
2633
2634 dnl *** gl ***
2635 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2636 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2637   HAVE_GL="no"
2638
2639   if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2640     HAVE_GL="yes"
2641   fi
2642 ])
2643
2644 dnl *** libvisual ***
2645 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2646 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2647   AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2648   if test x$HAVE_LIBVISUAL = xyes; then
2649     LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2650   fi
2651   AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2652   if test x$LIBVIS_PLUGINSDIR != x; then
2653     AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2654         "$LIBVIS_PLUGINSDIR",
2655         [directory in which the detected libvisual's plugins are located])
2656   fi
2657 ])
2658
2659 dnl *** timidity ***
2660 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2661 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2662   PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2663     HAVE_TIMIDITY="yes",
2664         AC_MSG_CHECKING([for timidity.cfg])
2665         timidity_cfg=""
2666         if test -r /etc/timidity.cfg; then
2667           timidity_cfg=/etc/timidity.cfg
2668         elif test -r /etc/timidity/timidity.cfg; then
2669           timidity_cfg=/etc/timidity/timidity.cfg
2670         elif test -r /usr/share/timidity/timidity.cfg; then
2671           timidity_cfg=/usr/share/timidity/timidity.cfg
2672         elif test -r /usr/local/share/timidity/timidity.cfg; then
2673           timidity_cfg=/usr/local/share/timidity/timidity.cfg
2674         fi
2675         if test "x$timidity_cfg" != "x"; then
2676           AC_MSG_RESULT($timidity_cfg)
2677       AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2678         else
2679           AC_MSG_RESULT([not found])
2680         fi
2681   ], [
2682     HAVE_TIMIDITY="no"
2683   ])
2684   AC_SUBST(TIMIDITY_CFLAGS)
2685   AC_SUBST(TIMIDITY_LIBS)
2686 ])
2687
2688 dnl *** teletextdec ***
2689 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2690 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2691   AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2692  ])
2693
2694 dnl *** wildmidi ***
2695 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2696 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2697   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2698                          WildMidi_Init, ,
2699                          wildmidi_lib.h,
2700                          WILDMIDI_LIBS="-lWildMidi")
2701   AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
2702
2703   if test "x$HAVE_WILDMIDI" = "xyes"; then
2704          WILDMIDI_CFLAGS=
2705          WILDMIDI_LIBS=-lWildMidi
2706          AC_MSG_NOTICE(compiling gstWildMidi)
2707   else
2708          WILDMIDI_CFLAGS=
2709          WILDMIDI_LIBS=
2710          AC_MSG_WARN(no WildMidi library found (libWildMidi))
2711   fi
2712   AC_SUBST(WILDMIDI_CFLAGS)
2713   AC_SUBST(WILDMIDI_LIBS)
2714 ])
2715
2716 dnl *** SDL ***
2717 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
2718 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
2719     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
2720 ])
2721
2722 dnl **** Smooth Streaming ****
2723 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2724 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2725   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2726     [HAVE_LIBXML2="yes"
2727      HAVE_SMOOTHSTREAMING="yes"],
2728     [HAVE_LIBXML2="no"
2729      HAVE_SMOOTHSTREAMING="no"])
2730   AC_SUBST(LIBXML2_CFLAGS)
2731   AC_SUBST(LIBXML2_LIBS)
2732 ])
2733
2734 dnl *** sndfile ***
2735 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2736 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2737   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2738   AC_SUBST(SNDFILE_CFLAGS)
2739   AC_SUBST(SNDFILE_LIBS)
2740 ])
2741
2742 dnl *** soundtouch ***
2743 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2744 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2745   dnl We only need -lBPM on soundtouch < 1.4
2746   dnl We check for libSoundTouch since Debian used it before upstream
2747   dnl added a pkgconfig file.
2748   HAVE_SOUNDTOUCH_1_4=yes
2749   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2750     [HAVE_SOUNDTOUCH=yes],
2751     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2752       [HAVE_SOUNDTOUCH=yes],
2753       [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2754         [HAVE_SOUNDTOUCH=yes
2755           HAVE_SOUNDTOUCH_1_4=no
2756           SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2757         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2758           [HAVE_SOUNDTOUCH=yes],
2759           [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2760             [HAVE_SOUNDTOUCH=yes
2761               HAVE_SOUNDTOUCH_1_4=no
2762               SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2763             HAVE_SOUNDTOUCH=no)])])])])
2764   AC_SUBST(SOUNDTOUCH_CFLAGS)
2765   AC_SUBST(SOUNDTOUCH_LIBS)
2766   if test "x$HAVE_CXX" != "xyes"; then
2767     USE_SOUNDTOUCH=false
2768     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2769   fi
2770   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2771      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2772          [Defined if the available libSoundTouch is >= 1.4])
2773   fi
2774 ])
2775
2776 dnl *** spc ***
2777 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
2778 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
2779   AC_CHECK_HEADER(openspc.h, [
2780     AC_CHECK_LIB(openspc, OSPC_Init, [
2781       SPC_LIBS="-lopenspc"
2782       AC_SUBST(SPC_LIBS)
2783       HAVE_SPC=yes
2784     ], [
2785       HAVE_SPC=no
2786     ])
2787   ], [
2788     HAVE_SPC=no
2789   ])
2790 ])
2791
2792 dnl *** gme ***
2793 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2794 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2795   AC_CHECK_HEADER(gme/gme.h, [
2796     AC_CHECK_LIB(gme, gme_new_emu, [
2797       GME_LIBS="-lgme"
2798       AC_SUBST(GME_LIBS)
2799       HAVE_GME=yes
2800     ], [
2801       HAVE_GME=no
2802     ])
2803   ], [
2804     HAVE_GME=no
2805   ])
2806
2807   if test "x$HAVE_GME" = "xyes"; then
2808     AC_CHECK_LIB(gme, gme_enable_accuracy, [
2809       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2810       ])
2811   fi
2812 ])
2813
2814 dnl *** XVID ***
2815 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
2816 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
2817   HAVE_XVID=no
2818   AC_CHECK_HEADER(xvid.h, [
2819     OLD_LIBS="$LIBS"
2820     LIBS="$PTHREAD_LIBS $LIBM"
2821     AC_CHECK_LIB(xvidcore, xvid_encore, [
2822       AC_CHECK_LIB(xvidcore, xvid_decore, [
2823         AC_CHECK_LIB(xvidcore, xvid_global, [
2824           AC_MSG_CHECKING([for up-to-date XviD API version])
2825           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
2826               #if XVID_API_MAJOR(XVID_API) != 4
2827               #error "Incompatible XviD API version"
2828               #endif
2829               #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
2830               #error "Incompatible XviD API version"
2831               #endif
2832           ]])],[ AC_MSG_RESULT(yes)
2833             XVID_LIBS="-lxvidcore $LIBM"
2834             AC_SUBST(XVID_LIBS)
2835             HAVE_XVID=yes
2836           ],[AC_MSG_RESULT(no) ])
2837         ], )
2838       ], )
2839     ], )
2840     LIBS="$OLD_LIBS"
2841   ], )
2842 ])
2843
2844 dnl *** dvb ***
2845 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2846 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2847   AC_MSG_CHECKING([Checking for up to date dvb installation])
2848   AC_CHECK_HEADER(linux/dvb/version.h, [
2849     AC_MSG_CHECKING([for up-to-date dvb API])
2850     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2851         #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2852         #error "Incompatible dvb API"
2853         #endif
2854     ]])], [ AC_MSG_RESULT(yes)
2855       HAVE_DVB="yes"
2856     ], [ AC_MSG_RESULT(no)
2857       HAVE_DVB="no"
2858     ])
2859   ], [HAVE_DVB="no"])
2860 ])
2861
2862 dnl *** wininet ***
2863 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
2864 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
2865   AC_MSG_CHECKING([Checking for windows internet support])
2866   AC_CHECK_HEADERS([windows.h wininet.h],
2867       [HAVE_WININET="yes"], [HAVE_WININET="no"],
2868       [AC_INCLUDES_DEFAULT
2869 #include <windows.h>])
2870 ])
2871
2872 dnl *** acm ***
2873 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
2874 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
2875   AC_MSG_CHECKING([Checking for ACM support])
2876   AC_CHECK_HEADERS([windows.h msacm.h],
2877       [HAVE_ACM="yes"
2878        AC_SUBST(ACMENC_CFLAGS)
2879        AC_SUBST(ACMMP3DEC_CFLAGS)
2880       ], [HAVE_ACM="no"],
2881       [AC_INCLUDES_DEFAULT
2882 #include <windows.h>])
2883 ])
2884
2885 dnl *** vdpau ***
2886 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2887 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2888   VDPAU_CFLAGS=
2889   VDPAU_LIBS=-lvdpau
2890   HAVE_VDPAU=no
2891
2892   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2893   [
2894     if test "$HAVE_VDPAU" = "no"; then
2895       saved_CPPFLAGS="$CPPFLAGS"
2896       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2897
2898       if test -z "$HAVE_VDPAU_H"; then
2899         dnl Didn't find VDPAU header straight away.
2900         dnl Try /usr/include/nvidia. Need to clear caching vars first
2901         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2902         unset ac_cv_header_vdpau_vdpau_h
2903         unset ac_cv_header_vdpau_vdpau_x11_h
2904         VDPAU_CFLAGS="-I/usr/include/nvidia"
2905         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2906         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2907         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2908       fi
2909
2910       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2911
2912       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2913         dnl Found the headers - look for the lib
2914         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2915         saved_LIBS="$LIBS"
2916         LIBS="$VDPAU_LIBS $saved_LIBS"
2917         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2918         LIBS="$saved_LIBS"
2919       fi
2920     fi
2921   ])
2922
2923   if test "$HAVE_VDPAU" = "yes"; then
2924     AC_MSG_NOTICE([Found up to date VDPAU installation])
2925     AC_SUBST(VDPAU_CFLAGS)
2926     AC_SUBST(VDPAU_LIBS)
2927   fi
2928 ])
2929
2930 dnl *** sbc ***
2931 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2932 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2933   AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2934 ])
2935
2936 dnl *** schroedinger ***
2937 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
2938 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
2939   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
2940 ])
2941
2942 dnl *** zbar ***
2943 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2944 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2945   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2946 ])
2947
2948 dnl *** rtmp ***
2949 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2950 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2951   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2952 ])
2953
2954 dnl *** spandsp ***
2955 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2956 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2957   PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2958     HAVE_SPANDSP="yes" ], [
2959     HAVE_SPANDSP="no"
2960   ])
2961 ])
2962 AC_SUBST(SPANDSP_CFLAGS)
2963 AC_SUBST(SPANDSP_LIBS)
2964
2965 dnl *** GSettings ***
2966 translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true)
2967 AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [
2968   AG_GST_PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.25.0)
2969   if test "x$HAVE_GSETTINGS" = "xyes"; then
2970     GLIB_GSETTINGS
2971   fi
2972 ])
2973
2974 dnl *** sndio ***
2975 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
2976 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
2977   AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
2978   if test "x$HAVE_SNDIO" = "xyes"; then
2979     AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
2980     if test "x$HAVE_SNDIO" = "xyes"; then
2981       SNDIO_LIBS=-lsndio
2982       AC_SUBST(SNDIO_LIBS)
2983     fi
2984   fi
2985 ])
2986
2987 dnl *** hls ***
2988 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2989 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2990   PKG_CHECK_MODULES(NETTLE, nettle,
2991   [
2992     AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2993     HAVE_HLS="yes"
2994   ], [
2995     AM_PATH_LIBGCRYPT([1.2.0],
2996     [
2997       AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2998       HAVE_HLS="yes"
2999     ], [
3000       PKG_CHECK_MODULES(OPENSSL, openssl,
3001       [
3002         AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3003         HAVE_HLS="yes"
3004       ], [
3005         HAVE_HLS="no"
3006       ])
3007     ])
3008   ])
3009 ])
3010
3011 dnl *** x265 (H.265/HEVC encoder) ***
3012 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3013 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3014   AG_GST_PKG_CHECK_MODULES(X265, x265)
3015 ])
3016
3017 else
3018
3019 dnl not building plugins with external dependencies,
3020 dnl but we still need to set the conditionals
3021
3022 AM_CONDITIONAL(USE_ASSRENDER, false)
3023 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3024 AM_CONDITIONAL(USE_VOAACENC, false)
3025 AM_CONDITIONAL(USE_APEXSINK, false)
3026 AM_CONDITIONAL(USE_BZ2, false)
3027 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3028 AM_CONDITIONAL(USE_CURL, false)
3029 AM_CONDITIONAL(USE_SSH2, false)
3030 AM_CONDITIONAL(USE_DASH, false)
3031 AM_CONDITIONAL(USE_DC1394, false)
3032 AM_CONDITIONAL(USE_DECKLINK, false)
3033 AM_CONDITIONAL(DECKLINK_OSX, false)
3034 AM_CONDITIONAL(USE_DIRECTFB, false)
3035 AM_CONDITIONAL(USE_WAYLAND, false)
3036 AM_CONDITIONAL(USE_DAALA, false)
3037 AM_CONDITIONAL(USE_DTS, false)
3038 AM_CONDITIONAL(USE_EXIF, false)
3039 AM_CONDITIONAL(USE_RESINDVD, false)
3040 AM_CONDITIONAL(USE_FAAC, false)
3041 AM_CONDITIONAL(USE_FAAD, false)
3042 AM_CONDITIONAL(USE_FBDEV, false)
3043 AM_CONDITIONAL(USE_FLITE, false)
3044 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3045 AM_CONDITIONAL(USE_GL, false)
3046 AM_CONDITIONAL(USE_GSM, false)
3047 AM_CONDITIONAL(USE_HLS, false)
3048 AM_CONDITIONAL(USE_KATE, false)
3049 AM_CONDITIONAL(USE_TIGER, false)
3050 AM_CONDITIONAL(USE_LADSPA, false)
3051 AM_CONDITIONAL(USE_LV2, false)
3052 AM_CONDITIONAL(USE_LIBDE265, false)
3053 AM_CONDITIONAL(USE_LIBMMS, false)
3054 AM_CONDITIONAL(USE_LINSYS, false)
3055 AM_CONDITIONAL(USE_MODPLUG, false)
3056 AM_CONDITIONAL(USE_MIMIC, false)
3057 AM_CONDITIONAL(USE_MPEG2ENC, false)
3058 AM_CONDITIONAL(USE_MPG123, false)
3059 AM_CONDITIONAL(USE_MPLEX, false)
3060 AM_CONDITIONAL(USE_MUSEPACK, false)
3061 AM_CONDITIONAL(USE_MYTHTV, false)
3062 AM_CONDITIONAL(USE_NAS, false)
3063 AM_CONDITIONAL(USE_NEON, false)
3064 AM_CONDITIONAL(USE_OFA, false)
3065 AM_CONDITIONAL(USE_OPENAL, false)
3066 AM_CONDITIONAL(USE_OPENCV, false)
3067 AM_CONDITIONAL(USE_OPENEXR, false)
3068 AM_CONDITIONAL(USE_OPENJPEG, false)
3069 AM_CONDITIONAL(USE_OPENNI2, false)
3070 AM_CONDITIONAL(USE_OPUS, false)
3071 AM_CONDITIONAL(USE_PVR, false)
3072 AM_CONDITIONAL(USE_LIBVISUAL, false)
3073 AM_CONDITIONAL(USE_TIMIDITY, false)
3074 AM_CONDITIONAL(USE_WILDMIDI, false)
3075 AM_CONDITIONAL(USE_SDL, false)
3076 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3077 AM_CONDITIONAL(USE_SNDFILE, false)
3078 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3079 AM_CONDITIONAL(USE_SPANDSP, false)
3080 AM_CONDITIONAL(USE_SPC, false)
3081 AM_CONDITIONAL(USE_SRTP, false)
3082 AM_CONDITIONAL(USE_GME, false)
3083 AM_CONDITIONAL(USE_GSETTINGS, false)
3084 AM_CONDITIONAL(USE_XVID, false)
3085 AM_CONDITIONAL(USE_DVB, false)
3086 AM_CONDITIONAL(USE_WININET, false)
3087 AM_CONDITIONAL(USE_ACM, false)
3088 AM_CONDITIONAL(USE_VDPAU, false)
3089 AM_CONDITIONAL(USE_SBC, false)
3090 AM_CONDITIONAL(USE_SCHRO, false)
3091 AM_CONDITIONAL(USE_ZBAR, false)
3092 AM_CONDITIONAL(USE_RSVG, false)
3093 AM_CONDITIONAL(USE_RTMP, false)
3094 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3095 AM_CONDITIONAL(USE_SNDIO, false)
3096 AM_CONDITIONAL(USE_UVCH264, false)
3097 AM_CONDITIONAL(USE_WEBP, false)
3098 AM_CONDITIONAL(USE_OPENH264, false)
3099 AM_CONDITIONAL(USE_X265, false)
3100
3101 fi dnl of EXT plugins
3102
3103 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3104
3105 dnl Overview:
3106 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
3107 dnl GST_*:              flags shared by built objects to link against GStreamer
3108 dnl GST_ALL_LDFLAGS:    linker flags shared by all
3109 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
3110 dnl GST_LT_LDFLAGS:     library versioning of our libraries
3111 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3112
3113 dnl GST_OPTION_CFLAGS
3114 if test "x$USE_DEBUG" = xyes; then
3115    PROFILE_CFLAGS="-g"
3116 fi
3117 AC_SUBST(PROFILE_CFLAGS)
3118
3119 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3120   dnl Define _only_ during CVS (not pre-releases or releases)
3121   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3122 else
3123   DEPRECATED_CFLAGS=""
3124 fi
3125 AC_SUBST(DEPRECATED_CFLAGS)
3126
3127 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3128 dnl at make time with e.g. make ERROR_CFLAGS=""
3129 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3130 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3131 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3132 AC_SUBST(GST_OPTION_CFLAGS)
3133 AC_SUBST(GST_OPTION_CXXFLAGS)
3134 AC_SUBST(GST_OPTION_OBJCFLAGS)
3135
3136 dnl FIXME: do we want to rename to GST_ALL_* ?
3137 dnl prefer internal headers to already installed ones
3138 dnl also add builddir include for enumtypes and marshal
3139 dnl add GST_OPTION_CFLAGS, but overridable
3140 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3141 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3142 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3143 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3144 AC_SUBST(GST_CFLAGS)
3145 AC_SUBST(GST_CXXFLAGS)
3146 AC_SUBST(GST_OBJCFLAGS)
3147 AC_SUBST(GST_LIBS)
3148 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3149 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3150 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3151 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3152 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3153 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3154
3155 dnl LDFLAGS really should only contain flags, not libs - they get added before
3156 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3157 GST_ALL_LDFLAGS="-no-undefined"
3158 AC_SUBST(GST_ALL_LDFLAGS)
3159
3160 dnl GST_LIB_LDFLAGS
3161 dnl linker flags shared by all libraries
3162 dnl LDFLAGS modifier defining exported symbols from built libraries
3163 dnl (export _gst_foo but not __gst_foo)
3164 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3165 AC_SUBST(GST_LIB_LDFLAGS)
3166
3167 dnl this really should only contain flags, not libs - they get added before
3168 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3169 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3170 AC_SUBST(GST_PLUGIN_LDFLAGS)
3171
3172 dnl *** output files ***
3173
3174 $MKDIR_P tests/check/orc
3175
3176 dnl po/Makefile.in
3177
3178 AC_CONFIG_FILES(
3179 Makefile
3180 common/Makefile
3181 common/m4/Makefile
3182 gst-plugins-bad.spec
3183 gst/Makefile
3184 gst/accurip/Makefile
3185 gst/adpcmdec/Makefile
3186 gst/adpcmenc/Makefile
3187 gst/aiff/Makefile
3188 gst/asfmux/Makefile
3189 gst/audiofxbad/Makefile
3190 gst/audiomixer/Makefile
3191 gst/audiovisualizers/Makefile
3192 gst/autoconvert/Makefile
3193 gst/bayer/Makefile
3194 gst/camerabin2/Makefile
3195 gst/cdxaparse/Makefile
3196 gst/coloreffects/Makefile
3197 gst/dataurisrc/Makefile
3198 gst/dccp/Makefile
3199 gst/debugutils/Makefile
3200 gst/dvbsuboverlay/Makefile
3201 gst/dvdspu/Makefile
3202 gst/faceoverlay/Makefile
3203 gst/festival/Makefile
3204 gst/fieldanalysis/Makefile
3205 gst/freeverb/Makefile
3206 gst/frei0r/Makefile
3207 gst/gaudieffects/Makefile
3208 gst/geometrictransform/Makefile
3209 gst/gdp/Makefile
3210 gst/hdvparse/Makefile
3211 gst/id3tag/Makefile
3212 gst/inter/Makefile
3213 gst/interlace/Makefile
3214 gst/ivfparse/Makefile
3215 gst/ivtc/Makefile
3216 gst/jp2kdecimator/Makefile
3217 gst/jpegformat/Makefile
3218 gst/librfb/Makefile
3219 gst/liveadder/Makefile
3220 gst/midi/Makefile
3221 gst/mpegdemux/Makefile
3222 gst/mpegtsdemux/Makefile
3223 gst/mpegtsmux/Makefile
3224 gst/mpegtsmux/tsmux/Makefile
3225 gst/mpegpsmux/Makefile
3226 gst/mve/Makefile
3227 gst/mxf/Makefile
3228 gst/nuvdemux/Makefile
3229 gst/patchdetect/Makefile
3230 gst/pcapparse/Makefile
3231 gst/pnm/Makefile
3232 gst/rawparse/Makefile
3233 gst/real/Makefile
3234 gst/removesilence/Makefile
3235 gst/rtp/Makefile
3236 gst/sdi/Makefile
3237 gst/sdp/Makefile
3238 gst/segmentclip/Makefile
3239 gst/siren/Makefile
3240 gst/smooth/Makefile
3241 gst/speed/Makefile
3242 gst/subenc/Makefile
3243 gst/stereo/Makefile
3244 gst/tta/Makefile
3245 gst/videofilters/Makefile
3246 gst/videomeasure/Makefile
3247 gst/videoparsers/Makefile
3248 gst/videosignal/Makefile
3249 gst/vmnc/Makefile
3250 gst/y4m/Makefile
3251 gst/yadif/Makefile
3252 gst/compositor/Makefile
3253 gst-libs/Makefile
3254 gst-libs/gst/Makefile
3255 gst-libs/gst/basecamerabinsrc/Makefile
3256 gst-libs/gst/gl/Makefile
3257 gst-libs/gst/gl/android/Makefile
3258 gst-libs/gst/gl/cocoa/Makefile
3259 gst-libs/gst/gl/dispmanx/Makefile
3260 gst-libs/gst/gl/glprototypes/Makefile
3261 gst-libs/gst/gl/eagl/Makefile
3262 gst-libs/gst/gl/egl/Makefile
3263 gst-libs/gst/gl/wayland/Makefile
3264 gst-libs/gst/gl/win32/Makefile
3265 gst-libs/gst/gl/x11/Makefile
3266 gst-libs/gst/insertbin/Makefile
3267 gst-libs/gst/interfaces/Makefile
3268 gst-libs/gst/codecparsers/Makefile
3269 gst-libs/gst/mpegts/Makefile
3270 gst-libs/gst/uridownloader/Makefile
3271 gst-libs/gst/wayland/Makefile
3272 gst-libs/gst/base/Makefile
3273 gst-libs/gst/video/Makefile
3274 sys/Makefile
3275 sys/dshowdecwrapper/Makefile
3276 sys/acmenc/Makefile
3277 sys/acmmp3dec/Makefile
3278 sys/androidmedia/Makefile
3279 sys/applemedia/Makefile
3280 sys/applemedia-nonpublic/Makefile
3281 sys/avc/Makefile
3282 sys/bluez/Makefile
3283 sys/d3dvideosink/Makefile
3284 sys/decklink/Makefile
3285 sys/directdraw/Makefile
3286 sys/directsound/Makefile
3287 sys/dshowsrcwrapper/Makefile
3288 sys/dshowvideosink/Makefile
3289 sys/dvb/Makefile
3290 sys/fbdev/Makefile
3291 sys/linsys/Makefile
3292 sys/opensles/Makefile
3293 sys/osxvideo/Makefile
3294 sys/shm/Makefile
3295 sys/uvch264/Makefile
3296 sys/vcd/Makefile
3297 sys/vdpau/Makefile
3298 sys/pvr2d/Makefile
3299 sys/wasapi/Makefile
3300 sys/wininet/Makefile
3301 sys/winks/Makefile
3302 sys/winscreencap/Makefile
3303 tests/Makefile
3304 tests/check/Makefile
3305 tests/files/Makefile
3306 tests/examples/Makefile
3307 tests/examples/camerabin2/Makefile
3308 tests/examples/directfb/Makefile
3309 tests/examples/gl/Makefile
3310 tests/examples/gl/cocoa/Makefile
3311 tests/examples/gl/clutter/Makefile
3312 tests/examples/gl/generic/Makefile
3313 tests/examples/gl/generic/cube/Makefile
3314 tests/examples/gl/generic/cubeyuv/Makefile
3315 tests/examples/gl/generic/doublecube/Makefile
3316 tests/examples/gl/generic/recordgraphic/Makefile
3317 tests/examples/gl/gtk/Makefile
3318 tests/examples/gl/gtk/gtkvideooverlay/Makefile
3319 tests/examples/gl/gtk/filternovideooverlay/Makefile
3320 tests/examples/gl/gtk/filtervideooverlay/Makefile
3321 tests/examples/gl/gtk/fxtest/Makefile
3322 tests/examples/gl/gtk/switchvideooverlay/Makefile
3323 tests/examples/gl/qt/Makefile
3324 tests/examples/gl/sdl/Makefile
3325 tests/examples/mpegts/Makefile
3326 tests/examples/mxf/Makefile
3327 tests/examples/opencv/Makefile
3328 tests/examples/uvch264/Makefile
3329 tests/icles/Makefile
3330 ext/voamrwbenc/Makefile
3331 ext/voaacenc/Makefile
3332 ext/assrender/Makefile
3333 ext/apexsink/Makefile
3334 ext/bz2/Makefile
3335 ext/chromaprint/Makefile
3336 ext/curl/Makefile
3337 ext/dash/Makefile
3338 ext/dc1394/Makefile
3339 ext/directfb/Makefile
3340 ext/wayland/Makefile
3341 ext/daala/Makefile
3342 ext/dts/Makefile
3343 ext/gl/Makefile
3344 ext/faac/Makefile
3345 ext/faad/Makefile
3346 ext/flite/Makefile
3347 ext/fluidsynth/Makefile
3348 ext/gsm/Makefile
3349 ext/hls/Makefile
3350 ext/kate/Makefile
3351 ext/ladspa/Makefile
3352 ext/lv2/Makefile
3353 ext/libde265/Makefile
3354 ext/libmms/Makefile
3355 ext/libvisual/Makefile
3356 ext/Makefile
3357 ext/modplug/Makefile
3358 ext/mpeg2enc/Makefile
3359 ext/mpg123/Makefile
3360 ext/mimic/Makefile
3361 ext/mplex/Makefile
3362 ext/musepack/Makefile
3363 ext/mythtv/Makefile
3364 ext/nas/Makefile
3365 ext/neon/Makefile
3366 ext/ofa/Makefile
3367 ext/openal/Makefile
3368 ext/opencv/Makefile
3369 ext/openexr/Makefile
3370 ext/openh264/Makefile
3371 ext/openjpeg/Makefile
3372 ext/openni2/Makefile
3373 ext/opus/Makefile
3374 ext/rsvg/Makefile
3375 ext/resindvd/Makefile
3376 ext/rtmp/Makefile
3377 ext/sbc/Makefile
3378 ext/schroedinger/Makefile
3379 ext/sdl/Makefile
3380 ext/smoothstreaming/Makefile
3381 ext/sndfile/Makefile
3382 ext/soundtouch/Makefile
3383 ext/spandsp/Makefile
3384 ext/sndio/Makefile
3385 ext/srtp/Makefile
3386 ext/teletextdec/Makefile
3387 ext/gme/Makefile
3388 ext/gsettings/Makefile
3389 ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml
3390 ext/spc/Makefile
3391 ext/timidity/Makefile
3392 ext/webp/Makefile
3393 ext/x265/Makefile
3394 ext/xvid/Makefile
3395 ext/zbar/Makefile
3396 po/Makefile.in
3397 docs/Makefile
3398 docs/plugins/Makefile
3399 docs/libs/Makefile
3400 docs/version.entities
3401 pkgconfig/Makefile
3402 pkgconfig/gstreamer-plugins-bad.pc
3403 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3404 pkgconfig/gstreamer-codecparsers.pc
3405 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3406 pkgconfig/gstreamer-insertbin.pc
3407 pkgconfig/gstreamer-insertbin-uninstalled.pc
3408 pkgconfig/gstreamer-gl.pc
3409 pkgconfig/gstreamer-gl-uninstalled.pc
3410 pkgconfig/gstreamer-mpegts.pc
3411 pkgconfig/gstreamer-mpegts-uninstalled.pc
3412 pkgconfig/gstreamer-wayland.pc
3413 pkgconfig/gstreamer-wayland-uninstalled.pc
3414 pkgconfig/gstreamer-bad-base.pc
3415 pkgconfig/gstreamer-bad-base-uninstalled.pc
3416 pkgconfig/gstreamer-bad-video.pc
3417 pkgconfig/gstreamer-bad-video-uninstalled.pc
3418 tools/Makefile
3419 m4/Makefile
3420 )
3421
3422 dnl Create the config.h file for Visual Studio builds
3423 dnl Beware of spaces and /'s in some of the shell variable contents.
3424 sed \
3425     -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"/' \
3426     -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3427     -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3428     -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3429     -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3430     -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3431     -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3432     -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3433     -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3434     -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3435     -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3436     -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3437     -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3438     -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3439     -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3440     -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3441     -e 's/.* LIBDIR$/#ifdef _DEBUG\n#  define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n#  define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3442     -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3443     -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3444     -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3445     -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3446     -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3447     -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3448     -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3449     -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/' \
3450     -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3451     -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3452     -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3453     -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3454     -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3455     -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3456     -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3457     -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3458     -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3459     config.h.in >win32/common/config.h-new
3460
3461 AC_OUTPUT
3462
3463 AG_GST_OUTPUT_PLUGINS
3464 ORC_OUTPUT
3465