Updated from master, solved conflicts
[jackhill/mal.git] / vb / Makefile
CommitLineData
ee7cd585
JM
1#####################
2
3DEBUG =
4
5TESTS =
6
7SOURCES_BASE = readline.vb types.vb reader.vb printer.vb
90f618cb 8SOURCES_LISP = env.vb core.vb stepA_mal.vb
ee7cd585
JM
9SOURCES = $(SOURCES_BASE) $(SOURCES_LISP)
10
11#####################
12
13SRCS = step0_repl.vb step1_read_print.vb step2_eval.vb \
14 step3_env.vb step4_if_fn_do.vb step5_tco.vb step6_file.vb \
90f618cb 15 step7_quote.vb step8_macros.vb step9_try.vb stepA_mal.vb
ee7cd585
JM
16
17LIB_CS_SRCS = getline.cs
18LIB_VB_SRCS = $(filter-out step%,$(filter %.vb,$(SOURCES)))
19
20FLAGS = $(if $(strip $(DEBUG)),-debug:full,)
21
22#####################
23
24all: mal.exe $(patsubst %.vb,%.exe,$(SRCS))
25
26mal.exe: $(patsubst %.vb,%.exe,$(word $(words $(SOURCES)),$(SOURCES)))
27 cp $< $@
28
29mal_cs.dll: $(LIB_CS_SRCS)
30 mcs $(FLAGS) -target:library $+ -out:$@
31
32mal_vb.dll: mal_cs.dll $(LIB_VB_SRCS)
33 vbnc $(FLAGS) -target:library -r:mal_cs.dll $(LIB_VB_SRCS) -out:$@
34
35%.exe: %.vb mal_vb.dll
36 vbnc $(FLAGS) -r:mal_vb.dll -r:mal_cs.dll $<
37
38clean:
39 rm -f *.dll *.exe *.mdb
40
41.PHONY: stats tests $(TESTS)
42
43stats: $(SOURCES)
44 @wc $^
f15b4021 45 @printf "%5s %5s %5s %s\n" `grep -E "^[[:space:]]*'|^[[:space:]]*$$" $^ | wc` "[comments/blanks]"
ee7cd585
JM
46stats-lisp: $(SOURCES_LISP)
47 @wc $^
f15b4021 48 @printf "%5s %5s %5s %s\n" `grep -E "^[[:space:]]*'|^[[:space:]]*$$" $^ | wc` "[comments/blanks]"
ee7cd585
JM
49
50tests: $(TESTS)
51
52$(TESTS):
53 @echo "Running $@"; \
54 ./$@ || exit 1; \