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