Implement step A
[jackhill/mal.git] / groovy / Makefile
1 CLASSES = types.class reader.class printer.class env.class core.class
2
3 SOURCES_BASE = types.groovy reader.groovy printer.groovy
4 SOURCES_LISP = env.groovy core.groovy stepA_mal.groovy
5 SOURCES = $(SOURCES_BASE) $(SOURCES_LISP)
6
7 all: ${CLASSES}
8
9 dist: mal.jar
10
11 step1_read_print.groovy: types.class reader.class printer.class
12 step2_eval.groovy: types.class reader.class printer.class
13 step3_env.groovy: types.class reader.class printer.class env.class
14 step4_if_fn_do.groovy step6_file.groovy step7_quote.groovy step8_macros.groovy step9_try.groovy stepA_mal.groovy: ${CLASSES}
15
16 types.class: types.groovy
17 groovyc $<
18
19 env.class: env.groovy
20 groovyc $<
21
22 reader.class: reader.groovy
23 groovyc $<
24
25 printer.class: printer.groovy
26 groovyc $<
27
28 core.class: core.groovy types.class reader.class printer.class
29 groovyc $<
30
31 mal.jar: ${CLASSES}
32 groovyc stepA_mal.groovy
33 GROOVY_HOME=/usr/share/groovy groovy GroovyWrapper -d $@ -m stepA_mal
34
35 SHELL := bash
36 mal: mal.jar
37 cat <(echo -e '#!/bin/sh\nexec java -jar "$$0" "$$@"') mal.jar > $@
38 chmod +x mal
39
40 clean:
41 rm -f *.class classes/* mal.jar mal
42 rmdir classes || true
43
44 .PHONY: stats tests
45
46 stats: $(SOURCES)
47 @wc $^
48 @printf "%5s %5s %5s %s\n" `grep -E "^[[:space:]]*//|^[[:space:]]*$$" $^ | wc` "[comments/blanks]"
49 stats-lisp: $(SOURCES_LISP)
50 @wc $^
51 @printf "%5s %5s %5s %s\n" `grep -E "^[[:space:]]*//|^[[:space:]]*$$" $^ | wc` "[comments/blanks]"