From 016d745b94b31d0ef4fd54d2a04dc9e09b3f0d20 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 22 Oct 2026 14:17:56 +0900 Subject: internal/rosa: bootstrap make in two steps This enables the test suite in the second make stage. This change also fixes a typo in the second stage make build script. Signed-off-by: Ophestra --- internal/rosa/package/gnu.az | 1 + internal/rosa/package/gzip/package.az | 3 +++ internal/rosa/package/make.az | 49 ++++++++++++++++++++++++++++++----- internal/rosa/package/perl.az | 1 + internal/rosa/package/toybox.az | 1 + 5 files changed, 48 insertions(+), 7 deletions(-) (limited to 'internal/rosa/package') diff --git a/internal/rosa/package/gnu.az b/internal/rosa/package/gnu.az index e117173e..5481e1f0 100644 --- a/internal/rosa/package/gnu.az +++ b/internal/rosa/package/gnu.az @@ -198,6 +198,7 @@ test_disable '#!/bin/sh' tests/need-filename toyboxEarly = true; exec = make { + early = true; defaults = false; }; } diff --git a/internal/rosa/package/gzip/package.az b/internal/rosa/package/gzip/package.az index 6c6b3b1f..94c67a89 100644 --- a/internal/rosa/package/gzip/package.az +++ b/internal/rosa/package/gzip/package.az @@ -10,8 +10,11 @@ package gzip { compress = gzip; }; patches = [ "late-include.patch" ]; + toyboxEarly = true; exec = make { + early = true; + defaults = false; // dependency loop check = nil; }; diff --git a/internal/rosa/package/make.az b/internal/rosa/package/make.az index 771bd20d..4aaf5736 100644 --- a/internal/rosa/package/make.az +++ b/internal/rosa/package/make.az @@ -1,26 +1,61 @@ -package make { - description = "a tool which controls the generation of executables and other non-source files"; - website = "https://www.gnu.org/software/make"; - anitya = 1877; +package make-source { + description = "GNU make source tree"; + exclude = true; version# = "4.4.1"; - source = remoteTar { + output = remoteTar { url = "https://mirrors.kernel.org/gnu/make/make-"+version+".tar.gz"; checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a"; compress = gzip; }; +} +package make-early { + description = "early, dependency-free build of make"; + exclude = true; + + source = make-source; toyboxEarly = true; exec = generic { - build = `/usr/src/make/configure \ + build = `/usr/src/make-early/configure \ --prefix=/system \ - --host= '`+triple+`' \ + --host='`+triple+`' \ + --target='`+triple+`' \ --build='`+hostTriple+`' \ --disable-dependency-tracking ./build.sh `; // test suite wants perl + check = ""; + install = "./make DESTDIR=/work install\n"; }; } +package make { + description = "a tool which controls the generation of executables and other non-source files"; + website = "https://www.gnu.org/software/make"; + anitya = 1877; + + source = make-source; + toyboxEarly = true; + + // GNU tar not yet available + writable = true; + early = ` +chmod +w tests/scripts/misc +rm \ + tests/scripts/misc/close_stdout \ + tests/scripts/misc/general4 +`; + + exec = make { + early = true; + defaults = false; + }; + + tools = [ + perl, + gzip, + ]; +} diff --git a/internal/rosa/package/perl.az b/internal/rosa/package/perl.az index 8d21c8ca..3009c75b 100644 --- a/internal/rosa/package/perl.az +++ b/internal/rosa/package/perl.az @@ -28,6 +28,7 @@ disable_test ext/POSIX/t/time.t toyboxEarly = true; exec = make { + early = true; defaults = false; chdir = false; diff --git a/internal/rosa/package/toybox.az b/internal/rosa/package/toybox.az index b90e08d2..720c736a 100644 --- a/internal/rosa/package/toybox.az +++ b/internal/rosa/package/toybox.az @@ -22,6 +22,7 @@ package toybox { toyboxEarly = true; exec = make { + early = true; defaults = false; chdir = false; -- cgit v1.3.1