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