Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Install more modules to node_modules.
Build a gen/js/stage2/NQP.nqp (which compiles and supports --target=ast for -e '1')
  • Loading branch information
pmurias committed Jul 27, 2014
1 parent a3fb1dd commit 844054c
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 13 deletions.
27 changes: 19 additions & 8 deletions tools/build/Makefile-JS.in
Expand Up @@ -18,7 +18,8 @@ $(JS_STAGE1)/HLL/Backend.pbc: src/vm/js/HLL/Backend.nqp $(JS_STAGE1)/QAST/Compil
JS_STAGE1_COMPILER = $(JS_STAGE1)/QAST/Compiler.pbc $(JS_STAGE1)/HLL/Backend.pbc
$(JS_STAGE2)/$(NQP_MO_COMBINED): $(NQP_MO_SOURCES)
mkdir -p $(JS_STAGE2)
$(PERL) tools/build/gen-cat.pl js $(NQP_MO_SOURCES) > $(JS_STAGE2)/$(NQP_MO_COMBINED)

$(PERL) tools/build/gen-cat.pl js $(NQP_MO_SOURCES) > $(JS_STAGE2)/$(NQP_MO_COMBINED)

$(JS_STAGE2)/nqpmo.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(NQP_MO_COMBINED)
mkdir -p $(JS_STAGE2)
Expand All @@ -27,7 +28,8 @@ $(JS_STAGE2)/nqpmo.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(NQP_MO_COMBINED)

