import os import subprocess from lib import arch, cpp from lib.make import * upstream_version = "5.42.2" version(upstream_version) source_url("https://www.cpan.org/src/5.0/perl-5.42.2.tar.gz") builddep("shortcut/c") builddep("shortcut/autotools") block_hook("autolink") def build(): subprocess.run( [ "./Configure", "-de", f"-Dcc={os.environ.get('CC', 'cc')}", f"-Doptimize={os.environ.get('CFLAGS', '')}", "-Dusethreads", "-Duseshrplib", "-Dprefix=/", "-Dvendorprefix=/", f"-Dprivlib={get_prefix('libperl')}/share/core_perl", f"-Darchlib={get_prefix('libperl')}/lib/core_perl", f"-Dsitelib=/lib/{arch.get_target()}/perl5/site_perl", f"-Dsitearch=/lib/{arch.get_target()}/perl5/site_arch", f"-Dvendorlib=/lib/{arch.get_target()}/perl5/vendor_perl", f"-Dvendorarch=/lib/{arch.get_target()}/perl5/vendor_arch", f"-Dscriptdir={get_prefix('perl')}/bin/core_perl", "-Dsitescript=/bin/site_perl", "-Dvendorscript=/bin/vendor_perl", "-Dinc_version_list=none", "-Dman1dir=/share/man/man1", "-Dman3dir=/share/man/man3", "-Dman1ext=1perl", "-Dman3ext=3perl", f"-Dlddlflags=-shared {os.environ.get('LDFLAGS', '')}", f"-Dldflags={os.environ.get('LDFLAGS', '')}", ], check=True, ) cpp.make() cpp.make_install() on_build(build) def pack_libperl(composer): composer.makedir("lib") composer.makedir("share") composer.add_dir("lib/core_perl", "lib/core_perl") composer.add_dir("share/core_perl", "share/core_perl") package("libperl") dep("semi-libc @same-arch") on_pack(pack_libperl) def pack_perl(composer): composer.add_dir("bin", "bin") package("perl") dep("libperl (same)") cpp.use_auto_pack(["bin"]) link("bin/perl", "/bin/perl") link(f"bin/perl{upstream_version}", f"/bin/perl{upstream_version}")