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