hare: init at 0.pre+date=2022-04-27
This commit is contained in:
parent
9ded9f1100
commit
b597b5c3fc
3 changed files with 119 additions and 0 deletions
27
pkgs/development/compilers/hare/config-template.mk
Normal file
27
pkgs/development/compilers/hare/config-template.mk
Normal file
|
@ -0,0 +1,27 @@
|
|||
## Template to generate config.mk via substitute-all
|
||||
|
||||
# set PREFIX externally
|
||||
BINDIR = $(PREFIX)/bin
|
||||
MANDIR = $(PREFIX)/share/man
|
||||
SRCDIR = $(PREFIX)/src
|
||||
STDLIB = $(SRCDIR)/hare/stdlib
|
||||
|
||||
HAREPATH = $(SRCDIR)/hare/stdlib:$(SRCDIR)/hare/third-party
|
||||
|
||||
## Build configuration
|
||||
|
||||
# Platform to build for
|
||||
PLATFORM = @platform@
|
||||
ARCH = @arch@
|
||||
|
||||
# External tools and flags
|
||||
HAREC = harec
|
||||
HAREFLAGS = @hareflags@
|
||||
QBE = qbe
|
||||
AS = as
|
||||
LD = ld
|
||||
AR = ar
|
||||
SCDOC = scdoc
|
||||
|
||||
# Where to store build artifacts
|
||||
# set HARECACHE externally
|
91
pkgs/development/compilers/hare/hare.nix
Normal file
91
pkgs/development/compilers/hare/hare.nix
Normal file
|
@ -0,0 +1,91 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromSourcehut
|
||||
, binutils-unwrapped
|
||||
, harec
|
||||
, makeWrapper
|
||||
, qbe
|
||||
, scdoc
|
||||
, substituteAll
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hare";
|
||||
version = "0.pre+date=2022-04-27";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
name = pname + "-src";
|
||||
owner = "~sircmpwn";
|
||||
repo = pname;
|
||||
rev = "1bfb2e6dee850c675a8831b41420800d3c62c2a0";
|
||||
hash = "sha256-1b7U5u3PM3jmnH/OnY9O++GTPyVOdFkJ0fwJBoDZgSU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
binutils-unwrapped
|
||||
harec
|
||||
makeWrapper
|
||||
qbe
|
||||
scdoc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
binutils-unwrapped
|
||||
harec
|
||||
qbe
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
configurePhase =
|
||||
let
|
||||
# https://harelang.org/platforms/
|
||||
arch =
|
||||
if stdenv.isx86_64 then "x86_64"
|
||||
else if stdenv.isAarch64 then "aarch64"
|
||||
else if stdenv.isRiscV64 then "riscv64"
|
||||
else "unsupported";
|
||||
platform =
|
||||
if stdenv.isLinux then "linux"
|
||||
else if stdenv.isFreeBSD then "freebsd"
|
||||
else "unsupported";
|
||||
hareflags = "";
|
||||
config-file = substituteAll {
|
||||
src = ./config-template.mk;
|
||||
inherit arch platform hareflags;
|
||||
};
|
||||
in
|
||||
''
|
||||
runHook preConfigure
|
||||
|
||||
export HARECACHE="$NIX_BUILD_TOP/.harecache"
|
||||
cat ${config-file} > config.mk
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
];
|
||||
|
||||
postInstall =
|
||||
let
|
||||
binPath = lib.makeBinPath [
|
||||
binutils-unwrapped
|
||||
harec
|
||||
qbe
|
||||
];
|
||||
in
|
||||
''
|
||||
wrapProgram $out/bin/hare --prefix PATH : ${binPath}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://harelang.org/";
|
||||
description =
|
||||
"A systems programming language designed to be simple, stable, and robust";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
inherit (harec.meta) platforms badPlatforms;
|
||||
};
|
||||
}
|
|
@ -6800,6 +6800,7 @@ with pkgs;
|
|||
};
|
||||
|
||||
harec = callPackage ../development/compilers/hare/harec.nix { };
|
||||
hare = callPackage ../development/compilers/hare/hare.nix { };
|
||||
|
||||
ham = pkgs.perlPackages.ham;
|
||||
|
||||
|
|
Loading…
Reference in a new issue