25ba85759b7e0bbfab6354f8f4eb72adbd67950b
[pintos-anon] / grading / userprog / Makefile
1 SRCDIR = ../../src
2
3 SINGLETONS = \
4         $(addprefix create-, normal empty null bad-ptr long exists bound) \
5         $(addprefix args-, argc argv0 argvn single multiple dbl-space)
6
7 define SINGLETON_PROG
8 PROGS += $(1)
9 $(1)_SRC = $(1).c
10 endef
11
12 $(foreach prog,$(SINGLETONS),$(eval $(call SINGLETON_PROG,$(prog))))
13 DISKS = $(patsubst %,%.dsk,$(PROGS))
14
15 disks: $(DISKS)
16
17 PINTOS = ../../src/utils/pintos
18 OS_DISK = ../../src/userprog/build/os.dsk
19 %.dsk: %
20         rm -f $@.tmp
21         $(PINTOS) make-disk $@.tmp 2
22         $(PINTOS) -v --os-disk=$(OS_DISK) --fs-disk=$@.tmp run -f -q
23         $(PINTOS) -v --os-disk=$(OS_DISK) --fs-disk=$@.tmp put $<
24         mv $@.tmp $@
25
26 clean::
27         rm -f $(DISKS)
28
29 include $(SRCDIR)/Makefile.userprog
30
31 CFLAGS += -Werror