Skip to content

Commit 248b408

Browse files
committed
Compile QRegex and QASTNode.
1 parent 25dfd25 commit 248b408

File tree

2 files changed

+40
-18
lines changed

2 files changed

+40
-18
lines changed

tools/build/Makefile-JS.in

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,37 @@ $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp: $(CORE_SETTING_SOURCES)
3131

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

34+
$(JS_STAGE2)/NQPCORE.setting.moarvm: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2)/nqpmo.moarvm
35+
$(MKPATH) $(JS_STAGE2)
36+
$(JS_NQP) --module-path gen/js/stage1 src/vm/js/bin/cross-compile.nqp --setting=NULL --target=mbc --output $(JS_STAGE2)/NQPCORE.setting.moarvm $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp > node_modules/NQPCORE.setting.js
37+
38+
$(JS_STAGE2)/$(QASTNODE_COMBINED): $(QASTNODE_SOURCES)
39+
$(MKPATH) $(JS_STAGE2)
40+
41+
$(PERL) tools/build/gen-cat.pl js $(QASTNODE_SOURCES) > $(JS_STAGE2)/$(QASTNODE_COMBINED)
42+
43+
$(JS_STAGE2)/QASTNode.moarvm: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(QASTNODE_COMBINED) $(JS_STAGE2)/NQPCORE.setting.moarvm
44+
$(MKPATH) $(JS_STAGE2)
45+
$(JS_NQP) --module-path gen/js/stage1 src/vm/js/bin/cross-compile.nqp --setting=NQPCORE --target=mbc --output $(JS_STAGE2)/QASTNode.moarvm $(JS_STAGE2)/$(QASTNODE_COMBINED) > node_modules/QASTNode.js
46+
47+
$(JS_STAGE2)/$(QREGEX_COMBINED): $(QREGEX_SOURCES)
48+
$(MKPATH) $(JS_STAGE2)
49+
50+
$(PERL) tools/build/gen-cat.pl js $(QREGEX_SOURCES) > $(JS_STAGE2)/$(QREGEX_COMBINED)
51+
52+
$(JS_STAGE2)/QRegex.moarvm: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(QREGEX_COMBINED) $(JS_STAGE2)/NQPCORE.setting.moarvm $(JS_STAGE2)/QASTNode.moarvm
53+
$(MKPATH) $(JS_STAGE2)
54+
$(JS_NQP) --module-path gen/js/stage1 src/vm/js/bin/cross-compile.nqp --setting=NQPCORE --target=mbc --output $(JS_STAGE2)/QRegex.moarvm $(JS_STAGE2)/$(QREGEX_COMBINED) > node_modules/QRegex.js
55+
3456
js-stage1-compiler : $(JS_STAGE1_COMPILER)
35-
node_modules/NQPCORE.setting.js: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2)/nqpmo.moarvm
36-
$(MKPATH) gen/js/stage2
37-
./nqp-m --module-path gen/js/stage1 src/vm/js/bin/cross-compile.nqp --module-path gen/js/stage2 --setting=NULL --target=mbc --output gen/js/stage2/NQPCORE.setting.moarvm $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp > node_modules/NQPCORE.setting.js
3857
js-test: js-all
3958
src/vm/js/bin/run_tests
4059

4160

4261
js-clean:
4362
$(RM_RF) gen/js/stage1 gen/js/stage2
4463

