2 AC_CANONICAL_TARGET([])
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, cvs and prerelease does Werror too
6 AS_VERSION(gstreamer, GST_VERSION, 0, 5, 0, 1, GST_ERROR="-Wall", GST_ERROR="-Wall -Werror")
7 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
9 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
11 dnl our libraries and install dirs use major.minor as a version
12 GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
13 AC_SUBST(GST_MAJORMINOR)
15 dnl CURRENT, REVISION, AGE
16 dnl - library source changed -> increment REVISION
17 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
18 dnl - interfaces added -> increment AGE
19 dnl - interfaces removed -> AGE = 0
20 AS_LIBTOOL(GST, 1, 0, 0)
22 AC_CONFIG_SRCDIR([gst/gst.c])
23 AM_CONFIG_HEADER(config.h)
25 dnl Add parameters for aclocal
26 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
27 ACLOCAL="$ACLOCAL -I common/m4 $ACLOCAL_FLAGS"
30 dnl For interactive UNIX (a Sun thing)
36 dnl We disable static building for development, for time savings
37 dnl *NOTE*: dnl this line before release, so release does static too
43 dnl ##############################
44 dnl # Do automated configuration #
45 dnl ##############################
50 dnl allow for different autotools
51 AS_AUTOTOOLS_ALTERNATE()
53 dnl modify pkg-config path
54 AC_ARG_WITH(pkg-config-path,
55 AC_HELP_STRING([--with-pkg-config-path],
56 [colon-separated list of pkg-config(1) dirs]),
57 [export PKG_CONFIG_PATH=${withval}])
62 dnl we require bison for building of some of the marshal files
63 dnl FIXME: check if AC_PROG_YACC is suitable here
64 AC_PATH_PROG(BISON_PATH, bison, no)
65 if test x$BISON_PATH = xno; then
66 AC_MSG_ERROR(Could not find bison)
69 dnl we require flex for building the parser
70 dnl FIXME: check if AC_PROG_LEX is suitable here
71 AC_PATH_PROG(FLEX_PATH, flex, no)
72 if test x$FLEX_PATH = xno; then
73 AC_MSG_ERROR(Could not find flex)
77 dnl We should really use AC_SYS_LARGEFILE, but the problem is
78 dnl many of the plugins don't include "config.h". To assure
79 dnl binary compatibility, it is necessary that all gstreamer
80 dnl code be compiled with the same sizeof(off_t), so we use
81 dnl the following crude hack.
85 dnl GST_CFLAGS are split up as GST_EXT_CFLAGS and GST_INT_CFLAGS
87 dnl this is so we can make GST_CFLAGS for external modules available
88 dnl without mixing in internal (uninstalled) CFLAGS
91 AC_MSG_CHECKING(for large file support)
93 #define _LARGEFILE_SOURCE
94 #define _FILE_OFFSET_BITS 64
95 #include <sys/types.h>
96 int main () { return !(sizeof(off_t) == 8); }
100 GST_EXT_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
109 dnl check for makecontext and define HAVE_MAKECONTEXT if we have it
110 GST_CHECK_MAKECONTEXT()
112 dnl Check for a way to display the function name in debug output
115 dnl Check for essential libraries first:
116 dnl ====================================
119 dnl Minimum required version of GLib2
120 dnl required for compilation without warnings
125 PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,HAVE_GLIB2=yes,HAVE_GLIB2=no)
126 GLIB_LIBS=$GLIB2_LIBS
127 GLIB_CFLAGS=$GLIB2_CFLAGS
129 AC_SUBST(GLIB_CFLAGS)
131 if test "x$HAVE_GLIB2" = "xno"; then
132 AC_MSG_ERROR([GStreamer requires GLib 2.0 to compile.])
135 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
136 AC_SUBST(GST_PKG_DEPS)
139 dnl Minimum required version of libxml2
141 AC_SUBST(LIBXML2_REQ)
143 dnl check for libxml2
147 GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt",
148 AC_MSG_ERROR([popt 1.6.1 or newer is required to build gstreamer. You can
149 download the latest version from
150 ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/])
152 AC_MSG_NOTICE(Checking for POPT_TABLEEND)
157 #ifndef POPT_TABLEEND
165 AC_MSG_ERROR([popt 1.6.1 or newer is required to build gstreamer. You can
166 download the latest version from
167 ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/])
170 dnl Check for atomic.h
171 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
172 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
173 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
174 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
175 if test x$HAVE_ATOMIC_H = xyes; then
177 #include "asm/atomic.h"
178 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
181 if test x$HAVE_ATOMIC_H = xyes; then
182 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
188 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
192 dnl ######################################################################
193 dnl # Check command line parameters, and set shell variables accordingly #
194 dnl ######################################################################
196 dnl FIXME: simplify all this down using a few m4 macros
198 AC_ARG_ENABLE(libmmx,
199 AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
200 [case "${enableval}" in
201 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
203 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
205 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
207 AC_ARG_ENABLE(atomic,
208 AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
209 [case "${enableval}" in
210 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
211 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
212 no) USE_ATOMIC_H=no;;
213 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
215 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
217 AC_ARG_ENABLE(plugin-builddir,
218 AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installed plugins]),
219 [case "${enableval}" in
220 yes) PLUGINS_USE_BUILDDIR=yes ;;
221 no) PLUGINS_USE_BUILDDIR=no ;;
222 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
224 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
228 AC_ARG_ENABLE(profiling,
229 AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]),
230 [case "${enableval}" in
231 yes) USE_PROFILING=yes ;;
232 no) UES_PROFILING=no ;;
233 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
235 [USE_PROFILING=no]) dnl Default value
237 dnl use a cache dir for storing element registry info.
238 dnl default to building registry in the source tree if we are enabling plugin build dir
239 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
242 dnl ${localstatedir} points to PREFIX/var
243 GST_CACHE_DIR=${localstatedir}/cache/gstreamer-$GST_MAJORMINOR
245 AC_ARG_WITH(cachedir,
246 AC_HELP_STRING([--with-cachedir],[specify path to use for plugin and command completion registries]),
247 [case "${withval}" in
248 yes) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
249 no) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
250 *) GST_CACHE_DIR="${withval}" ;;
252 [:]) dnl Default value
254 AS_AC_EXPAND(GST_CACHE_DIR, $GST_CACHE_DIR)
255 AC_MSG_NOTICE(Using $GST_CACHE_DIR as registry cache dir)
258 dnl building of tests
260 AC_HELP_STRING([--disable-tests],[disable building test apps]),
261 [case "${enableval}" in
262 yes) BUILD_TESTS=yes ;;
263 no) BUILD_TESTS=no ;;
264 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
266 [BUILD_TESTS=yes]) dnl Default value
267 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
269 dnl tests known to fail
270 AC_ARG_ENABLE(failing-tests,
271 AC_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
272 [case "${enableval}" in
273 yes) BUILD_FAILING_TESTS=yes ;;
274 no) BUILD_FAILING_TESTS=no ;;
275 *) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;;
277 [BUILD_FAILING_TESTS=no]) dnl Default value
278 AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes")
279 if test x$BUILD_FAILING_TESTS = xyes; then
280 AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable])
282 AC_MSG_WARN([Sissy ! By asking to not build the tests known to fail, you hereby waive your right to customer support. If you do not agree with this EULA, please press Ctrl-C before the next line is printed. By allowing the next line to be printed, you expressly acknowledge your acceptance of this EULA.])
285 AC_ARG_ENABLE(examples,
286 AC_HELP_STRING([--disable-examples],[disable building examples]),
287 [case "${enableval}" in
288 yes) BUILD_EXAMPLES=yes ;;
289 no) BUILD_EXAMPLES=no ;;
290 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
292 [BUILD_EXAMPLES=yes]) dnl Default value
293 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
295 dnl Next, check for the optional components:
296 dnl ========================================
298 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
299 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
300 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
301 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
302 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
303 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
304 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
305 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
306 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
307 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
308 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
309 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
311 GST_EXT_CFLAGS="$GST_EXT_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
313 dnl ################################################
314 dnl # Set defines according to variables set above #
315 dnl ################################################
318 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
319 dnl HAVE_ and it is likely to be easier to stick with the old name
320 if test "x$USE_LIBMMX" = xyes; then
321 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
324 if test "x$USE_ATOMIC_H" = xyes; then
325 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
328 dnl test if we have pthread_attr_setstack; if not use the older calls
329 AC_CHECK_LIB(pthread, pthread_attr_setstack,
330 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACK, 1,
331 [Defined if libpthread has pthread_attr_setstack ()]))
333 dnl test if we have posix_memalign; FreeBSD doesn't
334 AC_CHECK_FUNC(posix_memalign,
335 AC_DEFINE(HAVE_POSIX_MEMALIGN, 1,
336 [Defined if we have posix_memalign ()]))
338 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
339 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
342 if test "x$USE_DEBUG" = xyes; then
343 GST_INT_CFLAGS="$GST_INT_CFLAGS -g"
346 if test "x$USE_PROFILING" = xyes; then
347 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
348 FOMIT_FRAME_POINTER=""
350 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
354 dnl AC_SUBST(FOMIT_FRAME_POINTER)
357 dnl #############################
358 dnl # Set automake conditionals #
359 dnl #############################
361 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
362 dnl HAVE_ and it is likely to be easier to stick with the old name
363 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
365 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
366 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
368 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
371 dnl ############################
372 dnl # Set up some more defines #
373 dnl ############################
375 dnl Set location of registry dir.
376 AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Define the registry directory])
377 AC_SUBST(GST_CACHE_DIR)
379 dnl Set location of plugin directory
380 if test "x${prefix}" = "xNONE"; then
381 PLUGINS_DIR=${ac_default_prefix}/lib/gstreamer-$GST_MAJORMINOR
383 PLUGINS_DIR=${prefix}/lib/gstreamer-$GST_MAJORMINOR
385 AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
386 AC_SUBST(PLUGINS_DIR)
388 dnl Set location of uninstalled plugin directory
389 PLUGINS_BUILDDIR=`pwd`
390 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory])
391 AC_SUBST(PLUGINS_BUILDDIR)
393 dnl since glib and xml are package deps, there's no need to include their cflags
394 dnl in the pkg-config file
397 GST_PKG_CFLAGS=$GST_EXT_CFLAGS
398 GST_PKG_LIBS=$GST_EXT_LIBS
399 AC_SUBST(GST_PKG_CFLAGS)
400 AC_SUBST(GST_PKG_LIBS)
402 dnl finalize _CFLAGS and _LIBS
403 dnl add GLIB and XML if necessary to EXT_*
404 GST_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
405 GST_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS -lpopt"
407 dnl Private vars for libgst only
408 LIBGST_LIBS="$GST_LIBS"
409 LIBGST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir) $GST_ERROR"
410 AC_SUBST(LIBGST_LIBS)
411 AC_SUBST(LIBGST_CFLAGS)
413 dnl Vars for everyone else
414 GST_INT_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la"
415 GST_INT_CFLAGS="$GST_INT_CFLAGS -I\$(top_srcdir)/libs -I\$(top_srcdir)/include"
417 AC_SUBST(GST_CFLAGS, "$LIBGST_CFLAGS $GST_INT_CFLAGS")
418 AC_SUBST(GST_LIBS, "$LIBGST_LIBS $GST_INT_LIBS")
420 GST_PLUGIN_LDFLAGS='-module -avoid-version'
421 AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
423 AC_CONFIG_SUBDIRS(libs/ext/cothreads)
425 dnl ##################################################
426 dnl # deps for examples from manual #
427 dnl ##################################################
429 PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0,
430 HAVE_LIBGNOMEUI="yes", HAVE_LIBGNOMEUI="no")
431 AC_SUBST(LIBGNOMEUI_CFLAGS)
432 AC_SUBST(LIBGNOMEUI_LIBS)
433 AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes")
435 dnl ##################################################
436 dnl # Prepare informative messages to display at end #
437 dnl ##################################################
441 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
442 infomessages="$infomessages
443 *** Warning: You have configured using the --enable-plugin-builddir option.
445 This option is for development purposes only: binaries built with
446 it should be used with code in the build tree only. To build an
447 installable version, use ./configure without the --enable-plugin-builddir
448 option. Note that the autogen.sh script supplies the plugin builddir
449 option automatically -- run ./autogen.sh --disable-plugin-buildddir to make
450 an installable build.
455 dnl #########################
456 dnl # Make the output files #
457 dnl #########################
459 dnl libs/ext/Makefile
460 dnl nothing there yet !
466 gst/autoplug/Makefile
467 gst/indexers/Makefile
468 gst/elements/Makefile
470 gst/schedulers/Makefile
472 gst/registries/Makefile
475 libs/gst/bytestream/Makefile
476 libs/gst/getbits/Makefile
477 libs/gst/putbits/Makefile
478 libs/gst/control/Makefile
481 tests/bufspeed/Makefile
482 tests/memchunk/Makefile
483 tests/muxing/Makefile
484 tests/seeking/Makefile
486 tests/threadstate/Makefile
488 testsuite/bytestream/Makefile
489 testsuite/caps/Makefile
490 testsuite/cleanup/Makefile
491 testsuite/clock/Makefile
492 testsuite/dynparams/Makefile
493 testsuite/elements/Makefile
494 testsuite/indexers/Makefile
495 testsuite/plugin/Makefile
496 testsuite/refcounting/Makefile
497 testsuite/threads/Makefile
499 examples/autoplug/Makefile
500 examples/cutter/Makefile
501 examples/helloworld/Makefile
502 examples/helloworld2/Makefile
503 examples/launch/Makefile
504 examples/manual/Makefile
505 examples/mixer/Makefile
506 examples/pingpong/Makefile
507 examples/plugins/Makefile
508 examples/queue/Makefile
509 examples/queue2/Makefile
510 examples/queue3/Makefile
511 examples/queue4/Makefile
512 examples/thread/Makefile
513 examples/typefind/Makefile
514 examples/xml/Makefile
517 docs/devhelp/Makefile
518 docs/devhelp/html2xml.py
521 docs/gst/gstreamer.types
525 docs/plugins/Makefile
526 docs/plugins/gstreamer-plugins.types
530 gstreamer-uninstalled.pc
532 echo "$infomessages", infomessages="$infomessages"