76 lines
2.0 KiB
Python
76 lines
2.0 KiB
Python
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}")
|