internal/rosa/package: migrate make

This also introduces the generic helper for unusual build scripts.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-19 19:28:18 +09:00
parent 6e8bfa6c4c
commit 548c96c7ec
5 changed files with 95 additions and 31 deletions

View File

@@ -3,38 +3,10 @@ package rosa
import (
"slices"
"strings"
"hakurei.app/internal/pkg"
)
func (t Toolchain) newMake() (pkg.Artifact, string) {
const (
version = "4.4.1"
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a"
)
return t.New("make-"+version, TEarly, nil, nil, nil, `
cd "$(mktemp -d)"
/usr/src/make/configure \
--prefix=/system \
--build="${ROSA_TRIPLE}" \
--disable-dependency-tracking
./build.sh
./make DESTDIR=/work install
`, pkg.Path(AbsUsrSrc.Append("make"), false, newTar(
"https://ftpmirror.gnu.org/gnu/make/make-"+version+".tar.gz",
checksum,
pkg.TarGzip,
))), version
}
func init() {
native.mustRegister(Toolchain.newMake, &Metadata{
Name: "make",
Description: "a tool which controls the generation of executables and other non-source files",
Website: "https://www.gnu.org/software/make/",
ID: 1877,
})
}
// Make is the build system used by [MakeHelper].
var Make = H("make")
// MakeHelper is the [Make] build system helper.
type MakeHelper struct {