2 AC_CANONICAL_TARGET([])
4 dnl when going to/from release please set the nano (fourth number) right !
5 AS_VERSION(gstreamer, GST_VERSION, 0, 3, 3, 1)
6 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
7 AS_LIBTOOL(GST, 0, 0, 0, yes)
9 AC_CONFIG_SRCDIR([gst/gst.c])
10 AM_CONFIG_HEADER(config.h)
12 dnl Add parameters for aclocal
13 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
14 ACLOCAL="$ACLOCAL -I common/m4 $ACLOCAL_FLAGS"
26 dnl We disable static building for development, for time savings
27 dnl *NOTE*: dnl this line before release, so release does static too
33 dnl ##############################
34 dnl # Do automated configuration #
35 dnl ##############################
40 dnl modify pkg-config path
41 AC_ARG_WITH(pkg-config-path,
42 AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
43 [export PKG_CONFIG_PATH=${withval}])
46 AC_PATH_PROG(NASM_PATH, nasm, no)
48 if test x$NASM_PATH = xno; then
49 AC_MSG_WARN(Couldn't find nasm)
51 else AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
59 dnl We should really use AC_SYS_LARGEFILE, but the problem is
60 dnl many of the plugins don't include "config.h". To assure
61 dnl binary compatibility, it is necessary that all gstreamer
62 dnl code be compiled with the same sizeof(off_t), so we use
63 dnl the following crude hack.
67 dnl GST_CFLAGS are split up as GST_EXT_CFLAGS and GST_INT_CFLAGS
69 dnl this is so we can make GST_CFLAGS for external modules available
70 dnl without mixing in internal (uninstalled) CFLAGS
73 AC_MSG_CHECKING(for large file support)
75 #define _LARGEFILE_SOURCE
76 #define _FILE_OFFSET_BITS 64
77 #include <sys/types.h>
78 int main () { return !(sizeof(off_t) == 8); }
82 GST_EXT_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
91 dnl Check for essential libraries first:
92 dnl ====================================
95 dnl Minimum required version of GLib2
100 PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,
101 HAVE_GLIB2=yes,HAVE_GLIB2=no)
102 GLIB_LIBS=$GLIB2_LIBS
103 GLIB_CFLAGS=$GLIB2_CFLAGS
105 AC_SUBST(GLIB_CFLAGS)
107 if test "x$HAVE_GLIB2" = "xno"; then
108 AC_MSG_ERROR([GStreamer requires GLib 2.0 to compile.])
111 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
112 AC_SUBST(GST_PKG_DEPS)
115 dnl Minimum required version of libxml2
117 AC_SUBST(LIBXML2_REQ)
119 dnl check for libxml2
120 LIBXML_PKG=', libxml-2.0'
121 PKG_CHECK_MODULES(XML, libxml-2.0 >= $LIBXML2_REQ, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
122 if test "x$HAVE_LIBXML2" = "xyes"; then
123 AC_DEFINE(HAVE_LIBXML2)
125 AC_MSG_ERROR([Need libxml2 for glib2 builds -- you should be able to do without it -- this needs fixing])
131 GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt",
132 AC_MSG_ERROR([popt 1.5 or newer is required to build gstreamer. You can
133 download the latest version from ftp://people.redhat.com/sopwith/popt/]))
135 dnl Check for atomic.h
136 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
137 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
138 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
139 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
140 if test x$HAVE_ATOMIC_H = xyes; then
142 #include "asm/atomic.h"
143 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
146 if test x$HAVE_ATOMIC_H = xyes; then
147 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
153 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
157 dnl ==========================================================================
158 dnl ============================= gst plugins ================================
159 dnl ==========================================================================
160 GST_PLUGIN_LDFLAGS='-module -avoid-version'
161 AC_SUBST(GST_PLUGIN_LDFLAGS)
163 dnl ######################################################################
164 dnl # Check command line parameters, and set shell variables accordingly #
165 dnl ######################################################################
167 dnl FIXME: simplify all this down using a few m4 macros
169 AC_ARG_ENABLE(libmmx,
170 AC_HELP_STRING([--enable-libmmx][use libmmx, if available]),
171 [case "${enableval}" in
172 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
174 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
176 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
178 AC_ARG_ENABLE(atomic,
179 AC_HELP_STRING([--enable-atomic][use atomic reference counting header]),
180 [case "${enableval}" in
181 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
182 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
183 no) USE_ATOMIC_H=no;;
184 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
186 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
188 AC_ARG_ENABLE(plugin-builddir,
189 AC_HELP_STRING([--enable-plugin-builddir][allow tests/demos to use non-installed plugins]),
190 [case "${enableval}" in
191 yes) PLUGINS_USE_BUILDDIR=yes ;;
192 no) PLUGINS_USE_BUILDDIR=no ;;
193 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
195 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
199 AC_ARG_ENABLE(profiling,
200 AC_HELP_STRING([--enable-profiling][adds -pg to compiler commandline, for profiling]),
201 [case "${enableval}" in
202 yes) USE_PROFILING=yes ;;
203 no) UES_PROFILING=no ;;
204 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
206 [USE_PROFILING=no]) dnl Default value
208 dnl default to building registry in the source tree if we are enabling plugin build dir
209 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
212 GST_CONFIG_DIR=/etc/gstreamer
214 AC_ARG_WITH(configdir,
215 AC_HELP_STRING([--with-configdir][specify path to use for plugin and command completion registries]),
216 [case "${withval}" in
217 yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
218 no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
219 *) GST_CONFIG_DIR="${withval}" ;;
221 [:]) dnl Default value
224 AC_HELP_STRING([--disable-tests][disable building test apps]),
225 [case "${enableval}" in
226 yes) BUILD_TESTS=yes ;;
227 no) BUILD_TESTS=no ;;
228 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
230 [BUILD_TESTS=yes]) dnl Default value
232 AC_ARG_ENABLE(examples,
233 AC_HELP_STRING([--disable-examples][disable building examples]),
234 [case "${enableval}" in
235 yes) BUILD_EXAMPLES=yes ;;
236 no) BUILD_EXAMPLES=no ;;
237 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
239 [BUILD_EXAMPLES=yes]) dnl Default value
241 dnl Next, check for the optional components:
242 dnl ========================================
244 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
245 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
246 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
247 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
248 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
249 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
250 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
251 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
252 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
253 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
254 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
255 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
257 GST_EXT_CFLAGS="$GST_EXT_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
259 dnl ################################################
260 dnl # Set defines according to variables set above #
261 dnl ################################################
264 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
265 dnl HAVE_ and it is likely to be easier to stick with the old name
266 if test "x$USE_LIBMMX" = xyes; then
267 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
270 if test "x$USE_ATOMIC_H" = xyes; then
271 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
274 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
275 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
278 dnl if test "x$USE_DEBUG" = xyes; then
279 dnl CFLAGS="$CFLAGS -g"
282 if test "x$USE_PROFILING" = xyes; then
283 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
284 FOMIT_FRAME_POINTER=""
286 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
290 dnl AC_SUBST(FOMIT_FRAME_POINTER)
293 dnl #############################
294 dnl # Set automake conditionals #
295 dnl #############################
297 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
298 dnl HAVE_ and it is likely to be easier to stick with the old name
299 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
301 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
302 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
304 AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
305 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
306 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
307 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
310 dnl ############################
311 dnl # Set up some more defines #
312 dnl ############################
314 dnl Set location of configuration dir.
315 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
316 AC_SUBST(GST_CONFIG_DIR)
318 dnl Set location of plugin directory
319 if test "x${prefix}" = "xNONE"; then
320 PLUGINS_DIR=${ac_default_prefix}/lib/gst
322 PLUGINS_DIR=${prefix}/lib/gst
324 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
325 AC_SUBST(PLUGINS_DIR)
327 dnl Set location of uninstalled plugin directory
328 PLUGINS_BUILDDIR=`pwd`
329 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
330 AC_SUBST(PLUGINS_BUILDDIR)
332 dnl since glib and xml are package deps, there's no need to include their cflags
333 dnl in the pkg-config file
336 GST_PKG_CFLAGS=$GST_EXT_CFLAGS
337 GST_PKG_LIBS=$GST_EXT_LIBS
338 AC_SUBST(GST_PKG_CFLAGS)
339 AC_SUBST(GST_PKG_LIBS)
341 dnl finalize _CFLAGS and _LIBS
342 dnl add GLIB and XML if necessary to EXT_*
343 GST_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
344 GST_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS -lpopt"
346 dnl Private vars for libgst only
347 LIBGST_LIBS="$GST_LIBS"
348 LIBGST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir) -Wall"
349 AC_SUBST(LIBGST_LIBS)
350 AC_SUBST(LIBGST_CFLAGS)
352 dnl Vars for everyone else
353 GST_INT_LIBS="\$(top_builddir)/gst/libgstreamer.la"
354 GST_INT_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir)/include"
356 AC_SUBST(GST_CFLAGS, "$LIBGST_CFLAGS $GST_INT_CFLAGS")
357 AC_SUBST(GST_LIBS, "$LIBGST_LIBS $GST_INT_LIBS")
359 AC_CONFIG_SUBDIRS(libs/ext/cothreads)
361 dnl ##################################################
362 dnl # Prepare informative messages to display at end #
363 dnl ##################################################
367 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
368 infomessages="$infomessages
369 *** Warning: You have configured using the --enable-plugin-builddir option.
371 This option is for development purposes only: binaries built with
372 it should be used with code in the build tree only. To build an
373 installable version, use ./configure without the --enable-plugin-builddir
374 option. Note that the autogen.sh script supplies the plugin builddir
375 option automatically -- run ./autogen.sh --disable-plugin-buildddir to make
376 an installable build.
381 dnl #########################
382 dnl # Make the output files #
383 dnl #########################
385 dnl libs/ext/Makefile
392 gst/elements/Makefile
393 gst/autoplug/Makefile
394 gst/schedulers/Makefile
397 libs/gst/bytestream/Makefile
398 libs/gst/getbits/Makefile
399 libs/gst/putbits/Makefile
400 libs/gst/control/Makefile
403 tests/bufspeed/Makefile
404 tests/memchunk/Makefile
405 tests/muxing/Makefile
408 testsuite/bytestream/Makefile
409 testsuite/caps/Makefile
410 testsuite/cleanup/Makefile
411 testsuite/elements/Makefile
412 testsuite/plugin/Makefile
413 testsuite/dynparams/Makefile
415 examples/autoplug/Makefile
416 examples/helloworld/Makefile
417 examples/helloworld2/Makefile
418 examples/launch/Makefile
419 examples/queue/Makefile
420 examples/queue2/Makefile
421 examples/queue3/Makefile
422 examples/queue4/Makefile
423 examples/thread/Makefile
424 examples/mixer/Makefile
425 examples/cutter/Makefile
426 examples/launch/Makefile
427 examples/xml/Makefile
428 examples/plugins/Makefile
429 examples/typefind/Makefile
430 examples/mixer/Makefile
434 docs/gst/gstreamer.types
436 docs/plugins/Makefile
437 docs/plugins/gstreamer-plugins.types
441 docs/devhelp/Makefile
444 gstreamer-uninstalled.pc
446 echo "$infomessages", infomessages="$infomessages"