diff options
author | Moritz Lenz <moritz@faui2k3.org> | 2014-04-01 19:40:30 +0200 |
---|---|---|
committer | Moritz Lenz <moritz@faui2k3.org> | 2014-04-01 19:40:30 +0200 |
commit | a1e13d679c5311fc5cfb9a33a577f52187b4286c (patch) | |
tree | dfaae6c5c392ccf83082b85f6d8cb3bde8f83662 /tools/lib/NQP/Configure.pm | |
parent | 6363be3b2438a93af3a19366960c69e23fe6934e (diff) | |
parent | f2236b4d8ff36dd6810ac85f24d69dd22f23933b (diff) |
Merge remote-tracking branch 'origin/tristar'
Conflicts:
tools/build/Makefile.in
tools/star/Makefile
tools/star/release-guide.pod
Diffstat (limited to 'tools/lib/NQP/Configure.pm')
-rw-r--r-- | tools/lib/NQP/Configure.pm | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/tools/lib/NQP/Configure.pm b/tools/lib/NQP/Configure.pm index 641d2c6..cb95cc9 100644 --- a/tools/lib/NQP/Configure.pm +++ b/tools/lib/NQP/Configure.pm @@ -274,11 +274,13 @@ sub gen_nqp { my $backends = $options{'backends'}; my $gen_nqp = $options{'gen-nqp'}; + my $gen_moar = $options{'gen-moar'}; my $gen_parrot = $options{'gen-parrot'}; my $prefix = $options{'prefix'} || cwd().'/install'; my $startdir = cwd(); my $PARROT_REVISION = 'nqp/tools/build/PARROT_REVISION'; + my $MOAR_REVISION = 'nqp/tools/build/MOAR_REVISION'; my (%impls, %need); @@ -321,7 +323,7 @@ sub gen_nqp { return %impls unless %need; - if (defined $gen_nqp || defined $gen_parrot) { + if (defined $gen_nqp || defined $gen_parrot || defined $gen_moar) { git_checkout($nqp_git, 'nqp', $nqp_want, $nqp_push); } @@ -333,11 +335,18 @@ sub gen_nqp { $impls{parrot}{config} = \%c; } - return %impls unless defined($gen_nqp) || defined($gen_parrot); + if ($need{moar} && defined $gen_moar) { + my ($moar_want) = split(' ', slurp($MOAR_REVISION)); + my $moar = gen_moar($moar_want, %options, prefix => $prefix); + $impls{moar}{bin} = "$prefix/bin/nqp-m$bat"; + } + + return %impls unless defined($gen_nqp) || defined($gen_parrot) || defined($gen_moar); my $backends_to_build = join ',', sort keys %need; my @cmd = ($^X, 'Configure.pl', "--prefix=$prefix", "--backends=$backends", "--make-install"); + print "Building NQP ...\n"; chdir("$startdir/nqp"); print "@cmd\n"; @@ -425,7 +434,7 @@ sub gen_moar { my $startdir = cwd(); my $moar_exe = "$prefix/bin/moar$exe"; - my $moar_have = qx{ $moar_exe --version }; + my $moar_have = -e $moar_exe ? qx{ $moar_exe --version } : undef; if ($moar_have) { $moar_have = $moar_have =~ /version (\S+)/ ? $1 : undef; } @@ -443,7 +452,7 @@ sub gen_moar { my $moar_repo = git_checkout($moar_git, 'MoarVM', $gen_moar || $moar_want, $moar_push); - unless (cmp_rev($moar_repo, $moar_want) >= 0) { + if (defined($moar_repo) && cmp_rev($moar_repo, $moar_want) < 0) { die "You asked me to build $gen_moar, but $moar_repo is not new enough to satisfy version $moar_want\n"; } |