gts: Fix cross compilation

gts generate binaries during the build process that are used during the
build process. When building cross-platform, these binaries are not
executable as they are built with for the target platform instead of the
host platform. The boostrap build introduced here will first build gts
natively and then cross-platform, using the native binaries in the
cross-build.
This commit is contained in:
Christian Kampka 2020-09-02 17:04:41 +02:00
parent ef55e4b525
commit b935375bec
No known key found for this signature in database
GPG key ID: B88E140DB4FE1AA5

View file

@ -1,4 +1,4 @@
{ fetchurl, stdenv, pkgconfig, autoreconfHook, gettext, glib }:
{ fetchurl, stdenv, pkgconfig, autoreconfHook, gettext, glib, buildPackages }:
stdenv.mkDerivation rec {
@ -12,12 +12,26 @@ stdenv.mkDerivation rec {
sha256 = "07mqx09jxh8cv9753y2d2jsv7wp8vjmrd7zcfpbrddz3wc9kx705";
};
nativeBuildInputs = [ pkgconfig autoreconfHook ];
nativeBuildInputs = [
pkgconfig
autoreconfHook
glib # required to satisfy AM_PATH_GLIB_2_0
];
buildInputs = [ gettext ];
propagatedBuildInputs = [ glib ];
doCheck = false; # fails with "permission denied"
preBuild = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
pushd src
make CC=${buildPackages.stdenv.cc}/bin/cc predicates_init
mv predicates_init predicates_init_build
make clean
popd
substituteInPlace src/Makefile --replace "./predicates_init" "./predicates_init_build"
'';
meta = {
homepage = "http://gts.sourceforge.net/";
license = stdenv.lib.licenses.lgpl2Plus;