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