aboutsummaryrefslogtreecommitdiff
path: root/haskell/Makefile
blob: 0ac1a75cc49de6a1821703c7be14214de36dc9df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SOURCES_BASE = Readline.hs Types.hs Reader.hs Printer.hs
SOURCES_LISP = Env.hs Core.hs step9_try.hs
SOURCES = $(SOURCES_BASE) $(SOURCES_LISP)

#####################

SRCS = step0_repl.hs step1_read_print.hs step2_eval.hs step3_env.hs \
       step4_if_fn_do.hs step5_tco.hs step6_file.hs step7_quote.hs \
       step8_macros.hs step9_try.hs stepA_mal.hs
OTHER_SRCS = Readline.hs Types.hs Reader.hs Printer.hs Env.hs Core.hs
BINS = $(SRCS:%.hs=%)

#####################

all: $(BINS) mal

mal: $(word $(words $(BINS)),$(BINS))
	cp $< $@

$(BINS): %: %.hs $(OTHER_SRCS)
	ghc --make $< -o $@

clean:
	rm -f $(BINS) mal *.hi *.o

.PHONY: stats stats-lisp tests $(TESTS)

stats: $(SOURCES)
	@wc $^
stats-lisp: $(SOURCES_LISP)
	@wc $^