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