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