configure.ac: It's GST_GLIB_CHECK, not GLIB2_CHECK; fix argument.
[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 AM_MAINTAINER_MODE only provides the option to configure to enable it
11 AM_MAINTAINER_MODE
12
13 dnl when going to/from release please set the nano (fourth number) right !
14 dnl releases only do Wall, cvs and prerelease does Werror too
15 AS_VERSION(gst-plugins-base, GST_PLUGINS_BASE_VERSION, 0, 9, 3, 1,
16     GST_CVS="no", GST_CVS="yes")
17
18 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
19
20 dnl our libraries and install dirs use major.minor as a version
21 GST_MAJORMINOR=$GST_PLUGINS_BASE_VERSION_MAJOR.$GST_PLUGINS_BASE_VERSION_MINOR
22 dnl we override it here if we need to for the release candidate of new series
23 GST_MAJORMINOR=0.9
24 AC_SUBST(GST_MAJORMINOR)
25
26 dnl CURRENT, REVISION, AGE
27 dnl - library source changed -> increment REVISION
28 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
29 dnl - interfaces added -> increment AGE
30 dnl - interfaces removed -> AGE = 0
31 AS_LIBTOOL(GST_PLUGINS, 2, 0, 0)
32 AS_LIBTOOL_TAGS([])
33 AM_PROG_LIBTOOL
34
35 dnl FIXME take something else ?
36 AC_CONFIG_SRCDIR([gst/sine/gstsinesrc.c])
37 AM_CONFIG_HEADER(config.h)
38
39 dnl Add parameters for aclocal
40 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
41 ACLOCAL_FLAGS="-I m4 -I common/m4"
42 AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
43
44 AC_PROG_CC
45 AM_PROG_CC_STDC
46 AM_PROG_AS
47 AS="${CC}"
48 AS_PROG_OBJC
49
50 dnl the gettext stuff needed
51 AM_GNU_GETTEXT_VERSION(0.11.5)
52 AM_GNU_GETTEXT([external])
53                                                                                 
54 GETTEXT_PACKAGE=gst-plugins-base-$GST_MAJORMINOR
55 AC_SUBST(GETTEXT_PACKAGE)
56 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "$GETTEXT_PACKAGE",
57                    [gettext package name])
58                                                                                 
59 dnl define LOCALEDIR in config.h
60 AS_AC_EXPAND(LOCALEDIR, $datadir/locale)
61 AC_DEFINE_UNQUOTED([LOCALEDIR], "$LOCALEDIR",
62                    [gettext locale dir])
63
64 GST_SET_ERROR_CFLAGS($GST_CVS)
65
66 dnl determine c++ compiler
67 AC_PROG_CXX
68 dnl determine if c++ is available on this system
69 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
70 dnl determine c++ preprocessor
71 AC_PROG_CXXCPP
72 AC_ISC_POSIX
73
74 AC_HEADER_STDC([])
75 AC_C_INLINE
76 AX_CREATE_STDINT_H
77
78 dnl Check for malloc.h
79 AC_CHECK_HEADER(malloc.h,[
80   AC_DEFINE(HAVE_MALLOC_H, 1, [whether malloc.h available])
81 ])
82
83 dnl Check for a way to display the function name in debug output
84 GST_CHECK_FUNCTION()
85
86 dnl define correct errorlevel for debugging messages. We want to have GST_ERROR
87 dnl messages printed when running cvs builds
88 if test "x$GST_CVS" = "xyes"; then
89   AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use])
90 fi
91
92 dnl Check for FIONREAD ioctl declaration :
93 GST_CHECK_FIONREAD()
94
95 DEFAULT_AUDIOSINK="alsasink"
96 DEFAULT_VIDEOSINK="xvimagesink"
97 DEFAULT_AUDIOSRC="alsasrc"
98 DEFAULT_VIDEOSRC="v4lsrc"
99 DEFAULT_VISUALIZER="goom"
100 case "$host" in 
101   *-sun-* | *pc-solaris* )
102     DEFAULT_AUDIOSINK="sunaudiosink"
103     DEFAULT_VIDEOSINK="ximagesink"
104     DEFAULT_AUDIOSRC="sunaudiosrc"
105     ;;
106   *-darwin* )
107     DEFAULT_AUDIOSINK="osxaudiosink"
108     DEFAULT_AUDIOSRC="osxaudiosrc"
109     DEFAULT_VIDEOSINK="osxvideosink"
110     ;;
111 esac
112
113 AC_SUBST(DEFAULT_AUDIOSINK)
114 AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSINK,"$DEFAULT_AUDIOSINK",[Default audio sink])
115 AC_SUBST(DEFAULT_AUDIOSRC)
116 AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSRC,"$DEFAULT_AUDIOSRC",[Default audio source])
117 AC_SUBST(DEFAULT_VIDEOSINK)
118 AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSINK,"$DEFAULT_VIDEOSINK",[Default video sink])
119 AC_SUBST(DEFAULT_VIDEOSRC)
120 AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSRC,"$DEFAULT_VIDEOSRC",[Default video source])
121 AC_SUBST(DEFAULT_VISUALIZER)
122 AC_DEFINE_UNQUOTED(DEFAULT_VISUALIZER,"$DEFAULT_VISUALIZER",[Default visualizer])
123
124 dnl ############################################
125 dnl # Super Duper options for plug-in building #
126 dnl ############################################
127
128 dnl ext plug-ins; plug-ins that have external dependencies
129 GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],,
130 [HAVE_EXTERNAL=yes],enabled,
131 [
132   AC_MSG_WARN(building external plug-ins)
133   BUILD_EXTERNAL="yes"
134 ],[
135   AC_MSG_WARN(all plug-ins with external dependencies will not be built)
136   BUILD_EXTERNAL="no"
137 ])
138 # make BUILD_EXTERNAL available to Makefile.am
139 AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
140
141 dnl experimental plug-ins; stuff that hasn't had the dust settle yet
142 dnl read 'builds, but might not work'UTO
143 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
144 [HAVE_EXPERIMENTAL=yes],disabled,
145 [
146   AC_MSG_WARN(building experimental plug-ins)
147   USE_TARKIN="yes"
148 ],[
149   AC_MSG_NOTICE(not building experimental plug-ins)
150   USE_TARKIN="no"
151 ])
152
153 dnl broken plug-ins; stuff that doesn't seem to build at the moment
154 GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],,
155 HAVE_BROKEN=yes,disabled,
156 [  
157   AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)])
158 ],[
159   AC_MSG_NOTICE([not building broken plug-ins])
160 ])
161
162 dnl ##############################
163 dnl # Do automated configuration #
164 dnl ##############################
165
166 dnl Check for tools:
167 dnl ================
168
169 dnl allow for different autotools
170 AS_AUTOTOOLS_ALTERNATE()
171
172 dnl modify pkg-config path
173 AC_ARG_WITH(pkg-config-path, 
174    AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
175    [export PKG_CONFIG_PATH=${withval}])
176
177 dnl check architecture
178 GST_ARCH()
179
180 dnl check for gstreamer
181 dnl uninstalled is selected preferentially -- see pkg-config(1)
182 GST_REQ=0.9.0
183 PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ,
184   HAVE_GST="yes", HAVE_GST="no")
185
186 if test "x$HAVE_GST" = "xno"; then
187   AC_MSG_ERROR(no GStreamer found)
188 fi
189
190 GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
191 if test -z $GST_TOOLS_DIR; then
192   AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.])
193 fi
194 AC_SUBST(GST_TOOLS_DIR)
195
196 GST_PLUGINS_DIR=`pkg-config --variable=pluginsdir gstreamer-$GST_MAJORMINOR`
197 if test -z $GST_PLUGINS_DIR; then
198   AC_MSG_ERROR([no plugins dir defined in GStreamer pkg-config file; core upgrade needed.])
199 fi
200 AC_SUBST(GST_PLUGINS_DIR)
201
202
203 dnl check for gstreamer-dataprotocol; uninstalled is selected preferentially
204 PKG_CHECK_MODULES(GST_GDP, gstreamer-dataprotocol-$GST_MAJORMINOR >= $GST_REQ,
205   HAVE_GST_GDP="yes", HAVE_GST_GDP="no")
206
207 if test "x$HAVE_GST_GDP" = "xno"; then
208   AC_MSG_ERROR(no GStreamer Dataprotocol Libs found)
209 fi
210
211 AC_SUBST(GST_GDP_LIBS)
212
213 dnl check for gstreamer-controller; uninstalled is selected preferentially
214 PKG_CHECK_MODULES(GST_CTRL, gstreamer-controller-$GST_MAJORMINOR >= $GST_REQ,
215   HAVE_GST_CTRL="yes", HAVE_GST_CTRL="no")
216
217 if test "x$HAVE_GST_CTRL" = "xno"; then
218   AC_MSG_ERROR(no GStreamer Controller Libs found)
219 fi
220
221 AC_SUBST(GST_CTRL_LIBS)
222
223 PKG_CHECK_MODULES(GST_BASE, gstreamer-base-$GST_MAJORMINOR >= $GST_REQ,
224   HAVE_GST_BASE="yes", HAVE_GST_BASE="no")
225
226 if test "x$HAVE_GST_BASE" = "xno"; then
227   AC_MSG_ERROR(no libgstbase found)
228 fi
229
230 AC_SUBST(GST_BASE_LIBS)
231
232 PKG_CHECK_MODULES(GST_CHECK, gstreamer-check-$GST_MAJORMINOR >= $GST_REQ,
233   HAVE_GST_CHECK="yes", HAVE_GST_CHECK="no")
234
235 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
236 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
237
238 dnl Determine endianness
239 AC_C_BIGENDIAN
240
241 dnl Check for fast float to int casting as defined in C99
242 AC_C99_FUNC_LRINT()
243 AC_C99_FUNC_LRINTF()
244
245 dnl Check for essential libraries first:
246 dnl ====================================
247
248 GST_GLIB_CHECK([2.6])
249
250 dnl Check for additional libraries that we might use:
251 dnl =================================================
252 dnl GTK
253 HAVE_GTK=NO
254 PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no)
255 if test "x$HAVE_GTK_22" = "xyes"; then
256   HAVE_GTK=yes
257   GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
258   AC_SUBST(GTK_VERSION)
259   GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
260   AC_SUBST(GTK_BASE_DIR)
261 else
262   PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
263 fi
264 if test "x$HAVE_GTK_20" = "xyes"; then
265   HAVE_GTK=yes
266 fi
267 GTK_CFLAGS=$GTK2_CFLAGS
268 GTK_LIBS=$GTK2_LIBS
269 AC_SUBST(GTK_LIBS)
270 AC_SUBST(GTK_CFLAGS)
271 AC_SUBST(HAVE_GTK)
272
273 PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.2, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
274 AC_SUBST(LIBOIL_CFLAGS)
275 AC_SUBST(LIBOIL_LIBS)
276 if test "x${HAVE_LIBOIL}" != xyes ; then
277   AC_ERROR([liboil-0.3 is required])
278 fi
279
280 dnl ===========================================================================
281 dnl ============================= gst plug-ins ================================
282 dnl ===========================================================================
283
284 plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
285 AC_SUBST(plugindir)
286
287 dnl this really should only contain flags, not libs - they get added before
288 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
289 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' -no-undefined"
290 AC_SUBST(GST_PLUGIN_LDFLAGS)
291
292 dnl these are all the gst plug-ins, compilable without additional libs
293 GST_PLUGINS_ALL="\
294         adder \
295         audioconvert \
296         audiorate \
297         audioresample \
298         audiotestsrc \
299         ffmpegcolorspace \
300         playback \
301         sine \
302         subparse \
303         tcp \
304         typefind \
305         videotestsrc \
306         videorate \
307         videoscale \
308         volume \
309         "
310
311 dnl see if we can build C++ plug-ins
312 if test "x$HAVE_CXX" = "xyes"; then
313   GST_PLUGINS_ALL="$GST_PLUGINS_ALL"
314 else
315   AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
316 fi
317
318 AC_SUBST(GST_PLUGINS_ALL)
319
320 GST_PLUGINS_SELECTED=""
321
322 AC_ARG_WITH(plugins,
323     AC_HELP_STRING([--with-plugins],[comma-separated list of plug-ins to compile]),
324     [for i in `echo $withval | tr , ' '`; do
325         if echo $GST_PLUGINS_ALL | grep $i > /dev/null
326         then
327             GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
328         else
329             echo "plug-in $i not recognized, ignoring..."
330         fi
331     done],
332     [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
333
334 AC_SUBST(GST_PLUGINS_SELECTED)
335
336 dnl ==========================================================================
337 dnl ============================= sys plug-ins ================================
338 dnl ==========================================================================
339
340 echo
341 AC_MSG_NOTICE([Checking libraries for plugins in sys/])
342 echo
343
344 dnl Check for X11
345 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true)
346 GST_CHECK_FEATURE(X, [X libraries and plugins],
347                   [ximagesink], [
348   AC_PATH_XTRA
349   ac_cflags_save="$CFLAGS"
350   ac_cppflags_save="$CPPFLAGS"
351   CFLAGS="$CFLAGS $X_CFLAGS"
352   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
353
354   dnl now try to find the HEADER
355   AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no")
356
357   if test "x$HAVE_X" = "xno"
358   then
359     AC_MSG_NOTICE([cannot find X11 development files])
360   else
361     dnl this is much more than we want
362     X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS"
363     dnl AC_PATH_XTRA only defines the path needed to find the X libs,
364     dnl it does not add the libs; therefore we add them here
365     X_LIBS="$X_LIBS -lX11"
366     AC_SUBST(X_CFLAGS)
367     AC_SUBST(X_LIBS)
368   fi
369   AC_SUBST(HAVE_X)
370   CFLAGS="$ac_cflags_save"
371   CPPFLAGS="$ac_cppflags_save"
372 ])
373   
374 dnl *** XVideo ***
375 dnl Look for the PIC library first, Debian requires it.
376 dnl Check debian-devel archives for gory details.
377 dnl 20020110:
378 dnl At the moment XFree86 doesn't distribute shared libXv due
379 dnl to unstable API.  On many platforms you CAN NOT link a shared
380 dnl lib to a static non-PIC lib.  This is what the xvideo GStreamer
381 dnl plug-in wants to do.  So Debian distributes a PIC compiled
382 dnl version of the static lib for plug-ins to link to when it is
383 dnl inappropriate to link the main application to libXv directly.
384 dnl FIXME: add check if this platform can support linking to a
385 dnl        non-PIC libXv, if not then don not use Xv.
386 dnl FIXME: perhaps warn user if they have a shared libXv since
387 dnl        this is an error until XFree86 starts shipping one
388    
389 dnl Check for Xv extension
390 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
391 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
392                   [xvimagesink], [
393   if test x$HAVE_X = xyes; then
394     AC_CHECK_LIB(Xv_pic, XvQueryExtension,
395                  HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
396                  $X_LIBS -lXext)
397
398     if test x$HAVE_XVIDEO = xyes; then
399       XVIDEO_LIBS="-lXv_pic -lXext"
400       AC_SUBST(XVIDEO_LIBS)
401     else
402       dnl try again using something else if we didn't find it first
403       if test x$HAVE_XVIDEO = xno; then
404         AC_CHECK_LIB(Xv, XvQueryExtension,
405                    HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
406                    $X_LIBS -lXext)
407
408         if test x$HAVE_XVIDEO = xyes; then
409           XVIDEO_LIBS="-lXv -lXext"
410           AC_SUBST(XVIDEO_LIBS)
411         fi
412       fi
413     fi
414   fi
415 ])
416
417 dnl check for X Shm
418 translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
419 GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], xshm, [
420   if test x$HAVE_X = xyes; then
421     AC_CHECK_LIB(Xext, XShmAttach, 
422                  HAVE_XSHM="yes", HAVE_XSHM="no",
423                  $X_LIBS) 
424     if test "x$HAVE_XSHM" = "xyes"; then
425       XSHM_LIBS="-lXext"
426     else
427       dnl On AIX, it is in XextSam instead, but we still need -lXext
428       AC_CHECK_LIB(XextSam, XShmAttach, 
429                    HAVE_XSHM="yes", HAVE_XSHM="no",
430                    $X_LIBS) 
431       if test "x$HAVE_XSHM" = "xyes"; then
432         XSHM_LIBS="-lXext -lXextSam"
433       fi
434     fi
435   fi
436 ], , [ 
437   AC_SUBST(HAVE_XSHM) 
438   AC_SUBST(XSHM_LIBS) 
439 ] )
440
441 dnl v4l/v4l2 checks have been moved down because they require X
442
443 dnl *** Video 4 Linux ***
444 dnl for information about the header/define, see sys/v4l/gstv4lelement.h
445 dnl renamed to GST_V4L in accordance with V4L2 below
446 translit(dnm, m, l) AM_CONDITIONAL(USE_GST_V4L, true)
447 GST_CHECK_FEATURE(GST_V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
448   # first check X
449   HAVE_GST_V4L="no"
450   if test "$HAVE_X" = "yes"
451   then
452     AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_GST_V4L="yes", HAVE_GST_V4L="no", [
453 #include <sys/types.h>
454 #define _LINUX_TIME_H
455 #define __user
456 #include <linux/videodev.h>
457     ])
458   fi
459 ])
460
461 dnl Next, check for the optional libraries:
462 dnl These are all libraries used in building plug-ins
463 dnl ================================================
464 dnl let's try and sort them alphabetically, shall we ?
465
466 if test "x$BUILD_EXTERNAL" = "xyes"; then
467
468 echo
469 AC_MSG_NOTICE([Checking libraries for plugins in ext/])
470 echo
471
472 dnl *** alsa ***
473 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
474 GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
475   PKG_CHECK_MODULES(ALSA, alsa >= 0.9.1, [
476     HAVE_ALSA="yes"
477     AC_SUBST(ALSA_CFLAGS)
478     AC_SUBST(ALSA_LIBS)
479   ], [
480     AM_PATH_ALSA(0.9.1, HAVE_ALSA="yes", HAVE_ALSA="no")
481   ])
482 ])
483
484 dnl *** CDParanoia ***
485 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
486 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
487   GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
488                       cdda_open, -lm, 
489                       cdda_interface.h, 
490                       CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
491                       HEADER_DIR="no"
492                       FOUND_CDPARANOIA="yes")
493   if test "x$FOUND_CDPARANOIA" != "xyes";
494   then
495     GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
496                         cdda_open, -lm, 
497                         cdda/cdda_interface.h, 
498                         CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
499                         HEADER_DIR="yes"
500                         FOUND_CDPARANOIA="yes")
501   fi
502   if test "x$HEADER_DIR" = "xyes";
503   then
504     AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
505                        defined if cdda headers are in a cdda/ directory)
506   fi
507   AC_SUBST(CDPARANOIA_LIBS)
508 ])
509 dnl FIXME : add second check somehow if that is necessary
510 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
511 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
512
513 dnl *** Gnome VFS ***
514 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
515 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
516   PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
517   AC_SUBST(GNOME_VFS_CFLAGS)
518   AC_SUBST(GNOME_VFS_LIBS)
519 ])
520
521 dnl *** libvisual ***
522 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
523 GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization plugins], libvisual, [
524   PKG_CHECK_MODULES(LIBVISUAL, libvisual = 0.2.0, HAVE_LIBVISUAL="yes", HAVE_LIBVISUAL="no")
525   AC_SUBST(LIBVISUAL_CFLAGS)
526   AC_SUBST(LIBVISUAL_LIBS)
527 ])
528
529 dnl *** ogg ***
530 translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true)
531 GST_CHECK_FEATURE(OGG, [ogg de/encoder], oggdemux oggmux, [
532   PKG_CHECK_MODULES(OGG, ogg >= 1.0, [
533     HAVE_OGG="yes"
534     AC_SUBST(OGG_CFLAGS)
535     AC_SUBST(OGG_LIBS)
536   ], [
537     XIPH_PATH_OGG(HAVE_OGG="yes", HAVE_OGG="no")
538     AS_SCRUB_INCLUDE(OGG_CFLAGS)
539   ])
540 ])
541
542 dnl *** theora ***
543 translit(dnm, m, l) AM_CONDITIONAL(USE_THEORA, true)
544 GST_CHECK_FEATURE(THEORA, [ogg theora codec], theoradec theoraenc, [
545   PKG_CHECK_MODULES(THEORA, theora, [
546     HAVE_THEORA="yes"
547     AC_SUBST(THEORA_LIBS)
548     AC_SUBST(THEORA_CFLAGS)
549   ], [
550     GST_CHECK_LIBHEADER(THEORA, theora, theora_version_string, "-logg", theora/theora.h, THEORA_LIBS="-ltheora -logg")
551     AC_SUBST(THEORA_LIBS)
552   ])
553 ])
554
555 dnl *** vorbis ***
556 dnl AM_PATH_VORBIS only takes two options
557 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
558 GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
559   PKG_CHECK_MODULES(VORBIS, vorbis >= 1.0 vorbisenc >= 1.0, [
560     HAVE_VORBIS="yes"
561   ], [
562     XIPH_PATH_VORBIS(HAVE_VORBIS="yes", HAVE_VORBIS="no")
563     AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
564   ])
565 ])
566 if test "x$HAVE_VORBIS" = "xyes"; then
567   ac_cflags_save="$CFLAGS"
568   dnl FIXME: does this work on non-gcc? -- Company
569   dnl FIXME: no, it doesn't.  Why is this here in the first place ? -- thomasvs
570   CFLAGS="-Wall -Werror"
571   AC_COMPILE_IFELSE(
572     AC_LANG_PROGRAM([
573 #include <vorbis/codec.h>
574                      ],[
575 vorbis_dsp_state *v;
576
577 vorbis_synthesis_restart (v);
578                      ]), HAVE_VSR=yes, HAVE_VSR=no)
579   if test "x$HAVE_VSR" = "xyes"; then
580     AC_DEFINE_UNQUOTED(HAVE_VORBIS_SYNTHESIS_RESTART, 1,
581                        [defined if vorbis_synthesis_restart is present])
582   fi
583   CFLAGS="$ac_cflags_save"
584 fi
585
586 fi dnl of EXT plugins
587
588 dnl Check for atomic.h
589 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
590 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
591 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
592 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
593 if test x$HAVE_ATOMIC_H = xyes; then
594   AC_TRY_RUN([
595 #include "asm/atomic.h"
596 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
597   ],, [
598     # Not successful
599     if test x$HAVE_ATOMIC_H = xyes; then
600       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
601     fi
602     HAVE_ATOMIC_H=no
603   ], [
604     # Cross compiling
605     AC_MSG_RESULT(yes)
606     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
607   ])
608 fi
609
610 dnl check for "check", unit testing library/header
611 AM_PATH_CHECK(0.9.2, HAVE_CHECK=yes, HAVE_CHECK=no)
612 AM_CONDITIONAL(HAVE_CHECK, test "x$HAVE_CHECK" = "xyes")
613
614 dnl ######################################################################
615 dnl # Check command line parameters, and set shell variables accordingly #
616 dnl ######################################################################
617
618 AC_ARG_ENABLE(atomic,
619   AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
620 [case "${enableval}" in
621   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
622   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
623   no)  USE_ATOMIC_H=no;;
624   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
625 esac], 
626 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
627
628 AC_ARG_ENABLE(profiling,
629   AC_HELP_STRING([--enable-profiling],
630                  [-pg to compiler commandline, for profiling]),
631 [case "${enableval}" in
632   yes) USE_PROFILING=yes ;;
633   no)  UES_PROFILING=no ;;
634   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
635 esac], 
636 [USE_PROFILING=no]) dnl Default value
637
638 AC_ARG_ENABLE(tests,
639   AC_HELP_STRING([--disable-tests],[disable building test apps]),
640 [case "${enableval}" in
641   yes) BUILD_TESTS=yes ;;
642   no)  BUILD_TESTS=no ;;
643   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
644 esac], 
645 [BUILD_TESTS=yes]) dnl Default value
646
647 AC_ARG_ENABLE(examples,
648   AC_HELP_STRING([--disable-examples],[disable building examples]),
649 [case "${enableval}" in
650   yes) BUILD_EXAMPLES=yes ;;
651   no)  BUILD_EXAMPLES=no ;;
652   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
653 esac], 
654 [BUILD_EXAMPLES=yes]) dnl Default value
655
656 dnl seeking needs freetype, so check for it here
657 PKG_CHECK_MODULES(FT2, freetype2 >= 2.0.9, HAVE_FT2="yes", [
658   AC_CHECK_FT2(2.0.9, HAVE_FT2="yes", HAVE_FT2="no")
659 ])
660 dnl make the HAVE_FT2 variable available to automake and Makefile.am
661 AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
662 AC_SUBST(FT2_CFLAGS)
663 AC_SUBST(FT2_LIBS)
664
665 dnl ################################################
666 dnl # Set defines according to variables set above #
667 dnl ################################################
668
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 # do not use deprecated stuff
675 GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED"
676
677 if test "x$USE_DEBUG" = xyes; then
678   GST_CFLAGS="$GST_CFLAGS -g"
679 fi
680
681 dnl ############################
682 dnl # Checks for documentation #
683 dnl ############################
684
685 GTK_DOC_CHECK([1.3])
686 AS_PATH_PYTHON([2.1])
687
688 dnl #############################
689 dnl # Set automake conditionals #
690 dnl #############################
691
692 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
693 dnl HAVE_ and it is likely to be easier to stick with the old name
694 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
695
696 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
697 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
698
699 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
700 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
701 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
702 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
703 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
704 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
705 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
706
707 dnl prefer internal headers to already installed ones
708 dnl also add builddir include for enumtypes and marshal
709 dnl add ERROR_CFLAGS, but overridable
710 GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(ERROR_CFLAGS)"
711
712 AC_SUBST(GST_LIBS)
713 AC_SUBST(GST_CFLAGS)
714
715 dnl ###########################
716 dnl # Configure external libs #
717 dnl ###########################
718
719 dnl ############################
720 dnl # Set up some more defines #
721 dnl ############################
722
723 dnl set license and copyright notice
724 AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license])
725
726 dnl package name in plugins
727 AC_ARG_WITH(package-name,
728 AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]),
729 [case "${withval}" in
730   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
731   no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
732   *) GST_PACKAGE="${withval}" ;;
733 esac], 
734 [
735 dnl default value
736 if test "x$GST_CVS" = "xyes"
737 then
738   dnl nano >= 1
739   GST_PACKAGE="GStreamer CVS/prerelease"
740 else
741   GST_PACKAGE="GStreamer source release"
742 fi
743 ]
744 )
745 AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
746 AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
747
748 dnl package origin URL
749 AC_ARG_WITH(package-origin,
750 AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]),
751 [case "${withval}" in
752   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
753   no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
754   *) GST_ORIGIN="${withval}" ;;
755 esac], 
756 [GST_ORIGIN="http://gstreamer.freedesktop.org/"]) dnl Default value
757 AC_MSG_NOTICE(Using $GST_ORIGIN as package origin)
758 AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin])
759
760 dnl #########################
761 dnl # Make the output files #
762 dnl #########################
763
764 AC_CONFIG_FILES(
765 Makefile
766 gst-plugins-base.spec
767 gst/Makefile
768 gst/adder/Makefile
769 gst/audioconvert/Makefile
770 gst/audiorate/Makefile
771 gst/audioresample/Makefile
772 gst/audiotestsrc/Makefile
773 gst/ffmpegcolorspace/Makefile
774 gst/playback/Makefile
775 gst/sine/Makefile
776 gst/subparse/Makefile
777 gst/tcp/Makefile
778 gst/typefind/Makefile
779 gst/videotestsrc/Makefile
780 gst/videorate/Makefile
781 gst/videoscale/Makefile
782 gst/volume/Makefile
783 sys/Makefile
784 sys/ximage/Makefile
785 sys/xvimage/Makefile
786 sys/v4l/Makefile
787 ext/Makefile
788 ext/alsa/Makefile
789 ext/cdparanoia/Makefile
790 ext/gnomevfs/Makefile
791 ext/libvisual/Makefile
792 ext/ogg/Makefile
793 ext/theora/Makefile
794 ext/vorbis/Makefile
795 gst-libs/Makefile
796 gst-libs/gst/Makefile
797 gst-libs/gst/audio/Makefile
798 gst-libs/gst/floatcast/Makefile
799 gst-libs/gst/interfaces/Makefile
800 gst-libs/gst/net/Makefile
801 gst-libs/gst/riff/Makefile
802 gst-libs/gst/rtp/Makefile
803 gst-libs/gst/tag/Makefile
804 gst-libs/gst/video/Makefile
805 gst-libs/ext/Makefile
806 examples/seeking/Makefile
807 examples/Makefile
808 tools/Makefile
809 pkgconfig/Makefile
810 pkgconfig/gstreamer-plugins-base.pc
811 pkgconfig/gstreamer-plugins-base-uninstalled.pc
812 check/Makefile
813 docs/Makefile
814 docs/libs/Makefile
815 docs/plugins/Makefile
816 docs/version.entities
817 po/Makefile.in
818 common/Makefile
819 common/m4/Makefile
820 m4/Makefile
821 )
822 AC_OUTPUT
823
824 echo "configure: *** Core plug-ins, always built:"
825 ( for i in $GST_PLUGINS_ALL; do echo -e '\t'$i; done ) | sort
826 echo
827 echo -n "configure: *** Plug-ins relying on libraries that will be built:"
828 echo -e "$GST_PLUGINS_YES" | sort
829 echo
830 echo -n "configure: *** Plug-ins relying on libraries that will NOT be built:"
831 echo -e "$GST_PLUGINS_NO" | sort
832 echo
833 if test "x$BUILD_EXTERNAL" = "xno"; then
834   echo "configure: *** No external plug-ins will be built"
835 fi