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