mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-27 14:31:01 +00:00
2a3ae58c89
Original commit message from CVS: together with the recent commit in common, this little beauty should - implement both --with-automake and --with-autoconf to autogen.sh - pass them on to configure, along with good settings for aclocal and autoheader - which then forces these tools to be used in rebuilding through running make in the dirs (which was the whole point of this makeover) Please test and let me know if it doesn't break other stuff. Right, going to make the really minimal set of changes to all of our other modules now. I love having made a common/ dir ;) We now return to your regularly scheduled broadcast.
478 lines
14 KiB
Text
478 lines
14 KiB
Text
AC_INIT
|
|
AC_CANONICAL_TARGET([])
|
|
|
|
dnl when going to/from release please set the nano (fourth number) right !
|
|
dnl releases only do Wall, cvs and prerelease does Werror too
|
|
AS_VERSION(gstreamer, GST_VERSION, 0, 3, 4, 1, GST_ERROR="-Wall", GST_ERROR="-Wall -Werror")
|
|
|
|
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
|
|
AS_LIBTOOL(GST, 0, 0, 0, yes)
|
|
|
|
AC_CONFIG_SRCDIR([gst/gst.c])
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
dnl Add parameters for aclocal
|
|
dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
|
|
ACLOCAL="$ACLOCAL -I common/m4 $ACLOCAL_FLAGS"
|
|
|
|
AM_MAINTAINER_MODE
|
|
|
|
AC_PROG_CC
|
|
AM_PROG_CC_STDC
|
|
AM_PROG_AS
|
|
AS="${CC}"
|
|
AC_PROG_CXX
|
|
AC_PROG_CXXCPP
|
|
AC_ISC_POSIX
|
|
|
|
dnl We disable static building for development, for time savings
|
|
dnl *NOTE*: dnl this line before release, so release does static too
|
|
dnl AM_DISABLE_STATIC
|
|
|
|
AC_HEADER_STDC([])
|
|
|
|
|
|
dnl ##############################
|
|
dnl # Do automated configuration #
|
|
dnl ##############################
|
|
|
|
dnl Check for tools:
|
|
dnl ================
|
|
|
|
dnl allow for different autotools
|
|
AS_AUTOTOOLS_ALTERNATE()
|
|
|
|
dnl modify pkg-config path
|
|
AC_ARG_WITH(pkg-config-path,
|
|
AC_HELP_STRING([--with-pkg-config-path],
|
|
[colon-separated list of pkg-config(1) dirs]),
|
|
[export PKG_CONFIG_PATH=${withval}])
|
|
|
|
dnl Check for nasm
|
|
AC_PATH_PROG(NASM_PATH, nasm, no)
|
|
AC_SUBST(NASM_PATH)
|
|
if test x$NASM_PATH = xno; then
|
|
AC_MSG_WARN(Couldn't find nasm)
|
|
HAVE_NASM="no"
|
|
else AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
|
|
HAVE_NASM="yes"
|
|
fi
|
|
|
|
GST_DOC()
|
|
GST_ARCH()
|
|
|
|
dnl we require bison for building of some of the marshal files
|
|
AC_PATH_PROG(BISON_PATH, bison, no)
|
|
if test x$BISON_PATH = xno; then
|
|
AC_MSG_ERROR(Could not find bison)
|
|
fi
|
|
|
|
dnl
|
|
dnl We should really use AC_SYS_LARGEFILE, but the problem is
|
|
dnl many of the plugins don't include "config.h". To assure
|
|
dnl binary compatibility, it is necessary that all gstreamer
|
|
dnl code be compiled with the same sizeof(off_t), so we use
|
|
dnl the following crude hack.
|
|
dnl
|
|
|
|
dnl
|
|
dnl GST_CFLAGS are split up as GST_EXT_CFLAGS and GST_INT_CFLAGS
|
|
dnl same for libs
|
|
dnl this is so we can make GST_CFLAGS for external modules available
|
|
dnl without mixing in internal (uninstalled) CFLAGS
|
|
dnl
|
|
|
|
AC_MSG_CHECKING(for large file support)
|
|
AC_TRY_RUN([
|
|
#define _LARGEFILE_SOURCE
|
|
#define _FILE_OFFSET_BITS 64
|
|
#include <sys/types.h>
|
|
int main () { return !(sizeof(off_t) == 8); }
|
|
],
|
|
[
|
|
AC_MSG_RESULT(yes)
|
|
GST_EXT_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
|
|
],
|
|
[
|
|
AC_MSG_RESULT(no)
|
|
],
|
|
[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
dnl Check for essential libraries first:
|
|
dnl ====================================
|
|
|
|
dnl === GLib 2 ===
|
|
dnl Minimum required version of GLib2
|
|
dnl required for compilation without warnings
|
|
GLIB2_REQ="2.0.1"
|
|
AC_SUBST(GLIB2_REQ)
|
|
|
|
dnl Check for glib2
|
|
PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,
|
|
HAVE_GLIB2=yes,HAVE_GLIB2=no)
|
|
GLIB_LIBS=$GLIB2_LIBS
|
|
GLIB_CFLAGS=$GLIB2_CFLAGS
|
|
AC_SUBST(GLIB_LIBS)
|
|
AC_SUBST(GLIB_CFLAGS)
|
|
|
|
if test "x$HAVE_GLIB2" = "xno"; then
|
|
AC_MSG_ERROR([GStreamer requires GLib 2.0 to compile.])
|
|
fi
|
|
|
|
GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
|
|
AC_SUBST(GST_PKG_DEPS)
|
|
|
|
dnl === libxml 2 ===
|
|
dnl Minimum required version of libxml2
|
|
LIBXML2_REQ="2.4.0"
|
|
AC_SUBST(LIBXML2_REQ)
|
|
|
|
dnl check for libxml2
|
|
LIBXML_PKG=', libxml-2.0'
|
|
PKG_CHECK_MODULES(XML, libxml-2.0 >= $LIBXML2_REQ, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
|
|
if test "x$HAVE_LIBXML2" = "xyes"; then
|
|
AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 is available])
|
|
else
|
|
AC_MSG_ERROR([Need libxml2 for glib2 builds -- you should be able to do without it -- this needs fixing])
|
|
fi
|
|
AC_SUBST(LIBXML_PKG)
|
|
AC_SUBST(XML_LIBS)
|
|
AC_SUBST(XML_CFLAGS)
|
|
|
|
GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt",
|
|
AC_MSG_ERROR([popt 1.5 or newer is required to build gstreamer. You can
|
|
download the latest version from ftp://people.redhat.com/sopwith/popt/]))
|
|
|
|
dnl Check for atomic.h
|
|
dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
|
|
dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
|
|
AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
|
|
dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
|
|
if test x$HAVE_ATOMIC_H = xyes; then
|
|
AC_TRY_RUN([
|
|
#include "asm/atomic.h"
|
|
main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
|
|
],, [
|
|
# Not successful
|
|
if test x$HAVE_ATOMIC_H = xyes; then
|
|
AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
|
|
fi
|
|
HAVE_ATOMIC_H=no
|
|
], [
|
|
# Cross compiling
|
|
AC_MSG_RESULT(yes)
|
|
AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
|
|
])
|
|
fi
|
|
|
|
dnl ######################################################################
|
|
dnl # Check command line parameters, and set shell variables accordingly #
|
|
dnl ######################################################################
|
|
|
|
dnl FIXME: simplify all this down using a few m4 macros
|
|
|
|
AC_ARG_ENABLE(libmmx,
|
|
AC_HELP_STRING([--enable-libmmx][use libmmx, if available]),
|
|
[case "${enableval}" in
|
|
yes) USE_LIBMMX=$HAVE_LIBMMX ;;
|
|
no) USE_LIBMMX=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
|
|
esac],
|
|
[USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
|
|
|
|
AC_ARG_ENABLE(atomic,
|
|
AC_HELP_STRING([--enable-atomic][use atomic reference counting header]),
|
|
[case "${enableval}" in
|
|
yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
|
|
noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
|
|
no) USE_ATOMIC_H=no;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
|
|
esac],
|
|
[USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
|
|
|
|
AC_ARG_ENABLE(plugin-builddir,
|
|
AC_HELP_STRING([--enable-plugin-builddir][allow tests/demos to use non-installed plugins]),
|
|
[case "${enableval}" in
|
|
yes) PLUGINS_USE_BUILDDIR=yes ;;
|
|
no) PLUGINS_USE_BUILDDIR=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
|
|
esac],
|
|
[PLUGINS_USE_BUILDDIR=no]) dnl Default value
|
|
|
|
GST_DEBUGINFO
|
|
|
|
AC_ARG_ENABLE(profiling,
|
|
AC_HELP_STRING([--enable-profiling][adds -pg to compiler commandline, for profiling]),
|
|
[case "${enableval}" in
|
|
yes) USE_PROFILING=yes ;;
|
|
no) UES_PROFILING=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
|
|
esac],
|
|
[USE_PROFILING=no]) dnl Default value
|
|
|
|
dnl default to building registry in the source tree if we are enabling plugin build dir
|
|
if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
|
|
GST_CONFIG_DIR=`pwd`
|
|
else
|
|
GST_CONFIG_DIR=${sysconfdir}/gstreamer
|
|
fi
|
|
AC_ARG_WITH(configdir,
|
|
AC_HELP_STRING([--with-configdir][specify path to use for plugin and command completion registries]),
|
|
[case "${withval}" in
|
|
yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
|
|
no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
|
|
*) GST_CONFIG_DIR="${withval}" ;;
|
|
esac],
|
|
[:]) dnl Default value
|
|
|
|
AS_AC_EXPAND(GST_CONFIG_DIR, $GST_CONFIG_DIR)
|
|
AC_MSG_NOTICE(Using $GST_CONFIG_DIR as configuration dir)
|
|
|
|
|
|
dnl building of tests
|
|
AC_ARG_ENABLE(tests,
|
|
AC_HELP_STRING([--disable-tests][disable building test apps]),
|
|
[case "${enableval}" in
|
|
yes) BUILD_TESTS=yes ;;
|
|
no) BUILD_TESTS=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
|
|
esac],
|
|
[BUILD_TESTS=yes]) dnl Default value
|
|
AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
|
|
|
|
dnl tests known to fail
|
|
AC_ARG_ENABLE(failing-tests,
|
|
AC_HELP_STRING([--disable-failing-tests][disable building tests known to fail]),
|
|
[case "${enableval}" in
|
|
yes) BUILD_FAILING_TESTS=yes ;;
|
|
no) BUILD_FAILING_TESTS=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;;
|
|
esac],
|
|
[BUILD_FAILING_TESTS=yes]) dnl Default value
|
|
AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes")
|
|
|
|
AC_ARG_ENABLE(examples,
|
|
AC_HELP_STRING([--disable-examples][disable building examples]),
|
|
[case "${enableval}" in
|
|
yes) BUILD_EXAMPLES=yes ;;
|
|
no) BUILD_EXAMPLES=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
|
|
esac],
|
|
[BUILD_EXAMPLES=yes]) dnl Default value
|
|
AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
|
|
|
|
dnl Next, check for the optional components:
|
|
dnl ========================================
|
|
|
|
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
|
|
GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
|
|
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
|
|
GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
|
|
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
|
|
GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
|
|
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
|
|
GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
|
|
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
|
|
GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
|
|
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
|
|
GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
|
|
|
|
GST_EXT_CFLAGS="$GST_EXT_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
|
|
|
|
dnl ################################################
|
|
dnl # Set defines according to variables set above #
|
|
dnl ################################################
|
|
|
|
|
|
dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
|
|
dnl HAVE_ and it is likely to be easier to stick with the old name
|
|
if test "x$USE_LIBMMX" = xyes; then
|
|
AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
|
|
fi
|
|
|
|
if test "x$USE_ATOMIC_H" = xyes; then
|
|
AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
|
|
fi
|
|
|
|
if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
|
|
AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
|
|
fi
|
|
|
|
dnl if test "x$USE_DEBUG" = xyes; then
|
|
dnl CFLAGS="$CFLAGS -g"
|
|
dnl fi
|
|
|
|
if test "x$USE_PROFILING" = xyes; then
|
|
dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
|
|
FOMIT_FRAME_POINTER=""
|
|
else
|
|
FOMIT_FRAME_POINTER="-fomit-frame-pointer"
|
|
fi
|
|
|
|
dnl
|
|
dnl AC_SUBST(FOMIT_FRAME_POINTER)
|
|
dnl
|
|
|
|
dnl #############################
|
|
dnl # Set automake conditionals #
|
|
dnl #############################
|
|
|
|
dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
|
|
dnl HAVE_ and it is likely to be easier to stick with the old name
|
|
AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
|
|
|
|
AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
|
|
AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
|
|
|
|
AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
|
|
AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
|
|
|
|
|
|
dnl ############################
|
|
dnl # Set up some more defines #
|
|
dnl ############################
|
|
|
|
dnl Set location of configuration dir.
|
|
AC_DEFINE_UNQUOTED(GST_CONFIG_DIR, "$GST_CONFIG_DIR", [Define the configuration directory])
|
|
AC_SUBST(GST_CONFIG_DIR)
|
|
|
|
dnl Set location of plugin directory
|
|
if test "x${prefix}" = "xNONE"; then
|
|
PLUGINS_DIR=${ac_default_prefix}/lib/gst
|
|
else
|
|
PLUGINS_DIR=${prefix}/lib/gst
|
|
fi
|
|
AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
|
|
AC_SUBST(PLUGINS_DIR)
|
|
|
|
dnl Set location of uninstalled plugin directory
|
|
PLUGINS_BUILDDIR=`pwd`
|
|
AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory])
|
|
AC_SUBST(PLUGINS_BUILDDIR)
|
|
|
|
dnl since glib and xml are package deps, there's no need to include their cflags
|
|
dnl in the pkg-config file
|
|
|
|
dnl for pkg-config
|
|
GST_PKG_CFLAGS=$GST_EXT_CFLAGS
|
|
GST_PKG_LIBS=$GST_EXT_LIBS
|
|
AC_SUBST(GST_PKG_CFLAGS)
|
|
AC_SUBST(GST_PKG_LIBS)
|
|
|
|
dnl finalize _CFLAGS and _LIBS
|
|
dnl add GLIB and XML if necessary to EXT_*
|
|
GST_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
|
|
GST_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS -lpopt"
|
|
|
|
dnl Private vars for libgst only
|
|
LIBGST_LIBS="$GST_LIBS"
|
|
LIBGST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir) $GST_ERROR"
|
|
AC_SUBST(LIBGST_LIBS)
|
|
AC_SUBST(LIBGST_CFLAGS)
|
|
|
|
dnl Vars for everyone else
|
|
GST_INT_LIBS="\$(top_builddir)/gst/libgstreamer.la"
|
|
GST_INT_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir)/include"
|
|
|
|
AC_SUBST(GST_CFLAGS, "$LIBGST_CFLAGS $GST_INT_CFLAGS")
|
|
AC_SUBST(GST_LIBS, "$LIBGST_LIBS $GST_INT_LIBS")
|
|
|
|
GST_PLUGIN_LDFLAGS='-module -avoid-version'
|
|
AC_SUBST(GST_PLUGIN_LDFLAGS)
|
|
|
|
AC_CONFIG_SUBDIRS(libs/ext/cothreads)
|
|
|
|
dnl ##################################################
|
|
dnl # Prepare informative messages to display at end #
|
|
dnl ##################################################
|
|
|
|
infomessages=
|
|
|
|
if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
|
|
infomessages="$infomessages
|
|
*** Warning: You have configured using the --enable-plugin-builddir option.
|
|
|
|
This option is for development purposes only: binaries built with
|
|
it should be used with code in the build tree only. To build an
|
|
installable version, use ./configure without the --enable-plugin-builddir
|
|
option. Note that the autogen.sh script supplies the plugin builddir
|
|
option automatically -- run ./autogen.sh --disable-plugin-buildddir to make
|
|
an installable build.
|
|
|
|
"
|
|
fi
|
|
|
|
dnl #########################
|
|
dnl # Make the output files #
|
|
dnl #########################
|
|
|
|
dnl libs/ext/Makefile
|
|
AC_OUTPUT(
|
|
Makefile
|
|
include/Makefile
|
|
gst/Makefile
|
|
gst/gstversion.h
|
|
gst/autoplug/Makefile
|
|
gst/elements/Makefile
|
|
gst/parse/Makefile
|
|
gst/schedulers/Makefile
|
|
gst/types/Makefile
|
|
gst/registries/Makefile
|
|
libs/Makefile
|
|
libs/gst/Makefile
|
|
libs/gst/bytestream/Makefile
|
|
libs/gst/getbits/Makefile
|
|
libs/gst/putbits/Makefile
|
|
libs/gst/control/Makefile
|
|
libs/ext/Makefile
|
|
tests/Makefile
|
|
tests/bufspeed/Makefile
|
|
tests/memchunk/Makefile
|
|
tests/muxing/Makefile
|
|
tests/sched/Makefile
|
|
testsuite/Makefile
|
|
testsuite/bytestream/Makefile
|
|
testsuite/caps/Makefile
|
|
testsuite/cleanup/Makefile
|
|
testsuite/clock/Makefile
|
|
testsuite/dynparams/Makefile
|
|
testsuite/elements/Makefile
|
|
testsuite/plugin/Makefile
|
|
testsuite/refcounting/Makefile
|
|
testsuite/threads/Makefile
|
|
examples/Makefile
|
|
examples/autoplug/Makefile
|
|
examples/helloworld/Makefile
|
|
examples/helloworld2/Makefile
|
|
examples/launch/Makefile
|
|
examples/queue/Makefile
|
|
examples/queue2/Makefile
|
|
examples/queue3/Makefile
|
|
examples/queue4/Makefile
|
|
examples/thread/Makefile
|
|
examples/mixer/Makefile
|
|
examples/cutter/Makefile
|
|
examples/launch/Makefile
|
|
examples/xml/Makefile
|
|
examples/plugins/Makefile
|
|
examples/typefind/Makefile
|
|
examples/mixer/Makefile
|
|
tools/Makefile
|
|
docs/Makefile
|
|
docs/gst/Makefile
|
|
docs/gst/gstreamer.types
|
|
docs/libs/Makefile
|
|
docs/plugins/Makefile
|
|
docs/plugins/gstreamer-plugins.types
|
|
docs/manual/Makefile
|
|
docs/fwg/Makefile
|
|
docs/xsl/Makefile
|
|
docs/devhelp/Makefile
|
|
stamp.h
|
|
gstreamer.pc
|
|
gstreamer-uninstalled.pc
|
|
gstreamer.spec,
|
|
echo "$infomessages", infomessages="$infomessages"
|
|
)
|