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