From 2a70ed792f883b8340099d74b2f325b2ca01616b Mon Sep 17 00:00:00 2001 From: Jens Rehsack Date: Thu, 22 Oct 2015 21:21:42 +0200 Subject: introduce support for sdkroot and sysroot to support cross-builds To allow building for another location rather the final install prefix, regardless whether chroot based builds, cross-compile or canadian cross sdk is the goal, realize the difference between prefix, the sdk-root and the system root for final target. Signed-off-by: Jens Rehsack --- tools/build/Makefile.in | 4 +++- tools/lib/NQP/Configure.pm | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in index 7b70874..68e20c6 100644 --- a/tools/build/Makefile.in +++ b/tools/build/Makefile.in @@ -7,6 +7,8 @@ STAR_VERSION = 2015.09 # install location PREFIX_DIR = @prefix@ +SDKROOT_DIR = @sdkroot@ +SYSROOT_DIR = @sysroot@ # JVM install location JVM_BIN_DIR = $(PREFIX_DIR)/bin @@ -40,7 +42,7 @@ rakudo: @backend_exes@ @backend_exes@: @echo "== Configuring and building Rakudo" - cd $(RAKUDO_DIR) && $(PERL) Configure.pl --prefix=$(PREFIX_DIR) --backends=@backends@ && $(MAKE) + cd $(RAKUDO_DIR) && $(PERL) Configure.pl --sysroot=$(SYSROOT_DIR) --sdkroot=$(SDKROOT_DIR) --prefix=$(PREFIX_DIR) --backends=@backends@ && $(MAKE) rakudo-test: rakudo cd $(RAKUDO_DIR) && $(MAKE) test diff --git a/tools/lib/NQP/Configure.pm b/tools/lib/NQP/Configure.pm index 664f63f..2f67bf1 100644 --- a/tools/lib/NQP/Configure.pm +++ b/tools/lib/NQP/Configure.pm @@ -3,6 +3,7 @@ use strict; use warnings; use Cwd; use File::Copy qw(copy); +use File::Spec qw(); use base qw(Exporter); our @EXPORT_OK = qw(sorry slurp system_or_die @@ -217,6 +218,7 @@ sub gen_nqp { my $gen_nqp = $options{'gen-nqp'}; my $gen_moar = $options{'gen-moar'}; my $prefix = $options{'prefix'} || cwd().'/install'; + my $sdkroot = $options{'sdkroot'} || ''; my $startdir = cwd(); my $PARROT_REVISION = 'nqp/tools/build/PARROT_REVISION'; @@ -227,7 +229,7 @@ sub gen_nqp { for my $b (qw/jvm moar/) { if ($backends =~ /$b/) { my $postfix = substr $b, 0, 1; - my $bin = "$prefix/bin/nqp-$postfix$bat"; + my $bin = File::Spec->catfile( $sdkroot, $prefix, 'bin', "nqp-$postfix$bat" ); $impls{$b}{bin} = $bin; my %c = read_config($bin); my $nqp_have = $c{'nqp::version'} || ''; @@ -280,12 +282,13 @@ sub gen_moar { my %options = @_; my $prefix = $options{'prefix'} || cwd()."/install"; + my $sdkroot = $options{'sdkroot'} || ''; my $gen_moar = $options{'gen-moar'}; my @opts = @{ $options{'moar-option'} || [] }; push @opts, "--optimize"; my $startdir = cwd(); - my $moar_exe = "$prefix/bin/moar$exe"; + my $moar_exe = File::Spec->catfile( $sdkroot, $prefix, 'bin', "moar$exe" ); my $moar_have = -e $moar_exe ? qx{ $moar_exe --version } : undef; if ($moar_have) { $moar_have = $moar_have =~ /version (\S+)/ ? $1 : undef; -- cgit v1.1