45-
js-all : m-all js-stage1-compiler node_modules/installed node_modules/NQPCORE.setting.js $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp
64+
js-all : m-all js-stage1-compiler node_modules/installed $(JS_STAGE2)/NQPCORE.setting.moarvm $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2)/QASTNode.moarvm $(JS_STAGE2)/QRegex.moarvm
4665
js-lint:
4766
gjslint --strict --nojsdoc src/vm/js/nqp-runtime/*.js
4867
node_modules/installed: src/vm/js/nqp-runtime/*.js src/vm/js/nqp-runtime/package.json

tools/build/gen-js-makefile.nqp

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ sub combine(:$sources, :$stage, :$file, :$gen-version = 0) {
6161
);
6262
}
6363

64-
sub cross-compile(:$stage, :$source, :$target, :$setting, :$no-regex-lib, :$deps = []) {
64+
sub cross-compile(:$stage, :$source, :$target, :$setting='NQPCORE', :$no-regex-lib, :$deps = []) {
6565
my $path := stage_path($stage);
6666
my $moarvm := $path ~ $target ~ '.moarvm';
6767
# todo dependency on compiler
@@ -72,13 +72,14 @@ sub cross-compile(:$stage, :$source, :$target, :$setting, :$no-regex-lib, :$deps
7272
rule($moarvm, nqp::join(' ', $deps),
7373
make_parents($moarvm),
7474

75-
"\$(JS_NQP) --module-path gen/js/stage1 src/vm/js/bin/cross-compile.nqp --setting=NULL --target=mbc --output $moarvm $source > node_modules/$target.js"
76-
77-
# "\$(JS_NQP) src/vm/js/bin/cross-compile.nqp $source $path $target $setting $no-regex-lib",
75+
"\$(JS_NQP) --module-path gen/js/stage1 src/vm/js/bin/cross-compile.nqp --setting=$setting --target=mbc --output $moarvm $source > node_modules/$target.js"
7876
);
7977
}
8078

8179

80+
81+
82+
8283
comment("This is the JS Makefile - autogenerated by gen-makefile.nqp");
8384

8485
constant('JS_BUILD_DIR','gen/js');
@@ -102,13 +103,15 @@ my $nqp-mo-moarvm := cross-compile(:stage(2), :source($nqp-mo-combined), :target
102103

103104
my $nqpcore-combined := combine(:stage(2), :sources('$(CORE_SETTING_SOURCES)'), :file('$(CORE_SETTING_COMBINED).nqp'));
104105

105-
#my $nqpcore-pbc := cross-compile(:stage(2), :source($nqpcore-combined), :target('NQPCORE.setting'), :setting('NULL'), :no-regex-lib(1), :deps([$nqp-mo-pbc]));
106-
#
107-
#my $QASTNode-combined := combine(:stage(2), :sources('$(QASTNODE_SOURCES)'), :file('$(QASTNODE_COMBINED)'));
108-
#my $QASTNode-pbc := cross-compile(:stage(2), :source($QASTNode-combined), :target('QASTNode'), :setting('NQPCORE'), :no-regex-lib(1), :deps([$nqpcore-pbc]));
106+
my $nqpcore-moarvm := cross-compile(:stage(2), :source($nqpcore-combined), :deps([$nqp-mo-moarvm]), :setting('NULL'), :target('NQPCORE.setting'));
107+
108+
109+
my $QASTNode-combined := combine(:stage(2), :sources('$(QASTNODE_SOURCES)'), :file('$(QASTNODE_COMBINED)'));
110+
my $QASTNode-moarvm := cross-compile(:stage(2), :source($QASTNode-combined), :target('QASTNode'), :setting('NQPCORE'), :no-regex-lib(1), :deps([$nqpcore-moarvm]));
111+
109112
#
110-
#my $QRegex-combined := combine(:stage(2), :sources('$(QREGEX_SOURCES)'), :file('$(QREGEX_COMBINED)'));
111-
#my $QRegex-pbc := cross-compile(:stage(2), :source($QRegex-combined), :target('QRegex'), :setting('NQPCORE'), :no-regex-lib(1), :deps([$nqpcore-pbc, $QASTNode-pbc]));
113+
my $QRegex-combined := combine(:stage(2), :sources('$(QREGEX_SOURCES)'), :file('$(QREGEX_COMBINED)'));
114+
my $QRegex-moarvm := cross-compile(:stage(2), :source($QRegex-combined), :target('QRegex'), :setting('NQPCORE'), :no-regex-lib(1), :deps([$nqpcore-moarvm, $QASTNode-moarvm]));
112115
#
113116
#my $QAST-Compiler-pbc := cross-compile(:stage(2), :source('src/vm/js/QAST/Compiler.nqp'), :target('QAST/Compiler'), :setting('NQPCORE'), :no-regex-lib(0), :deps([$nqpcore-pbc, $QASTNode-pbc]));
114117
#
@@ -136,9 +139,9 @@ deps('js-stage1-compiler', '$(JS_STAGE1_COMPILER)');
136139
#deps('js-runner-default', 'js-all');
137140
#
138141

139-
say("node_modules/NQPCORE.setting.js: \$(JS_STAGE1_COMPILER) $nqpcore-combined $nqp-mo-moarvm
140-
\$(MKPATH) gen/js/stage2
141-
./nqp-m --module-path gen/js/stage1 src/vm/js/bin/cross-compile.nqp --module-path gen/js/stage2 --setting=NULL --target=mbc --output gen/js/stage2/NQPCORE.setting.moarvm $nqpcore-combined > node_modules/NQPCORE.setting.js");
142+
#say("node_modules/NQPCORE.setting.js: \$(JS_STAGE1_COMPILER) $nqpcore-combined $nqp-mo-moarvm
143+
# \$(MKPATH) gen/js/stage2
144+
# ./nqp-m --module-path gen/js/stage1 src/vm/js/bin/cross-compile.nqp --module-path gen/js/stage2 --setting=NULL --target=mbc --output gen/js/stage2/NQPCORE.setting.moarvm $nqpcore-combined > node_modules/NQPCORE.setting.js");
142145

143146
say('js-test: js-all
144147
src/vm/js/bin/run_tests');
@@ -147,7 +150,7 @@ say("\n\njs-clean:
147150
\$(RM_RF) gen/js/stage1 gen/js/stage2
148151
");
149152

150-
deps("js-all", 'm-all', 'js-stage1-compiler', 'node_modules/installed','node_modules/NQPCORE.setting.js', $nqpcore-combined);
153+
deps("js-all", 'm-all', 'js-stage1-compiler', 'node_modules/installed',$nqpcore-moarvm, $nqpcore-combined, $QASTNode-moarvm, $QRegex-moarvm);
151154

152155
# Enforce the google coding standards
153156
say("js-lint:

0 commit comments

Comments
 (0)