From 2161c9586a0206b1bf29e276d573ad54abfac739 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Sat, 16 Mar 2019 14:55:11 -0600 Subject: [PATCH] Update ci-img target to build all possible disk formats --- Makefile | 20 +++++++++++++++----- mk/config.mk | 3 +++ mk/disk.mk | 26 ++++++++------------------ 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index 8256035..fc80bc8 100644 --- a/Makefile +++ b/Makefile @@ -62,13 +62,19 @@ include mk/virtualbox.mk # CI image target ci-img: FORCE - make INSTALLER_FLAGS= build/harddrive.bin.gz build/livedisk.iso #build/harddrive-efi.bin.gz build/livedisk-efi.iso + make INSTALLER_FLAGS= \ + build/coreboot.elf.gz \ + build/harddrive.bin.gz \ + build/livedisk.iso.gz \ + build/harddrive-efi.bin.gz \ + build/livedisk-efi.iso.gz rm -rf build/img mkdir build/img + mv build/coreboot.elf.gz build/img/redox_$(IMG_TAG)_coreboot.elf.gz mv build/harddrive.bin.gz build/img/redox_$(IMG_TAG)_harddrive.bin.gz - mv build/livedisk.iso build/img/redox_$(IMG_TAG)_livedisk.iso - #mv build/harddrive-efi.bin.gz build/img/redox_$(IMG_TAG)_harddrive-efi.bin.gz - #mv build/livedisk-efi.iso build/img/redox_$(IMG_TAG)_livedisk-efi.iso + mv build/livedisk.iso.gz build/img/redox_$(IMG_TAG)_livedisk.iso.gz + mv build/harddrive-efi.bin.gz build/img/redox_$(IMG_TAG)_harddrive-efi.bin.gz + mv build/livedisk-efi.iso.gz build/img/redox_$(IMG_TAG)_livedisk-efi.iso.gz cd build/img && sha256sum -b * > SHA256SUM # CI packaging target @@ -86,7 +92,11 @@ env: prefix FORCE # An empty target FORCE: -# A method of creating a listing for any binary +# Gzip any binary +%.gz: % + gzip -k -f $< + +# Create a listing for any binary %.list: % export PATH="$(PREFIX_PATH):$$PATH" && \ $(OBJDUMP) -C -M intel -D $< > $@ diff --git a/mk/config.mk b/mk/config.mk index 784314c..bfb6867 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -43,6 +43,9 @@ export AR_$(subst -,_,$(TARGET))=$(TARGET)-ar export CC_$(subst -,_,$(TARGET))=$(TARGET)-gcc export CXX_$(subst -,_,$(TARGET))=$(TARGET)-g++ +# Bootloader variables +EFI_TARGET=$(ARCH)-efi-pe + # Kernel variables KTARGET=$(ARCH)-unknown-none KBUILD=build/kernel diff --git a/mk/disk.mk b/mk/disk.mk index 4e82b00..5a5a2ea 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -5,15 +5,9 @@ build/bootloader: bootloader/$(ARCH)/** build/harddrive.bin: build/filesystem.bin bootloader/$(ARCH)/** nasm -f bin -o $@ -D ARCH_$(ARCH) -D FILESYSTEM=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm -build/harddrive.bin.gz: build/harddrive.bin - gzip -k -f $< - build/livedisk.bin: build/kernel_live bootloader/$(ARCH)/** nasm -f bin -o $@ -D ARCH_$(ARCH) -D KERNEL=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm -build/livedisk.bin.gz: build/livedisk.bin - gzip -k -f $< - build/livedisk.iso: build/livedisk.bin.gz rm -rf build/iso/ mkdir -p build/iso/ @@ -28,24 +22,23 @@ bootloader-coreboot/build/bootloader: build/kernel_coreboot $(MAKE) -C bootloader-coreboot clean build/bootloader KERNEL="$(ROOT)/$<" build/coreboot.elf: bootloader-coreboot/build/bootloader - cp $< $@ + cp -v $< $@ -bootloader-efi/build/redox_bootloader/boot.efi: - $(MAKE) -C bootloader-efi build/redox_bootloader/boot.efi +bootloader-efi/build/$(EFI_TARGET)/boot.efi: FORCE + $(MAKE) -C bootloader-efi build/$(EFI_TARGET)/boot.efi TARGET=$(EFI_TARGET) -build/harddrive-efi.bin: bootloader-efi/build/x86_64-efi-pe/boot.efi build/filesystem.bin +build/bootloader.efi: bootloader-efi/build/$(EFI_TARGET)/boot.efi + cp -v $< $@ + +build/harddrive-efi.bin: build/bootloader.efi build/filesystem.bin dd if=/dev/zero of=$@.partial bs=1048576 count=4 mkfs.vfat $@.partial mmd -i $@.partial efi mmd -i $@.partial efi/boot mcopy -i $@.partial $< ::efi/boot/bootx64.efi - mmd -i $@.partial redox_bootloader cat $@.partial build/filesystem.bin > $@ -build/harddrive-efi.bin.gz: build/harddrive-efi.bin - gzip -k -f $< - -build/livedisk-efi.iso: bootloader-efi/build/x86_64-efi-pe/boot.efi build/kernel_live +build/livedisk-efi.iso: build/bootloader.efi build/kernel_live dd if=/dev/zero of=$@.partial bs=1048576 count=272 mkfs.vfat $@.partial mmd -i $@.partial efi @@ -54,6 +47,3 @@ build/livedisk-efi.iso: bootloader-efi/build/x86_64-efi-pe/boot.efi build/kernel mmd -i $@.partial redox_bootloader mcopy -i $@.partial -s build/kernel_live ::redox_bootloader/kernel mv $@.partial $@ - -build/livedisk-efi.bin.gz: build/livedisk-efi.bin - gzip -k -f $<