Basic: step8 basics. Fix def!, let*, concat, scalars.
[jackhill/mal.git] / basic / Makefile
1 BASICPP_OPTS = --number-lines --combine-lines
2
3 step%.bas: step%.in.bas
4 ./basicpp.py $(BASICPP_OPTS) $< > $@
5
6 step%.prg: step%.bas
7 cat $< | tr "A-Z" "a-z" > $<.tmp
8 #cat $< | sed 's/["]\@<!\<\w\+\>["]\@!/\L&/g' > $<.tmp
9 petcat -text -w2 -o $@ $<.tmp
10 #rm $<.tmp
11
12 STEP0_DEPS = readline.in.bas
13 STEP1_DEPS = $(STEP0_DEPS) debug.in.bas types.in.bas reader.in.bas printer.in.bas
14 STEP3_DEPS = $(STEP1_DEPS) env.in.bas
15 STEP4_DEPS = $(STEP3_DEPS) core.in.bas
16
17 step0_repl.bas: $(STEP0_DEPS)
18 step1_read_print.bas step2_eval.bas: $(STEP1_DEPS)
19 step3_env.bas: $(STEP3_DEPS)
20 step4_if_fn_do.bas step5_tco.bas step6_file.bas step7_quote.bas: $(STEP4_DEPS)
21 step8_macros.bas: $(STEP4_DEPS)
22
23 tests/%.bas: tests/%.in.bas
24 ./basicpp.py $(BASICPP_OPTS) $< > $@
25
26 tests/%.prg: tests/%.bas
27 cat $< | tr "A-Z" "a-z" > $<.tmp
28 petcat -text -w2 -o $@ $<.tmp
29 rm $<.tmp
30
31 mal.prg: step8_macros.prg
32 cp $< $@
33
34 SOURCES_LISP = env.in.bas core.in.bas step8_macros.in.bas
35 SOURCES = readline.in.bas types.in.bas reader.in.bas printer.in.bas $(SOURCES_LISP)
36
37 .PHONY: stats
38
39 stats: $(SOURCES)
40 @wc $^
41 @printf "%5s %5s %5s %s\n" `grep -E "^[[:space:]]*#|^[[:space:]]*REM |^[[:space:]]*$$" $^ | wc` "[comments/blanks]"
42 stats-lisp: $(SOURCES_LISP)
43 @wc $^
44 @printf "%5s %5s %5s %s\n" `grep -E "^[[:space:]]*#|^[[:space:]]*REM |^[[:space:]]*$$" $^ | wc` "[comments/blanks]"
45