1 dnl autoconf configuration file for plugins
2 AC_INIT
3 dnl FIXME take something else ?
4 AC_CONFIG_SRCDIR([COPYING])
6 AC_CANONICAL_TARGET([])
8 AM_CONFIG_HEADER(config.h)
10 GST_VERSION_MAJOR=0
11 GST_VERSION_MINOR=3
12 GST_VERSION_MICRO=2
14 dnl we use a datestamped release tag and a fourth version ".1" number
15 dnl during CVS development
16 GST_VERSION_RELEASE=`date +%Y%m%d`
17 GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_MICRO.1
18 dnl we use a normal release tag increased manually when releasing
19 dnl GST_VERSION_RELEASE=1
20 dnl GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_MICRO
22 PACKAGE=gst-plugins
23 VERSION=$GST_VERSION
25 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
26 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
27 AC_SUBST(PACKAGE)
28 AC_SUBST(VERSION)
29 AC_DEFINE_UNQUOTED(GST_VERSION_RELEASE, "$GST_VERSION_RELEASE")
30 AC_SUBST(GST_VERSION_RELEASE)
32 dnl libtool
33 GST_CURRENT=2
34 GST_REVISION=0
35 GST_AGE=0
36 GST_LIBVERSION=$GST_CURRENT:$GST_REVISION:$GST_AGE
38 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
39 dnl Add parameters for aclocal
40 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
41 ACLOCAL="cat m4/*.m4 >acinclude.m4;$ACLOCAL $ACLOCAL_FLAGS"
43 AC_SUBST(GST_VERSION_MAJOR)
44 AC_SUBST(GST_VERSION_MINOR)
45 AC_SUBST(GST_VERSION_MICRO)
46 AC_SUBST(GST_VERSION)
48 AC_SUBST(GST_CURRENT)
49 AC_SUBST(GST_REVISION)
50 AC_SUBST(GST_AGE)
51 AC_SUBST(GST_LIBVERSION)
53 AM_MAINTAINER_MODE
55 AC_PROG_CC
56 AM_PROG_CC_STDC
57 AM_PROG_AS
58 AS="${CC}"
59 AC_PROG_CXX
60 AC_PROG_CXXCPP
61 AC_ISC_POSIX
63 dnl We disable static building for development, for time savings
64 dnl *NOTE*: dnl this line before release, so release does static too
65 AM_DISABLE_STATIC
66 AC_LIBTOOL_DLOPEN
67 AM_PROG_LIBTOOL
69 AC_HEADER_STDC([])
71 dnl ###########################################
72 dnl # Super Duper options for plugin building #
73 dnl ###########################################
75 dnl experimental plugins; stuff that hasn't had the dust settle yet
76 dnl read 'builds, but might not work'
77 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plugins],,
78 [HAVE_EXPERIMENTAL=yes],disabled,
79 [
80 AC_MSG_WARN(building experimental plugins)
81 USE_SMOOTHWAVE="yes"
82 USE_TARKIN="yes"
83 USE_RTP="yes"
84 ],[
85 AC_MSG_NOTICE(not building experimental plugins)
86 USE_SMOOTHWAVE="no"
87 USE_TARKIN="no"
88 USE_RTP="no"
89 ])
91 dnl broken plugins; stuff that doesn't seem to build at the moment
92 GST_CHECK_FEATURE(BROKEN, [enable building of broken plugins],,
93 HAVE_BROKEN=yes,disabled,
94 [
95 AC_MSG_WARN(building broken plugins)
96 USE_VGA="yes"
97 USE_XMMS="yes"
98 dnl AC_MSG_NOTICE(actually there are no broken plugins at the moment)
99 ],[
100 USE_VGA="no"
101 USE_XMMS="no"
102 AC_MSG_NOTICE(not building broken plugins)
103 ])
105 dnl ##############################
106 dnl # Do automated configuration #
107 dnl ##############################
109 dnl Check for tools:
110 dnl ================
112 dnl modify pkg-config path
113 AC_ARG_WITH(pkg-config-path,
114 AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
115 [export PKG_CONFIG_PATH=${withval}])
117 dnl Check for nasm
118 AC_PATH_PROG(NASM_PATH, nasm, no)
119 AC_SUBST(NASM_PATH)
120 if test x$NASM_PATH = xno; then
121 AC_MSG_WARN(Couldn't find nasm)
122 HAVE_NASM="no"
123 else
124 AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
125 HAVE_NASM="yes"
126 fi
128 dnl check for gstreamer; uninstalled is selected preferentially -- see pkg-config(1)
129 PKG_CHECK_MODULES(GST, gstreamer >= 0.3.1, HAVE_GST="yes", HAVE_GST="no")
131 if test "x$HAVE_GST" = "xno"; then
132 AC_MSG_ERROR(no GStreamer found)
133 fi
135 dnl Set up conditionals for (target) architecture:
136 dnl ==============================================
138 dnl Determine CPU
139 case "x${target_cpu}" in
140 xi?86 | k?) HAVE_CPU_I386=yes
141 AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
142 dnl FIXME could use some better detection
143 dnl (ie CPUID)
144 case "x${target_cpu}" in
145 xi386 | xi486) ;;
146 *) AC_DEFINE(HAVE_RDTSC) ;;
147 esac ;;
148 xpowerpc) HAVE_CPU_PPC=yes
149 AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
150 xalpha) HAVE_CPU_ALPHA=yes
151 AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
152 xarm*) HAVE_CPU_ARM=yes
153 AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
154 xsparc*) HAVE_CPU_SPARC=yes
155 AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
156 xmips*) HAVE_CPU_MIPS=yes
157 AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
158 xhppa*) HAVE_CPU_HPPA=yes
159 AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
160 esac
162 dnl Determine endianness
163 AC_C_BIGENDIAN
165 dnl Check for essential libraries first:
166 dnl ====================================
168 if test -n "`echo $GST_CFLAGS | grep USE_GLIB2`"; then
169 USE_GLIB2=yes
170 else
171 USE_GLIB2=no
172 fi
174 dnl needed for some plugins and demos, now's a nice time to check for gtk
175 if test x$USE_GLIB2 = xno; then
176 AM_PATH_GTK(1.2.0,,
177 AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
178 HAVE_GTK=yes
179 # we have to have it
180 else
181 PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
183 GTK_CFLAGS=$GTK2_CFLAGS
184 GTK_LIBS=$GTK2_LIBS
185 fi
186 AC_SUBST(GTK_LIBS)
187 AC_SUBST(GTK_CFLAGS)
189 dnl Check for X11 extensions
190 AC_PATH_XTRA
191 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
192 AC_MSG_NOTICE([cannot find X11, the build system needs fixage])
193 fi
194 AC_SUBST(X_CFLAGS)
195 AC_SUBST(X_PRE_LIBS)
196 AC_SUBST(X_EXTRA_LIBS)
197 AC_SUBST(X_LIBS)
199 dnl ==========================================================================
200 dnl ============================= gst plugins ================================
201 dnl ==========================================================================
202 GST_PLUGIN_LDFLAGS='-module -avoid-version'
203 AC_SUBST(GST_PLUGIN_LDFLAGS)
205 GST_PLUGINS_ALL="\
206 ac3parse adder audioscale auparse avi chart\
207 cutter deinterlace flx goom intfloat law level\
208 median mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
209 mpegaudio mpegaudioparse mpegstream mpegtypes\
210 passthrough playondemand rtjpeg silence sine\
211 smooth spectrum speed stereo stereomono\
212 synaesthesia udp videoscale volenv volume vumeter wavparse y4m"
214 AC_SUBST(GST_PLUGINS_ALL)
216 GST_PLUGINS_SELECTED=""
218 AC_ARG_WITH(plugins,
219 AC_HELP_STRING([--with-plugins],[comma-separated list of plugins to compile]),
220 [for i in `echo $withval | tr , ' '`; do
221 if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
222 GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
223 else
224 echo "plugin $i not recognized, ignoring..."
225 fi
226 done],
227 [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
229 AC_SUBST(GST_PLUGINS_SELECTED)
231 dnl ==========================================================================
232 dnl ============================= sys plugins ================================
233 dnl ==========================================================================
236 dnl *** OSS audio ***
237 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
238 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
239 AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
240 ])
242 dnl *** QuickCam ***
243 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
244 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, [
245 dnl this one is for hadess, no qcam when no nasm found
246 if test "x$HAVE_NASM" = "xno";
247 then
248 HAVE_QCAM="no"
249 AC_MSG_WARN([QuickCam needs nasm])
250 else
251 HAVE_QCAM="yes"
252 fi
253 ])
255 dnl *** Video 4 Linux ***
256 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
257 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
258 AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [#include <linux/videodev.h>])
259 ])
261 dnl *** Video CD ***
262 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
263 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
264 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
265 ])
267 dnl *** VGA ***
268 translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
269 GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
270 AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
271 ])
273 dnl *** XVideo ***
274 dnl Look for the PIC library first, Debian requires it.
275 dnl Check debian-devel archives for gory details.
276 dnl 20020110:
277 dnl At the moment XFree86 doesn't distribute shared libXv due
278 dnl to unstable API. On many platforms you CAN NOT link a shared
279 dnl lib to a static non-PIC lib. This is what the xvideo GStreamer
280 dnl plugin wants to do. So Debian distributes a PIC compiled
281 dnl version of the static lib for plugins to link to when it is
282 dnl inappropriate to link the main application to libXv directly.
283 dnl FIXME: add check if this platform can support linking to a
284 dnl non-PIC libXv, if not then don not use Xv.
285 dnl FIXME: perhaps warn user if they have a shared libXv since
286 dnl this is an error until XFree86 starts shipping one
287 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
288 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink, [
289 dnl check for PIC static lib
290 GST_CHECK_LIBHEADER(XVIDEO, Xv_pic, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h, XVIDEO_LIBS="-lXv_pic -lXext")
291 if test x$HAVE_XVIDEO = xno; then
292 dnl PIC lib not found, check for regular lib
293 GST_CHECK_LIBHEADER(XVIDEO, Xv, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h, XVIDEO_LIBS="-lXv -lXext")
294 fi
295 AC_SUBST(XVIDEO_LIBS)
296 ])
298 dnl Next, check for the optional libraries:
299 dnl These are all libraries used in building plugins
300 dnl ================================================
301 dnl let's try and sort them alphabetically, shall we ?
303 echo
304 echo
305 AC_MSG_NOTICE(Checking for plugin libraries)
307 dnl *** a52dec ***
308 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
309 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
310 GST_CHECK_LIBHEADER(A52DEC, a52, a52_init, -lm, a52dec/a52.h, A52DEC_LIBS="-la52")
311 ])
313 dnl *** aalib ***
314 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
315 GST_CHECK_FEATURE(AALIB, [aasink plugin], aasink, [
316 AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
317 ])
319 dnl *** alsa ***
320 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
321 GST_CHECK_FEATURE(ALSA, [alsa plugins], gstalsa, [
322 AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
323 ])
325 dnl *** arts ***
327 dnl if mcopidl can't be found there's no use in compiling it
328 AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
329 if test "xHAVE_MCOPIDL" = "xno";
330 then
331 USE_ARTS=no
332 fi
334 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
335 GST_CHECK_FEATURE(ARTS, [arts plugins], arts, [
336 AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
337 ])
338 dnl if mcopidl can't be found there's no use in compiling it
339 AC_PATH_PROG(MCOPIDL, mcopidl, yes, no)
340 if test "xHAVE_MCOPIDL" = "xno";
341 then
342 USE_ARTS=NO
343 fi
345 dnl *** artsc ***
346 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
347 GST_CHECK_FEATURE(ARTSC, [artsd plugins], artsdsink, [
348 GST_CHECK_ARTSC()
349 ])
351 dnl *** audiofile ***
352 dnl this check uses the GST_CHECK_CONFIGPROG macro
353 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
354 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
355 translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
356 translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
357 GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
358 ])
360 dnl *** avifile ***
361 dnl this check uses the GST_CHECK_CONFIGPROG macro
362 dnl this check needs more fixing
363 dnl translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
364 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
365 GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
366 translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
367 GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
368 AVIFILE_LIBS="$AVIFILE_LIBS -lstdc++"
369 AC_SUBST(AVIFILE_LIBS)
370 ])
372 dnl *** CDParanoia ***
373 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
374 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
375 GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, -lm, cdda_interface.h, CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
376 AC_SUBST(CDPARANOIA_LIBS)
377 ])
378 dnl FIXME : add second check somehow if that is necessary
379 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
380 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
382 dnl *** dv ***
383 translit(dnm, m, l) AM_CONDITIONAL(USE_DV, true)
384 GST_CHECK_FEATURE(DV, [dv library], dv, [
385 GST_CHECK_LIBHEADER(DV, dv, dv_init, -lm $GST_CFLAGS $GST_LIBS, libdv/dv.h, DV_LIBS="-ldv")
386 AC_SUBST(DV_LIBS)
387 ])
389 dnl *** dvdread ***
390 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
391 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdsrc, [
392 GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
393 AC_SUBST(DVDREAD_LIBS)
394 ])
396 dnl **** ESound ****
397 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
398 GST_CHECK_FEATURE(ESD, [esound plugins], esdsrc esdsink, [
399 AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
400 ])
402 dnl **** festival ****
403 translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
404 GST_CHECK_FEATURE(FESTIVAL, [festival plugins], festivalsrc, [
405 dnl NOTE: just using local net connection now, add this lib check
406 dnl in the future if needed
407 dnl AC_LANG_PUSH(C++)
408 dnl dnl FIXME: took out func to check for
409 dnl dnl This check puts festival_tidy_up in extern "C".
410 dnl dnl But, at least on Debian as of 20020110, it is compiled with name
411 dnl dnl mangling C++ nonsense and symbols can't resolve
412 dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival")
413 dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival")
414 dnl AC_LANG_POP(C++)
415 dnl AC_SUBST(FESTIVAL_LIBS)
416 HAVE_FESTIVAL=yes
417 ])
419 dnl *** FLAC ***
420 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
421 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
422 GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__stream_decoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
423 AC_SUBST(FLAC_LIBS)
424 ])
426 dnl *** Gnome VFS ***
427 dnl this check uses the GST_CHECK_CONFIGPROG macro with gnome-config vfs
428 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
429 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
430 PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
431 AC_SUBST(GNOME_VFS_CFLAGS)
432 AC_SUBST(GNOME_VFS_LIBS)
433 ])
435 dnl *** gsm ***
436 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
437 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
438 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
439 if test $HAVE_GSM != "yes"; then
440 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
441 if test $HAVE_GSM = "yes"; then
442 AC_DEFINE(GSM_HEADER_IN_SUBDIR)
443 fi
444 fi
445 AC_SUBST(GSM_LIBS)
446 ])
448 dnl *** Hermes ***
449 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
450 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
451 GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
452 ], AC_SUBST(HERMES_LIBS))
454 dnl *** http ***
455 translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
456 GST_CHECK_FEATURE(HTTP, [http plugins], gsthttpsrc, [
457 dnl FIXME: need to check for header
458 GHTTP_LIBS=
459 GST_HTTPSRC_GET_TYPE=
460 if test x$USE_GLIB2 = xyes; then
461 AC_MSG_WARN(ghttp disabled for glib2.0)
462 else
463 AC_CHECK_LIB(ghttp, ghttp_request_new,
464 [HTTP_LIBS="-lghttp"
465 GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
466 HAVE_HTTP=yes
467 ], :, $LIBS)
468 fi
469 AC_SUBST(HTTP_LIBS)
470 AC_SUBST(GST_HTTPSRC_GET_TYPE)
471 ])
473 dnl *** lame ***
474 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
475 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
476 GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame")
477 ])
478 AC_SUBST(LAME_LIBS)
481 dnl FIXME : check if these CPP flags can be dealt with otherwise
482 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
483 dnl CPPFLAGS="$CPPFLAGS $GST_CFLAGS"
484 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
485 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
487 dnl *** jpeg ***
488 dnl FIXME: we could use header checks here as well IMO
489 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
490 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
491 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
492 JPEG_LIBS="-ljpeg"
493 AC_SUBST(JPEG_LIBS)
494 ])
496 dnl *** mad ***
497 dnl FIXME: we could use header checks here as well IMO
498 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
499 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
500 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
501 ])
502 AC_SUBST(MAD_LIBS)
504 dnl *** mikmod ***
505 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
506 GST_CHECK_FEATURE(MIKMOD, [mikmod plugin], mikmod, [
507 AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
508 AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
509 AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
510 ])
512 dnl *** mjpegtools ***
513 translit(dnm, m, l) AM_CONDITIONAL(USE_MJPEGTOOLS, true)
514 GST_CHECK_FEATURE(MJPEGTOOLS, [mjpegtools], jpegmmxenc jpegmmxdec, [
515 PKG_CHECK_MODULES(MJPEGTOOLS, mjpegtools, HAVE_MJPEGTOOLS="yes", HAVE_MJPEGTOOLS="no")
516 AC_SUBST(MJPEGTOOLS_LIBS)
517 AC_SUBST(MJPEGTOOLS_CFLAGS)
518 ])
520 dnl *** mpeg2dec ***
521 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
522 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [ GST_CHECK_MPEG2DEC() ])
524 dnl *** openquicktime ***
525 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
526 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
527 GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
528 AC_SUBST(OPENQUICKTIME_LIBS)
529 ])
531 dnl *** raw1394 ***
532 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
533 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
534 GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
535 AC_SUBST(RAW1394_LIBS)
536 ])
538 dnl *** rtp ***
539 dnl FIXME : adapt and make it work
540 translit(dnm, m, l) AM_CONDITIONAL(USE_RTP, true)
541 GST_CHECK_FEATURE(RTP, [RTP library], rtpenc rtpdec,[
542 AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_RTP=yes, HAVE_RTP=no, $GST_CFLAGS $GST_LIBS)
543 RTP_LIBS="-lrtp"
544 AC_SUBST(RTP_LIBS)
545 ])
548 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
549 dnl can use GST_* which should have GLIB_* info
550 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
551 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
552 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
553 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
555 dnl *** SDL ***
556 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
557 GST_CHECK_FEATURE(SDL, [SDL plugin], sdlvideosink, [
558 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
559 ])
561 dnl *** shout ***
562 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
563 GST_CHECK_FEATURE(SHOUT, [shout plugin], icecastsend, [
564 GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
565 AC_SUBST(SHOUT_LIBS)
566 ])
568 dnl *** sidplay ***
569 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
570 GST_CHECK_FEATURE(SIDPLAY, [sidplay plugin], sidplay, [
571 GST_PATH_SIDPLAY()
572 ])
574 dnl *** smoothwave ***
575 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
576 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plugin], smoothwave, [
577 if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
578 ])
580 dnl *** tarkin ***
581 dnl for now the sources are included in the plugin
582 dnl and should be moved to ext-libs/ perhaps
583 translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
584 GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
585 HAVE_TARKIN="yes"
586 ])
588 dnl *** vorbis ***
589 dnl AM_PATH_VORBIS only takes two options
590 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
591 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
592 AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
593 ])
595 dnl *** XMMS ***
596 translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
597 GST_CHECK_FEATURE(XMMS, [xmms plugin], xmms, [
598 AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
599 ])
601 dnl Check for atomic.h
602 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
603 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
604 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
605 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
606 if test x$HAVE_ATOMIC_H = xyes; then
607 AC_TRY_RUN([
608 #include "asm/atomic.h"
609 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
610 ],, [
611 # Not successful
612 if test x$HAVE_ATOMIC_H = xyes; then
613 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
614 fi
615 HAVE_ATOMIC_H=no
616 ], [
617 # Cross compiling
618 AC_MSG_RESULT(yes)
619 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
620 ])
621 fi
623 dnl ######################################################################
624 dnl # Check command line parameters, and set shell variables accordingly #
625 dnl ######################################################################
627 AC_ARG_ENABLE(libmmx,
628 [ --enable-libmmx use libmmx, if available],
629 [case "${enableval}" in
630 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
631 no) USE_LIBMMX=no ;;
632 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
633 esac],
634 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
636 AC_ARG_ENABLE(atomic,
637 [ --enable-atomic use atomic reference counting header],
638 [case "${enableval}" in
639 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
640 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
641 no) USE_ATOMIC_H=no;;
642 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
643 esac],
644 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
646 AC_ARG_ENABLE(profiling,
647 [ --enable-profiling adds -pg to compiler commandline, for profiling],
648 [case "${enableval}" in
649 yes) USE_PROFILING=yes ;;
650 no) UES_PROFILING=no ;;
651 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
652 esac],
653 [USE_PROFILING=no]) dnl Default value
655 AC_ARG_ENABLE(tests,
656 [ --disable-tests disable building test apps],
657 [case "${enableval}" in
658 yes) BUILD_TESTS=yes ;;
659 no) BUILD_TESTS=no ;;
660 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
661 esac],
662 [BUILD_TESTS=yes]) dnl Default value
664 AC_ARG_ENABLE(examples,
665 [ --disable-examples disable building examples],
666 [case "${enableval}" in
667 yes) BUILD_EXAMPLES=yes ;;
668 no) BUILD_EXAMPLES=no ;;
669 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
670 esac],
671 [BUILD_EXAMPLES=yes]) dnl Default value
673 dnl ################################################
674 dnl # Set defines according to variables set above #
675 dnl ################################################
678 if test "x$USE_LIBMMX" = xyes; then
679 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
680 fi
682 if test "x$USE_ATOMIC_H" = xyes; then
683 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
684 fi
686 dnl if test "x$USE_DEBUG" = xyes; then
687 dnl CFLAGS="$CFLAGS -g"
688 dnl fi
690 if test "x$USE_PROFILING" = xyes; then
691 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
692 FOMIT_FRAME_POINTER=""
693 else
694 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
695 fi
697 dnl
698 dnl AC_SUBST(FOMIT_FRAME_POINTER)
699 dnl
701 dnl #############################
702 dnl # Set automake conditionals #
703 dnl #############################
705 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
706 dnl HAVE_ and it is likely to be easier to stick with the old name
707 AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
708 AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
709 AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
710 AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
711 AM_CONDITIONAL(HAVE_CPU_SPARC, test "x$HAVE_CPU_SPARC" = "xyes")
712 AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
714 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
716 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
717 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
719 AM_CONDITIONAL(HAVE_LIBMIKMOD, test "x$HAVE_LIBMIKMOD" = "xyes")
720 AM_CONDITIONAL(HAVE_LIBSDL, test "x$HAVE_LIBSDL" = "xyes")
721 AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
722 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
723 AM_CONDITIONAL(HAVE_GNOME, test "x$HAVE_GNOME" = "xyes")
724 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
725 AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
726 AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
727 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
728 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
729 AM_CONDITIONAL(BUILD_PLUGIN_DOCS, test "x$BUILD_PLUGIN_DOCS" = "xyes")
730 AM_CONDITIONAL(HAVE_PDFXMLTEX, $HAVE_PDFXMLTEX)
731 AM_CONDITIONAL(HAVE_PDFTOPS, $HAVE_PDFTOPS)
732 AM_CONDITIONAL(HAVE_XSLTPROC, $HAVE_XSLTPROC)
733 AM_CONDITIONAL(HAVE_FIG2DEV_PNG, $HAVE_FIG2DEV_PNG)
734 AM_CONDITIONAL(HAVE_FIG2DEV_PDF, $HAVE_FIG2DEV_PDF)
735 AM_CONDITIONAL(HAVE_LIBRTP, test "x$HAVE_LIBRTP" = "xyes")
736 AM_CONDITIONAL(HAVE_ARTS, test "x$HAVE_ARTS" = "xyes")
737 AM_CONDITIONAL(HAVE_RAW1394, test "x$HAVE_RAW1394" = "xyes")
738 AM_CONDITIONAL(HAVE_LIBDV, test "x$HAVE_LIBDV" = "xyes")
739 AM_CONDITIONAL(HAVE_GNOME_VFS, test "x$HAVE_GNOME_VFS" = "xyes")
740 AM_CONDITIONAL(HAVE_LIBGSM, test "x$HAVE_LIBGSM" = "xyes")
741 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
744 GST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir)/gst-libs -Wall"
745 AC_SUBST(GST_LIBS)
746 AC_SUBST(GST_CFLAGS)
748 dnl #########################
749 dnl # Make the output files #
750 dnl #########################
752 AC_OUTPUT(
753 Makefile
754 gstreamer-libs.pc
755 gstreamer-libs-uninstalled.pc
756 gst-plugins.spec
757 gst/Makefile
758 gst/ac3parse/Makefile
759 gst/adder/Makefile
760 gst/audioscale/Makefile
761 gst/auparse/Makefile
762 gst/avi/Makefile
763 gst/chart/Makefile
764 gst/cutter/Makefile
765 gst/deinterlace/Makefile
766 gst/flx/Makefile
767 gst/goom/Makefile
768 gst/intfloat/Makefile
769 gst/law/Makefile
770 gst/level/Makefile
771 gst/median/Makefile
772 gst/mpeg1enc/Makefile
773 gst/mpeg1sys/Makefile
774 gst/mpeg1videoparse/Makefile
775 gst/mpeg2enc/Makefile
776 gst/mpeg2sub/Makefile
777 gst/mpegaudio/Makefile
778 gst/mpegaudioparse/Makefile
779 gst/mpegstream/Makefile
780 gst/mpegtypes/Makefile
781 gst/passthrough/Makefile
782 gst/playondemand/Makefile
783 gst/rtjpeg/Makefile
784 gst/silence/Makefile
785 gst/sine/Makefile
786 gst/smooth/Makefile
787 gst/spectrum/Makefile
788 gst/speed/Makefile
789 gst/stereo/Makefile
790 gst/stereomono/Makefile
791 gst/synaesthesia/Makefile
792 gst/udp/Makefile
793 gst/videoscale/Makefile
794 gst/volenv/Makefile
795 gst/volume/Makefile
796 gst/vumeter/Makefile
797 gst/wavparse/Makefile
798 gst/y4m/Makefile
799 sys/Makefile
800 sys/oss/Makefile
801 sys/qcam/Makefile
802 sys/v4l/Makefile
803 sys/vcd/Makefile
804 sys/vga/Makefile
805 sys/xvideo/Makefile
806 ext/Makefile
807 ext/a52dec/Makefile
808 ext/aalib/Makefile
809 ext/alsa/Makefile
810 ext/arts/Makefile
811 ext/artsd/Makefile
812 ext/audiofile/Makefile
813 ext/avifile/Makefile
814 ext/cdparanoia/Makefile
815 ext/dv/Makefile
816 ext/dvdread/Makefile
817 ext/esd/Makefile
818 ext/festival/Makefile
819 ext/flac/Makefile
820 ext/gnomevfs/Makefile
821 ext/gsm/Makefile
822 ext/hermes/Makefile
823 ext/http/Makefile
824 ext/jpeg/Makefile
825 ext/ladspa/Makefile
826 ext/lame/Makefile
827 ext/mad/Makefile
828 ext/mikmod/Makefile
829 ext/mjpegtools/Makefile
830 ext/mpeg2dec/Makefile
831 ext/openquicktime/Makefile
832 ext/raw1394/Makefile
833 ext/rtp/Makefile
834 ext/sdl/Makefile
835 ext/shout/Makefile
836 ext/sidplay/Makefile
837 ext/smoothwave/Makefile
838 ext/vorbis/Makefile
839 ext/tarkin/Makefile
840 ext/xmms/Makefile
841 gst-libs/Makefile
842 gst-libs/gst/Makefile
843 gst-libs/gst/audio/Makefile
844 gst-libs/gst/idct/Makefile
845 gst-libs/gst/resample/Makefile
846 gst-libs/gst/riff/Makefile
847 examples/capsfilter/Makefile
848 examples/Makefile
849 tools/Makefile
850 )
852 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
853 echo
854 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"
855 echo