Skip to content

Commit

Permalink
Fix up JVM backend to work again after the static nqp home changes
Browse files Browse the repository at this point in the history
While on it clean up support for non-relocatable JVM builds.
  • Loading branch information
Patrick Boeker authored and PatZim committed Apr 16, 2020
1 parent 94fdb3d commit 59fe24b
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 22 deletions.
65 changes: 48 additions & 17 deletions tools/build/create-jvm-runner.pl
Expand Up @@ -6,12 +6,15 @@
use 5.008;
use File::Spec;
use File::Copy 'cp';
use Cwd 'abs_path';

my $USAGE = "Usage: $0 <type> <destdir> <prefix> <nqp-home> <rakudo-home> <blib> <third party jars>\n";

my ($type, $destdir, $prefix, $static_nqp_home, $static_rakudo_home, $blib, $thirdpartyjars) = @ARGV
or die $USAGE;

my $relocatable = $static_nqp_home eq '' && $static_rakudo_home eq '';

my $debugger = 0;
if ($type =~ /^(\w+)\-debug$/) {
$type = $1;
Expand All @@ -20,11 +23,21 @@

die "Invalid target type $type" unless $type eq 'dev' || $type eq 'install';

my $cpsep = $^O eq 'MSWin32' ? ';' : ':';
my $bat = $^O eq 'MSWin32' ? '.bat' : '';

my $cpsep = $^O eq 'MSWin32' ? ';' : ':';
my $bat = $^O eq 'MSWin32' ? '.bat' : '';
my $nqplibdir = $^O eq 'MSWin32' ? File::Spec->catfile($static_nqp_home, 'lib') : File::Spec->catfile('${NQP_HOME}', 'lib');
my $nqpjars = $^O eq 'MSWin32' ? $thirdpartyjars : join( $cpsep, map { $_ =~ s,$static_nqp_home,\${NQP_HOME},g; $_ } split($cpsep, $thirdpartyjars) );

my $nqpjars;
if ($^O eq 'MSWin32' || !$relocatable) {
$nqpjars = $thirdpartyjars;
}
elsif ($relocatable) {
my @thirdpartyjars = map { abs_path($_) } split($cpsep, $thirdpartyjars);
my $nqp_home = abs_path(File::Spec->catpath($prefix, 'share', 'nqp'));
@thirdpartyjars = map { $_ =~ s,$nqp_home,\${NQP_HOME},; $_ } @thirdpartyjars;
$nqpjars = join($cpsep, @thirdpartyjars);
}

my $bindir = $type eq 'install' ? File::Spec->catfile($prefix, 'bin') : $prefix;
my $jardir = $type eq 'install' ? File::Spec->catfile($^O eq 'MSWin32' ? $static_rakudo_home : '${RAKUDO_HOME}', 'runtime') : $prefix;
my $libdir = $type eq 'install' ? File::Spec->catfile($^O eq 'MSWin32' ? $static_rakudo_home : '${RAKUDO_HOME}', 'lib') : 'blib';
Expand Down Expand Up @@ -73,20 +86,38 @@
EOS

my $preamble;
if ($^O eq 'MSWin32') {
$preamble = '@';
}
elsif ($type eq 'install') {
if ($relocatable) {
$preamble = $preamble_unix
. ": \${NQP_HOME:=\"\$DIR/../share/nqp\"}"
. ": \${NQP_JARS:=\"$nqpjars\"}"
. ": \${RAKUDO_HOME:=\"\$DIR/../share/perl6\"}"
. ": \${RAKUDO_JARS:=\"$rakudo_jars\"}"
. "exec ";
}
else {
$preamble = $preamble_unix
. ": \${NQP_HOME:=\"$static_nqp_home\"}"
. ": \${NQP_JARS:=\"$nqpjars\"}"
. ": \${RAKUDO_HOME:=\"$static_rakudo_home\"}"
. ": \${RAKUDO_JARS:=\"$rakudo_jars\"}"
. "exec ";
}
}
else {
$preamble = $preamble_unix
. "$NQP_LIB"
. ": \${NQP_HOME:=\"$static_nqp_home\"}"
. ": \${NQP_JARS:=\"$nqpjars\"}"
. ": \${RAKUDO_HOME:=\"$prefix\"}"
. ": \${RAKUDO_JARS:=\"$rakudo_jars\"}"
. "exec ";
}

my $preamble = $^O eq 'MSWin32' ? '@' :
$type eq 'install'
? $preamble_unix . ": \${NQP_HOME=\"\$DIR/../share/nqp\"}
: \${NQP_JARS:=\"$nqpjars\"}
: \${RAKUDO_HOME:=\"\$DIR/../share/perl6\"}
: \${RAKUDO_JARS:=\"$rakudo_jars\"}
exec "
: $preamble_unix . "$NQP_LIB
: \${NQP_HOME:=\"$static_nqp_home\"}
: \${NQP_JARS:=\"$nqpjars\"}
: \${RAKUDO_HOME:=\"$prefix\"}
: \${RAKUDO_JARS:=\"$rakudo_jars\"}
exec ";
my $postamble = $^O eq 'MSWin32' ? ' %*' : ' "$@"';

sub install {
Expand Down
10 changes: 5 additions & 5 deletions tools/templates/jvm/Makefile.in
Expand Up @@ -45,7 +45,7 @@ $(RUNTIME_JAR): $(RUNTIME_JAVAS)

$(J_RUNNER): @@script(create-jvm-runner.pl)@@
@echo(+++ Setting up $@)@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ dev . . @q(@bpm(NQP_HOME)@)@ @q($(RAKUDO_HOME))@ --nqp-lib=blib @q($(NQP_JARS))@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ dev . . @q(@static_nqp_home@)@ @q(@static_rakudo_home@)@ --nqp-lib=blib @q($(NQP_JARS))@

@backend_prefix@-runner-default: @backend_prefix@-all
@echo(+++ Setting up @uc(@backend@)@ runner)@
Expand All @@ -54,7 +54,7 @@ $(J_RUNNER): @@script(create-jvm-runner.pl)@@

@bpm(DEBUG_RUNNER)@: @@script(create-jvm-runner.pl)@@ @bsm(RAKUDO_DEBUG)@
@echo(+++ Setting up $@)@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ dev-debug . . @q(@bpm(NQP_HOME)@)@ @q($(RAKUDO_HOME))@ --nqp-lib=blib @q($(NQP_JARS))@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ dev-debug . . @q(@static_nqp_home@)@ @q(@static_rakudo_home@)@ --nqp-lib=blib @q($(NQP_JARS))@

eval-client.pl:
@echo(+++ Setting up $@)@
Expand Down Expand Up @@ -84,14 +84,14 @@ sometests: @backend_prefix@-all

@backend_prefix@-runner-default-install: @backend_prefix@-install
@echo(+++ Installing @uc(@backend@)@ launcher)@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ install @q($(DESTDIR))@ @q($(PREFIX))@ @q(@bpm(NQP_HOME)@)@ @q($(RAKUDO_HOME))@ "" @q($(NQP_JARS))@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ install @q($(DESTDIR))@ @q($(PREFIX))@ @q(@static_nqp_home@)@ @q(@static_rakudo_home@)@ "" @q($(NQP_JARS))@
$(NOECHO)$(CP) @nfpq($(DESTDIR)$(PREFIX)/bin/rakudo-j$(J_BAT))@ @nfpq($(DESTDIR)$(PREFIX)/bin/rakudo$(J_BAT))@
$(NOECHO)$(CHMOD) 755 @nfpq($(DESTDIR)$(PREFIX)/bin/rakudo$(J_BAT))@

@backend_prefix@-install-main:: $(RUNTIME_JAR) @@script(create-jvm-runner.pl)@@
$(NOECHO)$(CP) $(RUNTIME_JAR) @nfpq($(DESTDIR)$(RAKUDO_HOME)/runtime)@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ install @q($(DESTDIR))@ @q($(PREFIX))@ @q(@bpm(NQP_HOME)@)@ @q($(NQP_PREFIX))@ "" @q($(NQP_JARS))@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ install-debug @q($(DESTDIR))@ @q($(PREFIX))@ @q(@bpm(NQP_HOME)@)@ @q($(NQP_PREFIX))@ "" @q($(NQP_JARS))@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ install @q($(DESTDIR))@ @q($(PREFIX))@ @q(@static_nqp_home@)@ @q($(NQP_PREFIX))@ "" @q($(NQP_JARS))@
$(NOECHO)$(PERL5) @shquot(@script(create-jvm-runner.pl)@)@ install-debug @q($(DESTDIR))@ @q($(PREFIX))@ @q(@static_nqp_home@)@ @q($(NQP_PREFIX))@ "" @q($(NQP_JARS))@

## cleaning
@backend_prefix@-clean:
Expand Down

0 comments on commit 59fe24b

Please sign in to comment.