5bca237d5c07c6aac9857f39dd76b82a8ab47fd7
[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, 2)
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) ;;
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)
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 *** lame ***
430 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
431 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
432 GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame")
433 ])
434 AC_SUBST(LAME_LIBS)
435
436
437 dnl FIXME : check if these CPP flags can be dealt with otherwise
438 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
439 dnl CPPFLAGS="$CPPFLAGS $GST_CFLAGS"
440 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
441 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
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 *** mad ***
453 dnl FIXME: we could use header checks here as well IMO
454 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
455 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
456   AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
457   if test "x$HAVE_MAD" = "xyes"; then
458     # installed with mad >= 0.14
459     HAVE_MAD="no"
460     save_libs=$LIBS
461     LIBS="-lz"
462     AC_CHECK_LIB(id3tag, id3_tag_query, HAVE_MAD="yes" MAD_LIBS="$MAD_LIBS -lid3tag")
463     LIBS=$save_LIBS
464   fi    
465 ])
466 AC_SUBST(MAD_LIBS)
467
468 dnl *** mikmod ***
469 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
470 GST_CHECK_FEATURE(MIKMOD, [mikmod plugin], mikmod, [
471   AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
472   AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
473   AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
474 ])
475
476 dnl *** mjpegtools ***
477 translit(dnm, m, l) AM_CONDITIONAL(USE_MJPEGTOOLS, true)
478 GST_CHECK_FEATURE(MJPEGTOOLS, [mjpegtools], jpegmmxenc jpegmmxdec, [
479   PKG_CHECK_MODULES(MJPEGTOOLS, mjpegtools, HAVE_MJPEGTOOLS="yes", HAVE_MJPEGTOOLS="no")
480   AC_SUBST(MJPEGTOOLS_LIBS)
481   AC_SUBST(MJPEGTOOLS_CFLAGS)
482 ])
483
484 dnl *** mpeg2dec ***
485 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
486 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [ GST_CHECK_MPEG2DEC() ])
487
488 dnl *** openquicktime ***
489 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
490 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
491   GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
492   AC_SUBST(OPENQUICKTIME_LIBS)
493 ])
494
495 dnl *** raw1394 ***
496 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
497 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
498   GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
499   AC_SUBST(RAW1394_LIBS)
500 ])
501
502 dnl *** rtp ***
503 dnl FIXME : adapt and make it work
504 translit(dnm, m, l) AM_CONDITIONAL(USE_RTP, true)
505 GST_CHECK_FEATURE(RTP, [RTP library], rtpenc rtpdec,[
506   AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_RTP=yes, HAVE_RTP=no, $GST_CFLAGS $GST_LIBS)
507   RTP_LIBS="-lrtp"
508   AC_SUBST(RTP_LIBS)
509 ])
510
511 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
512 dnl can use GST_* which should have GLIB_* info
513 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
514 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
515 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
516 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
517
518 dnl *** SDL ***
519 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
520 GST_CHECK_FEATURE(SDL, [SDL plugin], sdlvideosink, [
521  AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
522 ])
523
524 dnl *** shout ***
525 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
526 GST_CHECK_FEATURE(SHOUT, [shout plugin], icecastsend, [
527   GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
528   AC_SUBST(SHOUT_LIBS)
529 ])
530
531 dnl *** sidplay ***
532 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
533 GST_CHECK_FEATURE(SIDPLAY, [sidplay plugin], sidplay, [
534   GST_PATH_SIDPLAY()
535 ])
536
537 dnl *** smoothwave ***
538 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
539 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plugin], smoothwave, [
540   if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
541 ])
542
543 dnl *** tarkin ***
544 dnl for now the sources are included in the plugin
545 dnl and should be moved to ext-libs/ perhaps
546 translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
547 GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
548   HAVE_TARKIN="yes"
549 ])
550
551 dnl *** vorbis ***
552 dnl AM_PATH_VORBIS only takes two options
553 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
554 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
555   AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
556 ])
557
558 dnl *** XMMS ***
559 translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
560 GST_CHECK_FEATURE(XMMS, [xmms plugin], xmms, [
561   AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
562 ])
563
564 dnl Check for atomic.h
565 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
566 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
567 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
568 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
569 if test x$HAVE_ATOMIC_H = xyes; then
570   AC_TRY_RUN([
571 #include "asm/atomic.h"
572 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
573   ],, [
574     # Not successful
575     if test x$HAVE_ATOMIC_H = xyes; then
576       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
577     fi
578     HAVE_ATOMIC_H=no
579   ], [
580     # Cross compiling
581     AC_MSG_RESULT(yes)
582     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
583   ])
584 fi
585
586 dnl ######################################################################
587 dnl # Check command line parameters, and set shell variables accordingly #
588 dnl ######################################################################
589
590 GST_DEBUGINFO
591
592 AC_ARG_ENABLE(libmmx,
593 [  --enable-libmmx              use libmmx, if available],
594 [case "${enableval}" in
595   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
596   no)  USE_LIBMMX=no ;;
597   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
598 esac], 
599 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
600
601 AC_ARG_ENABLE(atomic,
602 [  --enable-atomic              use atomic reference counting header],
603 [case "${enableval}" in
604   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
605   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
606   no)  USE_ATOMIC_H=no;;
607   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
608 esac], 
609 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
610
611 AC_ARG_ENABLE(profiling,
612 [  --enable-profiling           adds -pg to compiler commandline, for profiling],
613 [case "${enableval}" in
614   yes) USE_PROFILING=yes ;;
615   no)  UES_PROFILING=no ;;
616   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
617 esac], 
618 [USE_PROFILING=no]) dnl Default value
619
620 AC_ARG_ENABLE(tests,
621 [  --disable-tests              disable building test apps],
622 [case "${enableval}" in
623   yes) BUILD_TESTS=yes ;;
624   no)  BUILD_TESTS=no ;;
625   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
626 esac], 
627 [BUILD_TESTS=yes]) dnl Default value
628
629 AC_ARG_ENABLE(examples,
630 [  --disable-examples           disable building examples],
631 [case "${enableval}" in
632   yes) BUILD_EXAMPLES=yes ;;
633   no)  BUILD_EXAMPLES=no ;;
634   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
635 esac], 
636 [BUILD_EXAMPLES=yes]) dnl Default value
637
638 dnl ################################################
639 dnl # Set defines according to variables set above #
640 dnl ################################################
641
642
643 if test "x$USE_LIBMMX" = xyes; then
644   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
645 fi
646
647 if test "x$USE_ATOMIC_H" = xyes; then
648   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
649 fi
650
651 dnl if test "x$USE_DEBUG" = xyes; then
652 dnl   CFLAGS="$CFLAGS -g"
653 dnl fi
654
655 if test "x$USE_PROFILING" = xyes; then
656 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
657   FOMIT_FRAME_POINTER=""
658 else
659   FOMIT_FRAME_POINTER="-fomit-frame-pointer"
660 fi
661
662 dnl
663 dnl AC_SUBST(FOMIT_FRAME_POINTER)
664 dnl
665
666 dnl #############################
667 dnl # Set automake conditionals #
668 dnl #############################
669
670 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
671 dnl HAVE_ and it is likely to be easier to stick with the old name
672 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
673 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
674 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
675 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
676 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
677 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
678
679 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
680
681 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
682 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
683
684 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
685 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
686 AM_CONDITIONAL(HAVE_GNOME,          test "x$HAVE_GNOME" = "xyes")
687 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
688 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
689 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
690 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
691 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
692 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
693 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
694 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
695 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
696
697 GST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir)/gst-libs -Wall"
698 AC_SUBST(GST_LIBS)
699 AC_SUBST(GST_CFLAGS)
700
701 dnl #########################
702 dnl # Make the output files #
703 dnl #########################
704
705 dnl testsuite/autoplug/Makefile
706 dnl testsuite/Makefile
707 AC_CONFIG_FILES(
708 Makefile
709 gstreamer-libs.pc
710 gstreamer-libs-uninstalled.pc
711 gst-plugins.spec
712 gst/Makefile
713 gst/ac3parse/Makefile
714 gst/adder/Makefile
715 gst/audioscale/Makefile
716 gst/auparse/Makefile
717 gst/avi/Makefile
718 gst/chart/Makefile
719 gst/cutter/Makefile
720 gst/deinterlace/Makefile
721 gst/flx/Makefile
722 gst/goom/Makefile
723 gst/intfloat/Makefile
724 gst/law/Makefile
725 gst/level/Makefile
726 gst/median/Makefile
727 gst/mpeg1enc/Makefile
728 gst/mpeg1sys/Makefile
729 gst/mpeg1videoparse/Makefile
730 gst/mpeg2enc/Makefile
731 gst/mpeg2sub/Makefile
732 gst/mpegaudio/Makefile
733 gst/mpegaudioparse/Makefile
734 gst/mpegstream/Makefile
735 gst/mpegtypes/Makefile
736 gst/modplug/Makefile
737 gst/modplug/libmodplug/Makefile
738 gst/monoscope/Makefile
739 gst/passthrough/Makefile
740 gst/playondemand/Makefile
741 gst/rtjpeg/Makefile
742 gst/silence/Makefile
743 gst/sine/Makefile
744 gst/smooth/Makefile
745 gst/spectrum/Makefile
746 gst/speed/Makefile
747 gst/stereo/Makefile
748 gst/stereomono/Makefile
749 gst/synaesthesia/Makefile
750 gst/udp/Makefile
751 gst/videoscale/Makefile
752 gst/volenv/Makefile
753 gst/volume/Makefile
754 gst/vumeter/Makefile
755 gst/wavparse/Makefile
756 gst/y4m/Makefile
757 sys/Makefile
758 sys/oss/Makefile
759 sys/qcam/Makefile
760 sys/v4l/Makefile
761 sys/vcd/Makefile
762 sys/vga/Makefile
763 sys/xvideo/Makefile
764 sys/videosink/Makefile
765 ext/Makefile
766 ext/a52dec/Makefile
767 ext/aalib/Makefile
768 ext/alsa/Makefile
769 ext/arts/Makefile
770 ext/artsd/Makefile
771 ext/audiofile/Makefile
772 ext/avifile/Makefile
773 ext/cdparanoia/Makefile
774 ext/dv/Makefile
775 ext/dvdread/Makefile
776 ext/esd/Makefile
777 ext/festival/Makefile
778 ext/flac/Makefile
779 ext/gnomevfs/Makefile
780 ext/gsm/Makefile
781 ext/hermes/Makefile
782 ext/http/Makefile
783 ext/jpeg/Makefile
784 ext/ladspa/Makefile
785 ext/lame/Makefile
786 ext/mad/Makefile
787 ext/mikmod/Makefile
788 ext/mjpegtools/Makefile
789 ext/mpeg2dec/Makefile
790 ext/openquicktime/Makefile
791 ext/raw1394/Makefile
792 ext/rtp/Makefile
793 ext/sdl/Makefile
794 ext/shout/Makefile
795 ext/sidplay/Makefile
796 ext/smoothwave/Makefile
797 ext/vorbis/Makefile
798 ext/tarkin/Makefile
799 ext/xmms/Makefile
800 gst-libs/Makefile
801 gst-libs/gst/Makefile
802 gst-libs/gst/audio/Makefile
803 gst-libs/gst/idct/Makefile
804 gst-libs/gst/resample/Makefile
805 gst-libs/gst/riff/Makefile
806 examples/capsfilter/Makefile
807 examples/Makefile
808 tools/Makefile
809 )
810
811 AC_OUTPUT
812
813 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
814 echo
815 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"
816 echo