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