1{ lib
2, stdenv
3, fetchurl
4, libffi
5}:
6stdenv.mkDerivation rec {
7 pname = "copper";
8 version = "4.6";
9 src = fetchurl {
10 url = "https://tibleiz.net/download/copper-${version}-src.tar.gz";
11 sha256 = "sha256-tyxAMJp4H50eBz8gjt2O3zj5fq6nOIXKX47wql8aUUg=";
12 };
13 buildInputs = [
14 libffi
15 ];
16 postPatch = ''
17 patchShebangs .
18 '';
19 buildPhase = ''
20 make BACKEND=elf64 boot-elf64
21 make BACKEND=elf64 COPPER=stage3/copper-elf64 copper-elf64
22 '';
23 installPhase = ''
24 make BACKEND=elf64 install prefix=$out
25 '';
26 meta = with lib; {
27 description = "Simple imperative language, statically typed with type inference and genericity";
28 homepage = "https://tibleiz.net/copper/";
29 license = licenses.bsd2;
30 platforms = platforms.x86_64;
31 broken = true;
32 };
33}