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