/
Makefile
67 lines (49 loc) · 1.27 KB
/
Makefile
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
namodules := \
array.na \
bytes.na \
file-io.na \
fin.na \
int.na \
module.na \
nil.na \
pair.na \
pbox.na \
prelude.na \
re.na \
str.na \
symbol.na \
tuple.na \
cmodules := vm.c mem.c gen.c prim.c
sources := $(cmodules) index.c $(namodules:.na=.na.c)
NAC := ./lx1c
export CFLAGS := -g -pg -Wall -Werror
#export CFLAGS := -O2 -Wall -Werror
export LDFLAGS := -pg -lpcre
all: vm
deps := $(shell bin/create-if-missing $(sources:.c=.d))
ifneq ($(MAKECMDGOALS),clean)
include $(deps)
endif
vm: $(sources:.c=.o)
index.c: $(namodules) bin/gen-mod-index
bin/gen-mod-index --output=$@ $(namodules:.na=)
%.na: ;
%.na.c: %.na *.py lx1c
$(NAC) $(NAFLAGS) --generate-c $<
%.na.h: %.na *.py lx1c
$(NAC) $(NAFLAGS) --generate-h $<
# This one is special.
prelude.na.c: export NAFLAGS += --bare
check: vm
bin/check sh-tests/*.na
clean:
rm -f vm *.o core core.* gmon.out sh-tests/*.out *.d *.pyc
rm -f *.lxc ad-hoc-tests/*.lxc lib/*.lxc tests/*.lxc
rm -f *.nac ad-hoc-tests/*.nac lib/*.nac tests/*.nac
rm -f *.na.h *.na.c index.c
# .DELETE_ON_ERROR:
.PHONY: all clean distclean reallyclean check
.SECONDARY: $(namodules:.na=.na.c)
# This tells make how to generate dependency files
%.d: %.c
@$(CC) -MM -MG -MT '$(<:.c=.o) $@' -MF $@ $<