Commit 3cd445a4 authored by Tim-Philipp Müller's avatar Tim-Philipp Müller 🐠
Browse files

Remove autotools build system

parent 3f24460e
Pipeline #70202 passed with stages
in 319 minutes and 37 seconds
aclocal.m4
autom4te.cache
config.h
config.h.in
config.log
config.status
config.guess
config.sub
config.rpath
configure
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-ugly-*.tar.*
.deps
.libs
*.lo
*.la
*.o
*~
/m4
Makefile.in
Makefile
*~
*.bak
*.gc??
Build
*.user
......@@ -46,10 +9,7 @@ Build
*.opensdf
*.DS_Store
/test-driver
*.log
*.trs
# Meson
/build
/_build
/subprojects
[submodule "common"]
path = common
url = https://gitlab.freedesktop.org/gstreamer/common.git
SUBDIRS = \
gst-libs gst ext m4 tests common pkgconfig po
EXTRA_DIST = \
depcomp \
AUTHORS COPYING NEWS README RELEASE REQUIREMENTS \
ChangeLog gst-plugins-ugly.doap autogen.sh \
$(shell find "$(top_srcdir)" -type f -name meson.build ! -path "$(top_srcdir)/$(PACKAGE_TARNAME)-*" ) \
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-ugly.spec \
$(top_builddir)/common/shave \
$(top_builddir)/common/shave-libtool \
$(top_builddir)/ext/mpg123/.libs/libgstmpg123.so \
$(top_builddir)/ext/lame/.libs/libgstlame.so \
$(top_builddir)/ext/twolame/.libs/libgsttwolame.so \
$(top_builddir)/gst/realmedia/.libs/libgstrmdemux.so
CRUFT_DIRS = \
$(top_builddir)/tests/check/pipelines \
$(top_srcdir)/ext/mpg123/ \
$(top_srcdir)/ext/lame/ \
$(top_srcdir)/ext/twolame/ \
$(top_builddir)/win32 \
$(top_srcdir)/win32
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-ugly 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-ugly
srcfile=gst-plugins-ugly.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-ugly-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 please read gstreamer/docs/random/autotools before changing this file
dnl initialize autoconf
dnl releases only do -Wall, cvs and prerelease does -Werror too
dnl use a three digit version number for releases, and four for cvs/prerelease
AC_INIT([GStreamer Ugly Plug-ins],[1.17.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-ugly])
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/asfdemux/gstasfdemux.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])
AS_LIBTOOL(GST, 1700, 0, 1700)
dnl *** required versions of GStreamer stuff ***
GST_REQ=1.17.0.1
GSTPB_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-ugly-$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_ARG_WITH_PLUGINS
AG_GST_ARG_ENABLE_EXTERNAL
AG_GST_ARG_ENABLE_EXPERIMENTAL
dnl *** checks for platform ***
dnl * hardware/architecture *
dnl common/m4/gst-arch.m4
dnl check CPU type
AG_GST_ARCH
dnl Determine endianness
AC_C_BIGENDIAN
dnl *** software ***
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 determine c++ compiler
AC_PROG_CXX
dnl determine if c++ is available on this system
AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
dnl check if the compiler supports '-c' and '-o' options
AM_PROG_CC_C_O
AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
dnl check if the compiler supports do while(0) macros
AG_GST_CHECK_DOWHILE_MACROS
dnl *** checks for libraries ***
dnl check for libm, for sin()
LT_LIB_M
AC_SUBST(LIBM)
dnl *** checks for header files ***
dnl used by ext/a52dec
AX_CREATE_STDINT_H
dnl Check for malloc.h
AC_CHECK_HEADERS([malloc.h])
dnl *** checks for types/defines ***
dnl *** checks for structures ***
dnl *** checks for compiler characteristics ***
dnl *** checks for library functions ***
dnl Check for a way to display the function name in debug output
AG_GST_CHECK_FUNCTION
dnl *** checks for dependency libraries ***
dnl GLib is required
GLIB_REQ=2.44.0
AG_GST_GLIB_CHECK([$GLIB_REQ])
ORC_CHECK([0.4.16])
dnl checks for gstreamer
dnl uninstalled is selected preferentially -- see pkg-config(1)
AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
dnl Check for documentation xrefs
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
AC_SUBST(GLIB_PREFIX)
AC_SUBST(GST_PREFIX)
AC_SUBST(GSTPB_PREFIX)
dnl Needed by plugins that use g_module_*() API
PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
dnl Check for -Bsymbolic-functions linker flag used to avoid
dnl intra-library PLT jumps, if available.
AC_ARG_ENABLE(Bsymbolic,
[AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
[SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
LDFLAGS=-Wl,-Bsymbolic-functions
LIBS=
AC_TRY_LINK([], [return 0],
AC_MSG_RESULT(yes)
enable_Bsymbolic=yes,
AC_MSG_RESULT(no)
enable_Bsymbolic=no)
LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
dnl *** set variables based on configure arguments ***
dnl set license and copyright notice
GST_LICENSE="LGPL"
AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
AC_SUBST(GST_LICENSE)
dnl set location of plugin directory
AG_GST_SET_PLUGINDIR
dnl set release date/time
AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
["${srcdir}/gst-plugins-ugly.doap"],
[$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
dnl define an ERROR_CFLAGS Makefile variable
AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
-Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition
-Winit-self -Wmissing-include-dirs -Waddress
-Waggregate-return -Wno-multichar -Wnested-externs ])
dnl define an ERROR_CXXFLAGS Makefile variable
AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
-Wmissing-declarations -Wredundant-decls
-Wwrite-strings -Wformat-nonliteral -Wformat-security
-Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
-Wno-multichar])
dnl define correct level for debugging messages
AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
dnl used in examples
AG_GST_DEFAULT_ELEMENTS
dnl *** plug-ins to include ***
dnl these are all the gst plug-ins, compilable without additional libs
AG_GST_CHECK_PLUGIN(asfdemux)
AG_GST_CHECK_PLUGIN(dvdlpcmdec)
AG_GST_CHECK_PLUGIN(dvdsub)
AG_GST_CHECK_PLUGIN(xingmux)
AG_GST_CHECK_PLUGIN(realmedia)
AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
if test "x$HAVE_WINSOCK2_H" = "xyes"; then
WIN32_LIBS="-lws2_32"
AC_SUBST(WIN32_LIBS)
fi
dnl *** ext plug-ins ***
dnl keep this list sorted alphabetically !
if test "x$BUILD_EXTERNAL" = "xyes"; then
echo
AC_MSG_NOTICE([Checking libraries for plugins in ext/])
echo
dnl *** a52dec ***