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