mirror of
https://github.com/LearningOS/rust-based-os-comp2022.git
synced 2026-02-07 20:34:08 +08:00
197 lines
6.1 KiB
Makefile
197 lines
6.1 KiB
Makefile
DOCKER_NAME ?= rust-os-camp-2022
|
|
DIR := workplace
|
|
.PHONY: docker build_docker
|
|
|
|
|
|
test: test3 test4 test5 test6 test7 test8
|
|
|
|
lab1: test3
|
|
|
|
lab2: test4
|
|
|
|
lab3: test5
|
|
|
|
lab4: test6 test7
|
|
|
|
lab5: test8
|
|
|
|
setup:
|
|
rm -rf ${DIR}
|
|
mkdir ${DIR}
|
|
cp -r easy-fs ${DIR}
|
|
cp -r easy-fs-fuse ${DIR}
|
|
cp -r ci-user ${DIR}
|
|
cp -r bootloader ${DIR}
|
|
cp -r reports ${DIR}
|
|
cp rust-toolchain ${DIR}
|
|
# export PATH=${PATH}:${HOME}/qemu-7.0.0:${HOME}/qemu-7.0.0/riscv64-softmmu
|
|
|
|
test1: setup
|
|
cp -r os1 ${DIR}/os
|
|
cd ${DIR}/ci-user && make test CHAPTER=1
|
|
|
|
|
|
test2: setup
|
|
cp -r os2 ${DIR}/os
|
|
cd ${DIR}/ci-user && make test CHAPTER=2
|
|
|
|
test3: setup
|
|
cp -r os3 ${DIR}/os
|
|
cd ${DIR}/ci-user && make test CHAPTER=3
|
|
|
|
test4: setup
|
|
cp -r os4 ${DIR}/os
|
|
cd ${DIR}/ci-user && make test CHAPTER=4
|
|
|
|
test5: setup
|
|
cp -r os5 ${DIR}/os
|
|
cd ${DIR}/ci-user && make test CHAPTER=5
|
|
|
|
test6: setup
|
|
cp -r os6 ${DIR}/os
|
|
cd ${DIR}/ci-user && make test CHAPTER=6
|
|
|
|
test7: setup
|
|
cp -r os7 ${DIR}/os
|
|
cd ${DIR}/ci-user && make test CHAPTER=7
|
|
|
|
test8: setup
|
|
cp -r os8 ${DIR}/os
|
|
cd ${DIR}/ci-user && make test CHAPTER=8
|
|
|
|
clean:
|
|
rm -rf ${DIR}
|
|
|
|
docker:
|
|
docker run --rm -it -v ${PWD}:/mnt -w /mnt ${DOCKER_NAME} bash
|
|
|
|
build_docker:
|
|
docker build -t ${DOCKER_NAME} .
|
|
|
|
setupclassroom_test1:
|
|
mkdir -p .github/classroom/
|
|
mkdir -p .github/workflows/
|
|
touch .github/.keep
|
|
cp scripts/autograding-test1.json .github/classroom/autograding.json
|
|
cp scripts/classroom.yml .github/workflows/classroom.yml
|
|
git add .github/classroom/autograding.json
|
|
git add .github/workflows/classroom.yml
|
|
git add .github/.keep
|
|
git commit -m"update classroom.yml .keep autograding.json for classroom CI test"
|
|
git push
|
|
|
|
setupclassroom_test2:
|
|
mkdir -p .github/classroom/
|
|
mkdir -p .github/workflows/
|
|
touch .github/.keep
|
|
cp scripts/autograding-test2.json .github/classroom/autograding.json
|
|
cp scripts/classroom.yml .github/workflows/classroom.yml
|
|
git add .github/classroom/autograding.json
|
|
git add .github/workflows/classroom.yml
|
|
git add .github/.keep
|
|
git commit -m"update classroom.yml .keep autograding.json for classroom CI test"
|
|
git push
|
|
|
|
setupclassroom_test3:
|
|
mkdir -p .github/classroom/
|
|
mkdir -p .github/workflows/
|
|
touch .github/.keep
|
|
cp scripts/autograding-test3.json .github/classroom/autograding.json
|
|
cp scripts/classroom.yml .github/workflows/classroom.yml
|
|
git add .github/classroom/autograding.json
|
|
git add .github/workflows/classroom.yml
|
|
git add .github/.keep
|
|
git commit -m"update classroom.yml .keep autograding.json for classroom CI test"
|
|
git push
|
|
|
|
setupclassroom_test4:
|
|
mkdir -p .github/classroom/
|
|
mkdir -p .github/workflows/
|
|
touch .github/.keep
|
|
cp scripts/autograding-test4.json .github/classroom/autograding.json
|
|
cp scripts/classroom.yml .github/workflows/classroom.yml
|
|
git add .github/classroom/autograding.json
|
|
git add .github/workflows/classroom.yml
|
|
git add .github/.keep
|
|
git commit -m"update classroom.yml .keep autograding.json for classroom CI test"
|
|
git push
|
|
|
|
setupclassroom_test5:
|
|
mkdir -p .github/classroom/
|
|
mkdir -p .github/workflows/
|
|
touch .github/.keep
|
|
cp scripts/autograding-test5.json .github/classroom/autograding.json
|
|
cp scripts/classroom.yml .github/workflows/classroom.yml
|
|
git add .github/classroom/autograding.json
|
|
git add .github/workflows/classroom.yml
|
|
git add .github/.keep
|
|
git commit -m"update classroom.yml .keep autograding.json for classroom CI test"
|
|
git push
|
|
|
|
setupclassroom_test6:
|
|
mkdir -p .github/classroom/
|
|
mkdir -p .github/workflows/
|
|
touch .github/.keep
|
|
cp scripts/autograding-test6.json .github/classroom/autograding.json
|
|
cp scripts/classroom.yml .github/workflows/classroom.yml
|
|
git add .github/classroom/autograding.json
|
|
git add .github/workflows/classroom.yml
|
|
git add .github/.keep
|
|
git commit -m"update classroom.yml .keep autograding.json for classroom CI test"
|
|
git push
|
|
|
|
setupclassroom_test7:
|
|
mkdir -p .github/classroom/
|
|
mkdir -p .github/workflows/
|
|
touch .github/.keep
|
|
cp scripts/autograding-test7.json .github/classroom/autograding.json
|
|
cp scripts/classroom.yml .github/workflows/classroom.yml
|
|
git add .github/classroom/autograding.json
|
|
git add .github/workflows/classroom.yml
|
|
git add .github/.keep
|
|
git commit -m"update classroom.yml .keep autograding.json for classroom CI test"
|
|
git push
|
|
|
|
setupclassroom_test8:
|
|
mkdir -p .github/classroom/
|
|
mkdir -p .github/workflows/
|
|
touch .github/.keep
|
|
cp scripts/autograding-test8.json .github/classroom/autograding.json
|
|
cp scripts/classroom.yml .github/workflows/classroom.yml
|
|
git add .github/classroom/autograding.json
|
|
git add .github/workflows/classroom.yml
|
|
git add .github/.keep
|
|
git commit -m"update classroom.yml .keep autograding.json for classroom CI test"
|
|
git push
|
|
|
|
# for local ubuntu with zsh shell SHELL, need root for sudo
|
|
ubuntu_local_setenv:
|
|
sudo apt install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev \
|
|
gawk build-essential bison flex texinfo gperf libtool patchutils bc \
|
|
zlib1g-dev libexpat-dev pkg-config libglib2.0-dev libpixman-1-dev git tmux python3 ninja-build zsh -y
|
|
cd ${HOME} && wget https://download.qemu.org/qemu-7.0.0.tar.xz
|
|
cd ${HOME} && tar xvJf qemu-7.0.0.tar.xz
|
|
cd ${HOME}/qemu-7.0.0 && ./configure --target-list=riscv64-softmmu,riscv64-linux-user
|
|
cd ${HOME}/qemu-7.0.0 && make -j$(nproc)
|
|
cd ${HOME}/qemu-7.0.0 && sudo make install
|
|
qemu-system-riscv64 --version
|
|
qemu-riscv64 --version
|
|
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
source ${HOME}/.cargo/env
|
|
rustc --version
|
|
|
|
# for github codespaces ubuntu with zsh SHELL, need root for sudo
|
|
codespaces_setenv:
|
|
sudo apt install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev \
|
|
gawk build-essential bison flex texinfo gperf libtool patchutils bc \
|
|
zlib1g-dev libexpat-dev pkg-config libglib2.0-dev libpixman-1-dev git tmux python3 ninja-build zsh -y
|
|
cd .. && wget https://download.qemu.org/qemu-7.0.0.tar.xz
|
|
cd .. && tar xvJf qemu-7.0.0.tar.xz
|
|
cd ../qemu-7.0.0 && ./configure --target-list=riscv64-softmmu,riscv64-linux-user
|
|
cd ../qemu-7.0.0 && make -j$(nproc)
|
|
cd ../qemu-7.0.0 && sudo make install
|
|
qemu-system-riscv64 --version
|
|
qemu-riscv64 --version
|
|
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
/bin/zsh && source /home/codespace/.cargo/env
|
|
rustc --version
|