correct a condition in check-libheader.m4 remove gst a52 and mpeg2dec m4's in favor...
[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   AC_CHECK_A52DEC(HAVE_A52DEC=yes, HAVE_A52DEC=no)
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, [
508   AC_CHECK_MPEG2DEC(HAVE_MPEG2DEC=yes, HAVE_MPEG2DEC=no)
509 ])
510
511 dnl *** openquicktime ***
512 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
513 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
514   GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
515   AC_SUBST(OPENQUICKTIME_LIBS)
516 ])
517
518 dnl *** raw1394 ***
519 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
520 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
521   GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
522   AC_SUBST(RAW1394_LIBS)
523 ])
524
525 dnl *** rtp ***
526 dnl FIXME : adapt and make it work
527 translit(dnm, m, l) AM_CONDITIONAL(USE_RTP, true)
528 GST_CHECK_FEATURE(RTP, [RTP library], rtpenc rtpdec,[
529   AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_RTP=yes, HAVE_RTP=no, $GST_CFLAGS $GST_LIBS)
530   RTP_LIBS="-lrtp"
531   AC_SUBST(RTP_LIBS)
532 ])
533
534 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
535 dnl can use GST_* which should have GLIB_* info
536 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
537 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
538 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
539 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
540
541 dnl *** SDL ***
542 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
543 GST_CHECK_FEATURE(SDL, [SDL plugin], sdlvideosink, [
544  AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
545 ])
546
547 dnl *** shout ***
548 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
549 GST_CHECK_FEATURE(SHOUT, [shout plugin], icecastsend, [
550   GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
551   AC_SUBST(SHOUT_LIBS)
552 ])
553
554 dnl *** sidplay ***
555 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
556 GST_CHECK_FEATURE(SIDPLAY, [sidplay plugin], sidplay, [
557   GST_PATH_SIDPLAY()
558 ])
559
560 dnl *** smoothwave ***
561 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
562 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plugin], smoothwave, [
563   if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
564 ])
565
566 dnl *** tarkin ***
567 dnl for now the sources are included in the plugin
568 dnl and should be moved to ext-libs/ perhaps
569 translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
570 GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
571   HAVE_TARKIN="yes"
572 ])
573
574 dnl *** vorbis ***
575 dnl AM_PATH_VORBIS only takes two options
576 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
577 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
578   AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
579 ])
580
581 dnl *** XMMS ***
582 translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
583 GST_CHECK_FEATURE(XMMS, [xmms plugin], xmms, [
584   AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
585 ])
586
587 dnl Check for atomic.h
588 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
589 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
590 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
591 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
592 if test x$HAVE_ATOMIC_H = xyes; then
593   AC_TRY_RUN([
594 #include "asm/atomic.h"
595 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
596   ],, [
597     # Not successful
598     if test x$HAVE_ATOMIC_H = xyes; then
599       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
600     fi
601     HAVE_ATOMIC_H=no
602   ], [
603     # Cross compiling
604     AC_MSG_RESULT(yes)
605     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
606   ])
607 fi
608
609 dnl ######################################################################
610 dnl # Check command line parameters, and set shell variables accordingly #
611 dnl ######################################################################
612
613 GST_DEBUGINFO
614
615 AC_ARG_ENABLE(libmmx,
616 [  --enable-libmmx              use libmmx, if available],
617 [case "${enableval}" in
618   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
619   no)  USE_LIBMMX=no ;;
620   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
621 esac], 
622 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
623
624 AC_ARG_ENABLE(atomic,
625 [  --enable-atomic              use atomic reference counting header],
626 [case "${enableval}" in
627   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
628   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
629   no)  USE_ATOMIC_H=no;;
630   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
631 esac], 
632 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
633
634 AC_ARG_ENABLE(profiling,
635 [  --enable-profiling           adds -pg to compiler commandline, for profiling],
636 [case "${enableval}" in
637   yes) USE_PROFILING=yes ;;
638   no)  UES_PROFILING=no ;;
639   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
640 esac], 
641 [USE_PROFILING=no]) dnl Default value
642
643 AC_ARG_ENABLE(tests,
644 [  --disable-tests              disable building test apps],
645 [case "${enableval}" in
646   yes) BUILD_TESTS=yes ;;
647   no)  BUILD_TESTS=no ;;
648   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
649 esac], 
650 [BUILD_TESTS=yes]) dnl Default value
651
652 AC_ARG_ENABLE(examples,
653 [  --disable-examples           disable building examples],
654 [case "${enableval}" in
655   yes) BUILD_EXAMPLES=yes ;;
656   no)  BUILD_EXAMPLES=no ;;
657   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
658 esac], 
659 [BUILD_EXAMPLES=yes]) dnl Default value
660
661 dnl ################################################
662 dnl # Set defines according to variables set above #
663 dnl ################################################
664
665
666 if test "x$USE_LIBMMX" = xyes; then
667   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
668 fi
669
670 if test "x$USE_ATOMIC_H" = xyes; then
671   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
672 fi
673
674 dnl if test "x$USE_DEBUG" = xyes; then
675 dnl   CFLAGS="$CFLAGS -g"
676 dnl fi
677
678 if test "x$USE_PROFILING" = xyes; then
679 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
680   FOMIT_FRAME_POINTER=""
681 else
682   FOMIT_FRAME_POINTER="-fomit-frame-pointer"
683 fi
684
685 dnl
686 dnl AC_SUBST(FOMIT_FRAME_POINTER)
687 dnl
688
689 dnl #############################
690 dnl # Set automake conditionals #
691 dnl #############################
692
693 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
694 dnl HAVE_ and it is likely to be easier to stick with the old name
695 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
696 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
697 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
698 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
699 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
700 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
701
702 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
703
704 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
705 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
706
707 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
708 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
709 AM_CONDITIONAL(HAVE_GNOME,          test "x$HAVE_GNOME" = "xyes")
710 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
711 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
712 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
713 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
714 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
715 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
716 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
717 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
718 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
719
720 GST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir)/gst-libs -Wall"
721 AC_SUBST(GST_LIBS)
722 AC_SUBST(GST_CFLAGS)
723
724 dnl #########################
725 dnl # Make the output files #
726 dnl #########################
727
728 dnl testsuite/autoplug/Makefile
729 dnl testsuite/Makefile
730 AC_CONFIG_FILES(
731 Makefile
732 gstreamer-libs.pc
733 gstreamer-libs-uninstalled.pc
734 gst-plugins.spec
735 gst/Makefile
736 gst/ac3parse/Makefile
737 gst/adder/Makefile
738 gst/audioscale/Makefile
739 gst/auparse/Makefile
740 gst/avi/Makefile
741 gst/chart/Makefile
742 gst/cutter/Makefile
743 gst/deinterlace/Makefile
744 gst/flx/Makefile
745 gst/goom/Makefile
746 gst/intfloat/Makefile
747 gst/law/Makefile
748 gst/level/Makefile
749 gst/median/Makefile
750 gst/mpeg1enc/Makefile
751 gst/mpeg1sys/Makefile
752 gst/mpeg1videoparse/Makefile
753 gst/mpeg2enc/Makefile
754 gst/mpeg2sub/Makefile
755 gst/mpegaudio/Makefile
756 gst/mpegaudioparse/Makefile
757 gst/mpegstream/Makefile
758 gst/mpegtypes/Makefile
759 gst/modplug/Makefile
760 gst/modplug/libmodplug/Makefile
761 gst/monoscope/Makefile
762 gst/passthrough/Makefile
763 gst/playondemand/Makefile
764 gst/rtjpeg/Makefile
765 gst/silence/Makefile
766 gst/sine/Makefile
767 gst/smooth/Makefile
768 gst/spectrum/Makefile
769 gst/speed/Makefile
770 gst/stereo/Makefile
771 gst/stereomono/Makefile
772 gst/synaesthesia/Makefile
773 gst/udp/Makefile
774 gst/videoscale/Makefile
775 gst/volenv/Makefile
776 gst/volume/Makefile
777 gst/vumeter/Makefile
778 gst/wavparse/Makefile
779 gst/y4m/Makefile
780 sys/Makefile
781 sys/dxr3/Makefile
782 sys/oss/Makefile
783 sys/qcam/Makefile
784 sys/v4l/Makefile
785 sys/vcd/Makefile
786 sys/vga/Makefile
787 sys/xvideo/Makefile
788 sys/videosink/Makefile
789 ext/Makefile
790 ext/a52dec/Makefile
791 ext/aalib/Makefile
792 ext/alsa/Makefile
793 ext/arts/Makefile
794 ext/artsd/Makefile
795 ext/audiofile/Makefile
796 ext/avifile/Makefile
797 ext/cdparanoia/Makefile
798 ext/dv/Makefile
799 ext/dvdread/Makefile
800 ext/esd/Makefile
801 ext/festival/Makefile
802 ext/flac/Makefile
803 ext/gnomevfs/Makefile
804 ext/gsm/Makefile
805 ext/hermes/Makefile
806 ext/http/Makefile
807 ext/jack/Makefile
808 ext/jpeg/Makefile
809 ext/lcs/Makefile
810 ext/ladspa/Makefile
811 ext/lame/Makefile
812 ext/mad/Makefile
813 ext/mikmod/Makefile
814 ext/mjpegtools/Makefile
815 ext/mpeg2dec/Makefile
816 ext/openquicktime/Makefile
817 ext/raw1394/Makefile
818 ext/rtp/Makefile
819 ext/sdl/Makefile
820 ext/shout/Makefile
821 ext/sidplay/Makefile
822 ext/smoothwave/Makefile
823 ext/vorbis/Makefile
824 ext/tarkin/Makefile
825 ext/xmms/Makefile
826 gst-libs/Makefile
827 gst-libs/gst/Makefile
828 gst-libs/gst/audio/Makefile
829 gst-libs/gst/idct/Makefile
830 gst-libs/gst/resample/Makefile
831 gst-libs/gst/riff/Makefile
832 examples/capsfilter/Makefile
833 examples/Makefile
834 tools/Makefile
835 )
836
837 AC_OUTPUT
838
839 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
840 echo
841 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"
842 echo