More VM tests.
[pintos-anon] / grading / vm / Makefile.posix
1 SRCDIR = ../../src
2
3 include $(SRCDIR)/Make.config
4 include Make.progs
5
6 VPATH = $(SRCDIR)
7
8 DEFINES =
9 CPPFLAGS = -I.
10 CFLAGS = -Wall -W -Wstrict-prototypes -Wmissing-prototypes
11
12 PROGS_SRC = $(foreach prog,$(PROGS),$($(subst -,_,$(prog))_SRC))
13 PROGS_OBJ = $(patsubst %.c,%.o,$(patsubst %.S,%.o,$(PROGS_SRC)))
14 PROGS_DEP = $(patsubst %.o,%.d,$(PROGS_OBJ))
15
16 all: $(PROGS)
17
18 define TEMPLATE
19 $(2)_OBJ = $(patsubst %.c,%.o,$(patsubst %.S,%.o,$($(2)_SRC)))
20 $(1): $$($(2)_OBJ) posix-compat.o
21         $$(CC) $$(LDFLAGS) $$^ $$(LDLIBS) -o $$@
22 endef
23
24 $(foreach prog,$(PROGS),$(eval $(call TEMPLATE,$(prog),$(subst -,_,$(prog)))))
25
26 $(PROGS): $(LIB)
27
28 libc.a: $(LIB_OBJ)
29         rm -f $@
30         ar r $@ $^
31         ranlib $@
32
33 clean::
34         rm -f $(PROGS) $(PROGS_OBJ) $(PROGS_DEP)
35         rm -f $(LIB_DEP) $(LIB_OBJ) lib/user/entry.[do] libc.a 
36
37 .PHONY: all clean
38
39 -include $(LIB_DEP) $(PROGS_DEP)
40