aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpmichaud <pmichaud@pobox.com>2012-01-27 13:36:08 -0600
committerpmichaud <pmichaud@pobox.com>2012-01-27 13:36:08 -0600
commit1339c1502db79412159f607887082f61952d415e (patch)
tree9b5454e0820ab50a0c3288116f0cfbec498cdd33
parent7c94ff394fcd7e5139106cf10c7a7c69265a8b71 (diff)
Updates to enable --gen-parrot and --gen-nqp to accept directory path values.
-rw-r--r--skel/tools/lib/NQP/Configure.pm19
1 files changed, 15 insertions, 4 deletions
diff --git a/skel/tools/lib/NQP/Configure.pm b/skel/tools/lib/NQP/Configure.pm
index 0572a62..e93c366 100644
--- a/skel/tools/lib/NQP/Configure.pm
+++ b/skel/tools/lib/NQP/Configure.pm
@@ -242,6 +242,7 @@ sub gen_nqp {
my $gen_parrot = $options{'gen-parrot'};
my $prefix = $options{'prefix'} || cwd().'/install';
my $startdir = cwd();
+ my $nqpdir = "$startdir/nqp";
my $PARROT_REVISION = 'nqp/tools/build/PARROT_REVISION';
@@ -261,7 +262,11 @@ sub gen_nqp {
my $nqp_have = $config{'nqp::version'} || '';
my $nqp_ok = $nqp_have && cmp_rev($nqp_have, $nqp_want) >= 0;
- if ($gen_nqp) {
+ if ($gen_nqp && -d $gen_nqp) {
+ $nqpdir = $gen_nqp;
+ print "Building NQP from source in $nqpdir\n";
+ }
+ elsif ($gen_nqp) {
my $nqp_repo = git_checkout($nqp_git, 'nqp', $gen_nqp);
$nqp_ok = $nqp_have eq $nqp_repo;
}
@@ -270,6 +275,7 @@ sub gen_nqp {
}
if (defined $gen_parrot) {
+ $PARROT_REVISION = "$nqpdir/tools/build/PARROT_REVISION";
my ($par_want) = split(' ', slurp($PARROT_REVISION));
$with_parrot = gen_parrot($par_want, %options, prefix => $prefix);
%config = read_parrot_config($with_parrot);
@@ -287,7 +293,7 @@ sub gen_nqp {
my @cmd = ($^X, 'Configure.pl', "--with-parrot=$with_parrot",
"--make-install");
print "Building NQP ...\n";
- chdir("$startdir/nqp");
+ chdir($nqpdir);
print "@cmd\n";
system_or_die(@cmd);
chdir($startdir);
@@ -304,13 +310,18 @@ sub gen_parrot {
my @opts = @{ $options{'parrot-option'} || [] };
push @opts, "--optimize";
my $startdir = cwd();
+ my $parrotdir = "$startdir/parrot";
my $par_exe = "$options{'prefix'}/bin/parrot$exe";
my %config = read_parrot_config($par_exe);
my $par_have = $config{'parrot::git_describe'} || '';
my $par_ok = $par_have && cmp_rev($par_have, $par_want) >= 0;
- if ($gen_parrot) {
+ if ($gen_parrot && -d $gen_parrot) {
+ $parrotdir = $gen_parrot;
+ print "Building Parrot from source in $parrotdir\n";
+ }
+ elsif ($gen_parrot) {
my $par_repo = git_checkout($par_git, 'parrot', $gen_parrot);
$par_ok = $par_have eq $par_repo;
}
@@ -322,7 +333,7 @@ sub gen_parrot {
print "$par_exe is Parrot $par_have.\n";
return $par_exe;
}
- chdir("$startdir/parrot") or die $!;
+ chdir($parrotdir) or die $!;
if (-f 'Makefile') {
%config = read_parrot_config('config_lib.pir');
my $make = $config{'parrot::make'};