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