Commit 289d8e53 authored by Tim-Philipp Müller's avatar Tim-Philipp Müller 🐠

Remove autotools build system

parent 2409f4f3
aclocal.m4
autom4te.cache
config.h
config.h.in
config.log
config.status
config.guess
config.sub
config.rpath
configure
gstreamer-libs-uninstalled*.pc
gstreamer-libs*.pc
gstreamer-play-uninstalled*.pc
gstreamer-play*.pc
libtool
stamp-h
stamp-h.in
stamp-h1
gst-element-check-*.m4
ltmain.sh
missing
mkinstalldirs
compile
install-sh
depcomp
autoregen.sh
ABOUT-NLS
/INSTALL
_stdint.h
gst-plugins-base-*.tar*
.deps
.libs
*.lo
*.la
*.o
*~
*.bak
/m4
Makefile.in
Makefile
*.gir
*.typelib
*.gc??
.dirstamp
/gst-libs/gst/pbutils/gstpluginsbaseversion.h
/gst-libs/gst/tag/mklangtables
/gst-libs/gst/tag/mklicensestables
/gst-libs/gst/audio/audio-marshal.[ch]
/gst-libs/gst/video/video-marshal.[ch]
/gst-libs/gst/*/*-enumtypes.[ch]
/tests/examples/compositor/crossfade
/tests/examples/playback/playback-test
tmp-orc.c
gst*orc.h
tests/check/orc
Build
*.user
......@@ -67,9 +9,7 @@ Build
*.opensdf
*.DS_Store
/test-driver
*.trs
*.log
# Meson
/build
/_build
/subprojects
[submodule "common"]
path = common
url = https://gitlab.freedesktop.org/gstreamer/common.git
if BUILD_EXTERNAL
SUBDIRS_EXT = ext
else
SUBDIRS_EXT =
endif
SUBDIRS = \
pkgconfig \
gst-libs \
gst sys $(SUBDIRS_EXT) \
tools \
tests \
po \
common \
m4
DIST_SUBDIRS = \
pkgconfig \
gst-libs \
gst sys ext \
tools \
tests \
po \
common \
m4
EXTRA_DIST = \
depcomp \
AUTHORS COPYING NEWS README RELEASE REQUIREMENTS \
ChangeLog gst-plugins-base.doap autogen.sh \
$(shell find "$(top_srcdir)" -type f -name meson.build ! -path "$(top_srcdir)/$(PACKAGE_TARNAME)-*" ) \
gst-libs/gst/gl/gstglconfig.h.meson \
meson_options.txt
DISTCLEANFILES = _stdint.h
ACLOCAL_AMFLAGS = -I m4 -I common/m4
include $(top_srcdir)/common/release.mak
include $(top_srcdir)/common/po.mak
check-valgrind:
$(MAKE) -C tests/check check-valgrind
if HAVE_GST_CHECK
check-torture:
$(MAKE) -C tests/check torture
build-checks:
$(MAKE) -C tests/check build-checks
else
check-torture:
true
build-checks:
true
endif
include $(top_srcdir)/common/coverage/lcov.mak
# cruft: plugins that have been merged or moved or renamed
CRUFT_FILES = \
$(top_builddir)/gst-plugins-base.spec \
$(top_builddir)/common/shave \
$(top_builddir)/common/shave-libtool \
$(top_builddir)/gst-libs/gst/audio/testchannels \
$(top_builddir)/gst-libs/gst/app/gstapp-marshal.c \
$(top_builddir)/gst-libs/gst/app/gstapp-marshal.h \
$(top_builddir)/gst/encoding/.libs/libgstencodebin.so \
$(top_builddir)/tests/check/elements/gdppay \
$(top_builddir)/tests/check/elements/gdpdepay \
$(top_builddir)/tests/check/pipelines/streamheader \
$(top_builddir)/tests/examples/audio/testchannels \
$(top_builddir)/tests/examples/volume/volume \
$(top_builddir)/tools/gst-discoverer
CRUFT_DIRS = \
$(top_srcdir)/docs/design \
$(top_srcdir)/ext/gio \
$(top_srcdir)/gst/gdp \
$(top_srcdir)/sys/v4l \
$(top_srcdir)/win32 \
$(top_srcdir)/tests/examples/v4l
include $(top_srcdir)/common/cruft.mak
all-local: check-cruft
......@@ -9,17 +9,22 @@ WHERE TO START
--------------
We have a website at
http://gstreamer.freedesktop.org/
You should start by going through our FAQ at
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/
https://gstreamer.freedesktop.org
There is more documentation; go to
http://gstreamer.freedesktop.org/documentation
Our documentation, including tutorials, API reference and FAQ can be found at
You can subscribe to our mailing lists; see the website for details.
https://gstreamer.freedesktop.org/documentation/
We track bugs in GNOME's bugzilla; see the website for details.
You can subscribe to our mailing lists:
https://lists.freedesktop.org/mailman/listinfo/gstreamer-announce
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
We track bugs, feature requests and merge requests (patches) in GitLab at
https://gitlab.freedesktop.org/gstreamer/
You can join us on IRC - #gstreamer on irc.freenode.org
......@@ -137,12 +142,11 @@ PLATFORMS
---------
- Linux is of course fully supported
- FreeBSD is reported to work; other BSDs should work too
- Solaris is reported to work; a specific sunaudiosink plugin has been written
- MacOSX works, binary 1.x packages can be built using the cerbero build tool
- FreeBSD is reported to work; other BSDs should work too; same for Solaris
- MacOS works, binary 1.x packages can be built using the cerbero build tool
- Windows works; binary 1.x packages can be built using the cerbero build tool
- MSys/MinGW builds
- Microsoft Visual Studio builds are not yet available or supported
- Microsoft Visual Studio builds are also available and supported
- Android works, binary 1.x packages can be built using the cerbero build tool
- iOS works
......@@ -151,36 +155,49 @@ INSTALLING FROM PACKAGES
You should always prefer installing from packages first. GStreamer is
well-maintained for a number of distributions, including Fedora, Debian,
Ubuntu, Mandrake, Gentoo, ...
Ubuntu, Mandrake, Arch Linux, Gentoo, ...
Only in cases where you:
- want to hack on GStreamer
- want to verify that a bug has been fixed
- do not have a sane distribution
- want to hack on GStreamer
- want to verify that a bug has been fixed
- do not have a sane distribution
should you choose to build from source tarballs or git.
Find more information about the various packages at
http://gstreamer.freedesktop.org/download/
https://gstreamer.freedesktop.org/download/
COMPILING FROM SOURCE TARBALLS
------------------------------
- again, make sure that you really need to install from source !
- again, make sure that you really need to install from source!
If GStreamer is one of your first projects ever that you build from source,
consider taking on an easier project.
- check output of ./configure --help to see if any options apply to you
- you need a recent version of Meson installed, see
http://mesonbuild.com/Getting-meson.html
and
https://gitlab.freedesktop.org/gstreamer/gst-build/blob/master/README.md
- run
./configure
make
meson build
ninja -C build
to build GStreamer.
- if you want to install it (not required, but what you usually want to do), run
make install
ninja -C build install
- try out a simple test:
gst-launch -v fakesrc num_buffers=5 ! fakesink
(If you didn't install GStreamer, prefix gst-launch with tools/)
gst-launch-1.0 -v fakesrc num_buffers=5 ! fakesink
(If you didn't install GStreamer, run `./build/tools/gst-launch-1.0`)
If it outputs a bunch of messages from fakesrc and fakesink, everything is
ok.
......@@ -196,45 +213,25 @@ COMPILING FROM SOURCE TARBALLS
COMPILING FROM GIT
------------------
When building from git sources, you will need to run autogen.sh to generate
the build system files.
You will need a set of additional tools typical for building from git,
including:
- autoconf
- automake
- libtool
autogen.sh will check for recent enough versions and complain if you don't have
them. You can also specify specific versions of automake and autoconf with
--with-automake and --with-autoconf
Check autogen.sh options by running autogen.sh --help
autogen.sh can pass on arguments to configure
When you have done this once, you can use autoregen.sh to re-autogen with
the last passed options as a handy shortcut. Use it.
After the autogen.sh stage, you can follow the directions listed in
"COMPILING FROM SOURCE"
You can build an uninstalled GStreamer from git for development or testing
purposes without affecting your system installation.
You can also run your whole git stack uninstalled in your home directory,
so that you can quickly test changes without affecting your system setup or
interfering with GStreamer installed from packages. Many GStreamer developers
use an uninstalled setup for their work.
Get started with:
There is a 'create-uninstalled-setup.sh' script in
git clone https://gitlab.freedesktop.org/gstreamer/gst-build
meson build
ninja -C build
ninja -C build uninstalled
http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/
For more information, see the `gst-build` module and its documentation:
to easily create an uninstalled setup from scratch.
https://gitlab.freedesktop.org/gstreamer/gst-build/blob/master/README.md
PLUG-IN DEPENDENCIES AND LICENSES
---------------------------------
GStreamer is developed under the terms of the LGPL (see LICENSE file for
GStreamer is developed under the terms of the LGPL (see COPYING file for
details). Some of our plug-ins however rely on libraries which are available
under other licenses. This means that if you are distributing an application
which has a non-GPL compatible license (for instance a closed-source
......
#!/bin/sh
#
# gst-plugins-base autogen.sh
#
# Run this to generate all the initial makefiles, etc.
#
# This file has been generated from common/autogen.sh.in via common/update-autogen
test -n "$srcdir" || srcdir=`dirname "$0"`
test -n "$srcdir" || srcdir=.
olddir=`pwd`
cd "$srcdir"
package=gst-plugins-base
srcfile=gst-plugins-base.doap
# Make sure we have common
if test ! -f common/gst-autogen.sh;
then
echo "+ Setting up common submodule"
git submodule init
fi
git submodule update
# source helper functions
if test ! -f common/gst-autogen.sh;
then
echo There is something wrong with your source tree.
echo You are missing common/gst-autogen.sh
exit 1
fi
. common/gst-autogen.sh
# install pre-commit hook for doing clean commits
if test ! \( -x .git/hooks/pre-commit -a -L .git/hooks/pre-commit \);
then
rm -f .git/hooks/pre-commit
if ! ln -s ../../common/hooks/pre-commit.hook .git/hooks/pre-commit 2> /dev/null
then
echo "Failed to create commit hook symlink, copying instead ..."
cp common/hooks/pre-commit.hook .git/hooks/pre-commit
fi
fi
# GNU gettext automake support doesn't get along with git.
# https://bugzilla.gnome.org/show_bug.cgi?id=661128
if test -d po ; then
touch -t 200001010000 po/gst-plugins-base-1.0.pot
fi
CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-gtk-doc'
if test "x$package" = "xgstreamer"; then
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-failing-tests --enable-poisoning"
elif test "x$package" = "xgst-plugins-bad"; then
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-player-tests"
fi
autogen_options $@
printf "+ check for build tools"
if test -z "$NOCHECK"; then
echo
printf " checking for autoreconf ... "
echo
which "autoreconf" 2>/dev/null || {
echo "not found! Please install the autoconf package."
exit 1
}
printf " checking for pkg-config ... "
echo
which "pkg-config" 2>/dev/null || {
echo "not found! Please install pkg-config."
exit 1
}
else
echo ": skipped version checks"
fi
# if no arguments specified then this will be printed
if test -z "$*" && test -z "$NOCONFIGURE"; then
echo "+ checking for autogen.sh options"
echo " This autogen script will automatically run ./configure as:"
echo " ./configure $CONFIGURE_DEF_OPT"
echo " To pass any additional options, please specify them on the $0"
echo " command line."
fi
toplevel_check $srcfile
# autopoint
if test -d po && grep ^AM_GNU_GETTEXT_VERSION configure.ac >/dev/null ; then
tool_run "autopoint" "--force"
fi
# aclocal
if test -f acinclude.m4; then rm acinclude.m4; fi
autoreconf --force --install || exit 1
test -n "$NOCONFIGURE" && {
echo "+ skipping configure stage for package $package, as requested."
echo "+ autogen.sh done."
exit 0
}
cd "$olddir"
echo "+ running configure ... "
test ! -z "$CONFIGURE_DEF_OPT" && echo " default flags: $CONFIGURE_DEF_OPT"
test ! -z "$CONFIGURE_EXT_OPT" && echo " external flags: $CONFIGURE_EXT_OPT"
echo
echo "$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT
"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT || {
echo " configure failed"
exit 1
}
echo "Now type 'make' to compile $package."
Subproject commit 59cb678164719ff59dcf6c8b93df4617a1075d11
AC_PREREQ([2.69])
dnl initialize autoconf
dnl releases only do -Wall, git and prerelease does -Werror too
dnl use a three digit version number for releases, and four for git/prerelease
AC_INIT([GStreamer Base Plug-ins],[1.17.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
AG_GST_INIT
dnl initialize automake
AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
dnl define PACKAGE_VERSION_* variables
AS_VERSION
dnl check if this is a release version
AS_NANO(GST_GIT="no", GST_GIT="yes")
dnl can autoconf find the source ?
AC_CONFIG_SRCDIR([gst/audiotestsrc/gstaudiotestsrc.c])
dnl define the output header for config
AC_CONFIG_HEADERS([config.h])
dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
AM_MAINTAINER_MODE([enable])
dnl sets host_* variables
AC_CANONICAL_HOST
dnl use pretty build output with automake >= 1.11
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
[AM_DEFAULT_VERBOSITY=1
AC_SUBST(AM_DEFAULT_VERBOSITY)])
dnl our libraries and install dirs use GST_API_VERSION in the filename
dnl to allow side-by-side installation of different API versions
GST_API_VERSION=1.0
AC_SUBST(GST_API_VERSION)
AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
[GStreamer API Version])
dnl CURRENT, REVISION, AGE
dnl - library source changed -> increment REVISION
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
dnl
dnl Keep CURRENT as MINOR * 100 + MICRO
dnl Ex : 1.0.0 => 0
dnl 1.0.3 => 3
dnl 1.1.0 => 100
dnl 1.2.5 => 205
dnl 1.10.9 (who knows) => 1009
dnl
dnl sets GST_LT_LDFLAGS
AS_LIBTOOL(GST, 1700, 0, 1700)
dnl *** required versions of GStreamer stuff ***
GST_REQ=1.17.0.1
dnl *** autotools stuff ****
dnl allow for different autotools
AS_AUTOTOOLS_ALTERNATE
dnl Add parameters for aclocal
AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
dnl set up gettext
dnl the version check needs to stay here because autopoint greps for it
AM_GNU_GETTEXT_VERSION([0.17])
AM_GNU_GETTEXT([external])
AG_GST_GETTEXT([gst-plugins-base-$GST_API_VERSION])
dnl *** check for arguments to configure ***
AG_GST_ARG_DISABLE_FATAL_WARNINGS
AG_GST_ARG_ENABLE_EXTRA_CHECKS
AG_GST_ARG_DEBUG
AG_GST_ARG_PROFILING
AG_GST_ARG_VALGRIND
AG_GST_ARG_GCOV
AG_GST_ARG_EXAMPLES
AG_GST_ARG_WITH_PKG_CONFIG_PATH
AG_GST_ARG_WITH_PACKAGE_NAME
AG_GST_ARG_WITH_PACKAGE_ORIGIN
AG_GST_PKG_CONFIG_PATH
dnl let distro override plugin install helper path
AC_ARG_WITH(install-plugins-helper,
AS_HELP_STRING([--with-install-plugins-helper],[specify path of helper script to call to install plugins]),
[
case "${withval}" in
yes) AC_MSG_ERROR(bad value ${withval} for --with-install-plugins-helper) ;;
no) AC_MSG_ERROR(bad value ${withval} for --with-install-plugins-helper) ;;
*) GST_INSTALL_PLUGINS_HELPER="${withval}" ;;
esac
],
[
dnl Default value
AS_AC_EXPAND(GST_INSTALL_PLUGINS_HELPER,${libexecdir}/gst-install-plugins-helper)
]
)
AC_MSG_NOTICE(Using $GST_INSTALL_PLUGINS_HELPER as plugin install helper)
AC_DEFINE_UNQUOTED(GST_INSTALL_PLUGINS_HELPER, "$GST_INSTALL_PLUGINS_HELPER",
[plugin install helper script])
AC_SUBST(GST_INSTALL_PLUGINS_HELPER)
AG_GST_ARG_WITH_PLUGINS
AG_GST_ARG_ENABLE_EXTERNAL
AG_GST_ARG_ENABLE_EXPERIMENTAL
dnl *** checks for platform ***
AG_GST_PLATFORM
dnl * hardware/architecture *
dnl common/m4/gst-arch.m4
dnl check CPU type
AG_GST_ARCH
dnl check for large file support
dnl affected plugins must include config.h
AC_SYS_LARGEFILE
dnl *** checks for programs ***
dnl find a compiler
AC_PROG_CC
AC_PROG_CC_STDC
dnl check if the compiler supports '-c' and '-o' options
AM_PROG_CC_C_O
dnl determine if c++ is available on this system
AC_PROG_CXX
dnl CXX may be set to some default even if no c++ compiler is available
dnl (thanks autotools!), so just try to compile some c++ code to make sure
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ class Foo { int bar; };]], [[]])],[working_cxx=yes],[working_cxx=no])
AC_LANG_POP([C++])
AC_MSG_NOTICE([working c++ compiler found: $working_cxx])
AM_CONDITIONAL(HAVE_CXX, test "x$working_cxx" = "xyes")
AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
dnl check for gobject-introspection
GOBJECT_INTROSPECTION_CHECK([1.31.1])
dnl *** checks for libraries ***
dnl libm, for sin() etc.
LT_LIB_M
AC_SUBST(LIBM)
dnl check for pthreads
AX_PTHREAD
dnl *** checks for header files ***
dnl check if we have ANSI C header files
AC_HEADER_STDC
dnl check for GCC specific SSE headers
dnl these are used by the speex resampler code
AC_CHECK_HEADERS([xmmintrin.h emmintrin.h smmintrin.h])
dnl also check which architecture we're on for building files with intrinsics
dnl separately
AC_CHECK_DECLS([__i386__], [HAVE_X86=1])
AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1])
dnl check for -m* compiler flags too
SSE_CFLAGS="-msse"
SSE2_CFLAGS="-msse2"
SSE41_CFLAGS="-msse4.1"
AS_COMPILER_FLAG([$SSE_CFLAGS], [HAVE_SSE=1], [HAVE_SSE=0])
AS_COMPILER_FLAG([$SSE2_CFLAGS], [HAVE_SSE2=1], [HAVE_SSE2=0])
AS_COMPILER_FLAG([$SSE41_CFLAGS], [HAVE_SSE41=1], [HAVE_SSE41=0])
AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"])
AC_DEFINE_UNQUOTED(HAVE_SSE, [$HAVE_SSE], [SSE support is enabled])
AC_DEFINE_UNQUOTED(HAVE_SSE2, [$HAVE_SSE2], [SSE2 support is enabled])
AC_DEFINE_UNQUOTED(HAVE_SSE41, [$HAVE_SSE41], [SSE4.1 support is enabled])
AC_SUBST(SSE_CFLAGS)
AC_SUBST(SSE2_CFLAGS)
AC_SUBST(SSE41_CFLAGS)
dnl used in gst/tcp
AC_CHECK_HEADERS([sys/socket.h],
[HAVE_SYS_SOCKET_H="yes"], [HAVE_SYS_SOCKET_H="no"], [AC_INCLUDES_DEFAULT])
AM_CONDITIONAL(HAVE_SYS_SOCKET_H, test "x$HAVE_SYS_SOCKET_H" = "xyes")
dnl used in gst-libs/gst/rtsp
AC_CHECK_HEADERS([winsock2.h], [HAVE_WINSOCK2_H=yes], [HAVE_WINSOCK2_H=no], [AC_INCLUDES_DEFAULT])
AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes")
if test "x$HAVE_WINSOCK2_H" = "xyes"; then
WIN32_LIBS="-lws2_32"
AC_SUBST(WIN32_LIBS)
fi
dnl used in gst-libs/gst/pbutils and associated unit test
AC_CHECK_HEADERS([process.h sys/types.h sys/wait.h sys/stat.h], [], [], [AC_INCLUDES_DEFAULT])
dnl checks for ARM NEON support
dnl this instruction set is used by the speex resampler code
AC_MSG_CHECKING(for ARM NEON support in current arch/CFLAGS)
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
#include <arm_neon.h>
int32x4_t __attribute__((used)) testfunc(int16_t *a, int16_t *b) {
asm volatile ("vmull.s16 q0, d0, d0" : : : "q0");
return vmull_s16(vld1_s16(a), vld1_s16(b));
}
]])],
[
AC_DEFINE(HAVE_ARM_NEON,[],[ARM NEON support is enabled])
AC_MSG_RESULT(yes)
],
[
AC_MSG_RESULT(no)
])
dnl also, Windows does not have long long
AX_CREATE_STDINT_H
dnl *** checks for functions ***
AC_CHECK_FUNCS([localtime_r gmtime_r])
dnl *** checks for math functions ***
LIBS_SAVE=$LIBS
LIBS="$LIBS $LIBM"
AC_CHECK_FUNCS(log2)
LIBS=$LIBS_SAVE
dnl *** checks for types/defines ***
dnl *** checks for structures ***
dnl *** checks for compiler characteristics ***
dnl *** checks for library functions ***
dnl check for fseeko()
AC_FUNC_FSEEKO
dnl Check for fast float to int casting as defined in C99
dnl used to be used in gst-libs/gs