Commit | Line | Data |
---|---|---|
1c358979 PS |
1 | ##################### |
2 | ||
6dcc04db | 3 | DEBUG = |
1c358979 PS |
4 | |
5 | TESTS = | |
6 | ||
224d2396 | 7 | SOURCES_BASE = types.fs error.fs node.fs printer.fs tokenizer.fs reader.fs \ |
4f3f9cd5 | 8 | core.fs env.fs readline.fs |
1c358979 | 9 | SOURCES_LISP = |
ed3a12f5 PS |
10 | SOURCES = $(SOURCES_BASE) $(SOURCES_LISP) |
11 | ||
12 | TERMINAL_SOURCES = terminal.cs | |
1c358979 PS |
13 | |
14 | ##################### | |
15 | ||
a836d8f3 | 16 | SRCS = step0_repl.fs step1_read_print.fs step2_eval.fs step3_env.fs \ |
f0e1608b | 17 | step4_if_fn_do.fs step5_tco.fs step6_file.fs step7_quote.fs \ |
9a58a022 | 18 | step8_macros.fs step9_try.fs stepA_mal.fs |
1c358979 | 19 | |
8862f80e | 20 | FSFLAGS = $(if $(strip $(DEBUG)),--debug+,--debug- --optimize+ --tailcalls+) |
6dcc04db | 21 | CSFLAGS = $(if $(strip $(DEBUG)),-debug+,) |
1c358979 PS |
22 | ##################### |
23 | ||
24 | all: $(patsubst %.fs,%.exe,$(SRCS)) | |
25 | ||
ed3a12f5 | 26 | Mono.Terminal.dll: $(TERMINAL_SOURCES) |
6dcc04db | 27 | mcs $(CSFLAGS) -target:library $+ -out:$@ |
ed3a12f5 PS |
28 | |
29 | mal.dll: $(SOURCES) Mono.Terminal.dll | |
6dcc04db | 30 | fsharpc $(FSFLAGS) -o $@ -r Mono.Terminal.dll -a $(SOURCES) |
ed3a12f5 PS |
31 | |
32 | %.exe: %.fs mal.dll | |
6dcc04db | 33 | fsharpc $(FSFLAGS) -o $@ -r mal.dll $< |
1c358979 PS |
34 | |
35 | clean: | |
36 | rm -f *.dll *.exe *.mdb | |
37 | ||
38 | .PHONY: stats tests $(TESTS) | |
39 | ||
40 | stats: $(SOURCES) | |
41 | @wc $^ | |
42 | stats-lisp: $(SOURCES_LISP) | |
43 | @wc $^ | |
44 | ||
45 | tests: $(TESTS) | |
46 | ||
47 | $(TESTS): | |
48 | @echo "Running $@"; \ | |
49 | ./$@ || exit 1; \ |