Fix build guide

master
WangRunji 6 years ago
parent 60c2a77ac1
commit 5647fb1273

@ -0,0 +1,34 @@
# used by docker_* targets
docker_image ?= blog_os
tag ?= 0.1
pwd ?= $(realpath ./)
ifeq ($(OS),Windows_NT)
uid ?= 0
gid ?= 0
innerpwd ?= /root/blog_os
else
uid ?= $(shell id -u)
gid ?= $(shell id -g)
innerpwd ?= $(pwd)
endif
docker_cargo_volume ?= blogos-$(uid)-$(gid)-cargo
docker_rustup_volume ?= blogos-$(uid)-$(gid)-rustup
docker_args ?= -e LOCAL_UID=$(uid) -e LOCAL_GID=$(gid) -v $(docker_cargo_volume):/usr/local/cargo -v $(docker_rustup_volume):/usr/local/rustup -v $(pwd):$(innerpwd) -w $(innerpwd)
docker_clean_args ?= $(docker_cargo_volume) $(docker_rustup_volume)
# docker_* targets
docker_build:
@docker build docker/ -t $(docker_image):$(tag)
docker_iso:
@docker run --rm $(docker_args) $(docker_image):$(tag) make iso
docker_interactive:
@docker run -it --rm $(docker_args) $(docker_image):$(tag)
docker_clean:
@docker volume rm $(docker_clean_args)
docker_riscv:
@docker run -it --rm $(docker_args) wangrunji0408/riscv-rust

@ -18,14 +18,14 @@ Available on DockerHub: `wangrunji0408/riscv-rust`
```bash ```bash
git clone https://github.com/wangrunji0408/RustOS.git -b riscv --recursive git clone https://github.com/wangrunji0408/RustOS.git -b riscv --recursive
cd RustOS/kernel cd RustOS
# Pull docker image and enter docker interactive shell # Pull docker image and enter docker interactive shell
make docker_riscv make docker_riscv
# Inside docker ... # Inside docker ...
cd kernel
# Patch the atomic mod of core lib # Patch the atomic mod of core lib
make patch-core make patch-core
make build make run
make justrun
``` ```
## Summary ## Summary

@ -162,42 +162,4 @@ $(riscv_user_img_obj): ../user/user-riscv.img
# patch Rust core for RISCV32I atomic # patch Rust core for RISCV32I atomic
patch-core: patch-core:
@patch -p0 /rust/rust-riscv-rust-1.26.0-1-dev/src/libcore/sync/atomic.rs src/arch/riscv32/atomic.patch @patch -p0 /rust/rust-riscv-rust-1.26.0-1-dev/src/libcore/sync/atomic.rs src/arch/riscv32/atomic.patch
# used by docker_* targets
docker_image ?= blog_os
tag ?= 0.1
pwd ?= $(realpath ./)
ifeq ($(OS),Windows_NT)
uid ?= 0
gid ?= 0
innerpwd ?= /root/blog_os
else
uid ?= $(shell id -u)
gid ?= $(shell id -g)
innerpwd ?= $(pwd)
endif
docker_cargo_volume ?= blogos-$(uid)-$(gid)-cargo
docker_rustup_volume ?= blogos-$(uid)-$(gid)-rustup
docker_args ?= -e LOCAL_UID=$(uid) -e LOCAL_GID=$(gid) -v $(docker_cargo_volume):/usr/local/cargo -v $(docker_rustup_volume):/usr/local/rustup -v $(pwd):$(innerpwd) -w $(innerpwd)
docker_clean_args ?= $(docker_cargo_volume) $(docker_rustup_volume)
# docker_* targets
docker_build:
@docker build docker/ -t $(docker_image):$(tag)
docker_iso:
@docker run --rm $(docker_args) $(docker_image):$(tag) make iso
docker_run: docker_iso
@qemu-system-$(arch) -cdrom $(iso) -s
docker_interactive:
@docker run -it --rm $(docker_args) $(docker_image):$(tag)
docker_clean:
@docker volume rm $(docker_clean_args)
docker_riscv:
@docker run -it --rm $(docker_args) wangrunji0408/riscv-rust
Loading…
Cancel
Save