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