aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/perl.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/rosa/perl.go b/internal/rosa/perl.go
new file mode 100644
index 00000000..169a64d1
--- /dev/null
+++ b/internal/rosa/perl.go
@@ -0,0 +1,32 @@
+package rosa
+
+import "hakurei.app/internal/pkg"
+
+// NewPerl returns a [pkg.Artifact] containing an installation of perl.
+func (t Toolchain) NewPerl() pkg.Artifact {
+ const (
+ version = "5.42.0"
+ checksum = "2KR7Jbpk-ZVn1a30LQRwbgUvg2AXlPQZfzrqCr31qD5-yEsTwVQ_W76eZH-EdxM9"
+ )
+ return t.New("perl-"+version, []pkg.Artifact{
+ t.NewMake(),
+ }, nil, nil, `
+chmod -R +w /usr/src/perl && cd /usr/src/perl
+
+./Configure \
+ -des \
+ -Dprefix=/system \
+ -Dcc="${CC}" \
+ -Dcflags='--std=gnu99' \
+ -Dldflags="${LDFLAGS}" \
+ -Doptimize='-O2 -fno-strict-aliasing' \
+ -Duseithreads
+make "-j$(nproc)" # test
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("perl"), true, pkg.NewHTTPGetTar(
+ nil,
+ "https://www.cpan.org/src/5.0/perl-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ )))
+}