hlsdemux: Use libgcrypt directly instead of going through gnutls
[platform/upstream/gstreamer.git] / configure.ac
1 AC_PREREQ([2.68])
2
3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, cvs and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.3.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, 300, 0, 300)
52
53 dnl *** required versions of GStreamer stuff ***
54 GST_REQ=1.3.0.1
55 GSTPB_REQ=1.3.0.1
56
57 dnl *** autotools stuff ****
58
59 dnl allow for different autotools
60 AS_AUTOTOOLS_ALTERNATE
61
62 dnl Add parameters for aclocal
63 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
64
65 dnl set up gettext
66 dnl the version check needs to stay here because autopoint greps for it
67 AM_GNU_GETTEXT_VERSION([0.17])
68 AM_GNU_GETTEXT([external])
69 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
70
71 dnl *** check for arguments to configure ***
72
73 AG_GST_ARG_DISABLE_FATAL_WARNINGS
74
75 AG_GST_ARG_DEBUG
76 AG_GST_ARG_PROFILING
77 AG_GST_ARG_VALGRIND
78 AG_GST_ARG_GCOV
79
80 AG_GST_ARG_EXAMPLES
81
82 AG_GST_ARG_WITH_PKG_CONFIG_PATH
83 AG_GST_ARG_WITH_PACKAGE_NAME
84 AG_GST_ARG_WITH_PACKAGE_ORIGIN
85
86 AG_GST_ARG_WITH_PLUGINS
87
88 AG_GST_ARG_ENABLE_EXTERNAL
89
90 AG_GST_ARG_ENABLE_EXPERIMENTAL
91
92 AG_GST_PKG_CONFIG_PATH
93
94 dnl *** checks for platform ***
95 AG_GST_PLATFORM
96
97 dnl * hardware/architecture *
98
99 dnl common/m4/gst-arch.m4
100 dnl check CPU type
101 AG_GST_ARCH
102
103 dnl Determine endianness
104 AC_C_BIGENDIAN
105
106 dnl *** checks for programs ***
107
108 dnl find a compiler
109 AC_PROG_CC
110 AC_PROG_CC_STDC
111
112 dnl determine c++ compiler
113 AC_PROG_CXX
114 dnl determine if c++ is available on this system
115 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
116
117 AC_PROG_OBJC
118
119 dnl check if the compiler supports '-c' and '-o' options
120 AM_PROG_CC_C_O
121
122 dnl check if the compiler supports do while(0) macros
123 AG_GST_CHECK_DOWHILE_MACROS
124
125 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
126 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
127
128 dnl check for gobject-introspection
129 GOBJECT_INTROSPECTION_CHECK([1.31.1])
130
131 dnl check for documentation tools
132 GTK_DOC_CHECK([1.12])
133 AG_GST_PLUGIN_DOCS([1.12])
134
135 dnl *** checks for libraries ***
136
137 dnl check for libm, for sin() etc.
138 LT_LIB_M
139 AC_SUBST(LIBM)
140
141 AC_FUNC_MMAP
142
143 dnl *** checks for header files ***
144
145 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
146 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
147
148 if test "x$HAVE_UNISTD_H" != "xyes"; then
149   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
150 fi
151
152 AC_CHECK_HEADERS([sys/time.h])
153
154 dnl used by ext/dts
155 AX_CREATE_STDINT_H
156
157 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
158 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
159
160 if test "x$HAVE_PTHREAD_H" != "xyes"; then
161   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
162 fi
163
164 dnl *** checks for types/defines ***
165
166 dnl Check for FIONREAD ioctl declaration
167 dnl used in gst/dccp
168 GST_CHECK_FIONREAD
169
170 dnl *** checks for structures ***
171
172 dnl *** checks for compiler characteristics ***
173
174 dnl *** checks for library functions ***
175 AC_CHECK_FUNCS([gmtime_r])
176
177 dnl *** checks for headers ***
178 AC_CHECK_HEADERS([sys/utsname.h])
179
180 dnl *** checks for dependency libraries ***
181
182 dnl *** checks for socket and nsl libraries ***
183 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
184 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
185
186 dnl GLib is required
187 GLIB_REQ=2.32.0
188 AG_GST_GLIB_CHECK([$GLIB_REQ])
189
190 dnl checks for gstreamer
191 dnl uninstalled is selected preferentially -- see pkg-config(1)
192 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
193 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
194 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
195 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
196 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
197
198 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
199
200 dnl check for uninstalled plugin directories for unit tests
201 AG_GST_CHECK_UNINSTALLED_SETUP([
202   AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
203   AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
204   AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
205 ])
206
207 dnl Check for documentation xrefs
208 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
209 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
210 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
211 AC_SUBST(GLIB_PREFIX)
212 AC_SUBST(GST_PREFIX)
213 AC_SUBST(GSTPB_PREFIX)
214
215 dnl GTK is optional and used in examples
216 HAVE_GTK=NO
217 GTK2_REQ=2.14.0
218 GTK3_REQ=2.91.3
219 if test "x$BUILD_EXAMPLES" = "xyes"; then
220   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
221   AC_ARG_WITH([gtk],
222     AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
223     [case "$with_gtk" in
224         2.0) GTK_REQ=$GTK2_REQ ;;
225         3.0) GTK_REQ=$GTK3_REQ ;;
226         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
227     esac],
228     [with_gtk=2.0
229      GTK_REQ=$GTK2_REQ])
230   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
231   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
232   AC_SUBST(GTK_LIBS)
233   AC_SUBST(GTK_CFLAGS)
234 fi
235 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
236
237
238
239 dnl Needed for GtkBuilder to autoconnect signals
240 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
241
242 dnl Needed by plugins that use g_module_*() API
243 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
244
245 dnl x11 is optional for librfb and eglglessink
246 HAVE_X11=NO
247 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
248 AC_SUBST(X11_LIBS)
249 AC_SUBST(X11_CFLAGS)
250 AC_SUBST(HAVE_X11)
251 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
252 if test "x$HAVE_X11" = "xyes"; then
253   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
254 fi
255
256 dnl exif (used on jifmux tests) ****
257 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
258 AC_SUBST(EXIF_LIBS)
259 AC_SUBST(EXIF_CFLAGS)
260 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
261
262 dnl Orc
263 ORC_CHECK([0.4.17])
264
265 dnl set license and copyright notice
266 GST_LICENSE="LGPL"
267 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
268 AC_SUBST(GST_LICENSE)
269
270 dnl define LIBDIR so we can inform people where we live
271 AS_AC_EXPAND(LIBDIR, $libdir)
272 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
273
274 dnl set location of plugin directory
275 AG_GST_SET_PLUGINDIR
276
277 dnl set release date/time
278 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
279   ["${srcdir}/gst-plugins-bad.doap"],
280   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
281
282 dnl build static plugins or not
283 AC_MSG_CHECKING([whether to build static plugins or not])
284 AC_ARG_ENABLE(
285   static-plugins,
286   AC_HELP_STRING(
287     [--enable-static-plugins],
288     [build static plugins @<:@default=no@:>@]),
289   [AS_CASE(
290     [$enableval], [no], [], [yes], [],
291     [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
292   [enable_static_plugins=no])
293 AC_MSG_RESULT([$enable_static_plugins])
294 if test "x$enable_static_plugins" = xyes; then
295   AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
296     [Define if static plugins should be built])
297   GST_PLUGIN_LIBTOOLFLAGS=""
298 else
299   GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
300 fi
301 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
302 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
303
304 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
305 dnl make sure it doesn't complain about unused variables if debugging is disabled
306 NO_WARNINGS=""
307 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
308
309 dnl define an ERROR_CFLAGS Makefile variable
310 dnl -Waggregate-return - libexif returns aggregates
311 dnl -Wundef - Windows headers check _MSC_VER unconditionally
312 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
313     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
314     -Wwrite-strings -Wformat-security -Wold-style-definition
315     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
316     -Wnested-externs $NO_WARNINGS])
317
318 dnl define an ERROR_CXXFLAGS Makefile variable
319 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
320     -Wmissing-declarations -Wredundant-decls
321     -Wwrite-strings -Wformat-nonliteral -Wformat-security
322     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
323
324 dnl define an ERROR_OBJCFLAGS Makefile variable
325 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
326     -Wmissing-declarations -Wredundant-decls
327     -Wwrite-strings -Wformat-nonliteral -Wformat-security
328     -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
329
330 dnl define correct level for debugging messages
331 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
332
333 dnl used in examples
334 AG_GST_DEFAULT_ELEMENTS
335
336 dnl *** plug-ins to include ***
337 dnl Non ported plugins (non-dependant, then dependant)
338 dnl Make sure you have a space before and after all plugins
339 GST_PLUGINS_NONPORTED=" cdxaparse \
340  dccp faceoverlay \
341  hdvparse ivfparse \
342  mve mythtv nuvdemux \
343  patchdetect real \
344  sdi tta \
345  videomeasure videosignal \
346  linsys vcd \
347  apexsink dc1394 \
348  gsettings \
349  musepack nas sdl timidity \
350  directdraw acm wininet \
351  xvid lv2 teletextdec sndio osx_video quicktime"
352 AC_SUBST(GST_PLUGINS_NONPORTED)
353
354 dnl these are all the gst plug-ins, compilable without additional libs
355 AG_GST_CHECK_PLUGIN(accurip)
356 AG_GST_CHECK_PLUGIN(adpcmdec)
357 AG_GST_CHECK_PLUGIN(adpcmenc)
358 AG_GST_CHECK_PLUGIN(aiff)
359 AG_GST_CHECK_PLUGIN(asfmux)
360 AG_GST_CHECK_PLUGIN(audiofxbad)
361 AG_GST_CHECK_PLUGIN(audiomixer)
362 AG_GST_CHECK_PLUGIN(audiovisualizers)
363 AG_GST_CHECK_PLUGIN(autoconvert)
364 AG_GST_CHECK_PLUGIN(bayer)
365 AG_GST_CHECK_PLUGIN(camerabin2)
366 AG_GST_CHECK_PLUGIN(cdxaparse)
367 AG_GST_CHECK_PLUGIN(coloreffects)
368 AG_GST_CHECK_PLUGIN(dataurisrc)
369 AG_GST_CHECK_PLUGIN(dccp)
370 AG_GST_CHECK_PLUGIN(debugutils)
371 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
372 AG_GST_CHECK_PLUGIN(dvdspu)
373 AG_GST_CHECK_PLUGIN(faceoverlay)
374 AG_GST_CHECK_PLUGIN(festival)
375 AG_GST_CHECK_PLUGIN(fieldanalysis)
376 AG_GST_CHECK_PLUGIN(freeverb)
377 AG_GST_CHECK_PLUGIN(frei0r)
378 AG_GST_CHECK_PLUGIN(gaudieffects)
379 AG_GST_CHECK_PLUGIN(geometrictransform)
380 AG_GST_CHECK_PLUGIN(gdp)
381 AG_GST_CHECK_PLUGIN(hdvparse)
382 AG_GST_CHECK_PLUGIN(id3tag)
383 AG_GST_CHECK_PLUGIN(inter)
384 AG_GST_CHECK_PLUGIN(interlace)
385 AG_GST_CHECK_PLUGIN(ivfparse)
386 AG_GST_CHECK_PLUGIN(ivtc)
387 AG_GST_CHECK_PLUGIN(jp2kdecimator)
388 AG_GST_CHECK_PLUGIN(jpegformat)
389 AG_GST_CHECK_PLUGIN(librfb)
390 AG_GST_CHECK_PLUGIN(liveadder)
391 AG_GST_CHECK_PLUGIN(midi)
392 AG_GST_CHECK_PLUGIN(mpegdemux)
393 AG_GST_CHECK_PLUGIN(mpegtsdemux)
394 AG_GST_CHECK_PLUGIN(mpegtsmux)
395 AG_GST_CHECK_PLUGIN(mpegpsmux)
396 AG_GST_CHECK_PLUGIN(mve)
397 AG_GST_CHECK_PLUGIN(mxf)
398 AG_GST_CHECK_PLUGIN(nuvdemux)
399 AG_GST_CHECK_PLUGIN(patchdetect)
400 AG_GST_CHECK_PLUGIN(pcapparse)
401 AG_GST_CHECK_PLUGIN(pnm)
402 AG_GST_CHECK_PLUGIN(rawparse)
403 AG_GST_CHECK_PLUGIN(real)
404 AG_GST_CHECK_PLUGIN(removesilence)
405 AG_GST_CHECK_PLUGIN(sdi)
406 AG_GST_CHECK_PLUGIN(sdp)
407 AG_GST_CHECK_PLUGIN(segmentclip)
408 AG_GST_CHECK_PLUGIN(siren)
409 AG_GST_CHECK_PLUGIN(smooth)
410 AG_GST_CHECK_PLUGIN(speed)
411 AG_GST_CHECK_PLUGIN(subenc)
412 AG_GST_CHECK_PLUGIN(stereo)
413 AG_GST_CHECK_PLUGIN(tta)
414 AG_GST_CHECK_PLUGIN(videofilters)
415 AG_GST_CHECK_PLUGIN(videomeasure)
416 AG_GST_CHECK_PLUGIN(videoparsers)
417 AG_GST_CHECK_PLUGIN(videosignal)
418 AG_GST_CHECK_PLUGIN(vmnc)
419 AG_GST_CHECK_PLUGIN(y4m)
420 AG_GST_CHECK_PLUGIN(yadif)
421
422 dnl *** plug-ins to exclude ***
423
424 dnl real plugin only works on i386 and x86_64 for the time being.
425 if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then
426   AC_MSG_WARN([Not building real plugin, only works on 32bit and 64bit x86 platforms])
427   AG_GST_DISABLE_PLUGIN(real)
428 fi
429
430 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
431 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
432
433 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
434 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
435   AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
436 fi
437
438 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
439 if test "x$HAVE_IOS" = "xyes"; then
440   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
441 fi
442
443 dnl disable gst plugins we might not be able to build on this
444 dnl platform: (ugly but minimally invasive)
445 dnl FIXME: maybe move to sys, or make work with winsock2
446 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
447 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
448
449 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
450   WINSOCK2_LIBS="-lws2_32"
451   AC_SUBST(WINSOCK2_LIBS)
452 fi
453
454 if test "x$HAVE_PTHREAD_H" = "xyes"; then
455   DCCP_LIBS="$DCCP_LIBS -lpthread"
456   AC_SUBST(DCCP_LIBS)
457 else
458   AG_GST_DISABLE_PLUGIN(dccp)
459 fi
460
461 dnl *** gst-libs/gst/egl ***
462 AC_ARG_WITH([egl-window-system],
463               AS_HELP_STRING([--with-egl-window-system],[EGL window system to use (x11, mali-fb, rpi, none)]),
464               [EGL_WINDOW_SYSTEM="$withval"],
465               [EGL_WINDOW_SYSTEM="auto"])
466
467 if test x"$EGL_WINDOW_SYSTEM" = x"auto"; then
468   dnl Mali
469   old_LIBS=$LIBS
470   old_CFLAGS=$CFLAGS
471   LIBS="$LIBS -lUMP $EGL_LIBS"
472   CFLAGS="$CFLAGS $EGL_CFLAGS"
473   AC_CHECK_LIB([Mali], [mali_image_create], [EGL_WINDOW_SYSTEM="mali-fb"], [EGL_WINDOW_SYSTEM="auto"])
474   LIBS=$old_LIBS
475   CFLAGS=$old_CFLAGS
476
477   dnl RPi
478   if test x"$EGL_WINDOW_SYSTEM" = x"auto"; then
479       old_LIBS=$LIBS
480       old_CFLAGS=$CFLAGS
481       LIBS="$LIBS -lvcos -lvchiq_arm"
482       CFLAGS="$CFLAGS"
483       AC_CHECK_LIB([bcm_host], [bcm_host_init],
484         [
485           LIBS="$LIBS -lbcm_host"
486           AC_CHECK_HEADER([bcm_host.h], [EGL_WINDOW_SYSTEM="rpi"], [EGL_WINDOW_SYSTEM="auto"])
487       ])
488       LIBS=$old_LIBS
489       CFLAGS=$old_CFLAGS
490   fi
491
492   if test x"$EGL_WINDOW_SYSTEM" = x"auto"; then
493       if test x"$HAVE_X11" = x"yes"; then
494         EGL_WINDOW_SYSTEM="x11"
495       fi
496   fi
497
498   if test x"$EGL_WINDOW_SYSTEM" = x"auto"; then
499     EGL_WINDOW_SYSTEM="auto"
500   fi
501 fi
502
503 case "$EGL_WINDOW_SYSTEM" in
504   x11|auto)
505     PKG_CHECK_MODULES(EGL, egl, HAVE_EGL="yes", [
506       HAVE_EGL="no"
507       old_LIBS=$LIBS
508       old_CFLAGS=$CFLAGS
509       
510       AC_CHECK_LIB([EGL], [eglGetProcAddress],
511         [
512           AC_CHECK_HEADER([EGL/egl.h],
513             [
514               HAVE_EGL="yes"
515               EGL_LIBS="-lEGL"
516               EGL_CFLAGS=""
517             ]
518           )
519         ]
520       )
521       
522       LIBS=$old_LIBS
523       CFLAGS=$old_CFLAGS
524     ])
525       
526     dnl X11 specific part, above is auto and X11
527     if test x"$HAVE_EGL" = x"yes" -a x"$EGL_WINDOW_SYSTEM" = x"x11"; then
528       if test x"$HAVE_X11" != x"yes"; then
529         AC_MSG_ERROR([libX11 not found and is required for EGL X11 window system])
530       else
531         AC_DEFINE(USE_EGL_X11, [1], [Use X11 EGL window system])
532         EGL_CFLAGS="$EGL_CFLAGS $X11_CFLAGS"
533         EGL_LIBS="$EGL_LIBS $X11_LIBS"
534       fi
535     fi
536     ;;
537   mali-fb)
538     dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
539     HAVE_EGL="no"
540     old_LIBS=$LIBS
541     old_CFLAGS=$CFLAGS
542     AC_CHECK_HEADER([EGL/fbdev_window.h],
543       [
544         LIBS="$LIBS -lUMP"
545         AC_CHECK_LIB([Mali], [mali_image_create],
546           [
547             LIBS="$LIBS -lMali"
548             AC_CHECK_LIB([GLESv2], [glEnable],
549               [
550                 AC_CHECK_HEADER([GLES2/gl2.h],
551                   [
552                     AC_CHECK_LIB([EGL], [eglGetProcAddress],
553                       [
554                         AC_CHECK_HEADER([EGL/egl.h],
555                           [
556                             HAVE_EGL="yes"
557                             EGL_LIBS="-lGLESv2 -lEGL -lMali -lUMP"
558                             EGL_CFLAGS=""
559                             AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL window system])
560                           ])
561                       ])
562                   ])
563               ])
564           ])
565       ])
566     LIBS=$old_LIBS
567     CFLAGS=$old_CFLAGS
568     ;;
569   rpi)
570     old_LIBS=$LIBS
571     old_CFLAGS=$CFLAGS
572
573     dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
574     dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
575     LIBS="$LIBS -lvcos -lvchiq_arm"
576     AC_CHECK_LIB([bcm_host], [bcm_host_init],
577       [
578         LIBS="$LIBS -lbcm_host"
579         AC_CHECK_HEADER(bcm_host.h,
580           [
581             LIBS="$LIBS -lGLESv2"
582             AC_CHECK_LIB([EGL], [eglGetProcAddress],
583               [
584                 LIBS="$LIBS -lEGL"
585                 AC_CHECK_HEADER([EGL/egl.h],
586                   [
587                     AC_CHECK_LIB([GLESv2], [glEnable],
588                       [
589                         AC_CHECK_HEADER([GLES2/gl2.h],
590                           [
591                             HAVE_EGL="yes"
592                             EGL_LIBS="-lGLESv2 -lEGL -lbcm_host -lvcos -lvchiq_arm"
593                             EGL_CFLAGS=""
594                             AC_DEFINE(USE_EGL_RPI, [1], [Use RPi EGL window system])
595                         ])
596                     ])
597                 ])
598             ])
599         ])
600     ])
601
602     LIBS=$old_LIBS
603     CFLAGS=$old_CFLAGS
604     ;;
605   none|no)
606     HAVE_EGL="no"
607     AC_MSG_WARN([No EGL window system specified, will not build gstreamer-egl])
608     ;;
609   *)
610     AC_MSG_ERROR([invalid EGL window system specified])
611     ;;
612 esac
613
614 AC_SUBST(EGL_LIBS)
615 AC_SUBST(EGL_CFLAGS)
616 AM_CONDITIONAL(HAVE_EGL, test x"$HAVE_EGL" = x"yes")
617
618 dnl *** sys plug-ins ***
619
620 dnl DirectSound
621 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
622 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
623   HAVE_DIRECTSOUND="no"
624   save_CFLAGS="$CFLAGS"
625   save_LDFLAGS="$LDFLAGS"
626   save_LIBS="$LIBS"
627   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
628   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
629   LIBS="$LIBS -ldsound -ldxerr9 -luser32"
630   AC_MSG_CHECKING(for DirectSound LDFLAGS)
631   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
632 #include <windows.h>
633 #include <dxerr9.h>
634 #include <dsound.h>
635 ]], [[
636   DXGetErrorString9 (0);
637   DirectSoundCreate(NULL, NULL, NULL);
638 ]])],
639     [HAVE_DIRECTSOUND="yes"],
640     [HAVE_DIRECTSOUND="no"])
641   AC_MSG_RESULT($HAVE_DIRECTSOUND)
642   CFLAGS=$save_CFLAGS
643   LDFLAGS=$save_LDFLAGS
644   LIBS=$save_LIBS
645
646   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
647     dnl this is much more than we want
648     DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32"
649     AC_SUBST(DIRECTX_CFLAGS)
650     AC_SUBST(DIRECTX_LDFLAGS)
651     AC_SUBST(DIRECTSOUND_LIBS)
652   fi
653   AC_SUBST(HAVE_DIRECTSOUND)
654 ])
655
656 dnl WASAPI
657 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
658 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
659   HAVE_WASAPI="no"
660   save_CFLAGS="$CFLAGS"
661   save_LDFLAGS="$LDFLAGS"
662   save_LIBS="$LIBS"
663   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
664   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
665   LIBS="$LIBS -lole32 -lwinmm -lksuser"
666   AC_MSG_CHECKING(for WASAPI LDFLAGS)
667   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
668 #include <windows.h>
669 #include <stdio.h>
670 #include <mmsystem.h>
671 #include <mmdeviceapi.h>
672 ]], [[
673 int main ()
674 {
675     HRESULT hr = S_OK;
676
677     hr = CoInitialize(NULL);
678     if (FAILED(hr)) {
679         printf("CoInitialize failed: hr = 0x%08x", hr);
680         return __LINE__;
681     }
682
683         int result = 0;
684     // result = do_everything(argc, argv);
685     
686     CoUninitialize();
687     return result;
688 }
689 ]])],
690     [HAVE_WASAPI="yes"],
691     [HAVE_WASAPI="no"])
692   AC_MSG_RESULT($HAVE_WASAPI)
693   CFLAGS=$save_CFLAGS
694   LDFLAGS=$save_LDFLAGS
695   LIBS=$save_LIBS
696
697   if test "x$HAVE_WASAPI" = "xyes";  then
698     WASAPI_LIBS="-lole32 -lwinmm -lksuser"
699     AC_SUBST(WASAPI_LIBS)
700   fi
701   AC_SUBST(HAVE_WASAPI)
702 ])
703
704 dnl Direct3D
705 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
706 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
707   HAVE_DIRECT3D="no"
708   save_CFLAGS="$CFLAGS"
709   save_LDFLAGS="$LDFLAGS"
710   save_LIBS="$LIBS"
711   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
712   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
713   LIBS="$LIBS -ld3d9 -lgdi32"
714   AC_MSG_CHECKING(for Direct3D LDFLAGS)
715   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
716 #include <windows.h>
717 #include <d3d9.h>
718 ]], [[
719   Direct3DCreate9(D3D_SDK_VERSION);
720 ]])],
721     [HAVE_DIRECT3D="yes"],
722     [HAVE_DIRECT3D="no"])
723   AC_MSG_RESULT($HAVE_DIRECT3D)
724   CFLAGS=$save_CFLAGS
725   LDFLAGS=$save_LDFLAGS
726   LIBS=$save_LIBS
727
728   if test "x$HAVE_DIRECT3D" = "xyes";  then
729     DIRECT3D_LIBS="-ld3d9 -lgdi32"
730     AC_SUBST(DIRECT3D_LIBS)
731   fi
732   AC_SUBST(HAVE_DIRECT3D)
733 ])
734
735 dnl DirectDraw
736 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true)
737 AG_GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [
738   HAVE_DIRECTDRAW="no"
739   save_CFLAGS="$CFLAGS"
740   save_LDFLAGS="$LDFLAGS"
741   save_LIBS="$LIBS"
742   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
743   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
744   LIBS="$LIBS -lddraw -lgdi32"
745   AC_MSG_CHECKING(for DirectDraw LDFLAGS)
746   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
747 #include <windows.h>
748 #include <ddraw.h>
749 ]], [[
750   GetStockObject(0);
751   DirectDrawCreate(NULL, NULL, NULL);
752 ]])],
753     [HAVE_DIRECTDRAW="yes"],
754     [HAVE_DIRECTDRAW="no"])
755   AC_MSG_RESULT($HAVE_DIRECTDRAW)
756   CFLAGS=$save_CFLAGS
757   LDFLAGS=$save_LDFLAGS
758   LIBS=$save_LIBS
759
760   if test "x$HAVE_DIRECTDRAW" = "xyes";  then
761     dnl this is much more than we want
762     DIRECTDRAW_LIBS="-lddraw -ldxguid -lgdi32"
763     AC_SUBST(DIRECTX_CFLAGS)
764     AC_SUBST(DIRECTX_LDFLAGS)
765     AC_SUBST(DIRECTDRAW_LIBS)
766   fi
767   AC_SUBST(HAVE_DIRECTDRAW)
768 ])
769
770 dnl winscreencap
771 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
772 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
773   HAVE_WINSCREENCAP="no"
774   save_CFLAGS="$CFLAGS"
775   save_LDFLAGS="$LDFLAGS"
776   save_LIBS="$LIBS"
777   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
778   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
779   LIBS="$LIBS -ld3d9 -lgdi32"
780   AC_MSG_CHECKING(for Direct3D LDFLAGS)
781   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
782 #include <windows.h>
783 #include <d3d9.h>
784 ]], [[
785   Direct3DCreate9(D3D_SDK_VERSION);
786 ]])],
787     [HAVE_WINSCREENCAP="yes"],
788     [HAVE_WINSCREENCAP="no"])
789   AC_MSG_RESULT($HAVE_WINSCREENCAP)
790   CFLAGS=$save_CFLAGS
791   LDFLAGS=$save_LDFLAGS
792   LIBS=$save_LIBS
793
794   if test "x$HAVE_WINSCREENCAP" = "xyes";  then
795     WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
796     AC_SUBST(WINSCREENCAP_LIBS)
797   fi
798   AC_SUBST(HAVE_WINSCREENCAP)
799 ])
800
801 dnl DirectShow
802 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSHOW, true)
803 AG_GST_CHECK_FEATURE(DIRECTSHOW, [DirectShow plug-in], winks, [
804   HAVE_DIRECTSHOW="no"
805   save_CFLAGS="$CFLAGS"
806   save_LDFLAGS="$LDFLAGS"
807   save_LIBS="$LIBS"
808   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
809   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
810   LIBS="$LIBS -lole32 -luuid -lstrmiids"
811   AC_MSG_CHECKING(for DirectShow LDFLAGS)
812   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
813 #include <windows.h>
814 #include <strmif.h>
815 #include <uuids.h>
816
817 int main () {
818   IGraphBuilder *pGraph = NULL;
819   HRESULT hr = CoInitialize(NULL);
820   hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
821                         &IID_IGraphBuilder, (void **)&pGraph);
822
823   return 0;
824 }
825 ]])],
826     [HAVE_DIRECTSHOW="yes"],
827     [HAVE_DIRECTSHOW="no"])
828   AC_MSG_RESULT($HAVE_DIRECTSHOW)
829   CFLAGS=$save_CFLAGS
830   LDFLAGS=$save_LDFLAGS
831   LIBS=$save_LIBS
832
833   if test "x$HAVE_DIRECTSHOW" = "xyes";  then
834     dnl this is much more than we want
835     DIRECTSHOW_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
836     AC_SUBST(DIRECTX_CFLAGS)
837     AC_SUBST(DIRECTX_LDFLAGS)
838     AC_SUBST(DIRECTSHOW_LIBS)
839   fi
840   AC_SUBST(HAVE_DIRECTSHOW)
841 ])
842
843 dnl *** Android Media ***
844 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
845 HAVE_ANDROID_MEDIA="no"
846 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
847   case "$host" in
848     *android*)
849       AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
850       ;;
851     *)
852       HAVE_ANDROID_MEDIA="no"
853       ;;
854   esac
855 ])
856
857 dnl *** AppleMedia (OS X and iOS) ***
858 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
859 HAVE_APPLE_MEDIA="no"
860 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
861 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
862   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
863   dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
864   if test "x$HAVE_IOS" = "xno"; then
865     AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
866   fi
867 ])
868
869 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
870 case "$host" in
871   *-*darwin*)
872     ;;
873   *)
874     HAVE_APPLE_MEDIA="no"
875     ;;
876 esac
877
878 dnl *** bluez ***
879 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
880 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
881   PKG_CHECK_MODULES([BLUEZ], [bluez < 5.0], [
882     dnl FIXME: we should be able to replace this with the GLib DBus stuff
883     PKG_CHECK_MODULES([DBUS], [dbus-1], [HAVE_BLUEZ=yes], [HAVE_BLUEZ=no])
884   ], [
885     HAVE_BLUEZ=no
886   ])
887 ])
888
889 dnl *** OS X videosrc ***
890 translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_VIDEO, true)
891 HAVE_OSX_VIDEO="no"
892 AG_GST_CHECK_FEATURE(OSX_VIDEO, [OSX video], osxvideosrc, [
893   AC_CHECK_TYPE([SeqGrabComponent], HAVE_OSX_VIDEO="yes", HAVE_OSX_VIDEO="no",
894       [#include <Quicktime/Quicktime.h>])
895 ])
896 dnl in case header Quicktime/Quicktime.h is found on other platforms
897 case "$host" in
898   *-*darwin*)
899     ;;
900   *)
901     HAVE_OSX_VIDEO="no"
902     ;;
903 esac
904
905 dnl *** OS/X AVCVideoServices ***
906 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
907 HAVE_AVC="no"
908 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
909   AC_LANG_PUSH([C++])
910   save_CPPFLAGS="$CPPFLAGS"
911   CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
912   save_LIBS="$LIBS"
913   LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
914   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
915   LIBS=$save_LIBS
916   CPPFLAGS=$save_CPPFLAGS
917   AC_LANG_POP([C++])
918 ])
919 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
920 case "$host" in
921   *-*darwin*)
922     ;;
923   *)
924     HAVE_AVC="no"
925     ;;
926 esac
927
928 dnl check for QuickTime
929 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
930 AG_GST_CHECK_FEATURE(QUICKTIME, [QuickTime wrapper], qtwrapper, [
931   AC_CHECK_TYPE([SampleReferenceRecord], HAVE_QUICKTIME="yes", HAVE_QUICKTIME="no",
932       [#include <Quicktime/Quicktime.h>])
933 ])
934
935 dnl check for shm_open (for shm plugin)
936 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
937 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
938     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
939         case $host in
940         *-darwin* | *-macos10*)
941             AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
942             HAVE_SHM=yes
943             ;;
944         *)
945             AC_CHECK_LIB([rt], [shm_open],
946                 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
947                 #include <sys/socket.h>
948                     ]),
949                 HAVE_SHM=no)
950             AC_SUBST(SHM_LIBS, "-lrt")
951             ;;
952         esac
953     else
954         HAVE_SHM=no
955     fi
956 ])
957
958 dnl *** Video 4 Linux 2 ***
959 dnl for information about the header/define, see sys/v4l2/gstv4l2element.h
960 dnl renamed to GST_V4L2 because of some conflict with kernel headers
961 translit(dnm, m, l) AM_CONDITIONAL(USE_MFC, true)
962 AG_GST_CHECK_FEATURE(MFC, [Multi Format Codec], mfc, [
963   AC_MSG_CHECKING([Checking for up to date v4l2 installation])
964   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
965 #include <sys/types.h>
966 #ifdef __sun /* Solaris */
967 #include <sys/types.h>
968 #include <sys/videodev2.h>
969 #elif __FreeBSD__
970 #include <linux/videodev2.h>
971 #else /* Linux */
972 #include <linux/types.h>
973 #define _LINUX_TIME_H
974 #define __user
975 #include <linux/videodev2.h>
976 #endif
977 #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
978 #error too early v4l2 version or no v4l2 at all
979 #endif
980 #if !defined(V4L2_PIX_FMT_H264)
981 #error v4l2 version too old
982 #endif
983     ]], [[
984 return 0;
985     ]])],[
986       HAVE_MFC="yes"
987       AC_MSG_RESULT(yes)
988     ],[
989       HAVE_MFC="no"
990       AC_MSG_RESULT(no)
991
992       HAVE_VIDEODEV=no
993       AC_CHECK_HEADER(linux/videodev2.h, [ HAVE_VIDEODEV=yes ],
994       [
995         AC_CHECK_HEADER(sys/videodev2.h, [ HAVE_VIDEODEV=yes ])
996       ])
997
998       if test "x$HAVE_VIDEODEV" = "xyes"; then
999         AC_MSG_WARN([video4linux2 headers were found, but they're old.])
1000         AC_MSG_WARN([Please update v4l2 to compile the MFC plugins])
1001       else
1002         AC_MSG_WARN([v4l2 was not found])
1003       fi
1004     ])
1005 ])
1006
1007 dnl check for Video CD
1008 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1009 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1010   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1011 ])
1012
1013 dnl check for OpenSL ES
1014 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1015 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1016   AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1017 ])
1018
1019 dnl *** UVC H264 ***
1020 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1021 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1022   AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1023   AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1024   PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1025           AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1026           HAVE_GUDEV="yes" ],
1027           [HAVE_GUDEV="no"])
1028   PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1029           AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1030           HAVE_LIBUSB="yes" ],
1031           [HAVE_LIBUSB="no"])
1032   if test "x$HAVE_UVCVIDEO_H" == "xyes" && \
1033      test "x$HAVE_GUDEV" == "xyes" && \
1034      test "x$HAVE_LIBUSB" == "xyes"; then
1035     HAVE_UVCH264=yes
1036   else
1037     HAVE_UVCH264=no
1038   fi
1039 ])
1040 AC_SUBST(LIBUDEV_CFLAGS)
1041 AC_SUBST(LIBUDEV_LIBS)
1042 AC_SUBST(LIBUSB_CFLAGS)
1043 AC_SUBST(LIBUSB_LIBS)
1044
1045
1046 dnl *** ext plug-ins ***
1047 dnl keep this list sorted alphabetically !
1048
1049 if test "x$BUILD_EXTERNAL" = "xyes"; then
1050
1051 dnl *** assrender ***
1052 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1053 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1054   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.9.4, [
1055     HAVE_ASSRENDER="yes" ], [
1056     HAVE_ASSRENDER="no"
1057   ])
1058 ])
1059 AC_SUBST(ASSRENDER_CFLAGS)
1060 AC_SUBST(ASSRENDER_LIBS)
1061
1062 dnl *** vo-amrwbenc ***
1063 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1064 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1065   AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1066 ])
1067
1068 dnl *** vo-aacenc ***
1069 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1070 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1071   AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1072 ])
1073
1074 dnl *** apexsink ***
1075 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
1076 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
1077   PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5  libcrypto ], [
1078     HAVE_APEXSINK="yes"
1079     saved_LIBS="$LIBS"
1080     LIBS=""
1081     AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
1082     AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
1083     APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
1084     LIBS="$saved_LIBS"
1085     AC_SUBST(APEXSINK_CFLAGS)
1086     AC_SUBST(APEXSINK_LIBS)
1087   ], [
1088     APEXSINK="no"
1089   ])
1090 ])
1091
1092 dnl *** BZ2 ***
1093 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1094 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1095   save_LIBS=$LIBS
1096   LIBS="$LIBS -lbz2"
1097   AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1098   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1099   AC_MSG_RESULT($HAVE_BZ2)
1100   LIBS=$save_LIBS
1101   if test "x$HAVE_BZ2" = "xyes"; then
1102     BZ2_LIBS="-lbz2"
1103   fi
1104   AC_SUBST(BZ2_LIBS)
1105
1106 ])
1107
1108 #dnl *** cairo ***
1109 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1110 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1111 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1112 #    HAVE_CAIRO=no
1113 #  ])
1114 #  AC_SUBST(CAIRO_CFLAGS)
1115 #  AC_SUBST(CAIRO_LIBS)
1116 #])
1117
1118 dnl *** chromaprint ***
1119 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1120 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1121   PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1122     HAVE_CHROMAPRINT="no"
1123   ])
1124   AC_SUBST(CHROMAPRINT_CFLAGS)
1125   AC_SUBST(CHROMAPRINT_LIBS)
1126 ])
1127
1128 dnl *** Curl ***
1129 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1130 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1131   PKG_CHECK_MODULES(CURL, libcurl >= 7.21.0, [
1132     HAVE_CURL="yes"
1133     AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/ip.h netinet/tcp.h fcntl.h], [ ], [
1134       AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1135     ])
1136     AC_MSG_CHECKING([for socket support needed by curlsink])
1137     AC_MSG_RESULT($HAVE_CURL)
1138   ], [
1139     HAVE_CURL="no"
1140   ])
1141   AC_SUBST(CURL_CFLAGS)
1142   AC_SUBST(CURL_LIBS)
1143   PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1144     HAVE_SSH2="yes"
1145     AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1146   ], [
1147     HAVE_SSH2="no"
1148   ])
1149   AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1150   AC_SUBST(SSH2_CFLAGS)
1151   AC_SUBST(SSH2_LIBS)
1152 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1153
1154 dnl **** DASH ****
1155 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1156 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1157   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4, [HAVE_LIBXML2="yes"
1158     HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1159     HAVE_DASH="no"])
1160   AC_SUBST(LIBXML2_CFLAGS)
1161   AC_SUBST(LIBXML2_LIBS)
1162 ])
1163
1164 dnl *** dc1394  ***
1165 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1166 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1167    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1168         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1169                 HAVE_DC1394="yes"
1170         else
1171                 HAVE_DC1394="no"
1172         fi
1173    ], [
1174         HAVE_DC1394="no"
1175         AC_MSG_RESULT(no)
1176    ])
1177    AC_SUBST(LIBDC1394_CFLAGS)
1178    AC_SUBST(LIBDC1394_LIBS)
1179 ])
1180
1181 dnl *** decklink  ***
1182 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1183 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1184    HAVE_DECKLINK=no
1185    case "$host" in
1186      *-*linux*)
1187        if test "x$HAVE_PTHREAD_H" = "xyes"; then
1188          AC_CHECK_LIB(dl, dlopen,
1189            [
1190             HAVE_DECKLINK=yes
1191             DECKLINK_CXXFLAGS=
1192             DECKLINK_LIBS="-lpthread -ldl"
1193            ])
1194        fi
1195        ;;
1196      *-*darwin*)
1197        if test "x$HAVE_PTHREAD_H" = "xyes"; then
1198          AC_CHECK_LIB(dl, dlopen,
1199            [
1200             HAVE_DECKLINK=yes
1201             DECKLINK_CXXFLAGS=
1202             DECKLINK_LIBS="-lpthread -ldl"
1203             HAVE_DECKLINK_OSX=yes
1204            ])
1205        fi
1206        ;;
1207      *)
1208        HAVE_DECKLINK=no
1209        ;;
1210    esac
1211
1212    AC_SUBST(DECKLINK_CXXFLAGS)
1213    AC_SUBST(DECKLINK_LIBS)
1214 ])
1215 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1216
1217 dnl **** DirectFB ****
1218 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1219 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1220   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1221     HAVE_DIRECTFB="no"
1222   ])
1223 ])
1224
1225 dnl **** Wayland ****
1226 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1227 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1228   PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.0.0, [
1229     HAVE_WAYLAND="yes" ], [ HAVE_WAYLAND="no"
1230   ])
1231 ])
1232
1233 dnl **** WebP ****
1234 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1235 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1236   PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1237     HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1238   ])
1239   AC_SUBST(WEBP_CFLAGS)
1240   AC_SUBST(WEBP_LIBS)
1241 ])
1242
1243 dnl *** Daala ***
1244 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
1245 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
1246   if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
1247     PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
1248             HAVE_DAALA="yes"
1249     ], [
1250             HAVE_DAALA="no"
1251     ])
1252     AC_SUBST(DAALA_CFLAGS)
1253     AC_SUBST(DAALA_LIBS)
1254   fi
1255 ])
1256
1257 dnl *** DTS ***
1258 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1259 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1260   HAVE_DTS="yes"
1261   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1262     DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1263   if test $HAVE_DTS = "no"; then
1264     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1265       [ DTS_LIBS="-ldts_pic $LIBM"
1266         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1267       ])
1268   fi
1269   AC_SUBST(DTS_LIBS)
1270 ])
1271
1272 dnl *** resindvd ***
1273 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1274 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1275   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1276     HAVE_RESINDVD="no"
1277   ])
1278 ])
1279
1280 dnl **** Free AAC Encoder (FAAC) ****
1281 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1282 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1283   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1284     FAAC_LIBS="-lfaac $LIBM")
1285   AC_SUBST(FAAC_LIBS)
1286 ])
1287
1288 dnl **** Free AAC Decoder (FAAD) ****
1289 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1290 AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
1291   HAVE_FAAD="yes"
1292   faad_hdr=""
1293   AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, $LIBM, faad.h,
1294     FAAD_LIBS="-lfaad $LIBM", HAVE_FAAD="no")
1295   if test $HAVE_FAAD = "no"; then
1296     AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h,
1297       [ FAAD_LIBS="-lfaad $LIBM"
1298         AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
1299         faad_hdr="neaacdec.h"
1300       ], [
1301         HAVE_FAAD="no"
1302       ],)
1303   else
1304     faad_hdr="faad.h"
1305   fi
1306   if test $HAVE_FAAD = "yes"; then
1307     AC_MSG_CHECKING([Checking for FAAD >= 2.0])
1308     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1309         #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1310         #error Not faad2
1311         #else
1312         /* Release candidate of 2.0 is not good enough for us. This field
1313          * was added only in 2.0 final and does not exist in 2.0-RC3 */
1314         faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
1315         #endif
1316     ]])],[
1317       HAVE_FAAD="yes"
1318
1319       AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr])
1320       for minor in 10 9 8 7 6 5 0; do
1321         if test x$faad2_minor_version = "x"; then
1322           AC_EGREP_CPP([GST_CHECK_FAAD_VERSION \"2\.$minor\"], [
1323               #include <$faad_hdr>
1324               GST_CHECK_FAAD_VERSION FAAD2_VERSION
1325             ], [
1326               faad2_minor_version=$minor
1327             ])
1328         fi
1329       done
1330       if test x$faad2_minor_version = "x"; then
1331         AC_MSG_RESULT([no idea])
1332       else
1333         AC_MSG_RESULT([2.$faad2_minor_version])
1334         AC_DEFINE_UNQUOTED([FAAD2_MINOR_VERSION], [$faad2_minor_version], [The x in 2.x])
1335       fi
1336     ],[
1337       HAVE_FAAD="no"
1338     ])
1339   fi
1340   AC_SUBST(FAAD_LIBS)
1341   AC_SUBST(FAAD_IS_NEAAC)
1342 ])
1343
1344 dnl *** fbdev ***
1345 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1346 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1347   if test "x$HAVE_FBDEV" != "xyes"; then
1348     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1349   fi
1350 ])
1351
1352 dnl *** flite ***
1353 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1354 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1355   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1356     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1357
1358   AC_SUBST(FLITE_CFLAGS)
1359   AC_SUBST(FLITE_LIBS)
1360 ])
1361
1362 dnl *** gsm ***
1363 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1364 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1365   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1366   if test $HAVE_GSM != "yes"; then
1367     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1368     if test $HAVE_GSM = "yes"; then
1369       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1370     fi
1371   fi
1372   AC_SUBST(GSM_LIBS)
1373 ])
1374
1375 dnl *** fluidSynth ***
1376 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1377 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1378   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1379     HAVE_FLUIDSYNTH="no"
1380   ])
1381 ])
1382
1383 dnl *** kate ***
1384 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1385 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1386   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1387     HAVE_KATE="no"
1388   ])
1389   AC_SUBST(KATE_CFLAGS)
1390   AC_SUBST(KATE_LIBS)
1391   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1392     [
1393       HAVE_TIGER="yes"
1394       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1395     ],
1396     [
1397       HAVE_TIGER="no"
1398     ]
1399   )
1400   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1401   AC_SUBST(TIGER_CFLAGS)
1402   AC_SUBST(TIGER_LIBS)
1403 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1404
1405 dnl *** ladspa ***
1406 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1407 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1408   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1409
1410   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1411   if test $HAVE_LRDF = "yes"; then
1412     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1413   fi
1414   AC_SUBST(LRDF_LIBS)
1415   AC_SUBST(LRDF_CFLAGS)
1416 ])
1417
1418 dnl *** LV2 ***
1419 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1420 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1421   PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
1422   AC_SUBST(SLV2_CFLAGS)
1423   AC_SUBST(SLV2_LIBS)
1424 ])
1425
1426 dnl *** libmms ***
1427 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1428 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1429   dnl check with pkg-config first
1430   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1431     HAVE_LIBMMS="no"
1432   ])
1433 ])
1434 AC_SUBST(LIBMMS_LIBS)
1435
1436
1437 dnl *** libsrtp ***
1438 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1439 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1440   HAVE_SRTP="yes"
1441   AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h,
1442     SRTP_LIBS="-lsrtp", HAVE_SRTP="no")
1443   AC_SUBST(SRTP_LIBS)
1444 ])
1445
1446 dnl *** linsys ***
1447 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
1448 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
1449   case "$host" in
1450     *-*linux*)
1451       HAVE_LINSYS=yes
1452       ;;
1453     *)
1454       HAVE_LINSYS=no
1455       ;;
1456   esac
1457 ])
1458
1459 dnl *** modplug ***
1460 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1461 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1462   if test "x$HAVE_CXX" != "xyes"; then
1463     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1464     HAVE_MODPLUG="no"
1465   else
1466     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1467   fi
1468   AC_SUBST(MODPLUG_CFLAGS)
1469   AC_SUBST(MODPLUG_LIBS)
1470 ])
1471
1472 dnl *** mimic ***
1473 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
1474 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
1475   MIMIC_REQUIRED=1.0
1476   PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
1477       HAVE_MIMIC=yes, HAVE_MIMIC=no)
1478   AC_SUBST(MIMIC_CFLAGS)
1479   AC_SUBST(MIMIC_LIBS)
1480 ])
1481
1482 dnl *** mjpegtools version info ***
1483 dnl some may prefer older version (given quirks above)
1484 dnl hm, no version info seems available within mjpegtools headers
1485 dnl and API really moves along
1486 echo
1487 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1488   mjpegtools_api=10601
1489 ], [
1490   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1491     mjpegtools_api=10800
1492   ], [
1493     PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1494       mjpegtools_api=20000
1495     ], [
1496       PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1497         dnl logging API changed in release candidates
1498         OLD_CFLAGS="$CFLAGS"
1499         OLD_LIBS="$LIBS"
1500         CFLAGS="$MJPEG_CFLAGS"
1501         LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM -lpthread"
1502         AC_CHECK_FUNC(mjpeg_loglev_t, [
1503           mjpegtools_api=10903
1504           ], [
1505           mjpegtools_api=10900
1506           ])
1507         CFLAGS="$OLD_CFLAGS"
1508         LIBS="$OLD_LIBS"
1509       ], [
1510         mjpegtools_api=0
1511       ])
1512     ])
1513   ])
1514 ])
1515 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1516   [mjpegtools API evolution])
1517
1518 dnl *** mpeg2enc ***
1519 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1520 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1521   HAVE_MPEG2ENC="no"
1522   dnl we require a c++ compiler for this one
1523   if [ test x$HAVE_CXX = xyes ]; then
1524     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1525     dnl since many distros include mjpegtools specifically without mplex
1526     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1527     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1528       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1529       touch config.h
1530       dnl switch over to c++ to test things
1531       AC_LANG([C++])
1532       OLD_CPPFLAGS="$CPPFLAGS"
1533       dnl HACK as above
1534       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1535       CPPFLAGS="$CPPFLAGS_GOOD -I."
1536       dnl check headers
1537       mpeg2enc_headers_ok=no
1538       AC_CHECK_HEADER([mpeg2encoder.hh], [
1539         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM -lpthread"
1540         OLD_LIBS="$LIBS"
1541         LIBS="$LIBS $MPEG2ENC_LIBS"
1542         AC_MSG_CHECKING([for valid mpeg2enc objects])
1543         AC_RUN_IFELSE([AC_LANG_SOURCE([[
1544           #include <mpeg2encoder.hh>
1545           #include <mpeg2encoptions.hh>
1546
1547           int
1548           main (int   argc,
1549                 char *argv[])
1550           {
1551             MPEG2EncOptions *options = new MPEG2EncOptions ();
1552             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1553             return 0;
1554           }
1555         ]])],[
1556           AC_MSG_RESULT(yes)
1557           dnl so far so good, let's check more things:
1558           dnl mjpegtools-1.8.0 does not install the required
1559           dnl mpeg2syntaxcodes.h header by default, and a new release
1560           dnl is not in sight, so check for this oversight in case
1561           dnl distros or folks have fixed this themselves
1562           if test "$mjpegtools_api" -ge "10800"; then
1563             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1564                 mpeg2enc_headers_ok=yes
1565               ], [
1566                 mpeg2enc_headers_ok=no
1567               ])
1568           else
1569             mpeg2enc_headers_ok=yes
1570           fi
1571           if test "x$mpeg2enc_headers_ok" = "xyes"; then
1572             HAVE_MPEG2ENC="yes"
1573           fi
1574           CPPFLAGS="$CPPFLAGS_GOOD"
1575           AC_SUBST(MPEG2ENC_CFLAGS)
1576           AC_SUBST(MPEG2ENC_LIBS)
1577         ],[
1578           AC_MSG_RESULT(no)
1579         ],[])
1580         LIBS="$OLD_LIBS"
1581       ])
1582
1583       CPPFLAGS="$OLD_CPPFLAGS"
1584       AC_LANG([C])
1585     ], [
1586       HAVE_MPEG2ENC="no"
1587     ])
1588   fi
1589 ])
1590
1591 dnl *** mpg123 ***
1592 translit(dnm, m, l) AM_CONDITIONAL(USE_MPG123, true)
1593 AG_GST_CHECK_FEATURE(MPG123, [mpg123 audio decoder], mpg123, [
1594   PKG_CHECK_MODULES(MPG123, libmpg123 >= 1.13, HAVE_MPG123="yes", HAVE_MPG123="no")
1595   AC_SUBST(MPG123_CFLAGS)
1596   AC_SUBST(MPG123_LIBS)
1597 ])
1598
1599 dnl *** mplex ***
1600 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1601 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1602   HAVE_MPLEX="no"
1603   dnl we require a c++ compiler for this one
1604   if [ test x$HAVE_CXX = xyes ]; then
1605     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1606     dnl since many distros include mjpegtools specifically without mplex
1607     dnl and mpeg2enc, we check for mplex on its own, too.
1608     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1609     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1610       dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1611       touch config.h
1612       dnl switch over to c++ to test things
1613       AC_LANG([C++])
1614       OLD_CPPFLAGS="$CPPFLAGS"
1615       dnl HACK as above
1616       CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1617       CPPFLAGS="$CPPFLAGS_GOOD -I."
1618       AC_CHECK_HEADER(interact.hpp, [
1619         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1620         OLD_LIBS="$LIBS"
1621         LIBS="$LIBS $MPLEX_LIBS"
1622         OLD_LDFLAGS="$LDFLAGS"
1623         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1624         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1625         dnl don't want this here
1626         AC_MSG_CHECKING([for valid mplex objects])
1627         AC_RUN_IFELSE([AC_LANG_SOURCE([[
1628
1629 #include <interact.hpp>
1630 #include <outputstrm.hpp>
1631 #include <multiplexor.hpp>
1632 int
1633 main (int   argc,
1634       char *argv[])
1635 {
1636   class TestOutputStream : public OutputStream {
1637   public:
1638     TestOutputStream () : OutputStream () { }
1639     void Write (uint8_t *a, unsigned int b) { }
1640     void NextSegment () { }
1641     uint64_t SegmentSize () { }
1642     void Close () { }
1643     int Open () { }
1644 };
1645   MultiplexJob *job = new MultiplexJob ();
1646   vector<IBitStream *> inputs;
1647   job->SetupInputStreams (inputs);
1648   TestOutputStream *out = new TestOutputStream ();
1649   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1650   return 0;
1651 }
1652         ]])],[
1653           HAVE_MPLEX="yes"
1654           CPPFLAGS="$CPPFLAGS_GOOD"
1655           AC_SUBST(MPLEX_CFLAGS)
1656           AC_SUBST(MPLEX_LIBS)
1657           AC_SUBST(MPLEX_LDFLAGS)
1658           AC_MSG_RESULT(yes)
1659         ],[AC_MSG_RESULT(no)],[])
1660         LIBS="$OLD_LIBS"
1661         LDFLAGS="$OLD_LDFLAGS"
1662       ])
1663       CPPFLAGS="$OLD_CPPFLAGS"
1664       AC_LANG([C])
1665     ], HAVE_MPLEX="no")
1666   fi
1667 ])
1668
1669 dnl *** musepack ***
1670 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1671 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1672   AC_CHECK_HEADER([mpc/mpcdec.h], [
1673     HAVE_MUSEPACK="yes"
1674     MUSEPACK_LIBS="-lmpcdec"
1675     AC_SUBST(MUSEPACK_LIBS)
1676     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1677       HAVE_MUSEPACK="yes"
1678       MUSEPACK_LIBS="-lmpcdec"
1679       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1680       AC_SUBST(MUSEPACK_LIBS)
1681     ], [HAVE_MUSEPACK="no"])])
1682 ])
1683
1684 dnl *** MythTV ***
1685 translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true)
1686 AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [
1687   PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [
1688     HAVE_MYTHTV="no"
1689   ])
1690   AC_SUBST(GMYTH_CFLAGS)
1691   AC_SUBST(GMYTH_LIBS)
1692 ])
1693
1694 dnl *** nas ***
1695 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
1696 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
1697   HAVE_NAS="no"
1698   AG_GST_CHECK_X
1699   if test "x$HAVE_X" = "xyes"; then
1700     save_cppflags=$CFLAGS
1701     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1702     AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
1703       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
1704     CPPFLAGS="$save_cppflags"
1705   fi
1706   AC_SUBST(NAS_CFLAGS)
1707   AC_SUBST(NAS_LIBS)
1708 ])
1709
1710 dnl *** neon ***
1711 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1712 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1713   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.30.99, HAVE_NEON="yes", [
1714     HAVE_NEON="no"
1715   ])
1716   AC_SUBST(NEON_CFLAGS)
1717   AC_SUBST(NEON_LIBS)
1718 ])
1719
1720 dnl *** ofa ***
1721 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1722 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1723   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1724     HAVE_OFA="no"
1725   ])
1726   AC_SUBST(OFA_CFLAGS)
1727   AC_SUBST(OFA_LIBS)
1728 ])
1729
1730 dnl *** OpenAL ***
1731 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1732 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1733   PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1734     HAVE_OPENAL="no"
1735   ])
1736   AC_SUBST(OPENAL_CFLAGS)
1737   AC_SUBST(OPENAL_LIBS)
1738 ])
1739
1740 dnl *** opencv ***
1741 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1742 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1743   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1744   dnl and don't want the build to break when a new opencv version comes out.
1745   dnl Need to adjust this upwards once we know that our code compiles fine with
1746   dnl a new version and the no-backward-compatibility define. (There doesn't
1747   dnl seem to be a switch to suppress the warnings the cvcompat.h header
1748   dnl causes.)
1749   PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv <= 2.4.8 , [
1750     AC_PROG_CXX
1751     AC_LANG([C++])
1752     OLD_CPPFLAGS=$CPPFLAGS
1753     CPPFLAGS=$OPENCV_CFLAGS
1754     AC_CHECK_HEADERS([highgui.h opencv2/highgui/highgui_c.h])
1755     CPPFLAGS=$OLD_CPPFLAGS
1756     AC_LANG([C])
1757
1758     if test $ac_cv_header_highgui_h = "yes" -o $ac_cv_header_opencv2_highgui_highgui_c_h = "yes" ; then
1759       HAVE_OPENCV="yes"
1760     else
1761       AC_MSG_RESULT([neither highgui.h nor opencv2/highgui/highgui_c.h could not be found])
1762       HAVE_OPENCV="no"
1763     fi
1764   ], [
1765     HAVE_OPENCV="no"
1766   ])
1767   OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1768   AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1769   AC_SUBST(OPENCV_PREFIX)
1770   AC_SUBST(OPENCV_CFLAGS)
1771   AC_SUBST(OPENCV_LIBS)
1772 ])
1773
1774 dnl *** OpenEXR ***
1775 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1776 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1777   AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1778 ])
1779
1780 dnl *** OpenJPEG ***
1781 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1782 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1783   HAVE_OPENJPEG="no"
1784   
1785   AG_GST_CHECK_LIBHEADER(OPENJPEG, openjp2, opj_version, ,openjpeg-2.0/openjpeg.h, OPENJPEG_LIBS="-lopenjp2")
1786   if test x"$HAVE_OPENJPEG" = x"no"; then
1787     PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1788       HAVE_OPENJPEG="yes",
1789       AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1790     )
1791     if test x"$HAVE_OPENJPEG" = x"yes"; then
1792       AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1793     fi
1794   fi
1795   AC_SUBST(OPENJPEG_CFLAGS)
1796   AC_SUBST(OPENJPEG_LIBS)
1797 ])
1798
1799 dnl *** OpenNI2 ***
1800 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1801 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1802   PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1803   AC_SUBST(OPENNI2_CFLAGS)
1804   AC_SUBST(OPENNI2_LIBS)
1805 ])
1806
1807 dnl *** Opus ***
1808 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1809 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1810   PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1811           AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1812           HAVE_OPUS="yes"
1813   ], [
1814           HAVE_OPUS="no"
1815   ])
1816   AC_SUBST(OPUS_CFLAGS)
1817   AC_SUBST(OPUS_LIBS)
1818 ])
1819
1820 dnl *** pvr ***
1821 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
1822 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
1823   PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
1824   AC_SUBST(PVR_CFLAGS)
1825   AC_SUBST(PVR_LIBS)
1826 ])
1827
1828  AC_ARG_WITH([pvr-external-headers],
1829               AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
1830               [AS_IF([test "x$with_pvr_external_headers" = "xno"],
1831                      [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
1832               [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
1833
1834 dnl *** rsvg ***
1835 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1836 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1837   PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36 cairo, [
1838     HAVE_RSVG="yes"
1839     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")
1840     if test "x$HAVE_RSVG_2_36_2" = "xyes"; then
1841       AC_DEFINE(HAVE_RSVG_2_36_2, [1], [Have RSVG 2.36.2 or newer])
1842     fi
1843   ], [
1844     HAVE_RSVG="no"
1845   ])
1846   AC_SUBST(RSVG_CFLAGS)
1847   AC_SUBST(RSVG_LIBS)
1848 ])
1849
1850 dnl *** eglgles ***
1851 translit(dnm, m, l) AM_CONDITIONAL(USE_EGLGLES, true)
1852 AG_GST_CHECK_FEATURE(EGLGLES, [eglgles sink], eglgles, [
1853   HAVE_EGLGLES="no"
1854
1855   if test x"$HAVE_EGL" = x"yes"; then
1856       PKG_CHECK_MODULES(EGLGLES, egl glesv2, HAVE_EGLGLES="yes", [
1857         HAVE_EGLGLES="no"
1858         old_LIBS=$LIBS
1859         old_CFLAGS=$CFLAGS
1860
1861         LIBS="$LIBS $EGL_LIBS"
1862         CFLAGS="$CFLAGS $EGL_CFLAGS"
1863         AC_CHECK_LIB([GLESv2], [glEnable],
1864           [
1865             AC_CHECK_HEADER([GLES2/gl2.h],
1866               [
1867                  HAVE_EGLGLES="yes"
1868                  EGLGLES_LIBS="-lGLESv2"
1869                  EGLGLES_CFLAGS=""
1870               ])
1871           ])
1872         LIBS=$old_LIBS
1873         CFLAGS=$old_CFLAGS
1874       ])
1875   elif test x"$HAVE_IOS" = x"yes"; then
1876       HAVE_EGLGLES="yes"
1877   fi
1878
1879   AC_SUBST(EGLGLES_CFLAGS)
1880   AC_SUBST(EGLGLES_LIBS)
1881 ])
1882
1883 dnl *** timidity ***
1884 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
1885 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
1886   PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
1887     HAVE_TIMIDITY="yes",
1888         AC_MSG_CHECKING([for timidity.cfg])
1889         timidity_cfg=""
1890         if test -r /etc/timidity.cfg; then
1891           timidity_cfg=/etc/timidity.cfg
1892         elif test -r /etc/timidity/timidity.cfg; then
1893           timidity_cfg=/etc/timidity/timidity.cfg
1894         elif test -r /usr/share/timidity/timidity.cfg; then
1895           timidity_cfg=/usr/share/timidity/timidity.cfg
1896         elif test -r /usr/local/share/timidity/timidity.cfg; then
1897           timidity_cfg=/usr/local/share/timidity/timidity.cfg
1898         fi
1899         if test "x$timidity_cfg" != "x"; then
1900           AC_MSG_RESULT($timidity_cfg)
1901       AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
1902         else
1903           AC_MSG_RESULT([not found])
1904         fi
1905   ], [
1906     HAVE_TIMIDITY="no"
1907   ])
1908   AC_SUBST(TIMIDITY_CFLAGS)
1909   AC_SUBST(TIMIDITY_LIBS)
1910 ])
1911
1912 dnl *** teletextdec ***
1913 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
1914 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
1915   AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
1916  ])
1917
1918 dnl *** wildmidi ***
1919 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
1920 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
1921   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
1922                          WildMidi_Init, ,
1923                          wildmidi_lib.h,
1924                          WILDMIDI_LIBS="-lWildMidi")
1925   AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
1926
1927   if test "x$HAVE_WILDMIDI" = "xyes"; then
1928          WILDMIDI_CFLAGS=
1929          WILDMIDI_LIBS=-lWildMidi
1930          AC_MSG_NOTICE(compiling gstWildMidi)
1931   else
1932          WILDMIDI_CFLAGS=
1933          WILDMIDI_LIBS=
1934          AC_MSG_WARN(no WildMidi library found (libWildMidi))
1935   fi
1936   AC_SUBST(WILDMIDI_CFLAGS)
1937   AC_SUBST(WILDMIDI_LIBS)
1938 ])
1939
1940 dnl *** SDL ***
1941 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
1942 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
1943     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
1944 ])
1945
1946 dnl **** Smooth Streaming ****
1947 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
1948 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
1949   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
1950     [HAVE_LIBXML2="yes"
1951      HAVE_SMOOTHSTREAMING="yes"],
1952     [HAVE_LIBXML2="no"
1953      HAVE_SMOOTHSTREAMING="no"])
1954   AC_SUBST(LIBXML2_CFLAGS)
1955   AC_SUBST(LIBXML2_LIBS)
1956 ])
1957
1958 dnl *** sndfile ***
1959 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
1960 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
1961   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
1962   AC_SUBST(SNDFILE_CFLAGS)
1963   AC_SUBST(SNDFILE_LIBS)
1964 ])
1965
1966 dnl *** soundtouch ***
1967 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
1968 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
1969   dnl We only need -lBPM on soundtouch < 1.4
1970   dnl We check for libSoundTouch since Debian used it before upstream
1971   dnl added a pkgconfig file.
1972   HAVE_SOUNDTOUCH_1_4=yes
1973   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
1974     [HAVE_SOUNDTOUCH=yes],
1975     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
1976       [HAVE_SOUNDTOUCH=yes],
1977       [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
1978         [HAVE_SOUNDTOUCH=yes
1979           HAVE_SOUNDTOUCH_1_4=no
1980           SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
1981         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
1982           [HAVE_SOUNDTOUCH=yes],
1983           [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
1984             [HAVE_SOUNDTOUCH=yes
1985               HAVE_SOUNDTOUCH_1_4=no
1986               SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
1987             HAVE_SOUNDTOUCH=no)])])])])
1988   AC_SUBST(SOUNDTOUCH_CFLAGS)
1989   AC_SUBST(SOUNDTOUCH_LIBS)
1990   if test "x$HAVE_CXX" != "xyes"; then
1991     USE_SOUNDTOUCH=false
1992     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
1993   fi
1994   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
1995      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
1996          [Defined if the available libSoundTouch is >= 1.4])
1997   fi
1998 ])
1999
2000 dnl *** spc ***
2001 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
2002 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
2003   AC_CHECK_HEADER(openspc.h, [
2004     AC_CHECK_LIB(openspc, OSPC_Init, [
2005       SPC_LIBS="-lopenspc"
2006       AC_SUBST(SPC_LIBS)
2007       HAVE_SPC=yes
2008     ], [
2009       HAVE_SPC=no
2010     ])
2011   ], [
2012     HAVE_SPC=no
2013   ])
2014 ])
2015
2016 dnl *** gme ***
2017 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2018 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2019   AC_CHECK_HEADER(gme/gme.h, [
2020     AC_CHECK_LIB(gme, gme_new_emu, [
2021       GME_LIBS="-lgme"
2022       AC_SUBST(GME_LIBS)
2023       HAVE_GME=yes
2024     ], [
2025       HAVE_GME=no
2026     ])
2027   ], [
2028     HAVE_GME=no
2029   ])
2030
2031   if test "x$HAVE_GME" = "xyes"; then
2032     AC_CHECK_LIB(gme, gme_enable_accuracy, [
2033       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2034       ])
2035   fi
2036 ])
2037
2038 dnl *** XVID ***
2039 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
2040 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
2041   HAVE_XVID=no
2042   AC_CHECK_HEADER(xvid.h, [
2043     OLD_LIBS="$LIBS"
2044     LIBS="-lpthread $LIBM"
2045     AC_CHECK_LIB(xvidcore, xvid_encore, [
2046       AC_CHECK_LIB(xvidcore, xvid_decore, [
2047         AC_CHECK_LIB(xvidcore, xvid_global, [
2048           AC_MSG_CHECKING([for up-to-date XviD API version])
2049           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
2050               #if XVID_API_MAJOR(XVID_API) != 4
2051               #error "Incompatible XviD API version"
2052               #endif
2053               #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
2054               #error "Incompatible XviD API version"
2055               #endif
2056           ]])],[ AC_MSG_RESULT(yes)
2057             XVID_LIBS="-lxvidcore $LIBM"
2058             AC_SUBST(XVID_LIBS)
2059             HAVE_XVID=yes
2060           ],[AC_MSG_RESULT(no) ])
2061         ], )
2062       ], )
2063     ], )
2064     LIBS="$OLD_LIBS"
2065   ], )
2066 ])
2067
2068 dnl *** dvb ***
2069 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2070 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2071   AC_MSG_CHECKING([Checking for up to date dvb installation])
2072   AC_CHECK_HEADER(linux/dvb/version.h, [
2073     AC_MSG_CHECKING([for up-to-date dvb API])
2074     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2075         #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2076         #error "Incompatible dvb API"
2077         #endif
2078     ]])], [ AC_MSG_RESULT(yes)
2079       HAVE_DVB="yes"
2080     ], [ AC_MSG_RESULT(no)
2081       HAVE_DVB="no"
2082     ])
2083   ], [HAVE_DVB="no"])
2084 ])
2085
2086 dnl *** wininet ***
2087 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
2088 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
2089   AC_MSG_CHECKING([Checking for windows internet support])
2090   AC_CHECK_HEADERS([windows.h wininet.h],
2091       [HAVE_WININET="yes"], [HAVE_WININET="no"],
2092       [AC_INCLUDES_DEFAULT
2093 #include <windows.h>])
2094 ])
2095
2096 dnl *** acm ***
2097 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
2098 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
2099   AC_MSG_CHECKING([Checking for ACM support])
2100   AC_CHECK_HEADERS([windows.h msacm.h],
2101       [HAVE_ACM="yes"
2102        AC_SUBST(ACMENC_CFLAGS)
2103        AC_SUBST(ACMMP3DEC_CFLAGS)
2104       ], [HAVE_ACM="no"],
2105       [AC_INCLUDES_DEFAULT
2106 #include <windows.h>])
2107 ])
2108
2109 dnl *** vdpau ***
2110 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2111 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2112   VDPAU_CFLAGS=
2113   VDPAU_LIBS=-lvdpau
2114   HAVE_VDPAU=no
2115
2116   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2117   [
2118     if test "$HAVE_VDPAU" = "no"; then
2119       saved_CPPFLAGS="$CPPFLAGS"
2120       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2121
2122       if test -z "$HAVE_VDPAU_H"; then
2123         dnl Didn't find VDPAU header straight away.
2124         dnl Try /usr/include/nvidia. Need to clear caching vars first
2125         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2126         unset ac_cv_header_vdpau_vdpau_h
2127         unset ac_cv_header_vdpau_vdpau_x11_h
2128         VDPAU_CFLAGS="-I/usr/include/nvidia"
2129         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2130         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2131         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2132       fi
2133
2134       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2135
2136       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2137         dnl Found the headers - look for the lib
2138         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2139         saved_LIBS="$LIBS"
2140         LIBS="$VDPAU_LIBS $saved_LIBS"
2141         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2142         LIBS="$saved_LIBS"
2143       fi
2144     fi
2145   ])
2146
2147   if test "$HAVE_VDPAU" = "yes"; then
2148     AC_MSG_NOTICE([Found up to date VDPAU installation])
2149     AC_SUBST(VDPAU_CFLAGS)
2150     AC_SUBST(VDPAU_LIBS)
2151   fi
2152 ])
2153
2154 dnl *** sbc ***
2155 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2156 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2157   AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2158 ])
2159
2160 dnl *** schroedinger ***
2161 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
2162 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
2163   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
2164 ])
2165
2166 dnl *** zbar ***
2167 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2168 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2169   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2170 ])
2171
2172 dnl *** rtmp ***
2173 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2174 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2175   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2176 ])
2177
2178 dnl *** spandsp ***
2179 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2180 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2181   PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2182     HAVE_SPANDSP="yes" ], [
2183     HAVE_SPANDSP="no"
2184   ])
2185 ])
2186 AC_SUBST(SPANDSP_CFLAGS)
2187 AC_SUBST(SPANDSP_LIBS)
2188
2189 dnl *** GSettings ***
2190 translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true)
2191 AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [
2192   AG_GST_PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.25.0)
2193   if test "x$HAVE_GSETTINGS" = "xyes"; then
2194     GLIB_GSETTINGS
2195   fi
2196 ])
2197
2198 dnl *** sndio ***
2199 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
2200 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
2201   AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
2202   if test "x$HAVE_SNDIO" = "xyes"; then
2203     AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
2204     if test "x$HAVE_SNDIO" = "xyes"; then
2205       SNDIO_LIBS=-lsndio
2206       AC_SUBST(SNDIO_LIBS)
2207     fi
2208   fi
2209 ])
2210
2211 dnl *** hls ***
2212 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2213 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2214   AM_PATH_LIBGCRYPT([1.2.0], [ HAVE_HLS="yes" ], [ HAVE_HLS="no" ])
2215 ])
2216
2217 else
2218
2219 dnl not building plugins with external dependencies,
2220 dnl but we still need to set the conditionals
2221
2222 AM_CONDITIONAL(USE_ASSRENDER, false)
2223 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2224 AM_CONDITIONAL(USE_VOAACENC, false)
2225 AM_CONDITIONAL(USE_APEXSINK, false)
2226 AM_CONDITIONAL(USE_BZ2, false)
2227 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2228 AM_CONDITIONAL(USE_CURL, false)
2229 AM_CONDITIONAL(USE_SSH2, false)
2230 AM_CONDITIONAL(USE_DASH, false)
2231 AM_CONDITIONAL(USE_DC1394, false)
2232 AM_CONDITIONAL(USE_DECKLINK, false)
2233 AM_CONDITIONAL(DECKLINK_OSX, false)
2234 AM_CONDITIONAL(USE_DIRECTFB, false)
2235 AM_CONDITIONAL(USE_WAYLAND, false)
2236 AM_CONDITIONAL(USE_DAALA, false)
2237 AM_CONDITIONAL(USE_DTS, false)
2238 AM_CONDITIONAL(USE_EXIF, false)
2239 AM_CONDITIONAL(USE_RESINDVD, false)
2240 AM_CONDITIONAL(USE_FAAC, false)
2241 AM_CONDITIONAL(USE_FAAD, false)
2242 AM_CONDITIONAL(USE_FBDEV, false)
2243 AM_CONDITIONAL(USE_FLITE, false)
2244 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2245 AM_CONDITIONAL(USE_GSM, false)
2246 AM_CONDITIONAL(USE_HLS, false)
2247 AM_CONDITIONAL(USE_KATE, false)
2248 AM_CONDITIONAL(USE_TIGER, false)
2249 AM_CONDITIONAL(USE_LADSPA, false)
2250 AM_CONDITIONAL(USE_LV2, false)
2251 AM_CONDITIONAL(USE_LIBMMS, false)
2252 AM_CONDITIONAL(USE_LINSYS, false)
2253 AM_CONDITIONAL(USE_MODPLUG, false)
2254 AM_CONDITIONAL(USE_MIMIC, false)
2255 AM_CONDITIONAL(USE_MPEG2ENC, false)
2256 AM_CONDITIONAL(USE_MPG123, false)
2257 AM_CONDITIONAL(USE_MPLEX, false)
2258 AM_CONDITIONAL(USE_MUSEPACK, false)
2259 AM_CONDITIONAL(USE_MYTHTV, false)
2260 AM_CONDITIONAL(USE_NAS, false)
2261 AM_CONDITIONAL(USE_NEON, false)
2262 AM_CONDITIONAL(USE_OFA, false)
2263 AM_CONDITIONAL(USE_OPENAL, false)
2264 AM_CONDITIONAL(USE_OPENCV, false)
2265 AM_CONDITIONAL(USE_OPENEXR, false)
2266 AM_CONDITIONAL(USE_OPENJPEG, false)
2267 AM_CONDITIONAL(USE_OPENNI2, false)
2268 AM_CONDITIONAL(USE_OPUS, false)
2269 AM_CONDITIONAL(USE_PVR, false)
2270 AM_CONDITIONAL(USE_RSVG, false)
2271 AM_CONDITIONAL(USE_EGLGLES, false)
2272 AM_CONDITIONAL(USE_TIMIDITY, false)
2273 AM_CONDITIONAL(USE_WILDMIDI, false)
2274 AM_CONDITIONAL(USE_SDL, false)
2275 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2276 AM_CONDITIONAL(USE_SNDFILE, false)
2277 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2278 AM_CONDITIONAL(USE_SPANDSP, false)
2279 AM_CONDITIONAL(USE_SPC, false)
2280 AM_CONDITIONAL(USE_SRTP, false)
2281 AM_CONDITIONAL(USE_GME, false)
2282 AM_CONDITIONAL(USE_GSETTINGS, false)
2283 AM_CONDITIONAL(USE_XVID, false)
2284 AM_CONDITIONAL(USE_DVB, false)
2285 AM_CONDITIONAL(USE_WININET, false)
2286 AM_CONDITIONAL(USE_ACM, false)
2287 AM_CONDITIONAL(USE_VDPAU, false)
2288 AM_CONDITIONAL(USE_SBC, false)
2289 AM_CONDITIONAL(USE_SCHRO, false)
2290 AM_CONDITIONAL(USE_ZBAR, false)
2291 AM_CONDITIONAL(USE_RTMP, false)
2292 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2293 AM_CONDITIONAL(USE_SNDIO, false)
2294 AM_CONDITIONAL(USE_UVCH264, false)
2295 AM_CONDITIONAL(USE_WEBP, false)
2296
2297 fi dnl of EXT plugins
2298
2299 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2300
2301 dnl Overview:
2302 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
2303 dnl GST_*:              flags shared by built objects to link against GStreamer
2304 dnl GST_ALL_LDFLAGS:    linker flags shared by all
2305 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
2306 dnl GST_LT_LDFLAGS:     library versioning of our libraries
2307 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2308
2309 dnl GST_OPTION_CFLAGS
2310 if test "x$USE_DEBUG" = xyes; then
2311    PROFILE_CFLAGS="-g"
2312 fi
2313 AC_SUBST(PROFILE_CFLAGS)
2314
2315 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2316   dnl Define _only_ during CVS (not pre-releases or releases)
2317   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2318 else
2319   DEPRECATED_CFLAGS=""
2320 fi
2321 AC_SUBST(DEPRECATED_CFLAGS)
2322
2323 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2324 dnl at make time with e.g. make ERROR_CFLAGS=""
2325 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2326 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2327 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2328 AC_SUBST(GST_OPTION_CFLAGS)
2329 AC_SUBST(GST_OPTION_CXXFLAGS)
2330 AC_SUBST(GST_OPTION_OBJCFLAGS)
2331
2332 dnl FIXME: do we want to rename to GST_ALL_* ?
2333 dnl prefer internal headers to already installed ones
2334 dnl also add builddir include for enumtypes and marshal
2335 dnl add GST_OPTION_CFLAGS, but overridable
2336 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
2337 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
2338 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
2339 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
2340 AC_SUBST(GST_CFLAGS)
2341 AC_SUBST(GST_CXXFLAGS)
2342 AC_SUBST(GST_OBJCFLAGS)
2343 AC_SUBST(GST_LIBS)
2344 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2345 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2346 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2347 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2348 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2349 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2350
2351 dnl LDFLAGS really should only contain flags, not libs - they get added before
2352 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2353 GST_ALL_LDFLAGS="-no-undefined"
2354 AC_SUBST(GST_ALL_LDFLAGS)
2355
2356 dnl GST_LIB_LDFLAGS
2357 dnl linker flags shared by all libraries
2358 dnl LDFLAGS modifier defining exported symbols from built libraries
2359 dnl (export _gst_foo but not __gst_foo)
2360 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
2361 AC_SUBST(GST_LIB_LDFLAGS)
2362
2363 dnl this really should only contain flags, not libs - they get added before
2364 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2365 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
2366 AC_SUBST(GST_PLUGIN_LDFLAGS)
2367
2368 dnl *** output files ***
2369
2370 $MKDIR_P tests/check/orc
2371
2372 dnl po/Makefile.in
2373
2374 AC_CONFIG_FILES(
2375 Makefile
2376 common/Makefile
2377 common/m4/Makefile
2378 gst-plugins-bad.spec
2379 gst/Makefile
2380 gst/accurip/Makefile
2381 gst/adpcmdec/Makefile
2382 gst/adpcmenc/Makefile
2383 gst/aiff/Makefile
2384 gst/asfmux/Makefile
2385 gst/audiofxbad/Makefile
2386 gst/audiomixer/Makefile
2387 gst/audiovisualizers/Makefile
2388 gst/autoconvert/Makefile
2389 gst/bayer/Makefile
2390 gst/camerabin2/Makefile
2391 gst/cdxaparse/Makefile
2392 gst/coloreffects/Makefile
2393 gst/dataurisrc/Makefile
2394 gst/dccp/Makefile
2395 gst/debugutils/Makefile
2396 gst/dvbsuboverlay/Makefile
2397 gst/dvdspu/Makefile
2398 gst/faceoverlay/Makefile
2399 gst/festival/Makefile
2400 gst/fieldanalysis/Makefile
2401 gst/freeverb/Makefile
2402 gst/frei0r/Makefile
2403 gst/gaudieffects/Makefile
2404 gst/geometrictransform/Makefile
2405 gst/gdp/Makefile
2406 gst/hdvparse/Makefile
2407 gst/id3tag/Makefile
2408 gst/inter/Makefile
2409 gst/interlace/Makefile
2410 gst/ivfparse/Makefile
2411 gst/ivtc/Makefile
2412 gst/jp2kdecimator/Makefile
2413 gst/jpegformat/Makefile
2414 gst/librfb/Makefile
2415 gst/liveadder/Makefile
2416 gst/midi/Makefile
2417 gst/mpegdemux/Makefile
2418 gst/mpegtsdemux/Makefile
2419 gst/mpegtsmux/Makefile
2420 gst/mpegtsmux/tsmux/Makefile
2421 gst/mpegpsmux/Makefile
2422 gst/mve/Makefile
2423 gst/mxf/Makefile
2424 gst/nuvdemux/Makefile
2425 gst/patchdetect/Makefile
2426 gst/pcapparse/Makefile
2427 gst/pnm/Makefile
2428 gst/rawparse/Makefile
2429 gst/real/Makefile
2430 gst/removesilence/Makefile
2431 gst/sdi/Makefile
2432 gst/sdp/Makefile
2433 gst/segmentclip/Makefile
2434 gst/siren/Makefile
2435 gst/smooth/Makefile
2436 gst/speed/Makefile
2437 gst/subenc/Makefile
2438 gst/stereo/Makefile
2439 gst/tta/Makefile
2440 gst/videofilters/Makefile
2441 gst/videomeasure/Makefile
2442 gst/videoparsers/Makefile
2443 gst/videosignal/Makefile
2444 gst/vmnc/Makefile
2445 gst/y4m/Makefile
2446 gst/yadif/Makefile
2447 gst-libs/Makefile
2448 gst-libs/gst/Makefile
2449 gst-libs/gst/basecamerabinsrc/Makefile
2450 gst-libs/gst/egl/Makefile
2451 gst-libs/gst/insertbin/Makefile
2452 gst-libs/gst/interfaces/Makefile
2453 gst-libs/gst/codecparsers/Makefile
2454 gst-libs/gst/mpegts/Makefile
2455 gst-libs/gst/uridownloader/Makefile
2456 sys/Makefile
2457 sys/dshowdecwrapper/Makefile
2458 sys/acmenc/Makefile
2459 sys/acmmp3dec/Makefile
2460 sys/androidmedia/Makefile
2461 sys/applemedia/Makefile
2462 sys/applemedia-nonpublic/Makefile
2463 sys/avc/Makefile
2464 sys/bluez/Makefile
2465 sys/d3dvideosink/Makefile
2466 sys/decklink/Makefile
2467 sys/directdraw/Makefile
2468 sys/directsound/Makefile
2469 sys/dshowsrcwrapper/Makefile
2470 sys/dshowvideosink/Makefile
2471 sys/dvb/Makefile
2472 sys/fbdev/Makefile
2473 sys/linsys/Makefile
2474 sys/opensles/Makefile
2475 sys/osxvideo/Makefile
2476 sys/qtwrapper/Makefile
2477 sys/mfc/Makefile
2478 sys/shm/Makefile
2479 sys/uvch264/Makefile
2480 sys/vcd/Makefile
2481 sys/vdpau/Makefile
2482 sys/pvr2d/Makefile
2483 sys/wasapi/Makefile
2484 sys/wininet/Makefile
2485 sys/winks/Makefile
2486 sys/winscreencap/Makefile
2487 tests/Makefile
2488 tests/check/Makefile
2489 tests/files/Makefile
2490 tests/examples/Makefile
2491 tests/examples/camerabin2/Makefile
2492 tests/examples/directfb/Makefile
2493 tests/examples/mpegts/Makefile
2494 tests/examples/mxf/Makefile
2495 tests/examples/opencv/Makefile
2496 tests/examples/uvch264/Makefile
2497 tests/icles/Makefile
2498 ext/voamrwbenc/Makefile
2499 ext/voaacenc/Makefile
2500 ext/assrender/Makefile
2501 ext/apexsink/Makefile
2502 ext/bz2/Makefile
2503 ext/chromaprint/Makefile
2504 ext/curl/Makefile
2505 ext/dash/Makefile
2506 ext/dc1394/Makefile
2507 ext/directfb/Makefile
2508 ext/wayland/Makefile
2509 ext/daala/Makefile
2510 ext/dts/Makefile
2511 ext/eglgles/Makefile
2512 ext/faac/Makefile
2513 ext/faad/Makefile
2514 ext/flite/Makefile
2515 ext/fluidsynth/Makefile
2516 ext/gsm/Makefile
2517 ext/hls/Makefile
2518 ext/kate/Makefile
2519 ext/ladspa/Makefile
2520 ext/lv2/Makefile
2521 ext/libmms/Makefile
2522 ext/Makefile
2523 ext/modplug/Makefile
2524 ext/mpeg2enc/Makefile
2525 ext/mpg123/Makefile
2526 ext/mimic/Makefile
2527 ext/mplex/Makefile
2528 ext/musepack/Makefile
2529 ext/mythtv/Makefile
2530 ext/nas/Makefile
2531 ext/neon/Makefile
2532 ext/ofa/Makefile
2533 ext/openal/Makefile
2534 ext/opencv/Makefile
2535 ext/openexr/Makefile
2536 ext/openjpeg/Makefile
2537 ext/openni2/Makefile
2538 ext/opus/Makefile
2539 ext/rsvg/Makefile
2540 ext/resindvd/Makefile
2541 ext/rtmp/Makefile
2542 ext/sbc/Makefile
2543 ext/schroedinger/Makefile
2544 ext/sdl/Makefile
2545 ext/smoothstreaming/Makefile
2546 ext/sndfile/Makefile
2547 ext/soundtouch/Makefile
2548 ext/spandsp/Makefile
2549 ext/sndio/Makefile
2550 ext/srtp/Makefile
2551 ext/teletextdec/Makefile
2552 ext/gme/Makefile
2553 ext/gsettings/Makefile
2554 ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml
2555 ext/spc/Makefile
2556 ext/timidity/Makefile
2557 ext/webp/Makefile
2558 ext/xvid/Makefile
2559 ext/zbar/Makefile
2560 po/Makefile.in
2561 docs/Makefile
2562 docs/plugins/Makefile
2563 docs/libs/Makefile
2564 docs/version.entities
2565 pkgconfig/Makefile
2566 pkgconfig/gstreamer-plugins-bad.pc
2567 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2568 pkgconfig/gstreamer-codecparsers.pc
2569 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2570 pkgconfig/gstreamer-insertbin.pc
2571 pkgconfig/gstreamer-insertbin-uninstalled.pc
2572 pkgconfig/gstreamer-egl.pc
2573 pkgconfig/gstreamer-egl-uninstalled.pc
2574 pkgconfig/gstreamer-mpegts.pc
2575 pkgconfig/gstreamer-mpegts-uninstalled.pc
2576 tools/Makefile
2577 m4/Makefile
2578 )
2579
2580 dnl Create the config.h file for Visual Studio builds
2581 dnl Beware of spaces and /'s in some of the shell variable contents.
2582 sed \
2583     -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"/' \
2584     -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
2585     -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
2586     -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
2587     -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
2588     -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
2589     -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
2590     -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
2591     -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
2592     -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
2593     -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
2594     -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
2595     -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
2596     -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
2597     -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
2598     -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
2599     -e 's/.* LIBDIR$/#ifdef _DEBUG\n#  define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n#  define LIBDIR PREFIX "\\\\lib"\n#endif/' \
2600     -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
2601     -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
2602     -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
2603     -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
2604     -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
2605     -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
2606     -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
2607     -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/' \
2608     -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
2609     -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
2610     -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
2611     -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
2612     -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
2613     -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
2614     -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
2615     -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
2616     -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
2617     config.h.in >win32/common/config.h-new
2618
2619 AC_OUTPUT
2620
2621 AG_GST_OUTPUT_PLUGINS
2622 ORC_OUTPUT
2623