gst/multipart/multipartmux.c: Push header in a separate buffer instead of memcpy...
[platform/upstream/gst-plugins-good.git] / configure.ac
1 AC_PREREQ(2.52)
2
3 dnl please read gstreamer/docs/random/autotools before changing this file
4
5 dnl initialize autoconf
6 dnl releases only do -Wall, cvs and prerelease does -Werror too
7 dnl use a three digit version number for releases, and four for cvs/pre
8 AC_INIT(GStreamer Good Plug-ins, 0.10.4.1,
9     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
10     gst-plugins-good)
11
12 dnl initialize automake
13 AM_INIT_AUTOMAKE
14
15 dnl define PACKAGE_VERSION_* variables
16 AS_VERSION
17
18 dnl check if this is a release version
19 AS_NANO(GST_CVS="no", GST_CVS="yes")
20
21 dnl can autoconf find the source ?
22 AC_CONFIG_SRCDIR([gst/law/alaw.c])
23
24 dnl define the output header for config
25 AM_CONFIG_HEADER([config.h])
26
27 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
28 AM_MAINTAINER_MODE
29
30 dnl sets host_* variables
31 AC_CANONICAL_HOST
32
33 dnl our libraries and install dirs use major.minor as a version
34 GST_MAJORMINOR=$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR
35 dnl we override it here if we need to for the release candidate of new series
36 GST_MAJORMINOR=0.10
37 AC_SUBST(GST_MAJORMINOR)
38
39 dnl FIXME: this macro doesn't actually work;
40 dnl the generated libtool script has no support for the listed tags.
41 dnl So this needs to be fixed first if we want to use this
42 dnl AS_LIBTOOL_TAGS
43
44 AM_PROG_LIBTOOL
45
46 dnl *** required versions of GStreamer stuff ***
47 GST_REQ=0.10.10.1
48 GSTPB_REQ=0.10.10.1
49
50 dnl *** autotools stuff ****
51
52 dnl allow for different autotools
53 AS_AUTOTOOLS_ALTERNATE
54
55 dnl Add parameters for aclocal
56 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
57
58 dnl set up gettext
59 dnl the version check needs to stay here because autopoint greps for it
60 AM_GNU_GETTEXT_VERSION([0.11.5])
61 AM_GNU_GETTEXT([external])
62 GST_GETTEXT([gst-plugins-good-$GST_MAJORMINOR])
63
64 dnl *** check for arguments to configure ***
65
66 GST_ARG_DEBUG
67 GST_ARG_PROFILING
68 GST_ARG_VALGRIND
69 GST_ARG_GCOV
70
71 GST_ARG_EXAMPLES
72
73 GST_ARG_WITH_PKG_CONFIG_PATH
74 GST_ARG_WITH_PACKAGE_NAME
75 GST_ARG_WITH_PACKAGE_ORIGIN
76
77 dnl these are all the gst plug-ins, compilable without additional libs
78 dnl videofilter is at the top because others depend on it
79 GST_PLUGINS_ALL="\
80                 videofilter \
81                 alpha \
82                 apetag \
83                 audiofx \
84                 auparse \
85                 autodetect \
86                 avi \
87                 cutter \
88                 debug \
89                 effectv \
90                 id3demux \
91                 icydemux \
92                 flx \
93                 goom \
94                 law \
95                 level \
96                 matroska \
97                 monoscope \
98                 multipart \
99                 rtp     \
100                 rtsp    \
101                 smpte   \
102                 udp     \
103                 videobox \
104                 videomixer \
105                 wavenc \
106                 wavparse \
107                 "
108 AC_SUBST(GST_PLUGINS_ALL)
109
110 GST_PLUGINS_SELECTED=""
111
112 AC_ARG_WITH(plugins,
113     AC_HELP_STRING([--with-plugins],
114       [comma-separated list of plug-ins to compile]),
115     [for i in `echo $withval | tr , ' '`; do
116         if echo $GST_PLUGINS_ALL | grep $i > /dev/null
117         then
118             GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
119         else
120             echo "plug-in $i not recognized, ignoring..."
121         fi
122     done],
123     [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
124
125 dnl disable gst plugins we might not be able to build on this
126 dnl platform: udp and rtsp (ugly but minimally invasive)
127 dnl FIXME: maybe move to sys
128 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
129 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
130
131 if test "x$HAVE_SYS_SOCKET_H" != "xyes" -a "x$HAVE_WINSOCK2_H" != "xyes"; then
132   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/udp//`
133   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/rtsp//`
134 fi
135
136 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
137   WIN32_LIBS="-lws2_32"
138   AC_SUBST(WIN32_LIBS)
139 fi
140
141 dnl disable monoscope plugin
142 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/monoscope//`
143
144 AC_SUBST(GST_PLUGINS_SELECTED)
145
146 dnl ext plug-ins; plug-ins that have external dependencies
147 GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],,
148   [HAVE_EXTERNAL=yes], enabled,
149   [
150     AC_MSG_NOTICE(building external plug-ins)
151     BUILD_EXTERNAL="yes"
152   ],[
153     AC_MSG_NOTICE(all plug-ins with external dependencies will not be built)
154     BUILD_EXTERNAL="no"
155   ])
156 AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
157
158 dnl experimental plug-ins; stuff that hasn't had the dust settle yet
159 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
160 [HAVE_EXPERIMENTAL=yes],disabled,
161 [
162   AC_MSG_WARN(building experimental plug-ins)
163   USE_GST_V4L2="yes"
164 ],[
165   AC_MSG_NOTICE(not building experimental plug-ins)
166   USE_GST_V4L2="no"
167 ])
168
169
170 dnl *** checks for platform ***
171
172 dnl * hardware/architecture *
173
174 dnl common/m4/gst-arch.m4
175 dnl check CPU type
176 GST_ARCH
177
178 dnl Determine endianness
179 AC_C_BIGENDIAN
180
181 dnl *** checks for programs ***
182
183 dnl find a compiler
184 AC_PROG_CC
185
186 dnl determine c++ compiler
187 AC_PROG_CXX
188 dnl determine if c++ is available on this system
189 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
190
191 dnl determine c++ preprocessor
192 dnl FIXME: do we need this ?
193 AC_PROG_CXXCPP
194
195 AS_PROG_OBJC
196
197 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
198 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
199
200 dnl check for gconftool-2
201 dnl this macro defines an am conditional, so it needs to be run always
202 AM_GCONF_SOURCE_2
203
204 dnl check for documentation tools
205 GTK_DOC_CHECK([1.3])
206 AS_PATH_PYTHON([2.1])
207 GST_PLUGIN_DOCS([1.3],[2.1])
208
209 dnl *** checks for libraries ***
210
211 dnl *** checks for header files ***
212
213 dnl check if we have ANSI C header files
214 AC_HEADER_STDC
215
216 dnl used in gst/rtp/gstasteriskh263.c
217 AC_CHECK_HEADERS([netinet/in.h])
218 AC_CHECK_HEADERS([winsock2.h])
219 AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes")
220
221 dnl *** checks for types/defines ***
222
223 dnl Check for FIONREAD ioctl declaration.  This check is needed
224 dnl for the UDP plugin to build on Solaris 
225 GST_CHECK_FIONREAD
226
227 dnl *** checks for structures ***
228
229 dnl *** checks for compiler characteristics ***
230
231 dnl FIXME: check if this is used; was used for floatcast.h in base
232 dnl Check for fast float to int casting as defined in C99
233 AC_C99_FUNC_LRINT
234 AC_C99_FUNC_LRINTF
235
236 dnl *** checks for library functions ***
237
238 dnl Check for mmap (needed by electricfence plugin)
239 AC_FUNC_MMAP
240 AM_CONDITIONAL(GST_HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" == "xyes")
241
242 dnl *** checks for dependancy libraries ***
243
244 dnl GLib is required
245 GST_GLIB_CHECK([2.6])
246
247 dnl liboil is required
248 PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.2, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
249 if test "x${HAVE_LIBOIL}" != xyes ; then
250   AC_ERROR([liboil-0.3 is required])
251 fi
252
253 dnl checks for gstreamer
254 dnl uninstalled is selected preferentially -- see pkg-config(1)
255 GST_CHECK_GST($GST_MAJORMINOR, [$GST_REQ])
256 GST_CHECK_GST_BASE($GST_MAJORMINOR, [$GST_REQ])
257 GST_CHECK_GST_GDP($GST_MAJORMINOR, [$GST_REQ])
258 GST_CHECK_GST_CONTROLLER($GST_MAJORMINOR, [$GST_REQ])
259 GST_CHECK_GST_CHECK($GST_MAJORMINOR, [$GST_REQ], no)
260 GST_CHECK_GST_PLUGINS_BASE($GST_MAJORMINOR, [$GSTPB_REQ])
261
262 GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
263 if test -z $GST_TOOLS_DIR; then
264   AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.])
265 fi
266 AC_SUBST(GST_TOOLS_DIR)
267
268 AC_MSG_NOTICE(Using GStreamer Core Plugins in $GST_PLUGINS_DIR)
269 AC_MSG_NOTICE(Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR)
270
271 dnl FIXME: get rid of this by making sure gstreamer-check brings it in
272 dnl check for "check", unit testing library/header
273 AM_PATH_CHECK(0.9.2, HAVE_CHECK=yes, HAVE_CHECK=no)
274 AM_CONDITIONAL(HAVE_CHECK, test "x$HAVE_CHECK" = "xyes")
275
276 dnl GTK is optional and used in examples
277 HAVE_GTK=NO
278 PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no)
279 if test "x$HAVE_GTK_22" = "xyes"; then
280   HAVE_GTK=yes
281   GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
282   AC_SUBST(GTK_VERSION)
283   GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
284   AC_SUBST(GTK_BASE_DIR)
285   GDK_PIXBUF_LIBDIR=`$PKG_CONFIG --variable=libdir gdk-pixbuf-2.0`
286   GDK_PIXBUF_PREFIXDIR=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
287   AC_SUBST(GTK_BASE_DIR)
288 else
289   PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
290 fi
291 if test "x$HAVE_GTK_20" = "xyes"; then
292   HAVE_GTK=yes
293 fi
294 GTK_CFLAGS=$GTK2_CFLAGS
295 GTK_LIBS=$GTK2_LIBS
296 AC_SUBST(GTK_LIBS)
297 AC_SUBST(GTK_CFLAGS)
298 AC_SUBST(HAVE_GTK)
299 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
300
301 dnl should we install schemas ?
302 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true)
303 GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [
304   AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
305   if test x$GCONFTOOL = xno; then
306     AC_MSG_WARN(Not installing GConf schemas)
307     HAVE_GCONFTOOL="no"
308   else
309     HAVE_GCONFTOOL="yes"
310   fi
311   AC_SUBST(HAVE_GCONFTOOL)
312 ])
313
314 dnl *** set variables based on configure arguments ***
315
316 dnl set license and copyright notice
317 GST_LICENSE="LGPL"
318 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
319 AC_SUBST(GST_LICENSE)
320
321 dnl set location of plugin directory
322 GST_SET_PLUGINDIR
323
324 dnl define an ERROR_CFLAGS Makefile variable
325 GST_SET_ERROR_CFLAGS($GST_CVS)
326
327 dnl define correct level for debugging messages
328 GST_SET_LEVEL_DEFAULT($GST_CVS)
329
330 dnl used in examples
331 GST_DEFAULT_ELEMENTS
332
333 dnl *** sys plug-ins ***
334
335 echo
336 AC_MSG_NOTICE([Checking libraries for plugins in sys/])
337 echo
338
339 dnl *** OSS audio *** (Linux, *BSD)
340 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
341 GST_CHECK_FEATURE(OSS, [OSS audio], ossaudio, [
342  HAVE_OSS="yes"
343 dnl Linux and newer BSD versions :
344  AC_CHECK_HEADER(sys/soundcard.h, [
345    AC_DEFINE(HAVE_OSS_INCLUDE_IN_SYS,, [Define if OSS includes are in /sys/])
346    ] , [
347 dnl Some old BSD versions and also newer OpenBSD versions :
348    AC_CHECK_HEADER(soundcard.h, [
349      AC_DEFINE(HAVE_OSS_INCLUDE_IN_ROOT,, [Define if OSS includes are in /])
350      ], [
351   dnl Some old BSD versions :
352      AC_CHECK_HEADER(machine/soundcard.h, [
353        AC_DEFINE(HAVE_OSS_INCLUDE_IN_MACHINE,,
354          [Define if OSS includes are in /machine/])
355        ], [
356        HAVE_OSS="no"
357      ])
358    ])
359  ])
360 ])
361
362 dnl *** Sun Audio ***
363 translit(dnm, m, l) AM_CONDITIONAL(USE_SUNAUDIO, true)
364 GST_CHECK_FEATURE(SUNAUDIO, [Sun Audio], sunaudio, [
365   AC_CHECK_HEADER(sys/audioio.h, HAVE_SUNAUDIO="yes", HAVE_SUNAUDIO="no")
366 ])
367
368 dnl *** Video 4 Linux 2 ***
369 dnl for information about the header/define, see sys/v4l2/gstv4l2element.h
370 dnl renamed to GST_V4L2 because of some conflict with kernel headers
371 translit(dnm, m, l) AM_CONDITIONAL(USE_GST_V4L2, true)
372 GST_CHECK_FEATURE(GST_V4L2, [Video 4 Linux 2], v4l2src, [
373   AC_MSG_CHECKING([Checking for uptodate v4l2 installation])
374   AC_TRY_COMPILE([
375 #include <sys/types.h>
376 #include <linux/types.h>
377 #define _LINUX_TIME_H
378 #define __user
379 #include <linux/videodev2.h>
380 #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
381 #error too early v4l2 version or no v4l2 at all
382 #endif
383     ], [
384 return 0;
385     ], [
386       HAVE_GST_V4L2="yes"
387       AC_MSG_RESULT(yes)
388     ], [
389       HAVE_GST_V4L2="no"
390       AC_MSG_RESULT(no)
391       AC_CHECK_HEADER(linux/videodev2.h,
392       [
393         AC_MSG_WARN([video4linux2 headers were found, but they're old.])
394         AC_MSG_WARN([Please update v4l2 to compile the v4l2 plugins])
395       ], [
396         AC_MSG_WARN([video4linux2 was not found])
397       ])
398     ])
399
400   if [ test x$HAVE_GST_V4L2 = xyes ]; then
401     dnl check for missing v4l2_buffer declaration (see #135919)
402     MISSING_DECL=0
403     AC_MSG_CHECKING(struct v4l2_buffer declaration)
404     AC_TRY_COMPILE([
405 #include <sys/types.h>
406 #include <linux/types.h>
407 #define _LINUX_TIME_H
408 #define __user
409 #include <linux/videodev2.h>
410     ],[
411 struct v4l2_buffer buf;
412 buf.index = 0;
413 return 0;
414     ], [ AC_MSG_RESULT(yes) ], [ MISSING_DECL=1 && AC_MSG_RESULT(no) ])
415     if [ test x$MISSING_DECL = x1 ]; then
416       AC_DEFINE(GST_V4L2_MISSING_BUFDECL, 1, [struct v4l2_buffer missing])
417     fi
418
419     dnl check for XOverlay libraries
420     GST_CHECK_XV
421   fi
422 ])
423
424 dnl Check for X11
425 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true)
426 GST_CHECK_FEATURE(X, [X libraries and plugins],
427                   [ximagesrc], [
428   AC_PATH_XTRA
429
430   dnl now try to find the HEADER
431   ac_cflags_save="$CFLAGS"
432   ac_cppflags_save="$CPPFLAGS"
433   CFLAGS="$CFLAGS $X_CFLAGS"
434   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
435   AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no")
436
437   if test "x$HAVE_X" = "xno"
438   then
439     AC_MSG_NOTICE([cannot find X11 development files])
440   else
441     dnl this is much more than we want
442     X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS"
443     dnl AC_PATH_XTRA only defines the path needed to find the X libs,
444     dnl it does not add the libs; therefore we add them here
445     X_LIBS="$X_LIBS -lX11"
446     AC_SUBST(X_CFLAGS)
447     AC_SUBST(X_LIBS)
448
449     dnl check for Xfixes
450     PKG_CHECK_MODULES(XFIXES, xfixes, HAVE_XFIXES="yes", HAVE_XFIXES="no")
451     if test "x$HAVE_XFIXES" = "xyes"
452     then
453         XFIXES_CFLAGS="-DHAVE_XFIXES $XFIXES_CFLAGS"
454     fi
455     AC_SUBST(XFIXES_LIBS)
456     AC_SUBST(XFIXES_CFLAGS)
457
458     dnl check for Xdamage
459     PKG_CHECK_MODULES(XDAMAGE, xdamage, HAVE_XDAMAGE="yes", HAVE_XDAMAGE="no")
460     if test "x$HAVE_XDAMAGE" = "xyes"
461     then
462         XDAMAGE_CFLAGS="-DHAVE_XDAMAGE $XDAMAGE_CFLAGS"
463     fi
464     AC_SUBST(XDAMAGE_LIBS)
465     AC_SUBST(XDAMAGE_CFLAGS)
466   fi
467   AC_SUBST(HAVE_X)
468   CFLAGS="$ac_cflags_save"
469   CPPFLAGS="$ac_cppflags_save"
470 ])
471
472 dnl FIXME: this should be rolled into the test above, it's just an additional
473 dnl feature of the ximagesrc plug-in
474 dnl This is the same as in gst-plugins-base
475 dnl check for X Shm
476 translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
477 GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [
478   if test x$HAVE_X = xyes; then
479     AC_CHECK_LIB(Xext, XShmAttach,
480                  HAVE_XSHM="yes", HAVE_XSHM="no",
481                  $X_LIBS)
482     if test "x$HAVE_XSHM" = "xyes"; then
483       XSHM_LIBS="-lXext"
484     else
485       dnl On AIX, it is in XextSam instead, but we still need -lXext
486       AC_CHECK_LIB(XextSam, XShmAttach,
487                    HAVE_XSHM="yes", HAVE_XSHM="no",
488                    $X_LIBS)
489       if test "x$HAVE_XSHM" = "xyes"; then
490         XSHM_LIBS="-lXext -lXextSam"
491       fi
492     fi
493   fi
494 ], ,[
495   AC_SUBST(HAVE_XSHM)
496   AC_SUBST(XSHM_LIBS)
497 ])
498
499 dnl for V4L2, we also need to know if we have XVIDEO
500 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
501 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
502                   [], [
503   GST_CHECK_XV
504 ])
505
506 dnl *** ext plug-ins ***
507 dnl keep this list sorted alphabetically !
508
509 if test "x$BUILD_EXTERNAL" = "xyes"; then
510
511 echo
512 AC_MSG_NOTICE([Checking libraries for plugins in ext/])
513 echo
514
515 dnl *** aalib ***
516 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
517 GST_CHECK_FEATURE(AALIB, [aalib ASCII Art library], aasink, [
518   AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
519   AS_SCRUB_INCLUDE(AALIB_CFLAGS)
520 ])
521
522 dnl *** annodex ***
523 translit(dnm, m, l) AM_CONDITIONAL(USE_ANNODEX, true)
524 GST_CHECK_FEATURE(ANNODEX, [XML library], annodex, [
525   GST_PKG_CHECK_MODULES(ANNODEX, libxml-2.0 >= 2.4.9)
526 ])
527
528 dnl *** cairo ***
529 translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
530 GST_CHECK_FEATURE(CAIRO, [Cairo graphics rendering], cairo, [
531   GST_PKG_CHECK_MODULES(CAIRO, cairo >= 1.0.0)
532 ])
533
534 dnl *** cdio ***
535 translit(dnm, m, l) AM_CONDITIONAL(USE_CDIO, true)
536 GST_CHECK_FEATURE(CDIO, [cdio library], cdio, [
537   GST_PKG_CHECK_MODULES(CDIO, libcdio >= 0.71)
538 ])
539
540 dnl **** ESound ****
541 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
542 GST_CHECK_FEATURE(ESD, [ESounD sound daemon], esdsink, [
543   GST_PKG_CHECK_MODULES(ESD, esound >= 0.2.12)
544   if test $HAVE_ESD = no
545   then
546     AM_PATH_ESD(0.2.12, HAVE_ESD="yes")
547     AS_SCRUB_INCLUDE(ESD_CFLAGS)
548   fi
549 ])
550
551 dnl *** FLAC ***
552 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
553 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flac, [
554   GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC -lm")
555   dnl API change in FLAC 1.1.1, so require that...
556   if test x$HAVE_FLAC = xyes; then
557     AC_CHECK_DECL(FLAC__SEEKABLE_STREAM_ENCODER_TELL_ERROR,
558                   HAVE_FLAC="yes", HAVE_FLAC="no", [
559 #include <FLAC/seekable_stream_encoder.h>
560                   ])
561   fi
562   AC_SUBST(FLAC_LIBS)
563 ])
564
565 dnl *** GConf ***
566 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true)
567 GST_CHECK_FEATURE(GCONF, [GConf libraries], gconfelements, [
568   GST_PKG_CHECK_MODULES(GCONF, gconf-2.0)
569 ])
570
571 dnl *** GDK pixbuf ***
572 translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true)
573 GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbuf, [
574   if test $HAVE_GTK_22 = "yes"; then HAVE_GDK_PIXBUF=yes; fi;
575 ])
576
577 dnl *** HAL ***
578 translit(dnm, m, l) AM_CONDITIONAL(USE_HAL, true)
579 GST_CHECK_FEATURE(HAL, [HAL libraries], halelements, [
580   GST_PKG_CHECK_MODULES(HAL, [hal >= 0.5.6, dbus-1 >= 0.32])
581 ])
582
583 dnl *** jpeg ***
584 dnl FIXME: we could use header checks here as well IMO
585 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
586 GST_CHECK_FEATURE(JPEG, [jpeg library], jpeg, [
587   AC_ARG_WITH(jpeg-mmx,
588     [  --with-jpeg-mmx, path to MMX'ified JPEG library])
589   OLD_LIBS="$LIBS"
590   if test x$with_jpeg_mmx != x; then
591     LIBS="$LIBS -L$with_jpeg_mmx"
592   fi
593   AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
594   JPEG_LIBS="$LIBS -ljpeg-mmx"
595   LIBS="$OLD_LIBS"
596   if test x$HAVE_JPEG != xyes; then
597     AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
598     JPEG_LIBS="-ljpeg"
599   fi
600   AC_SUBST(JPEG_LIBS)
601 ])
602
603 dnl *** ladspa ***
604 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
605 GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
606   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
607 ])
608
609 dnl *** libcaca ***
610 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true)
611 GST_CHECK_FEATURE(LIBCACA, [libcaca coloured ASCII art], cacasink, [
612   GST_CHECK_CONFIGPROG(LIBCACA, caca-config)
613   AC_SUBST(LIBCACA_CFLAGS)
614   AC_SUBST(LIBCACA_LIBS)
615 ])
616
617 dnl *** libdv ***
618 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
619 GST_CHECK_FEATURE(LIBDV, [libdv DV demuxer/decoder], dv, [
620   GST_PKG_CHECK_MODULES(LIBDV, libdv >= 0.100)
621 ])
622
623 dnl *** libpng ***
624 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
625 GST_CHECK_FEATURE(LIBPNG, [Portable Network Graphics library], png, [
626   GST_PKG_CHECK_MODULES(LIBPNG, libpng12)
627 ])
628
629 dnl *** dv1394 ***
630 translit(dnm, m, l) AM_CONDITIONAL(USE_DV1394, true)
631 GST_CHECK_FEATURE(DV1394, [raw1394 and avc1394 library], 1394, [
632   dnl first test for libraw1394 >= 1.2.1
633   GST_PKG_CHECK_MODULES(RAW1394, libraw1394 >= 1.2.1)
634   GST_PKG_CHECK_MODULES(LIBIEC61883, libiec61883 >= 1.0.0)
635   dnl now see how far we got
636   if test x$HAVE_RAW1394 = xyes && \
637      test x$HAVE_LIBIEC61883 = xyes; then
638        GST_CHECK_LIBHEADER(AVC1394,
639         avc1394, avc1394_send_command, $RAW1394_LIBS,
640         libavc1394/avc1394.h, AVC1394_LIBS="-lavc1394")
641        GST_CHECK_LIBHEADER(ROM1394,
642         rom1394, rom1394_free_directory, $RAW1394_LIBS,
643         libavc1394/rom1394.h, ROM1394_LIBS="-lrom1394")
644        if test x$HAVE_AVC1394 = xyes && \
645           test x$HAVE_AVC1394 = xyes && \
646           test x$HAVE_ROM1394 = xyes; then
647           HAVE_DV1394=yes
648           DV1394_LIBS="$RAW1394_LIBS $AVC1394_LIBS $ROM1394_LIBS $LIBIEC61883_LIBS"
649           DV1394_CFLAGS="$RAW1394_CFLAGS $LIBIEC61883_CFLAGS -DHAVE_LIBIEC61883"
650           AC_SUBST(DV1394_CFLAGS)
651           AC_SUBST(DV1394_LIBS)
652         fi
653   else
654        if test x$HAVE_RAW1394 = xno; then
655           GST_PKG_CHECK_MODULES(RAW1394, libraw1394 >= 1.1.0)
656           GST_CHECK_LIBHEADER(AVC1394,
657            avc1394, avc1394_send_command, $RAW1394_LIBS,
658            libavc1394/avc1394.h, AVC1394_LIBS="-lavc1394")
659           GST_CHECK_LIBHEADER(ROM1394,
660            rom1394, rom1394_free_directory, $RAW1394_LIBS,
661            libavc1394/rom1394.h, ROM1394_LIBS="-lrom1394")
662           if test x$HAVE_RAW1394 = xyes && \
663              test x$HAVE_AVC1394 = xyes && \
664              test x$HAVE_ROM1394 = xyes; then
665              HAVE_DV1394=yes
666              DV1394_LIBS="$RAW1394_LIBS $AVC1394_LIBS $ROM1394_LIBS"
667              DV1394_CFLAGS="$RAW1394_CFLAGS"
668              if test x$HAVE_LIBIEC61883 = xyes; then
669                DV1394_CFLAGS="$RAW1394_CFLAGS $LIBIEC61883_CFLAGS -DHAVE_LIBIEC61883"
670                DV1394_LIBS="$DV1394_LIBS $LIBIEC61883_LIBS"
671              fi
672              AC_SUBST(DV1394_CFLAGS)
673              AC_SUBST(DV1394_LIBS)
674            fi
675          fi
676   fi
677 ])
678
679 dnl *** shout2 ***
680 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
681 GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [
682   GST_PKG_CHECK_MODULES(SHOUT2, shout >= 2.0)
683   if test $HAVE_SHOUT2 = no
684   then
685     AM_PATH_SHOUT2(HAVE_SHOUT2="yes")
686     AC_SUBST(SHOUT2_CFLAGS)
687     AC_SUBST(SHOUT2_LIBS)
688   fi
689 ])
690
691 dnl *** speex >= 1.0.4 or >= 1.1.5 ***
692 dnl   1.1.4 and earlier were not API/ABI compatible with 1.0
693 dnl   1.1.6 is the first to use a .pc/pkg-config file ***
694 dnl   speex_jitter.h is 1.1.x only
695 translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true)
696 GST_CHECK_FEATURE(SPEEX, [speex speech codec], speex, [
697   GST_PKG_CHECK_MODULES(SPEEX, speex >= 1.1.6)
698   if test $HAVE_SPEEX = no
699   then
700     GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex/speex.h, [
701       AC_CHECK_HEADER(speex/speex_jitter.h, [
702         dnl speex 1.1.x :
703         GST_CHECK_LIBHEADER(SPEEX, speex, speex_encode_int, , speex/speex.h, [
704           dnl speex 1.1.5 or + :
705           HAVE_SPEEX="yes"
706           SPEEX_LIBS="-lspeex"
707           AC_SUBST(SPEEX_CFLAGS)
708           AC_SUBST(SPEEX_LIBS)
709         ],[
710           HAVE_SPEEX="no"
711         ])
712       ],[
713         dnl speex 1.0.x :
714           AC_CHECK_DECL(SPEEX_GET_LOOKAHEAD, [
715             dnl speex 1.0.4
716             HAVE_SPEEX="yes"
717             SPEEX_LIBS="-lspeex"
718             AC_SUBST(SPEEX_CFLAGS)
719             AC_SUBST(SPEEX_LIBS)
720
721             AC_DEFINE_UNQUOTED(SPEEX_1_0, 1,
722               [defined if speex 1.0.x API detected])
723         ],[
724             HAVE_SPEEX="no"
725             AC_MSG_NOTICE(You need at least 1.0.4 to compile the speex plugin)
726         ], [
727 #include <speex/speex.h>
728         ])
729       ])
730     ])
731   fi
732 ])
733
734 dnl *** taglib ***
735 translit(dnm, m, l) AM_CONDITIONAL(USE_TAGLIB, true)
736 GST_CHECK_FEATURE(TAGLIB, [taglib tagging library], taglib, [
737   GST_PKG_CHECK_MODULES(TAGLIB, taglib >= 1.4)
738   if test "x$HAVE_CXX" != "xyes"; then
739     USE_TAGLIB=false
740     AC_MSG_NOTICE([Not building taglib plugin: no C++ compiler found])
741   fi
742 ])
743
744 dnl *** id3demux prefers to have zlib ***
745 translit(dnm, m, l) AM_CONDITIONAL(USE_ZLIB, true)
746 GST_CHECK_FEATURE(ZLIB, [zlib support for id3demux],, [
747   GST_CHECK_LIBHEADER(ZLIB,
748     z, uncompress,, zlib.h, [
749     HAVE_ZLIB="yes"
750     ZLIB_LIBS="-lz"
751     AC_SUBST(ZLIB_LIBS)
752   ])
753 ])
754
755 else
756
757 dnl not building plugins with external dependencies,
758 dnl but we still need to set the conditionals
759 AM_CONDITIONAL(USE_GCONFTOOL, false)
760 AM_CONDITIONAL(USE_OSS, false)
761 AM_CONDITIONAL(USE_SUNAUDIO, false)
762 AM_CONDITIONAL(USE_X, false)
763 AM_CONDITIONAL(USE_XSHM, false)
764 AM_CONDITIONAL(USE_AALIB, false)
765 AM_CONDITIONAL(USE_ANNODEX, false)
766 AM_CONDITIONAL(USE_CAIRO, false)
767 AM_CONDITIONAL(USE_CDIO, false)
768 AM_CONDITIONAL(USE_ESD, false)
769 AM_CONDITIONAL(USE_FLAC, false)
770 AM_CONDITIONAL(USE_GCONF, false)
771 AM_CONDITIONAL(USE_GDK_PIXBUF, false)
772 AM_CONDITIONAL(USE_HAL, false)
773 AM_CONDITIONAL(USE_JPEG, false)
774 AM_CONDITIONAL(USE_LADSPA, false)
775 AM_CONDITIONAL(USE_LIBCACA, false)
776 AM_CONDITIONAL(USE_LIBDV, false)
777 AM_CONDITIONAL(USE_LIBPNG, false)
778 AM_CONDITIONAL(USE_DV1394, false)
779 AM_CONDITIONAL(USE_SHOUT2, false)
780 AM_CONDITIONAL(USE_SPEEX, false)
781 AM_CONDITIONAL(USE_TAGLIB, false)
782 AM_CONDITIONAL(USE_ZLIB, false)
783
784 fi dnl of EXT plugins
785
786 dnl *** finalize CFLAGS, LDFLAGS, LIBS
787
788 dnl Overview:
789 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
790 dnl GST_*:              flags shared by all built objects
791 dnl GST_ALL_LDFLAGS:    linker flags shared by all
792 dnl GST_LIB_LDFLAGS:    not needed, we don't install libraries
793 dnl GST_LT_LDFLAGS:     library versioning of our libraries
794 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
795
796 dnl GST_OPTION_CFLAGS
797 if test "x$USE_DEBUG" = xyes; then
798    PROFILE_CFLAGS="-g"
799 fi
800 AC_SUBST(PROFILE_CFLAGS)
801
802 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
803 AC_SUBST(DEPRECATED_CFLAGS)
804
805 dnl every flag in GST_OPTION_CFLAGS can be overridden at make time
806 GST_OPTION_CFLAGS="\$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
807 AC_SUBST(GST_OPTION_CFLAGS)
808
809 dnl our libraries need to be versioned correctly
810 AC_SUBST(GST_LT_LDFLAGS)
811
812 dnl FIXME: do we want to rename to GST_ALL_* ?
813 dnl prefer internal headers to already installed ones
814 dnl also add builddir include for enumtypes and marshal
815 dnl add ERROR_CFLAGS, but overridable
816 GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(GST_OPTION_CFLAGS)"
817 AC_SUBST(GST_CFLAGS)
818 AC_SUBST(GST_LIBS)
819
820 dnl LDFLAGS really should only contain flags, not libs - they get added before
821 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
822 GST_ALL_LDFLAGS="-no-undefined"
823 AC_SUBST(GST_ALL_LDFLAGS)
824
825 dnl this really should only contain flags, not libs - they get added before
826 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
827 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS"
828 AC_SUBST(GST_PLUGIN_LDFLAGS)
829
830 dnl *** output files ***
831
832 dnl keep this alphabetic per directory, please
833 AC_CONFIG_FILES(
834 Makefile
835 gst/Makefile
836 gst/alpha/Makefile
837 gst/apetag/Makefile
838 gst/audiofx/Makefile
839 gst/auparse/Makefile
840 gst/autodetect/Makefile
841 gst/avi/Makefile
842 gst/cutter/Makefile
843 gst/debug/Makefile
844 gst/effectv/Makefile
845 gst/id3demux/Makefile
846 gst/icydemux/Makefile
847 gst/goom/Makefile
848 gst/law/Makefile
849 gst/level/Makefile
850 gst/matroska/Makefile
851 gst/monoscope/Makefile
852 gst/multipart/Makefile
853 gst/rtp/Makefile
854 gst/rtsp/Makefile
855 gst/smpte/Makefile
856 gst/udp/Makefile
857 gst/videobox/Makefile
858 gst/videofilter/Makefile
859 gst/videomixer/Makefile
860 gst/wavenc/Makefile
861 gst/wavparse/Makefile
862 gst/flx/Makefile
863 ext/jpeg/Makefile
864 ext/Makefile
865 ext/aalib/Makefile
866 ext/annodex/Makefile
867 ext/cairo/Makefile
868 ext/cdio/Makefile
869 ext/dv/Makefile
870 ext/esd/Makefile
871 ext/flac/Makefile
872 ext/gconf/Makefile
873 ext/gdk_pixbuf/Makefile
874 ext/hal/Makefile
875 ext/ladspa/Makefile
876 ext/libcaca/Makefile
877 ext/libpng/Makefile
878 ext/raw1394/Makefile
879 ext/shout2/Makefile
880 ext/speex/Makefile
881 ext/taglib/Makefile
882 sys/Makefile
883 sys/oss/Makefile
884 sys/sunaudio/Makefile
885 sys/v4l2/Makefile
886 sys/ximage/Makefile
887 po/Makefile.in
888 tests/Makefile
889 tests/check/Makefile
890 tests/icles/Makefile
891 tests/examples/Makefile
892 tests/examples/level/Makefile
893 gconf/Makefile
894 gconf/gstreamer.schemas
895 common/Makefile
896 common/m4/Makefile
897 m4/Makefile
898 docs/Makefile
899 docs/plugins/Makefile
900 docs/version.entities
901 win32/common/config.h
902 pkgconfig/Makefile
903 pkgconfig/gstreamer-plugins-good-uninstalled.pc
904 gst-plugins-good.spec
905 )
906 AC_OUTPUT
907
908 GST_OUTPUT_PLUGINS