Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generate a tools/build/Makefile-JS.in which allows the passing of the…
… nqp-js tests.
- Loading branch information
Showing
2 changed files
with
100 additions
and
150 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,153 +1,61 @@ | ||
# This is the JS Makefile | ||
|
||
JS_BUILD_DIR = gen/js | ||
# This is the JS Makefile - autogenerated by gen-makefile.nqp | ||
JS_BUILD_DIR = gen/js | ||
JS_STAGE1 = $(JS_BUILD_DIR)/stage1 | ||
JS_STAGE2 = $(JS_BUILD_DIR)/stage2 | ||
|
||
|
||
JS_NQPCORE_PBC = NQPCORE.setting.pbc | ||
|
||
$(JS_STAGE1)/$(QASTNODE_COMBINED): $(QASTNODE_SOURCES) | ||
$(MKPATH) $(JS_STAGE1)/gen | ||
$(PERL) tools/build/gen-cat.pl js $(QASTNODE_SOURCES) > $(JS_STAGE1)/$(QASTNODE_COMBINED) | ||
|
||
js-all: $(JS_STAGE1)/$(QASTNODE_COMBINED) js-cross_compiler js-install-modules | ||
|
||
JS_NQP = nqp-p | ||
JS_PARROT = parrot | ||
js-runner-default: js-all | ||
$(JS_STAGE1)/QAST/Compiler.pbc: src/vm/js/QAST/Compiler.nqp | ||
mkdir -p $(JS_STAGE1)/QAST | ||
$(JS_NQP) --target=pir --output=$(JS_STAGE1)/QAST/Compiler.pir --encoding=utf8 --module-path=$(JS_STAGE1)/ src/vm/js/QAST/Compiler.nqp | ||
$(JS_PARROT) -o $(JS_STAGE1)/QAST/Compiler.pbc $(JS_STAGE1)/QAST/Compiler.pir | ||
|
||
# TODO use a stage0 nqp-p rather than the installed one | ||
|
||
JS_NQP = nqp-p | ||
JS_PARROT = parrot | ||
#PBC_TO_EXE = pbc_to_exe | ||
|
||
PERL6_QCJ = src/vm/js/QAST/Compiler.nqp | ||
PERL6_QCJ_PIR = $(JS_STAGE1)/QAST/Compiler.pir | ||
PERL6_QCJ_PBC = $(JS_STAGE1)/QAST/Compiler.pbc | ||
|
||
JS_HLL_BACKEND = src/vm/js/HLL/Backend.nqp | ||
JS_HLL_PIR = $(JS_STAGE1)/hll-backend.pir | ||
JS_HLL_PBC = $(JS_STAGE1)/HLL/Backend.pbc | ||
|
||
$(PERL6_QCJ_PBC): $(PERL6_QCJ) | ||
$(MKPATH) $(JS_STAGE1)/QAST | ||
$(JS_NQP) --target=pir --output=$(PERL6_QCJ_PIR) --encoding=utf8 $(PERL6_QCJ) | ||
$(JS_PARROT) -o $(PERL6_QCJ_PBC) $(PERL6_QCJ_PIR) | ||
|
||
js-clean: | ||
$(RM_RF) $(PERL6_QCJ_PBC) | ||
|
||
JS_CROSS_COMPILER=$(PERL6_QCJ_PBC) $(JS_HLL_PBC) $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2)/nqpmo.pbc $(JS_STAGE2)/$(JS_NQPCORE_PBC) $(JS_STAGE2)/QRegex.pbc | ||
#$(JS_STAGE2)/NQPP6QRegex.pbc | ||
|
||
js-cross_compiler: $(JS_CROSS_COMPILER) | ||
|
||
JS_STAGE2_CORE=$(JS_STAGE2)/$(JS_NQPCORE_PBC) $(JS_STAGE2)/nqpmo.pbc | ||
|
||
$(JS_HLL_PBC) : $(JS_HLL_BACKEND) $(PERL6_QCJ_PIR) | ||
$(MKPATH) $(JS_STAGE1)/HLL | ||
$(JS_NQP) --target=pir --module-path=gen/js/stage1 --output=$(JS_HLL_PIR) --encoding=utf8 $(JS_HLL_BACKEND) | ||
$(JS_PARROT) -o $(JS_HLL_PBC) $(JS_HLL_PIR) | ||
|
||
$(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp: $(CORE_SETTING_SOURCES) | ||
$(MKPATH) $(JS_STAGE2) | ||
$(PERL) tools/build/gen-cat.pl js $(CORE_SETTING_SOURCES) > $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp | ||
$(JS_STAGE1)/HLL/Backend.pbc: src/vm/js/HLL/Backend.nqp | ||
mkdir -p $(JS_STAGE1)/HLL | ||
$(JS_NQP) --target=pir --output=$(JS_STAGE1)/HLL/Backend.pir --encoding=utf8 --module-path=$(JS_STAGE1)/ src/vm/js/HLL/Backend.nqp | ||
$(JS_PARROT) -o $(JS_STAGE1)/HLL/Backend.pbc $(JS_STAGE1)/HLL/Backend.pir | ||
|
||
JS_STAGE1_COMPILER = $(JS_STAGE1)/QAST/Compiler.pbc $(JS_STAGE1)/HLL/Backend.pbc | ||
$(JS_STAGE2)/$(NQP_MO_COMBINED): $(NQP_MO_SOURCES) | ||
$(MKPATH) $(JS_STAGE2) | ||
mkdir -p $(JS_STAGE2) | ||
$(PERL) tools/build/gen-cat.pl js $(NQP_MO_SOURCES) > $(JS_STAGE2)/$(NQP_MO_COMBINED) | ||
|
||
$(JS_STAGE2)/nqpmo.pbc : $(JS_STAGE2)/$(NQP_MO_COMBINED) | ||
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(NQP_MO_COMBINED) $(JS_STAGE2) nqpmo NULL 1 | ||
$(JS_STAGE2)/nqpmo.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(NQP_MO_COMBINED) | ||
mkdir -p $(JS_STAGE2) | ||
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(NQP_MO_COMBINED) $(JS_STAGE2)/ nqpmo NULL 1 | ||
$(JS_PARROT) -o $(JS_STAGE2)/nqpmo.pbc $(JS_STAGE2)/nqpmo.pir | ||
|
||
$(JS_PARROT) -o $(JS_STAGE2)/nqpmo.pbc $(JS_STAGE2)/nqpmo.pir | ||
$(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 | ||
|
||
$(JS_STAGE2)/$(JS_NQPCORE_PBC) : $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2)/nqpmo.pbc | ||
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2) NQPCORE.setting NULL 1 | ||
$(JS_PARROT) -o $(JS_STAGE2)/$(JS_NQPCORE_PBC) $(JS_STAGE2)/NQPCORE.setting.pir | ||
$(JS_STAGE2)/NQPCORE.setting.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2)/nqpmo.pbc | ||
mkdir -p $(JS_STAGE2) | ||
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(CORE_SETTING_COMBINED).nqp $(JS_STAGE2)/ NQPCORE.setting NULL 1 | ||
$(JS_PARROT) -o $(JS_STAGE2)/NQPCORE.setting.pbc $(JS_STAGE2)/NQPCORE.setting.pir | ||
|
||
$(JS_STAGE2)/QASTNode.pbc: $(QASTNODE_SOURCES) $(JS_STAGE2_CORE) $(JS_CORE_COMPILER) | ||
$(JS_STAGE2)/$(QASTNODE_COMBINED): $(QASTNODE_SOURCES) | ||
mkdir -p $(JS_STAGE2) | ||
$(PERL) tools/build/gen-cat.pl js $(QASTNODE_SOURCES) > $(JS_STAGE2)/$(QASTNODE_COMBINED) | ||
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(QASTNODE_COMBINED) $(JS_STAGE2) QASTNode NQPCORE 1 | ||
$(JS_PARROT) -o $(JS_STAGE2)/QASTNode.pbc $(JS_STAGE2)/QASTNode.pir | ||
|
||
$(JS_STAGE2)/QRegex.pbc: $(QREGEX_SOURCES) $(JS_STAGE2)/QASTNode.pbc | ||
$(MKPATH) $(JS_STAGE2)/gen | ||
$(PERL) tools/build/gen-cat.pl js $(QREGEX_SOURCES) > $(JS_STAGE2)/$(QREGEX_COMBINED) | ||
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(QREGEX_COMBINED) $(JS_STAGE2) QRegex NQPCORE 1 | ||
$(JS_PARROT) -o $(JS_STAGE2)/QRegex.pbc $(JS_STAGE2)/QRegex.pir | ||
$(JS_STAGE2)/QASTNode.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(QASTNODE_COMBINED) $(JS_STAGE2)/NQPCORE.setting.pbc | ||
mkdir -p $(JS_STAGE2) | ||
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(QASTNODE_COMBINED) $(JS_STAGE2)/ QASTNode NQPCORE 1 | ||
$(JS_PARROT) -o $(JS_STAGE2)/QASTNode.pbc $(JS_STAGE2)/QASTNode.pir | ||
|
||
$(JS_STAGE2)/$(QREGEX_COMBINED): $(QREGEX_SOURCES) | ||
mkdir -p $(JS_STAGE2) | ||
$(PERL) tools/build/gen-cat.pl js $(QREGEX_SOURCES) > $(JS_STAGE2)/$(QREGEX_COMBINED) | ||
|
||
#$(JS_STAGE2)/NQPP6QRegex.pbc: $(P6QREGEX_SOURCES) $(JS_STAGE2)/QRegex.pbc | ||
# $(MKPATH) $(JS_STAGE2)/gen | ||
# $(PERL) tools/build/gen-cat.pl js $(P6QREGEX_SOURCES) > $(JS_STAGE2)/$(P6QREGEX_COMBINED) | ||
# nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/compile-setting.nqp $(JS_STAGE2)/$(P6QREGEX_COMBINED) node_modules/NQPP6QRegex $(JS_STAGE2)/NQPP6QRegex.pbc NQPCORE | ||
# $(PARROT) -o $(JS_STAGE2)/NQPP6QRegex.pbc $(JS_STAGE2)/NQPP6QRegex.pir | ||
$(JS_STAGE2)/QRegex.pbc: $(JS_STAGE1_COMPILER) $(JS_STAGE2)/$(QREGEX_COMBINED) $(JS_STAGE2)/NQPCORE.setting.pbc $(JS_STAGE2)/QASTNode.pbc | ||
mkdir -p $(JS_STAGE2) | ||
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/cross-compile.nqp $(JS_STAGE2)/$(QREGEX_COMBINED) $(JS_STAGE2)/ QRegex NQPCORE 1 | ||
$(JS_PARROT) -o $(JS_STAGE2)/QRegex.pbc $(JS_STAGE2)/QRegex.pir | ||
|
||
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-runner-default : js-all | ||
js-test: js-all | ||
src/vm/js/bin/run_tests | ||
# prove -e './nqp-js' t/*.t t/nqp/{01..29}*.t t/nqp/{31..48}* t/nqp/{50,51,53}* t/nqp/{55..81}* t/nqp/83* t/serialization/*.t | ||
|
||
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 | ||
|
||
### | ||
### | ||
### | ||
### js-blib/QAST/Compiler/JavaScript.pir: src/QAST/Compiler/JavaScript.nqp setting.setting.pbc blib/HLL/Backend/JavaScript.pbc $(PERL6_QCJ_PBC) js-blib/nqpmo.pbc | ||
### nqp-p bin/compile-setting.nqp src/QAST/Compiler/JavaScript.nqp node_modules/QAST/Compiler/JavaScript js-blib/QAST/Compiler/JavaScript.pir setting 0 | ||
### | ||
### js-blib/QAST/Compiler/JavaScript.pbc: js-blib/QAST/Compiler/JavaScript.pir | ||
### parrot -o js-blib/QAST/Compiler/JavaScript.pbc js-blib/QAST/Compiler/JavaScript.pir | ||
### | ||
### #### Old NQP Makefile | ||
### # blib/HLL/Backend/JavaScript.pbc js-blib/nqpmo.pbc setting.setting.pbc helper.pbc js-blib/QASTNode.pbc js-blib/QRegex.pbc | ||
### | ||
### | ||
### nqpjs: nqp-compiler.js | ||
### nqp-compiler.js: $(cross_compiler) js-blib/QAST/Compiler/JavaScript.pbc nqp-compiler.nqp | ||
### nqp-p bin/nqp-js.nqp --target=js nqp-compiler.nqp > nqp-compiler.js | ||
### | ||
### | ||
### #ModuleLoader.js js-blib/ModuleLoader.pir: nqp-src/ModuleLoader.nqp setting.setting.pbc blib/HLL/Backend/JavaScript.pbc $(PERL6_QCJ_PBC) js-blib/nqpmo.pbc | ||
### # nqp bin/compile-setting.nqp nqp-src/ModuleLoader.nqp ModuleLoader.js js-blib/ModuleLoader.pir | ||
### | ||
### | ||
### | ||
### t/gen/qregex.t: bin/process-qregex-tests | ||
### nqp-p bin/process-qregex-tests > t/gen/qregex.t | ||
### | ||
### helper.pbc: t/helper.nqp $(PERL6_QCJ_PBC) | ||
### nqp-p --target=pir --output=helper.pir t/helper.nqp | ||
### parrot -o helper.pbc helper.pir | ||
### | ||
### js-blib/nqpmo.pbc: nqp-src/nqpmo.pm $(PERL6_QCJ_PBC) blib/HLL/Backend/JavaScript.pbc | ||
### nqp-p bin/compile-setting.nqp nqp-src/nqpmo.pm node_modules/nqpmo js-blib/nqpmo.pir | ||
### parrot -o js-blib/nqpmo.pbc js-blib/nqpmo.pir | ||
## | ||
### setting.setting.pir: nqp-src/NQPCORE.setting blib/HLL/Backend/JavaScript.pbc $(PERL6_QCJ_PBC) js-blib/nqpmo.pbc | ||
### nqp-p bin/compile-setting.nqp nqp-src/NQPCORE.setting node_modules/setting.setting setting.setting.pir | ||
### | ||
### | ||
### js-blib/QASTNode.pir: nqp-src/QASTNode.nqp setting.setting.pbc blib/HLL/Backend/JavaScript.pbc $(PERL6_QCJ_PBC) js-blib/nqpmo.pbc | ||
### nqp-p bin/compile-setting.nqp nqp-src/QASTNode.nqp node_modules/QASTNode js-blib/QASTNode.pir setting | ||
### | ||
### js-blib/QRegex.pir: nqp-src/QRegex.nqp setting.setting.pbc blib/HLL/Backend/JavaScript.pbc $(PERL6_QCJ_PBC) js-blib/nqpmo.pbc | ||
### nqp-p bin/compile-setting.nqp nqp-src/QRegex.nqp node_modules/QRegex js-blib/QRegex.pir setting | ||
### | ||
### | ||
### setting.setting.pbc: setting.setting.pir | ||
### parrot -o setting.setting.pbc setting.setting.pir | ||
### | ||
### js-blib/QASTNode.pbc: js-blib/QASTNode.pir | ||
### parrot -o js-blib/QASTNode.pbc js-blib/QASTNode.pir | ||
### | ||
### js-blib/QRegex.pbc: js-blib/QRegex.pir | ||
### parrot -o js-blib/QRegex.pbc js-blib/QRegex.pir | ||
### | ||
### | ||
### | ||
### test: t/gen/qregex.t all | ||
### ./run_tests | ||
### lint: | ||
### gjslint --strict --nojsdoc nqp-runtime-core/*.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters