Commit | Line | Data |
---|---|---|
ee7cd585 JM |
1 | ##################### |
2 | ||
3 | DEBUG = | |
4 | ||
ee7cd585 | 5 | SOURCES_BASE = readline.vb types.vb reader.vb printer.vb |
90f618cb | 6 | SOURCES_LISP = env.vb core.vb stepA_mal.vb |
ee7cd585 JM |
7 | SOURCES = $(SOURCES_BASE) $(SOURCES_LISP) |
8 | ||
9 | ##################### | |
10 | ||
11 | SRCS = step0_repl.vb step1_read_print.vb step2_eval.vb \ | |
12 | step3_env.vb step4_if_fn_do.vb step5_tco.vb step6_file.vb \ | |
90f618cb | 13 | step7_quote.vb step8_macros.vb step9_try.vb stepA_mal.vb |
ee7cd585 JM |
14 | |
15 | LIB_CS_SRCS = getline.cs | |
16 | LIB_VB_SRCS = $(filter-out step%,$(filter %.vb,$(SOURCES))) | |
17 | ||
18 | FLAGS = $(if $(strip $(DEBUG)),-debug:full,) | |
19 | ||
20 | ##################### | |
21 | ||
5245b079 JM |
22 | all: $(patsubst %.vb,%.exe,$(SRCS)) |
23 | ||
24 | dist: mal.exe | |
ee7cd585 JM |
25 | |
26 | mal.exe: $(patsubst %.vb,%.exe,$(word $(words $(SOURCES)),$(SOURCES))) | |
27 | cp $< $@ | |
28 | ||
29 | mal_cs.dll: $(LIB_CS_SRCS) | |
30 | mcs $(FLAGS) -target:library $+ -out:$@ | |
31 | ||
32 | mal_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 | ||
38 | clean: | |
39 | rm -f *.dll *.exe *.mdb |