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