$(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp: $(CORE_SETTING_SOURCES)
mkdir -p $(JS_STAGE2)
$(PERL) tools/build/gen-cat.pl js $(CORE_SETTING_SOURCES) > $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp

$(PERL) tools/build/gen-cat.pl js $(CORE_SETTING_SOURCES) > $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp

$(JS_STAGE2)/NQPCORE.setting.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2)/nqpmo.pbc
mkdir -p $(JS_STAGE2)
Expand All @@ -36,7 +38,8 @@ $(JS_STAGE2)/NQPCORE.setting.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(CORE_SETT

$(JS_STAGE2)/$(QASTNODE_COMBINED): $(QASTNODE_SOURCES)
mkdir -p $(JS_STAGE2)
$(PERL) tools/build/gen-cat.pl js $(QASTNODE_SOURCES) > $(JS_STAGE2)/$(QASTNODE_COMBINED)

$(PERL) tools/build/gen-cat.pl js $(QASTNODE_SOURCES) > $(JS_STAGE2)/$(QASTNODE_COMBINED)

$(JS_STAGE2)/QASTNode.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(QASTNODE_COMBINED) $(JS_STAGE2)/NQPCORE.setting.pbc
mkdir -p $(JS_STAGE2)
Expand All @@ -45,7 +48,8 @@ $(JS_STAGE2)/QASTNode.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(QASTNODE_COMBINE

$(JS_STAGE2)/$(QREGEX_COMBINED): $(QREGEX_SOURCES)
mkdir -p $(JS_STAGE2)
$(PERL) tools/build/gen-cat.pl js $(QREGEX_SOURCES) > $(JS_STAGE2)/$(QREGEX_COMBINED)

$(PERL) tools/build/gen-cat.pl js $(QREGEX_SOURCES) > $(JS_STAGE2)/$(QREGEX_COMBINED)

$(JS_STAGE2)/QRegex.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(QREGEX_COMBINED) $(JS_STAGE2)/NQPCORE.setting.pbc $(JS_STAGE2)/QASTNode.pbc
mkdir -p $(JS_STAGE2)
Expand All @@ -59,7 +63,8 @@ $(JS_STAGE2)/QAST/Compiler.pbc: $(JS_STAGE1_COMPILER) src/vm/js/QAST/Compiler.nq

$(JS_STAGE2)/$(HLL_COMBINED): src/vm/js/HLL/Backend.nqp $(COMMON_HLL_SOURCES)
mkdir -p $(JS_STAGE2)
$(PERL) tools/build/gen-cat.pl js src/vm/js/HLL/Backend.nqp $(COMMON_HLL_SOURCES) > $(JS_STAGE2)/$(HLL_COMBINED)

$(PERL) tools/build/gen-cat.pl js src/vm/js/HLL/Backend.nqp $(COMMON_HLL_SOURCES) > $(JS_STAGE2)/$(HLL_COMBINED)

$(JS_STAGE2)/NQPHLL.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(HLL_COMBINED) $(JS_STAGE2)/NQPCORE.setting.pbc $(JS_STAGE2)/QAST/Compiler.pbc
mkdir -p $(JS_STAGE2)
Expand All @@ -73,17 +78,23 @@ $(JS_STAGE2)/QAST.pbc: $(JS_STAGE1_COMPILER) src/vm/js/QAST.nqp $(JS_STAGE2)/NQP

$(JS_STAGE2)/$(P6QREGEX_COMBINED): $(P6QREGEX_SOURCES)
mkdir -p $(JS_STAGE2)
$(PERL) tools/build/gen-cat.pl js $(P6QREGEX_SOURCES) > $(JS_STAGE2)/$(P6QREGEX_COMBINED)

$(PERL) tools/build/gen-cat.pl js $(P6QREGEX_SOURCES) > $(JS_STAGE2)/$(P6QREGEX_COMBINED)

$(JS_STAGE2)/NQPP6QRegex.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(P6QREGEX_COMBINED) $(JS_STAGE2)/NQPCORE.setting.pbc $(JS_STAGE2)/QRegex.pbc $(JS_STAGE2)/NQPHLL.pbc $(JS_STAGE2)/QAST.pbc
mkdir -p $(JS_STAGE2)
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(P6QREGEX_COMBINED) $(JS_STAGE2)/ NQPP6QRegex NQPCORE 1
$(JS_PARROT) -o $(JS_STAGE2)/NQPP6QRegex.pbc $(JS_STAGE2)/NQPP6QRegex.pir

$(JS_STAGE2)/$(NQP_COMBINED): $(COMMON_NQP_SOURCES)
mkdir -p $(JS_STAGE2)
$(PERL) tools/build/gen-version.pl > $(JS_STAGE2)/nqp-config.nqp
$(PERL) tools/build/gen-cat.pl js $(COMMON_NQP_SOURCES) $(JS_STAGE2)/nqp-config.nqp > $(JS_STAGE2)/$(NQP_COMBINED)

js-stage1-compiler : $(JS_STAGE1_COMPILER)
js-all : js-stage1-compiler $(JS_STAGE2)/NQPCORE.setting.pbc $(JS_STAGE2)/QASTNode.pbc $(JS_STAGE2)/QRegex.pbc $(JS_STAGE2)/NQPP6QRegex.pbc
js-all : js-stage1-compiler $(JS_STAGE2)/NQPCORE.setting.pbc $(JS_STAGE2)/QASTNode.pbc $(JS_STAGE2)/QRegex.pbc $(JS_STAGE2)/NQPP6QRegex.pbc $(JS_STAGE2)/$(NQP_COMBINED)
js-runner-default : js-all
js-test: js-all
src/vm/js/bin/run_tests
js-install-modules:
npm install src/vm/js/nqp-runtime-core src/vm/js/nqp-runtime-node src/vm/js/nqp-runtime gen/js/stage2/NQPCORE.setting gen/js/stage2/QRegex gen/js/stage2/nqpmo gen/js/stage2/QASTNode
npm install src/vm/js/nqp-runtime-core src/vm/js/nqp-runtime-node src/vm/js/nqp-runtime gen/js/stage2/NQPCORE.setting gen/js/stage2/QRegex gen/js/stage2/nqpmo gen/js/stage2/QASTNode gen/js/stage2/QAST gen/js/stage2/NQPP6QRegex gen/js/stage2/NQPHLL
22 changes: 17 additions & 5 deletions tools/build/gen-js-makefile.nqp
Expand Up @@ -19,7 +19,9 @@ sub make_parents($path) {
sub rule($target, $source, *@actions) {
my $rule := "$target: $source\n";
for @actions -> $action {
$rule := $rule ~ "\t$action\n";
if $rule ne '' {
$rule := $rule ~ "\t$action\n";
}
}
say($rule);
$target;
Expand All @@ -44,9 +46,16 @@ sub deps($target, *@deps) {
say("$target : {nqp::join(' ',@deps)}");
}

sub combine(:$sources, :$stage, :$file) {
sub combine(:$sources, :$stage, :$file, :$gen-version = 0) {

my $target := stage_path($stage) ~ $file;
rule($target, $sources, make_parents($target), "\$(PERL) tools/build/gen-cat.pl js $sources > $target");
my $version := stage_path($stage) ~ 'nqp-config.nqp';

rule($target, $sources,
make_parents($target),
$gen-version ?? "\$(PERL) tools/build/gen-version.pl > $version" !! '',
"\$(PERL) tools/build/gen-cat.pl js $sources {$gen-version ?? $version !! ''} > $target"
);
}

sub cross-compile(:$stage, :$source, :$target, :$setting, :$no-regex-lib, :$deps = []) {
Expand Down Expand Up @@ -105,8 +114,11 @@ my $QAST-pbc := cross-compile(:stage(2), :source('src/vm/js/QAST.nqp'), :target(
my $NQPP6QRegex-combined := combine(:stage(2), :sources('$(P6QREGEX_SOURCES)'), :file('$(P6QREGEX_COMBINED)'));
my $NQPP6QRegex-pbc := cross-compile(:stage(2), :source($NQPP6QRegex-combined), :target('NQPP6QRegex'), :setting('NQPCORE'), :no-regex-lib(1), :deps([$nqpcore-pbc, $QRegex-pbc, $NQPHLL-pbc, $QAST-pbc]));


my $NQP-combined := combine(:stage(2), :sources('$(COMMON_NQP_SOURCES)'), :file('$(NQP_COMBINED)'), :gen-version(1));

deps('js-stage1-compiler', '$(JS_STAGE1_COMPILER)');
deps("js-all", 'js-stage1-compiler', $nqpcore-pbc, $QASTNode-pbc, $QRegex-pbc, $NQPP6QRegex-pbc);
deps("js-all", 'js-stage1-compiler', $nqpcore-pbc, $QASTNode-pbc, $QRegex-pbc, $NQPP6QRegex-pbc, $NQP-combined);

# we don't have a proper runner yet but the Makefile structure requires that
deps('js-runner-default', 'js-all');
Expand All @@ -115,4 +127,4 @@ say('js-test: js-all
src/vm/js/bin/run_tests');

say('js-install-modules:
npm install src/vm/js/nqp-runtime-core src/vm/js/nqp-runtime-node src/vm/js/nqp-runtime gen/js/stage2/NQPCORE.setting gen/js/stage2/QRegex gen/js/stage2/nqpmo gen/js/stage2/QASTNode');
npm install src/vm/js/nqp-runtime-core src/vm/js/nqp-runtime-node src/vm/js/nqp-runtime gen/js/stage2/NQPCORE.setting gen/js/stage2/QRegex gen/js/stage2/nqpmo gen/js/stage2/QASTNode gen/js/stage2/QAST gen/js/stage2/NQPP6QRegex gen/js/stage2/NQPHLL');

0 comments on commit 844054c

Please sign in to comment.