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