On Debian, the libtool version is prefixed by "Debian-":
$ libtool --version | head -1
libtool (GNU libtool) 2.5.4 Debian-2.5.4-4
As a consequence, the extracted version is incorrect:
$ libtool --version | head -1 | sed s/'.* '//
Debian-2.5.4-4
causing the bootstrap script to fail:
./bootstrap: 31: [: Illegal number: Debian-2
./bootstrap: 32: [: Illegal number: Debian-2
./bootstrap: 33: [: Illegal number: Debian-2
Extract the first pattern matching NUM.NUM or NUM.NUM.NUM.
It's updated independently from automake which we use to pick a recent enough version.
The fake automake path is to fool the contribs in using that one prioritarily.
The error message is printed (among others) when the major versions
differ, not only when the current version is older than the expected
one, so "too old" may be incorrect.
Before:
> meson too old
After:
> meson incompatible version (expected 0.51.1, got 1.1.1)
bootstrap warns "meson too old" and proceeds to download and install
meson 1.0.0 when meson version is found to be 1.0.0 anyway. Raise meson's
requirement to 1.0.0 to work-around this problem.
libtool is notoriously known to have been patched over the time and was
provided as 2.4.7-dirty on archlinux, which makes the integer comparison
test fail since 7-dirty is not an integer.
shell || nicely handles the commands on the other lines without escaping
the end of line, which provides better error message in case of error.
In addition, priority of operators is much more obvious since the []
test syntax provides a visible scope-like feeling.
Meson before 0.54.2 misdetect the cross-compilation to iPhone Simulator
with architecture x86_64 and tries to execute tests, leading to
compilation failures in contrib.
Signed-off-by: Felix Paul Kühne <felix@feepk.net>
Starting from this version, we can provide both pkg_config_path and
pkg_config_libdir as meson properties.
Otherwise, users of meson >= 0.54 will not be able to use pkg-config
while users of older version will, until they update.
Since ea96271fb8, contribs builds
dav1d 0.6.0, which requires nasm 2.14. (The version that extras/tools
is installing is already at 2.14, but the bootstrap script only
installed it if the existing one was older than 2.13.2 or missing.)
This version contains Hugo's patch to properly cross compile under Linux:
FindPkgConfig: Fix path manipulations when cross compiling
When cross compiling from a unix machine, if(UNIX) is false,
which causes the path not to be fixed for unix, leading to false
negative if PKG_CONFIG_PATH needs to be probed
Updating my Debian went from 3.13.4 to 3.15.4 which breaks PKG_CONFIG_PATH
usage.
This is convenient when using one source tree with different compilers/OSes.
For example when C++ standard library differs between versions (since most of
the time we need to build protoc).
You can keep one set of tools per environment.
Which is needed by libtool, and can't be disabled through configure
Building automake is enough, but there are cases where we don't want to
build automake but still build libtool
tar /dev/null doesn't work if not specified as a file
On systems where it was detected nothing will change. On systems where J is not working
it will fail anyway.
We already use "tar f" in the code
Contribs build protobuf 3.1.0 and assumes that the host environment
already has got a new enough protoc version.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Cmake <= 3.7 are generating an invalid value for
CMAKE_CXX_IMPLICIT_LINK_LIBRARIES, causing the compile flags to contain
-lto_library -lc++ in some cases. This would lead to -lc++ not being
considered as the c++ library, causing build failures when building a
C module that is using a C++ library.
This is fixed starting from cmake 3.8
This fixes macOS builds
Replaces curly brace expansion with explicit enumeration.
There exists at least one "sh" implementation which does not
support the curly-brace syntax in the removed line.
Also adds quotes around $tmp expansion, in case `pwd` contains spaces.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>