1 TESTS = threads p1-1 p1-2 p1-3 list stdlib userprog p2 vm filesys
3 PATH := $(shell pwd)/../src/utils:$(PATH)
6 @echo "This Makefile has only \`check' targets."
9 $(MAKE) -C .. distclean
10 for d in $(TESTS); do $(MAKE) $$d || exit 1; done
11 @echo All tests passed.
16 define prep-threads-grading
19 define prep-userprog-grading
20 $(MAKE) -C ../src/userprog -s
21 $(MAKE) -C ../grading/userprog -s
24 define prep-vm-grading
25 $(MAKE) -C ../src/userprog -s
26 $(MAKE) -C ../grading/vm -s
29 define prep-filesys-grading
30 $(MAKE) -C ../grading/filesys -s
34 $(prep-$(PROJECT)-grading)
38 rm -rf $@ && mkdir -p $@/pintos && cp -R ../src $@/pintos
42 cd $@ && ../../grading/$(PROJECT)/run-tests
50 (cd $@/pintos && patch -p0 -s) <
53 threads: PROJECT = threads
56 $(run-tests) -d alarm-single
59 p1-1: PROJECT = threads
62 $(apply-patch) ../solutions/p1-1.patch
63 $(run-tests) -d alarm.*
66 p1-2: PROJECT = threads
69 $(apply-patch) ../solutions/p1-2.patch
70 $(run-tests) -d join.*
73 p1-3: PROJECT = threads
76 $(apply-patch) ../solutions/p1-3.patch
77 $(run-tests) -d priority.*
80 list: PROJECT = threads
83 cp ../src/tests/threads/$@.c $@/pintos/src/threads/test.c
84 $(MAKE) -C $@/pintos/src/threads -s
85 -(cd $@/pintos/src/threads/build && pintos -v run -q) | tee $@/output
86 grep -q '$@: PASS' $@/output
89 userprog: PROJECT = userprog
93 $(apply-patch) ../solutions/p1-2.patch
97 p2: PROJECT = userprog
101 $(apply-patch) ../solutions/p2.patch
109 $(MAKE) -C $@/pintos/src/vm -s
112 filesys: PROJECT = filesys
116 $(MAKE) -C $@/pintos/src/filesys -s