mirror of
https://github.com/LearningOS/rust-based-os-comp2022.git
synced 2026-02-08 04:43:27 +08:00
49 lines
1.3 KiB
Makefile
49 lines
1.3 KiB
Makefile
RAND := $(shell awk 'BEGIN{srand();printf("%d", 65536*rand())}')
|
|
CHAPTER ?=
|
|
|
|
ifeq ($(CHAPTER), 3)
|
|
LAB := 1
|
|
else ifeq ($(CHAPTER), 4)
|
|
LAB := 2
|
|
else ifeq ($(CHAPTER), 5)
|
|
INITPROC := 1
|
|
LAB := 3
|
|
else ifeq ($(CHAPTER), 6)
|
|
INITPROC := 1
|
|
LAB := 4
|
|
else ifeq ($(CHAPTER), 7)
|
|
INITPROC := 1
|
|
LAB := 4
|
|
else ifeq ($(CHAPTER), 8)
|
|
INITPROC := 1
|
|
LAB := 5
|
|
endif
|
|
|
|
randomize:
|
|
find user/src/bin -name "*.rs" | xargs perl -pi -e s,OK,OK$(RAND),g
|
|
find user/src/bin -name "*.rs" | xargs perl -pi -e s,passed,passed$(RAND),g
|
|
find check -name "*.py" | xargs perl -pi -e s,OK,OK$(RAND),g
|
|
find check -name "*.py" | xargs perl -pi -e s,passed,passed$(RAND),g
|
|
|
|
test: randomize
|
|
python3 overwrite.py $(CHAPTER)
|
|
make -C user build BASE=2 TEST=$(CHAPTER) CHAPTER=$(CHAPTER)
|
|
ifdef INITPROC
|
|
cp -f user/build/elf/ch$(CHAPTER)_usertest.elf user/build/elf/ch$(CHAPTER)b_initproc.elf
|
|
endif
|
|
make -C ../os run | tee stdout-ch$(CHAPTER)
|
|
python3 check/ch$(CHAPTER).py < stdout-ch$(CHAPTER)
|
|
|
|
ifdef LAB
|
|
@for i in $(shell seq $(LAB)); do \
|
|
if ! [ -f ../reports/lab$$i.pdf -o -f ../reports/lab$$i.md ]; then \
|
|
echo "Report for lab$$i needed. Add your report to reports/lab$$i.pdf or reports/lab$$i.md" ; \
|
|
exit 1 ; \
|
|
else \
|
|
echo "Report for lab$$i found." ; \
|
|
fi; \
|
|
done
|
|
endif
|
|
|
|
.PHONY: test randomize
|