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