DISABLE FDs (REMOVE ME).
[jackhill/mal.git] / wasm / Makefile
CommitLineData
dad306ed 1MODE ?= $(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
8EXT = $(if $(filter lucet,$(wasm_MODE)),.so,.wasm)
50eea9ad 9
df43e719
JM
10WASM_AS ?= wasm-as
11WAMP ?= node_modules/.bin/wamp
1e9eb423 12LUCETC ?= lucetc-wasi
df43e719
JM
13
14STEP0_DEPS = $(WAMP) platform_$(MODE).wam string.wam printf.wam
33309c6a 15STEP1_DEPS = $(STEP0_DEPS) types.wam mem.wam debug.wam reader.wam printer.wam
3ea09886
JM
16STEP3_DEPS = $(STEP1_DEPS) env.wam
17STEP4_DEPS = $(STEP3_DEPS) core.wam
b16fe73e
JM
18
19STEPS = 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 23all: $(foreach s,$(STEPS),$(s)$(EXT))
b16fe73e 24
df43e719
JM
25node_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
38step0_repl.wat: $(STEP0_DEPS)
39step1_read_print.wat step2_eval.wat: $(STEP1_DEPS)
40step3_env.wat: $(STEP3_DEPS)
41step4_if_fn_do.wat step5_tco.wat step6_file.wat: $(STEP4_DEPS)
42step7_quote.wat step8_macros.wat step9_try.wat stepA_mal.wat: $(STEP4_DEPS)
b16fe73e
JM
43
44.PHONY: clean
45
46clean:
1e9eb423 47 rm -f *.wat *.wasm *.so