Files
nixpkgs/pkgs/development/compilers/gambit/gambit-support.nix
T
Ihar Hrachyshka 567e8dfd8e treewide: clean up 'meta = with' pattern
This commit was created by a combination of scripts and tools:
- an ast-grep script to prefix things in meta with `lib.`,
- a modified nixf-diagnose / nixf combination to remove unused `with
lib;`, and
- regular nixfmt.

Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
2025-12-10 18:09:49 +01:00

47 lines
1.8 KiB
Nix

{ pkgs, lib }:
rec {
stable-params = {
stable = true;
defaultRuntimeOptions = "iL,fL,-L,tL";
buildRuntimeOptions = "i8,f8,-8,t8";
targets = "js"; # arm,java,js,php,python,riscv-32,riscv-64,ruby,x86,x86-64
#fixStamp = _: _: _: "";
fixStamp = git-version: stampYmd: stampHms: ''
echo "Fixing timestamp recipe in Makefile"
substituteInPlace configure \
--replace "$(grep '^PACKAGE_VERSION=.*$' configure)" 'PACKAGE_VERSION="v${git-version}"' \
--replace "$(grep '^PACKAGE_STRING=.*$' configure)" 'PACKAGE_STRING="Gambit v${git-version}"' ;
substituteInPlace include/makefile.in \
--replace "\$\$(\$(GIT) describe --tag --always | sed 's/-bootstrap\$\$//')" "v${git-version}" \
--replace "echo > stamp.h;" "(echo '#define ___STAMP_VERSION \"v${git-version}\"'; echo '#define ___STAMP_YMD ${toString stampYmd}'; echo '#define ___STAMP_HMS ${toString stampHms}';) > stamp.h;";
grep -i ' version=\|echo..#define ___STAMP_VERSION' include/makefile.in # XXX DEBUG -- REMOVE ME
'';
modules = true;
extraOptions = [ "CFLAGS=-foptimize-sibling-calls" ];
};
unstable-params = stable-params // {
stable = false;
extraOptions = [ ]; # "CFLAGS=-foptimize-sibling-calls" not necessary in latest unstable
};
export-gambopt = params: "export GAMBOPT=${params.buildRuntimeOptions} ;";
gambit-bootstrap = import ./bootstrap.nix pkgs;
meta = {
description = "Optimizing Scheme to C compiler";
homepage = "http://gambitscheme.org";
license = lib.licenses.lgpl21Only; # dual, also asl20
# NB regarding platforms: continuously tested on Linux x86_64 and regularly tested on macOS x86_64.
# *should* work everywhere.
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
thoughtpolice
raskin
fare
];
};
}