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