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