From b935375becd5334720cf375d7a5773f4e343ea8e Mon Sep 17 00:00:00 2001 From: Christian Kampka Date: Wed, 2 Sep 2020 17:04:41 +0200 Subject: [PATCH] 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. --- pkgs/development/libraries/gts/default.nix | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gts/default.nix b/pkgs/development/libraries/gts/default.nix index adf914369cf..48bdfc9b5e1 100644 --- a/pkgs/development/libraries/gts/default.nix +++ b/pkgs/development/libraries/gts/default.nix @@ -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;