biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / misc / coreboot-toolchain / default.nix
blob54f3f6e9b459eabbc8866aa7e02885489ab40f2e
1 { stdenv, lib, callPackage }:
2 let
3   common = arch: callPackage (
4     { bison
5     , callPackage
6     , curl
7     , fetchgit
8     , flex
9     , getopt
10     , git
11     , gnat
12     , gcc
13     , lib
14     , perl
15     , stdenvNoCC
16     , zlib
17     , withAda ? true
18     }:
20     stdenvNoCC.mkDerivation (finalAttrs: {
21       pname = "coreboot-toolchain-${arch}";
22       version = "24.02";
24       src = fetchgit {
25         url = "https://review.coreboot.org/coreboot";
26         rev = finalAttrs.version;
27         hash = "sha256-fHulr7w5I9LzBwGt/ZVaN7A3XEd7uQ2eJJifxII7rtk=";
28         fetchSubmodules = false;
29         leaveDotGit = true;
30         postFetch = ''
31           PATH=${lib.makeBinPath [ getopt ]}:$PATH ${stdenv.shell} $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version
32           rm -rf $out/.git
33         '';
34         allowedRequisites = [ ];
35       };
37       nativeBuildInputs = [ bison curl git perl ];
38       buildInputs = [ flex zlib (if withAda then gnat else gcc) ];
40       enableParallelBuilding = true;
41       dontConfigure = true;
42       dontInstall = true;
44       postPatch = ''
45         patchShebangs util/crossgcc/buildgcc
47         mkdir -p util/crossgcc/tarballs
49         ${lib.concatMapStringsSep "\n" (
50           file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
51           ) (callPackage ./stable.nix { })
52         }
54         patchShebangs util/genbuild_h/genbuild_h.sh
55       '';
57       buildPhase = ''
58         export CROSSGCC_VERSION=$(cat .crossgcc_version)
59         make crossgcc-${arch} CPUS=$NIX_BUILD_CORES DEST=$out
60       '';
62       meta = with lib; {
63         homepage = "https://www.coreboot.org";
64         description = "coreboot toolchain for ${arch} targets";
65         license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
66         maintainers = with maintainers; [ felixsinger ];
67         platforms = platforms.linux;
68       };
69     })
70   );
73 lib.listToAttrs (map (arch: lib.nameValuePair arch (common arch { })) [
74   "i386"
75   "x64"
76   "arm"
77   "aarch64"
78   "riscv"
79   "ppc64"
80   "nds32le"