aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile44
1 files changed, 43 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index a6a4e1a..5e2eb21 100644
--- a/Makefile
+++ b/Makefile
@@ -33,6 +33,8 @@ default help:
@echo
@echo "build targets:"
@echo " edk2 -- build UEFI firmware"
+ @echo " seabios -- build BIOS firmware"
+ @echo " vgabios -- build VGABIOS firmware"
@echo
@echo "other targets:"
@echo " clean -- cleanup"
@@ -46,8 +48,9 @@ default help:
install:
mkdir -p $(datadir)
cp -avr blobs/edk2-* $(datadir)
+ cp -av blobs/*.bin $(datadir)
-clean: edk2-clean
+clean: edk2-clean seabios-clean
submodule-%:
git submodule update --init repos/$*
@@ -80,3 +83,42 @@ edk2-clean:
rm -rf repos/edk2/Conf/build_rule.txt
rm -rf repos/edk2/Conf/target.txt
rm -rf repos/edk2/Conf/tools_def.txt
+
+
+#############################################################################
+# seabios build rules
+
+# tag our seabios builds
+SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
+
+vgabios_variants := stdvga cirrus vmware qxl isavga virtio
+vgabios_targets := $(subst -isavga,,$(patsubst %,vgabios-%.bin,$(vgabios_variants)))
+
+seabios bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k
+ cp repos/seabios/builds/seabios-128k/bios.bin blobs/bios.bin
+ cp repos/seabios/builds/seabios-256k/bios.bin blobs/bios-256k.bin
+
+vgabios: $(patsubst %,vgabios-%,$(vgabios_variants))
+
+vgabios-isavga: build-seabios-config-vga-isavga
+ cp repos/seabios/builds/vga-isavga/vgabios.bin blobs/vgabios.bin
+
+vgabios-%: build-seabios-config-vga-%
+ cp repos/seabios/builds/vga-$*/vgabios.bin blobs/vgabios-$*.bin
+
+build-seabios-config-%: configs/% submodule-seabios
+ mkdir -p repos/seabios/builds/$*
+ cp $< repos/seabios/builds/$*/.config
+ $(MAKE) -C repos/seabios \
+ EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \
+ CROSS_COMPILE=$(x86_64_cross_prefix) \
+ KCONFIG_CONFIG=$(CURDIR)/repos/seabios/builds/$*/.config \
+ OUT=$(CURDIR)/repos/seabios/builds/$*/ oldnoconfig
+ $(MAKE) -C repos/seabios \
+ EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \
+ CROSS_COMPILE=$(x86_64_cross_prefix) \
+ KCONFIG_CONFIG=$(CURDIR)/repos/seabios/builds/$*/.config \
+ OUT=$(CURDIR)/repos/seabios/builds/$*/ all
+
+seabios-clean:
+ rm -rf repos/seabios/.config repos/seabios/out repos/seabios/builds