Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[js] Use the result of our Makefile generation script directly
- Loading branch information
Showing
1 changed file
with
133 additions
and
2 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,4 +1,135 @@ | ||
JS_CORE_SOURCES = @insert_filelist(core_sources)@ | ||
@for_specs( | ||
JS_CORE_@ucspec@_SOURCES = \ | ||
@insert_filelist(core_sources)@ | ||
)@ | ||
|
||
@include_capture(@js_nqp@ @nfp(tools/build/gen-js-makefile.nqp)@)@ | ||
JS_BUILD_DIR = @nfp(js/moar)@ | ||
|
||
# vim: ft=make noexpandtab ts=4 sw=4 | ||
JS_BLIB = @js_blib@ | ||
JS_BUILD_DIR = @js_build_dir@ | ||
JS_NQP = @js_nqp@ | ||
JS_RUNNER = @perl6_js_runner@ | ||
JS_RUNTIME = @nqp::libdir@@nfp(/nqp-js-on-js/node_modules/nqp-runtime)@ | ||
JS_FLAGS = --nqp-runtime $(JS_RUNTIME) --perl6-runtime @perl6_runtime@ --libpath "@perl6_lowlevel_libs@|||@nqp::libdir@@nfp(/nqp-js-on-js/)@" | ||
@nfp($(JS_BUILD_DIR)/ModuleLoader.nqp)@: @nfp(src/vm/js/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp)@ | ||
$(MKPATH) $(JS_BUILD_DIR) | ||
$(JS_NQP) @script(gen-cat.nqp)@ js @nfp(src/vm/js/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp)@ > @nfp($(JS_BUILD_DIR)/ModuleLoader.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-ModuleLoader.js)@: @nfp($(JS_BUILD_DIR)/ModuleLoader.nqp)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-ModuleLoader.js)@ @nfp($(JS_BUILD_DIR)/ModuleLoader.nqp)@ | ||
|
||
@nfp($(JS_BUILD_DIR)/Perl6-Ops.nqp)@: @nfp(src/vm/js/Perl6/Ops.nqp src/Perl6/Ops.nqp)@ | ||
$(MKPATH) $(JS_BUILD_DIR) | ||
$(JS_NQP) @script(gen-cat.nqp)@ js @nfp(src/vm/js/Perl6/Ops.nqp src/Perl6/Ops.nqp)@ > @nfp($(JS_BUILD_DIR)/Perl6-Ops.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-Ops.js)@: @nfp($(JS_BUILD_DIR)/Perl6-Ops.nqp)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-Ops.js)@ @nfp($(JS_BUILD_DIR)/Perl6-Ops.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-Pod.js)@: @nfp(src/Perl6/Pod.nqp)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-Pod.js)@ @nfp(src/Perl6/Pod.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-World.js)@: @nfp(src/Perl6/World.nqp $(JS_BLIB)/Perl6-Ops.js $(JS_BLIB)/Perl6-Pod.js $(JS_BLIB)/Perl6-ModuleLoader.js)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-World.js)@ @nfp(src/Perl6/World.nqp)@ | ||
|
||
@nfp($(JS_BUILD_DIR)/Perl6-Actions.nqp)@: @nfp(src/Perl6/Actions.nqp)@ | ||
$(MKPATH) $(JS_BUILD_DIR) | ||
$(JS_NQP) @script(gen-cat.nqp)@ js @nfp(src/Perl6/Actions.nqp)@ > @nfp($(JS_BUILD_DIR)/Perl6-Actions.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-Actions.js)@: @nfp($(JS_BUILD_DIR)/Perl6-Actions.nqp $(JS_BLIB)/Perl6-Ops.js $(JS_BLIB)/Perl6-World.js)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-Actions.js)@ @nfp($(JS_BUILD_DIR)/Perl6-Actions.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-Grammar.js)@: @nfp(src/Perl6/Grammar.nqp $(JS_BLIB)/Perl6-World.js $(JS_BLIB)/Perl6-Actions.js $(JS_BLIB)/Perl6-Pod.js)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-Grammar.js)@ @nfp(src/Perl6/Grammar.nqp)@ | ||
|
||
@nfp($(JS_BUILD_DIR)/Perl6-Optimizer.nqp)@: @nfp(src/Perl6/Optimizer.nqp)@ | ||
$(MKPATH) $(JS_BUILD_DIR) | ||
$(JS_NQP) @script(gen-cat.nqp)@ js @nfp(src/Perl6/Optimizer.nqp)@ > @nfp($(JS_BUILD_DIR)/Perl6-Optimizer.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-Optimizer.js)@: @nfp($(JS_BUILD_DIR)/Perl6-Optimizer.nqp $(JS_BLIB)/Perl6-Ops.js)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-Optimizer.js)@ @nfp($(JS_BUILD_DIR)/Perl6-Optimizer.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-Compiler.js)@: @nfp(src/Perl6/Compiler.nqp $(JS_BLIB)/Perl6-Optimizer.js)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-Compiler.js)@ @nfp(src/Perl6/Compiler.nqp)@ | ||
|
||
@nfp($(JS_BUILD_DIR)/main-version.nqp)@: | ||
$(CONFIGURE) --expand main-version --out @nfp($(JS_BUILD_DIR)/main-version.nqp)@ | ||
|
||
@nfp($(JS_BUILD_DIR)/main.nqp)@: @nfp(src/main.nqp $(JS_BUILD_DIR)/main-version.nqp)@ | ||
$(MKPATH) $(JS_BUILD_DIR) | ||
$(JS_NQP) @script(gen-cat.nqp)@ js @nfp(src/main.nqp $(JS_BUILD_DIR)/main-version.nqp)@ > @nfp($(JS_BUILD_DIR)/main.nqp)@ | ||
|
||
rakudo.js: @nfp($(JS_BUILD_DIR)/main.nqp $(JS_BLIB)/Perl6-Grammar.js $(JS_BLIB)/Perl6-Actions.js $(JS_BLIB)/Perl6-Compiler.js $(JS_BLIB)/Perl6-Pod.js)@ | ||
$(JS_NQP) $(JS_FLAGS) --execname $(JS_RUNNER) --substagestats --stagestats --target=js --source-map --shebang --output=rakudo.js @nfp($(JS_BUILD_DIR)/main.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/load-compiler.js)@: @nfp(src/vm/js/load-compiler.nqp $(JS_BLIB)/Perl6-Grammar.js $(JS_BLIB)/Perl6-Actions.js $(JS_BLIB)/Perl6-Compiler.js $(JS_BLIB)/Perl6-Pod.js)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/load-compiler.js)@ @nfp(src/vm/js/load-compiler.nqp)@ | ||
|
||
$(JS_RUNNER): | ||
$(PERL5) @script(create-js-runner.pl)@ | ||
|
||
@nfp($(JS_BUILD_DIR)/Metamodel.nqp)@: $(COMMON_BOOTSTRAP_SOURCES) | ||
$(JS_NQP) @script(gen-cat.nqp)@ js -f @template(common_bootstrap_sources)@ > @nfp($(JS_BUILD_DIR)/Metamodel.nqp)@ | ||
|
||
@nfp($(JS_BUILD_DIR)/Perl6-BOOTSTRAP.nqp)@: $(BOOTSTRAP_SOURCES) | ||
$(MKPATH) $(JS_BUILD_DIR) | ||
$(JS_NQP) @script(gen-cat.nqp)@ js $(BOOTSTRAP_SOURCES) > @nfp($(JS_BUILD_DIR)/Perl6-BOOTSTRAP.nqp)@ | ||
|
||
@nfp($(JS_BUILD_DIR)/CORE.setting)@: $(JS_CORE_SOURCES) | ||
@echo "The following step can take a very long time, please be patient." | ||
$(CONFIGURE) --expand @shquot(@template(core_sources)@)@ \ | ||
--out @nfpq($(JS_BUILD_DIR)/core_sources)@ \ | ||
--set-var=backend=@backend@ | ||
$(JS_NQP) @script(gen-cat.nqp)@ js -f @nfpq($(JS_BUILD_DIR)/core_sources)@ > @nfp($(JS_BUILD_DIR)/CORE.setting)@ | ||
|
||
@for_specs( | ||
@nfp($(JS_BUILD_DIR)/CORE.@lcspec@.setting)@: $(JS_CORE_@ucspec@_SOURCES) | ||
@echo "The following step can take a very long time, please be patient." | ||
$(JS_NQP) @script(gen-cat.nqp)@ js $(JS_CORE_@ucspec@_SOURCES) > @nfp($(JS_BUILD_DIR)/CORE.@lcspec@.setting)@ | ||
|
||
|
||
)@ | ||
@nfp($(JS_BLIB)/Perl6-Metamodel.js)@: @nfp($(JS_BUILD_DIR)/Metamodel.nqp $(JS_BLIB)/Perl6-Ops.js)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-Metamodel.js)@ @nfp($(JS_BUILD_DIR)/Metamodel.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/Perl6-BOOTSTRAP.js)@: @nfp($(JS_BUILD_DIR)/Perl6-BOOTSTRAP.nqp $(JS_BLIB)/Perl6-Metamodel.js)@ | ||
$(MKPATH) $(JS_BLIB) | ||
$(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=@nfp($(JS_BLIB)/Perl6-BOOTSTRAP.js)@ @nfp($(JS_BUILD_DIR)/Perl6-BOOTSTRAP.nqp)@ | ||
|
||
@nfp($(JS_BLIB)/CORE.setting.js)@: @nfp($(JS_BUILD_DIR)/CORE.setting rakudo.js $(JS_BLIB)/Perl6-BOOTSTRAP.js)@ | ||
node --max-old-space-size=8192 rakudo.js $(JS_FLAGS) --source-map --target=js --setting=NULL --output=@nfp(node_modules/CORE.setting.js)@ @nfp($(JS_BUILD_DIR)/CORE.setting)@ | ||
|
||
@for_specs( | ||
@nfp($(JS_BLIB)/CORE.@lcspec@.setting.js)@: @nfp($(JS_BUILD_DIR)/CORE.@lcspec@.setting rakudo.js $(JS_BLIB)/Perl6-BOOTSTRAP.js $(JS_BLIB)/CORE.setting.js)@ | ||
node --max-old-space-size=8192 rakudo.js $(JS_FLAGS) --source-map --target=js --setting=NULL.@lcspec@ --output=@nfp($(JS_BLIB)/CORE.@lcspec@.setting.js)@ @nfp($(JS_BUILD_DIR)/CORE.@lcspec@.setting)@ | ||
|
||
|
||
)@ | ||
js-all: check_nqp_version @nfp($(JS_BUILD_DIR)/ModuleLoader.nqp $(JS_BLIB)/Perl6-Grammar.js $(JS_BLIB)/Perl6-Actions.js $(JS_BLIB)/Perl6-Compiler.js $(JS_BLIB)/Perl6-Pod.js rakudo.js $(JS_BLIB)/Perl6-BOOTSTRAP.js $(JS_BLIB)/CORE.setting.js @for_specs($(JS_BLIB)/CORE.@lcspec@.setting.js )@$(JS_RUNNER) $(JS_BLIB)/load-compiler.js | ||
)@ | ||
js-clean: | ||
$(RM_F) @nfp($(JS_BUILD_DIR)/ModuleLoader.nqp rakudo.js $(JS_BLIB)/CORE.setting.js $(JS_BUILD_DIR)/CORE.setting $(JS_BUILD_DIR)/ModuleLoader.nqp $(JS_BLIB)/Perl6-ModuleLoader.js $(JS_BUILD_DIR)/Perl6-Ops.nqp $(JS_BLIB)/Perl6-Ops.js $(JS_BLIB)/Perl6-Pod.js $(JS_BLIB)/Perl6-World.js $(JS_BUILD_DIR)/Perl6-Actions.nqp $(JS_BLIB)/Perl6-Actions.js $(JS_BLIB)/Perl6-Grammar.js $(JS_BUILD_DIR)/Perl6-Optimizer.nqp $(JS_BLIB)/Perl6-Optimizer.js $(JS_BLIB)/Perl6-Compiler.js $(JS_BUILD_DIR)/main-version.nqp $(JS_BUILD_DIR)/main.nqp rakudo.js $(JS_BLIB)/load-compiler.js $(JS_BUILD_DIR)/Metamodel.nqp $(JS_BUILD_DIR)/Perl6-BOOTSTRAP.nqp $(JS_BLIB)/Perl6-Metamodel.js $(JS_BLIB)/Perl6-BOOTSTRAP.js)@ | ||
js-lint: | ||
gjslint --strict --max_line_length=200 --nojsdoc @nfp(src/vm/js/perl6-runtime/*.js)@ | ||
js-testable: js-all spectest_checkout spectest_update | ||
|
||
js-spectest: js-testable | ||
$(PERL5) t/harness5 --fudge --js --keep-exit-code --tests-from-file=@nfp(t/spectest.js.data)@ | ||
|
||
check_nqp_version: @script(check-nqp-version.pl)@ | ||
$(PERL5) @script(check-nqp-version.pl)@ $(JS_NQP) | ||
|
||
js-install: js-all | ||
@echo "Installing the js backend is not yet implemented." | ||
|
||
js-runner-default: |