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, 1, 1, GST_CVS="no", GST_CVS="yes")
8 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
10 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
12 dnl our libraries and install dirs use major.minor as a version
13 GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
14 AC_SUBST(GST_MAJORMINOR)
17 dnl For interactive UNIX (a Sun thing)
20 dnl CURRENT, REVISION, AGE
21 dnl - library source changed -> increment REVISION
22 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
23 dnl - interfaces added -> increment AGE
24 dnl - interfaces removed -> AGE = 0
25 AS_LIBTOOL(GST, 2, 0, 0)
27 AC_CONFIG_SRCDIR([gst/gst.c])
28 AM_CONFIG_HEADER(config.h)
30 dnl Add parameters for aclocal
31 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
32 ACLOCAL="$ACLOCAL -I common/m4 $ACLOCAL_FLAGS"
38 dnl decide on error flags
40 if test "x$COMPILER" = "xforte"; then
43 if test "x$GST_CVS"="xyes"; then
44 GST_ERROR="-Wall -Werror"
50 dnl We disable static building for development, for time savings
51 dnl *NOTE*: dnl this line before release, so release does static too
57 dnl ##############################
58 dnl # Do automated configuration #
59 dnl ##############################
64 dnl allow for different autotools
65 AS_AUTOTOOLS_ALTERNATE()
67 dnl modify pkg-config path
68 AC_ARG_WITH(pkg-config-path,
69 AC_HELP_STRING([--with-pkg-config-path],
70 [colon-separated list of pkg-config(1) dirs]),
71 [export PKG_CONFIG_PATH=${withval}])
76 dnl we require bison for building of some of the marshal files
77 dnl FIXME: check if AC_PROG_YACC is suitable here
78 AC_PATH_PROG(BISON_PATH, bison, no)
79 if test x$BISON_PATH = xno; then
80 AC_MSG_ERROR(Could not find bison)
83 dnl we require flex for building the parser
84 dnl FIXME: check if AC_PROG_LEX is suitable here
85 AC_PATH_PROG(FLEX_PATH, flex, no)
86 if test x$FLEX_PATH = xno; then
87 AC_MSG_ERROR(Could not find flex)
91 dnl We should really use AC_SYS_LARGEFILE, but the problem is
92 dnl many of the plugins don't include "config.h". To assure
93 dnl binary compatibility, it is necessary that all gstreamer
94 dnl code be compiled with the same sizeof(off_t), so we use
95 dnl the following crude hack.
99 dnl GST_CFLAGS are split up as GST_EXT_CFLAGS and GST_INT_CFLAGS
101 dnl this is so we can make GST_CFLAGS for external modules available
102 dnl without mixing in internal (uninstalled) CFLAGS
105 dnl disable deprecated functions internally
106 GST_INT_CFLAGS="-DGST_DISABLE_DEPRECATED"
108 AC_MSG_CHECKING(for large file support)
110 #define _LARGEFILE_SOURCE
111 #define _FILE_OFFSET_BITS 64
112 #include <sys/types.h>
113 int main () { return !(sizeof(off_t) == 8); }
117 GST_EXT_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
126 dnl check for makecontext and define HAVE_MAKECONTEXT if we have it
128 if test "$ac_cv_check_mcsc" == "yes"; then
129 AC_DEFINE_UNQUOTED(HAVE_MAKECONTEXT, $HAVE_MAKECONTEXT,
130 [defined if we have makecontext ()])
133 dnl Check for a way to display the function name in debug output
136 dnl Check for essential libraries first:
137 dnl ====================================
140 dnl Minimum required version of GLib2
141 dnl required for compilation without warnings
146 PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,HAVE_GLIB2=yes,HAVE_GLIB2=no)
147 GLIB_LIBS=$GLIB2_LIBS
148 GLIB_CFLAGS=$GLIB2_CFLAGS
150 AC_SUBST(GLIB_CFLAGS)
152 if test "x$HAVE_GLIB2" = "xno"; then
153 AC_MSG_ERROR([GStreamer requires GLib 2.0 to compile.])
156 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
157 AC_SUBST(GST_PKG_DEPS)
160 dnl Minimum required version of libxml2
162 AC_SUBST(LIBXML2_REQ)
164 dnl check for libxml2
168 GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt",
169 AC_MSG_ERROR([popt 1.6.1 or newer is required to build gstreamer. You can
170 download the latest version from
171 ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/])
173 AC_MSG_NOTICE(Checking for POPT_TABLEEND)
178 #ifndef POPT_TABLEEND
186 AC_MSG_ERROR([popt 1.6.1 or newer is required to build gstreamer. You can
187 download the latest version from
188 ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/])
191 dnl Check for atomic.h
192 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
193 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
194 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
195 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
196 if test x$HAVE_ATOMIC_H = xyes; then
198 #include "asm/atomic.h"
199 main() {atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
202 if test x$HAVE_ATOMIC_H = xyes; then
203 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
209 dnl ######################################################################
210 dnl # Check command line parameters, and set shell variables accordingly #
211 dnl ######################################################################
213 dnl FIXME: simplify all this down using a few m4 macros
215 AC_ARG_ENABLE(libmmx,
216 AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
217 [case "${enableval}" in
218 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
220 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
222 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
224 AC_ARG_ENABLE(atomic,
225 AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
226 [case "${enableval}" in
227 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
228 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
229 no) USE_ATOMIC_H=no;;
230 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
232 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
234 AC_ARG_ENABLE(plugin-builddir,
235 AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installed plugins]),
236 [case "${enableval}" in
237 yes) PLUGINS_USE_BUILDDIR=yes ;;
238 no) PLUGINS_USE_BUILDDIR=no ;;
239 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
241 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
245 AC_ARG_ENABLE(profiling,
246 AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]),
247 [case "${enableval}" in
248 yes) USE_PROFILING=yes ;;
249 no) UES_PROFILING=no ;;
250 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
252 [USE_PROFILING=no]) dnl Default value
254 dnl use a cache dir for storing element registry info.
255 dnl default to building registry in the source tree if we are enabling plugin build dir
256 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
259 dnl ${localstatedir} points to PREFIX/var
260 GST_CACHE_DIR=${localstatedir}/cache/gstreamer-$GST_MAJORMINOR
262 AC_ARG_WITH(cachedir,
263 AC_HELP_STRING([--with-cachedir],[specify path to use for plugin and command completion registries]),
264 [case "${withval}" in
265 yes) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
266 no) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
267 *) GST_CACHE_DIR="${withval}" ;;
269 [:]) dnl Default value
271 AS_AC_EXPAND(GST_CACHE_DIR, $GST_CACHE_DIR)
272 AC_MSG_NOTICE(Using $GST_CACHE_DIR as registry cache dir)
275 dnl building of tests
277 AC_HELP_STRING([--disable-tests],[disable building test apps]),
278 [case "${enableval}" in
279 yes) BUILD_TESTS=yes ;;
280 no) BUILD_TESTS=no ;;
281 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
283 [BUILD_TESTS=yes]) dnl Default value
284 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
286 dnl tests known to fail
287 AC_ARG_ENABLE(failing-tests,
288 AC_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
289 [case "${enableval}" in
290 yes) BUILD_FAILING_TESTS=yes ;;
291 no) BUILD_FAILING_TESTS=no ;;
292 *) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;;
294 [BUILD_FAILING_TESTS=no]) dnl Default value
295 AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes")
296 if test x$BUILD_FAILING_TESTS = xyes; then
297 AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable])
299 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.])
302 AC_ARG_ENABLE(examples,
303 AC_HELP_STRING([--disable-examples],[disable building examples]),
304 [case "${enableval}" in
305 yes) BUILD_EXAMPLES=yes ;;
306 no) BUILD_EXAMPLES=no ;;
307 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
309 [BUILD_EXAMPLES=yes]) dnl Default value
310 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
312 dnl Next, check for the optional components:
313 dnl ========================================
315 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
316 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
317 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
318 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
319 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
320 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
321 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
322 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
323 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
324 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
325 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
326 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
328 GST_EXT_CFLAGS="$GST_EXT_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
330 dnl ################################################
331 dnl # Set defines according to variables set above #
332 dnl ################################################
335 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
336 dnl HAVE_ and it is likely to be easier to stick with the old name
337 if test "x$USE_LIBMMX" = xyes; then
338 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
341 if test "x$USE_ATOMIC_H" = xyes; then
342 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
345 dnl test if we have pthread_attr_setstack; if not use the older calls
346 AC_CHECK_LIB(pthread, pthread_attr_setstack,
347 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACK, 1,
348 [Defined if libpthread has pthread_attr_setstack ()]))
350 dnl test if we have posix_memalign; FreeBSD doesn't
351 AC_CHECK_FUNC(posix_memalign,
352 AC_DEFINE(HAVE_POSIX_MEMALIGN, 1,
353 [Defined if we have posix_memalign ()]))
355 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
356 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
359 if test "x$USE_DEBUG" = xyes; then
360 GST_INT_CFLAGS="$GST_INT_CFLAGS -g"
363 if test "x$USE_PROFILING" = xyes; then
364 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
365 FOMIT_FRAME_POINTER=""
367 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
371 dnl AC_SUBST(FOMIT_FRAME_POINTER)
374 dnl #############################
375 dnl # Set automake conditionals #
376 dnl #############################
378 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
379 dnl HAVE_ and it is likely to be easier to stick with the old name
380 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
382 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
383 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
385 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
388 dnl ############################
389 dnl # Set up some more defines #
390 dnl ############################
392 dnl Set location of registry dir.
393 AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Define the registry directory])
394 AC_SUBST(GST_CACHE_DIR)
396 dnl Set location of plugin directory
397 if test "x${prefix}" = "xNONE"; then
398 PLUGINS_DIR=${ac_default_prefix}/lib/gstreamer-$GST_MAJORMINOR
400 PLUGINS_DIR=${prefix}/lib/gstreamer-$GST_MAJORMINOR
402 AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
403 AC_SUBST(PLUGINS_DIR)
405 dnl Set location of uninstalled plugin directory
406 PLUGINS_BUILDDIR=`pwd`
407 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory])
408 AC_SUBST(PLUGINS_BUILDDIR)
410 dnl since glib and xml are package deps, there's no need to include their cflags
411 dnl in the pkg-config file
414 GST_PKG_CFLAGS=$GST_EXT_CFLAGS
415 GST_PKG_LIBS=$GST_EXT_LIBS
416 AC_SUBST(GST_PKG_CFLAGS)
417 AC_SUBST(GST_PKG_LIBS)
419 dnl finalize _CFLAGS and _LIBS
420 dnl add GLIB and XML if necessary to EXT_*
421 GST_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
422 GST_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS -lpopt"
424 dnl Private vars for libgst only
425 LIBGST_LIBS="$GST_LIBS"
426 LIBGST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir) $GST_ERROR"
427 AC_SUBST(LIBGST_LIBS)
428 AC_SUBST(LIBGST_CFLAGS)
430 dnl Vars for everyone else
431 GST_INT_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la"
432 GST_INT_CFLAGS="$GST_INT_CFLAGS -I\$(top_srcdir)/libs -I\$(top_srcdir)/include"
434 AC_SUBST(GST_CFLAGS, "$LIBGST_CFLAGS $GST_INT_CFLAGS")
435 AC_SUBST(GST_LIBS, "$LIBGST_LIBS $GST_INT_LIBS")
437 GST_PLUGIN_LDFLAGS="-module -avoid-version"
438 AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
440 AC_CONFIG_SUBDIRS(libs/ext/cothreads)
442 dnl ##################################################
443 dnl # deps for examples from manual #
444 dnl ##################################################
446 PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0,
447 HAVE_LIBGNOMEUI="yes", HAVE_LIBGNOMEUI="no")
448 AC_SUBST(LIBGNOMEUI_CFLAGS)
449 AC_SUBST(LIBGNOMEUI_LIBS)
450 AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes")
452 dnl ##################################################
453 dnl # Prepare informative messages to display at end #
454 dnl ##################################################
458 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
459 infomessages="$infomessages
460 *** Warning: You have configured using the --enable-plugin-builddir option.
462 This option is for development purposes only: binaries built with
463 it should be used with code in the build tree only. To build an
464 installable version, use ./configure without the --enable-plugin-builddir
465 option. Note that the autogen.sh script supplies the plugin builddir
466 option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make
467 an installable build.
472 dnl #########################
473 dnl # Make the output files #
474 dnl #########################
476 dnl libs/ext/Makefile
477 dnl nothing there yet !
483 gst/autoplug/Makefile
484 gst/indexers/Makefile
485 gst/elements/Makefile
487 gst/schedulers/Makefile
489 gst/registries/Makefile
492 libs/gst/bytestream/Makefile
493 libs/gst/getbits/Makefile
494 libs/gst/putbits/Makefile
495 libs/gst/control/Makefile
498 tests/bufspeed/Makefile
499 tests/memchunk/Makefile
500 tests/muxing/Makefile
501 tests/seeking/Makefile
503 tests/threadstate/Makefile
505 testsuite/bytestream/Makefile
506 testsuite/caps/Makefile
507 testsuite/cleanup/Makefile
508 testsuite/clock/Makefile
509 testsuite/dynparams/Makefile
510 testsuite/elements/Makefile
511 testsuite/indexers/Makefile
512 testsuite/plugin/Makefile
513 testsuite/refcounting/Makefile
514 testsuite/threads/Makefile
516 examples/autoplug/Makefile
517 examples/cutter/Makefile
518 examples/helloworld/Makefile
519 examples/helloworld2/Makefile
520 examples/launch/Makefile
521 examples/manual/Makefile
522 examples/mixer/Makefile
523 examples/pingpong/Makefile
524 examples/plugins/Makefile
525 examples/queue/Makefile
526 examples/queue2/Makefile
527 examples/queue3/Makefile
528 examples/queue4/Makefile
529 examples/thread/Makefile
530 examples/typefind/Makefile
531 examples/xml/Makefile
534 docs/devhelp/Makefile
537 docs/gst/gstreamer.types
541 docs/plugins/Makefile
542 docs/plugins/gstreamer-plugins.types
546 gstreamer-uninstalled.pc
548 echo "$infomessages", infomessages="$infomessages"