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