Commit | Line | Data |
---|---|---|
dad306ed | 1 | MODE ?= $(strip \ |
1e9eb423 JM |
2 | $(if $(filter wace_libc,$(wasm_MODE)),\ |
3 | libc,\ | |
d88adace | 4 | $(if $(filter direct node js wace_fooboot warpy,$(wasm_MODE)),\ |
dad306ed | 5 | direct,\ |
1e9eb423 JM |
6 | wasi))) |
7 | ||
8 | EXT = $(if $(filter lucet,$(wasm_MODE)),.so,.wasm) | |
50eea9ad | 9 | |
df43e719 JM |
10 | WASM_AS ?= wasm-as |
11 | WAMP ?= node_modules/.bin/wamp | |
1e9eb423 | 12 | LUCETC ?= lucetc-wasi |
df43e719 JM |
13 | |
14 | STEP0_DEPS = $(WAMP) platform_$(MODE).wam string.wam printf.wam | |
33309c6a | 15 | STEP1_DEPS = $(STEP0_DEPS) types.wam mem.wam debug.wam reader.wam printer.wam |
3ea09886 JM |
16 | STEP3_DEPS = $(STEP1_DEPS) env.wam |
17 | STEP4_DEPS = $(STEP3_DEPS) core.wam | |
b16fe73e JM |
18 | |
19 | STEPS = step0_repl step1_read_print step2_eval step3_env \ | |
20 | step4_if_fn_do step5_tco step6_file step7_quote \ | |
21 | step8_macros step9_try stepA_mal | |
22 | ||
1e9eb423 | 23 | all: $(foreach s,$(STEPS),$(s)$(EXT)) |
b16fe73e | 24 | |
df43e719 JM |
25 | node_modules/.bin/wamp: |
26 | npm install | |
27 | ||
1e9eb423 | 28 | %.wat: %.wam |
0a19c2f1 | 29 | $(WAMP) $(filter %.wam,$^) > $*.wat |
b16fe73e | 30 | |
1e9eb423 JM |
31 | %.wasm: %.wat |
32 | $(WASM_AS) $< -o $@ | |
33 | ||
34 | # lucet object binaries | |
35 | %.so: %.wasm | |
36 | $(LUCETC) $< -o $@ | |
37 | ||
38 | step0_repl.wat: $(STEP0_DEPS) | |
39 | step1_read_print.wat step2_eval.wat: $(STEP1_DEPS) | |
40 | step3_env.wat: $(STEP3_DEPS) | |
41 | step4_if_fn_do.wat step5_tco.wat step6_file.wat: $(STEP4_DEPS) | |
42 | step7_quote.wat step8_macros.wat step9_try.wat stepA_mal.wat: $(STEP4_DEPS) | |
b16fe73e JM |
43 | |
44 | .PHONY: clean | |
45 | ||
46 | clean: | |
1e9eb423 | 47 | rm -f *.wat *.wasm *.so |