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