Build images in directory per arch, remove bochs
This commit is contained in:
parent
f6d58d5b68
commit
9232e4282a
11 changed files with 76 additions and 134 deletions
|
@ -1,2 +0,0 @@
|
|||
bochs: build/harddrive.img
|
||||
bochs -f bochs.$(ARCH)
|
24
mk/ci.mk
24
mk/ci.mk
|
@ -1,6 +1,6 @@
|
|||
IMG_TAG?=$(shell git describe --tags)
|
||||
IMG_SEPARATOR?=_
|
||||
IMG_DIR?=build/img
|
||||
IMG_DIR?=$(BUILD)/img
|
||||
|
||||
# CI image target - build desktop, server and demo images
|
||||
# To leave out the build tag, set both IMG_TAG and IMG_SEPARATOR to null
|
||||
|
@ -12,13 +12,13 @@ ci-img: FORCE
|
|||
|
||||
# The name of the target must match the name of the filesystem config file
|
||||
desktop server demo: FORCE
|
||||
rm -f "build/harddrive.img" "build/livedisk.iso"
|
||||
rm -f "$(BUILD)/harddrive.img" "$(BUILD)/livedisk.iso"
|
||||
$(MAKE) REPO_BINARY=1 \
|
||||
FILESYSTEM_CONFIG=config/$(ARCH)/$@.toml \
|
||||
build/harddrive.img \
|
||||
build/livedisk.iso
|
||||
cp "build/harddrive.img" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_harddrive.img"
|
||||
cp "build/livedisk.iso" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso"
|
||||
$(BUILD)/harddrive.img \
|
||||
$(BUILD)/livedisk.iso
|
||||
cp "$(BUILD)/harddrive.img" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_harddrive.img"
|
||||
cp "$(BUILD)/livedisk.iso" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso"
|
||||
|
||||
# CI packaging target
|
||||
ci-pkg: prefix FORCE
|
||||
|
@ -36,9 +36,9 @@ ci-toolchain: FORCE
|
|||
"prefix/$(TARGET)/gcc-install.tar.gz" \
|
||||
"prefix/$(TARGET)/relibc-install.tar.gz" \
|
||||
"prefix/$(TARGET)/rust-install.tar.gz"
|
||||
rm -rf "build/toolchain/$(TARGET)"
|
||||
mkdir -p "build/toolchain/$(TARGET)"
|
||||
cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(TARGET)/gcc-install.tar.gz"
|
||||
cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(TARGET)/relibc-install.tar.gz"
|
||||
cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(TARGET)/rust-install.tar.gz"
|
||||
cd "build/toolchain/$(TARGET)" && sha256sum -b * > SHA256SUM
|
||||
rm -rf "$(BUILD)/toolchain"
|
||||
mkdir -p "$(BUILD)/toolchain"
|
||||
cp "prefix/$(TARGET)/gcc-install.tar.gz" "$(BUILD)/toolchain/gcc-install.tar.gz"
|
||||
cp "prefix/$(TARGET)/relibc-install.tar.gz" "$(BUILD)/toolchain/relibc-install.tar.gz"
|
||||
cp "prefix/$(TARGET)/rust-install.tar.gz" "$(BUILD)/toolchain/rust-install.tar.gz"
|
||||
cd "$(BUILD)/toolchain" && sha256sum -b * > SHA256SUM
|
||||
|
|
|
@ -51,10 +51,11 @@ export XARGO_RUST_SRC=$(ROOT)/rust/src
|
|||
|
||||
## Userspace variables
|
||||
export TARGET=$(ARCH)-unknown-redox
|
||||
BUILD=build/$(ARCH)
|
||||
INSTALLER=installer/target/release/redox_installer
|
||||
ifeq ($(REPO_BINARY),0)
|
||||
INSTALLER+=--cookbook=cookbook
|
||||
REPO_TAG=build/repo.tag
|
||||
REPO_TAG=$(BUILD)/repo.tag
|
||||
endif
|
||||
|
||||
## Cross compiler variables
|
||||
|
|
38
mk/disk.mk
38
mk/disk.mk
|
@ -1,53 +1,53 @@
|
|||
build/harddrive.img: $(REPO_TAG)
|
||||
mkdir -p build
|
||||
$(BUILD)/harddrive.img: $(REPO_TAG)
|
||||
mkdir -p $(BUILD)
|
||||
rm -rf $@ $@.partial
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
fallocate --posix --length "$(FILESYSTEM_SIZE)MiB" $@.partial
|
||||
$(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial
|
||||
mv $@.partial $@
|
||||
|
||||
build/livedisk.iso: $(REPO_TAG)
|
||||
mkdir -p build
|
||||
$(BUILD)/livedisk.iso: $(REPO_TAG)
|
||||
mkdir -p $(BUILD)
|
||||
rm -rf $@ $@.partial
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
fallocate --posix --length "$(FILESYSTEM_SIZE)MiB" $@.partial
|
||||
$(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial
|
||||
mv $@.partial $@
|
||||
|
||||
build/filesystem.img: $(REPO_TAG)
|
||||
mkdir -p build
|
||||
$(BUILD)/filesystem.img: $(REPO_TAG)
|
||||
mkdir -p $(BUILD)
|
||||
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
rm -rf $@ $@.partial build/filesystem/
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
rm -rf $@ $@.partial $(BUILD)/filesystem/
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
fallocate --posix --length "$(FILESYSTEM_SIZE)MiB" $@.partial
|
||||
redoxfs/target/release/redoxfs-mkfs $(REDOXFS_MKFS_FLAGS) $@.partial
|
||||
mkdir -p build/filesystem/
|
||||
redoxfs/target/release/redoxfs $@.partial build/filesystem/
|
||||
mkdir -p $(BUILD)/filesystem/
|
||||
redoxfs/target/release/redoxfs $@.partial $(BUILD)/filesystem/
|
||||
sleep 1
|
||||
pgrep redoxfs
|
||||
$(INSTALLER) -c $(FILESYSTEM_CONFIG) build/filesystem/
|
||||
$(INSTALLER) -c $(FILESYSTEM_CONFIG) $(BUILD)/filesystem/
|
||||
sync
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
rm -rf build/filesystem/
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
rm -rf $(BUILD)/filesystem/
|
||||
mv $@.partial $@
|
||||
|
||||
mount: FORCE
|
||||
mkdir -p build/filesystem/
|
||||
mkdir -p $(BUILD)/filesystem/
|
||||
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
|
||||
redoxfs/target/release/redoxfs build/harddrive.img build/filesystem/
|
||||
redoxfs/target/release/redoxfs $(BUILD)/harddrive.img $(BUILD)/filesystem/
|
||||
sleep 2
|
||||
pgrep redoxfs
|
||||
|
||||
mount_extra: FORCE
|
||||
mkdir -p build/filesystem/
|
||||
mkdir -p $(BUILD)/filesystem/
|
||||
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
|
||||
redoxfs/target/release/redoxfs build/extra.img build/filesystem/
|
||||
redoxfs/target/release/redoxfs $(BUILD)/extra.img $(BUILD)/filesystem/
|
||||
sleep 2
|
||||
pgrep redoxfs
|
||||
|
||||
unmount: FORCE
|
||||
sync
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
rm -rf build/filesystem/
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
rm -rf $(BUILD)/filesystem/
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
|
|
48
mk/qemu.mk
48
mk/qemu.mk
|
@ -35,16 +35,16 @@ $(error Unsupported ARCH for QEMU "$(ARCH)"))
|
|||
endif
|
||||
|
||||
ifeq ($(efi),yes)
|
||||
FIRMWARE=build/firmware.rom
|
||||
QEMUFLAGS+=-bios build/firmware.rom
|
||||
FIRMWARE=$(BUILD)/firmware.rom
|
||||
QEMUFLAGS+=-bios $(BUILD)/firmware.rom
|
||||
else
|
||||
FIRMWARE=
|
||||
endif
|
||||
|
||||
ifeq ($(live),yes)
|
||||
DISK=build/livedisk.iso
|
||||
DISK=$(BUILD)/livedisk.iso
|
||||
else
|
||||
DISK=build/harddrive.img
|
||||
DISK=$(BUILD)/harddrive.img
|
||||
endif
|
||||
|
||||
ifeq ($(serial),no)
|
||||
|
@ -76,7 +76,7 @@ else
|
|||
QEMUFLAGS+=-netdev user,id=net0,hostfwd=tcp::8080-:8080,hostfwd=tcp::8083-:8083,hostfwd=tcp::64126-:64126 -device e1000,netdev=net0,id=nic0
|
||||
else
|
||||
QEMUFLAGS+=-netdev user,id=net0 -device e1000,netdev=net0 \
|
||||
-object filter-dump,id=f1,netdev=net0,file=build/network.pcap
|
||||
-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
@ -102,56 +102,56 @@ ifeq ($(UNAME),Linux)
|
|||
endif
|
||||
|
||||
ifeq ($(UNAME),Linux)
|
||||
build/extra.img:
|
||||
$(BUILD)/extra.img:
|
||||
fallocate --posix --length 1G $@
|
||||
else
|
||||
build/extra.img:
|
||||
$(BUILD)/extra.img:
|
||||
truncate -s 1g $@
|
||||
endif
|
||||
|
||||
build/firmware.rom:
|
||||
$(BUILD)/firmware.rom:
|
||||
cp $(QEMU_EFI) $@
|
||||
|
||||
qemu: $(DISK) $(FIRMWARE) build/extra.img
|
||||
qemu: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-hdc $(DISK)
|
||||
echo -drive file=$(DISK),format=raw \
|
||||
-drive file=build/extra.img,format=raw
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_no_build: $(FIRMWARE) build/extra.img
|
||||
qemu_no_build: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=$(DISK),format=raw \
|
||||
-drive file=build/extra.img,format=raw
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_cdrom: $(DISK) $(FIRMWARE) build/extra.img
|
||||
qemu_cdrom: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-boot d -cdrom $(DISK) \
|
||||
-drive file=build/extra.img,format=raw
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_cdrom_no_build: $(FIRMWARE) build/extra.img
|
||||
qemu_cdrom_no_build: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-boot d -cdrom $(DISK) \
|
||||
-drive file=build/extra.img,format=raw
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_nvme: $(DISK) $(FIRMWARE) build/extra.img
|
||||
qemu_nvme: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=build/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
|
||||
qemu_nvme_no_build: $(FIRMWARE) build/extra.img
|
||||
qemu_nvme_no_build: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=build/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
|
||||
qemu_usb: $(DISK) $(FIRMWARE)
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive if=none,id=usbstick,format=raw,file=$(DISK) \
|
||||
-device usb-storage,drive=usbstick
|
||||
|
||||
qemu_extra: $(FIRMWARE) build/extra.img
|
||||
qemu_extra: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/extra.img,format=raw
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_nvme_extra: $(FIRMWARE) build/extra.img
|
||||
qemu_nvme_extra: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
build/fetch.tag: cookbook installer prefix $(FILESYSTEM_CONFIG)
|
||||
$(BUILD)/fetch.tag: cookbook installer prefix $(FILESYSTEM_CONFIG)
|
||||
$(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release
|
||||
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
|
||||
PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \
|
||||
cd cookbook && \
|
||||
./fetch.sh "$${PACKAGES}"
|
||||
mkdir -p build
|
||||
mkdir -p $(BUILD)
|
||||
touch $@
|
||||
|
||||
build/repo.tag: build/fetch.tag
|
||||
$(BUILD)/repo.tag: $(BUILD)/fetch.tag
|
||||
$(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release
|
||||
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \
|
||||
cd cookbook && \
|
||||
./repo.sh "$${PACKAGES}"
|
||||
mkdir -p build
|
||||
mkdir -p $(BUILD)
|
||||
touch $@
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
virtualbox: build/harddrive.img
|
||||
virtualbox: $(BUILD)/harddrive.img
|
||||
echo "Delete VM"
|
||||
-$(VBM) unregistervm Redox --delete; \
|
||||
if [ $$? -ne 0 ]; \
|
||||
|
@ -22,10 +22,10 @@ virtualbox: build/harddrive.img
|
|||
$(VBM) modifyvm Redox --nictype1 82540EM; \
|
||||
$(VBM) modifyvm Redox --cableconnected1 on; \
|
||||
$(VBM) modifyvm Redox --nictrace1 on; \
|
||||
$(VBM) modifyvm Redox --nictracefile1 "$(ROOT)/build/network.pcap"; \
|
||||
$(VBM) modifyvm Redox --nictracefile1 "$(ROOT)/$(BUILD)/network.pcap"; \
|
||||
fi
|
||||
$(VBM) modifyvm Redox --uart1 0x3F8 4
|
||||
$(VBM) modifyvm Redox --uartmode1 file "$(ROOT)/build/serial.log"
|
||||
$(VBM) modifyvm Redox --uartmode1 file "$(ROOT)/$(BUILD)/serial.log"
|
||||
$(VBM) modifyvm Redox --usb off # on
|
||||
$(VBM) modifyvm Redox --keyboard ps2
|
||||
$(VBM) modifyvm Redox --mouse ps2
|
||||
|
@ -33,9 +33,9 @@ virtualbox: build/harddrive.img
|
|||
$(VBM) modifyvm Redox --audiocontroller hda
|
||||
$(VBM) modifyvm Redox --nestedpaging on
|
||||
echo "Create Disk"
|
||||
$(VBM) convertfromraw $< build/harddrive.vdi
|
||||
$(VBM) convertfromraw $< $(BUILD)/harddrive.vdi
|
||||
echo "Attach Disk"
|
||||
$(VBM) storagectl Redox --name ATA --add sata --controller IntelAHCI --bootable on --portcount 1
|
||||
$(VBM) storageattach Redox --storagectl ATA --port 0 --device 0 --type hdd --medium build/harddrive.vdi
|
||||
$(VBM) storageattach Redox --storagectl ATA --port 0 --device 0 --type hdd --medium $(BUILD)/harddrive.vdi
|
||||
echo "Run VM"
|
||||
$(VBM) startvm Redox
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue