From 8002a4a1337ef874f8721eda787d2e95d13b05c6 Mon Sep 17 00:00:00 2001 From: Felix Singer Date: Sat, 20 Nov 2021 00:18:45 +0100 Subject: coreboot-toolchain: Allow adding new architectures Rework package so that new target architectures can be added and reuse common configurations. Signed-off-by: Felix Singer --- .../tools/misc/coreboot-toolchain/default.nix | 82 ++++++++++++---------- 1 file changed, 43 insertions(+), 39 deletions(-) (limited to 'pkgs/development/tools/misc/coreboot-toolchain') diff --git a/pkgs/development/tools/misc/coreboot-toolchain/default.nix b/pkgs/development/tools/misc/coreboot-toolchain/default.nix index 8042fc2522b..33265242b85 100644 --- a/pkgs/development/tools/misc/coreboot-toolchain/default.nix +++ b/pkgs/development/tools/misc/coreboot-toolchain/default.nix @@ -12,51 +12,55 @@ , zlib }: -stdenvNoCC.mkDerivation rec { - pname = "coreboot-toolchain"; - version = "4.15"; - - src = fetchgit { - url = "https://review.coreboot.org/coreboot"; - rev = version; - sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9"; - fetchSubmodules = false; - leaveDotGit = true; - postFetch = '' - patchShebangs $out/util/crossgcc/buildgcc - PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version - rm -rf $out/.git - ''; - }; +let + common = arch: stdenvNoCC.mkDerivation rec { + pname = "coreboot-toolchain-${arch}"; + version = "4.15"; - nativeBuildInputs = [ bison curl git perl ]; - buildInputs = [ flex gnat11 zlib ]; + src = fetchgit { + url = "https://review.coreboot.org/coreboot"; + rev = version; + sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9"; + fetchSubmodules = false; + leaveDotGit = true; + postFetch = '' + patchShebangs $out/util/crossgcc/buildgcc + PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version + rm -rf $out/.git + ''; + }; - enableParallelBuilding = true; - dontConfigure = true; - dontInstall = true; + nativeBuildInputs = [ bison curl git perl ]; + buildInputs = [ flex gnat11 zlib ]; - postPatch = '' - mkdir -p util/crossgcc/tarballs + enableParallelBuilding = true; + dontConfigure = true; + dontInstall = true; - ${lib.concatMapStringsSep "\n" ( - file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}" - ) (callPackage ./stable.nix { }) - } + postPatch = '' + mkdir -p util/crossgcc/tarballs - patchShebangs util/genbuild_h/genbuild_h.sh - ''; + ${lib.concatMapStringsSep "\n" ( + file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}" + ) (callPackage ./stable.nix { }) + } - buildPhase = '' - export CROSSGCC_VERSION=$(cat .crossgcc_version) - make crossgcc-i386 CPUS=$NIX_BUILD_CORES DEST=$out - ''; + patchShebangs util/genbuild_h/genbuild_h.sh + ''; + + buildPhase = '' + export CROSSGCC_VERSION=$(cat .crossgcc_version) + make crossgcc-${arch} CPUS=$NIX_BUILD_CORES DEST=$out + ''; - meta = with lib; { - homepage = "https://www.coreboot.org"; - description = "coreboot toolchain"; - license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ]; - maintainers = with maintainers; [ felixsinger ]; - platforms = platforms.linux; + meta = with lib; { + homepage = "https://www.coreboot.org"; + description = "coreboot toolchain for ${arch} targets"; + license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ]; + maintainers = with maintainers; [ felixsinger ]; + platforms = platforms.linux; + }; }; +in { + i386 = common "i386"; } -- cgit 1.4.1