update misc
[jackhill/mal.git] / rust / Makefile
CommitLineData
8f5b0f10
JM
1#####################
2
3SOURCES_BASE = src/types.rs src/readline.rs \
85bec8a0
JM
4 src/reader.rs src/printer.rs \
5 src/env.rs src/core.rs
bbeb1b87 6SOURCES_LISP = src/env.rs src/core.rs src/bin/stepA_mal.rs
8f5b0f10
JM
7SOURCES = $(SOURCES_BASE) $(SOURCES_LISP)
8
9#####################
10
577e643b 11SRCS = step0_repl.rs step1_read_print.rs step2_eval.rs step3_env.rs \
3744d566 12 step4_if_fn_do.rs step5_tco.rs step6_file.rs step7_quote.rs \
90f618cb 13 step8_macros.rs step9_try.rs stepA_mal.rs
434516e0 14BINS = $(SRCS:%.rs=target/release/%)
8f5b0f10
JM
15
16#####################
17
06bc1e41 18all: $(BINS)
8f5b0f10 19
5245b079
JM
20dist: mal
21
22mal: target/release/stepA_mal
23 cp $< $@
8f5b0f10 24
8d78bc26
JM
25# TODO: would be nice to build just the step requested
26$(BINS): target/release/%: src/bin/%.rs $(wildcard src/*.rs)
27 cargo build --release
2ab1e584 28
8f5b0f10
JM
29clean:
30 cargo clean
31 rm -f mal
32
bbeb1b87 33.PHONY: stats stats-lisp mal
8f5b0f10
JM
34
35stats: $(SOURCES)
36 @wc $^
f15b4021 37 @printf "%5s %5s %5s %s\n" `grep -E "^[[:space:]]*//|^[[:space:]]*$$" $^ | wc` "[comments/blanks]"
8f5b0f10
JM
38stats-lisp: $(SOURCES_LISP)
39 @wc $^
f15b4021 40 @printf "%5s %5s %5s %s\n" `grep -E "^[[:space:]]*//|^[[:space:]]*$$" $^ | wc` "[comments/blanks]"