
vgabios_variants := stdvga cirrus vmware qxl isavga virtio bochs-display ramfb
vgabios_targets  := $(subst -isavga,,$(patsubst %,vgabios-%.bin,$(vgabios_variants)))
pxerom_variants  := e1000 e1000e eepro100 ne2k_pci pcnet rtl8139 virtio vmxnet3
pxerom_targets   := 8086100e 808610d3 80861209 10500940 10222000 10ec8139 1af41000 15ad07b0

pxe-rom-e1000    efi-rom-e1000    : VID := 8086
pxe-rom-e1000    efi-rom-e1000    : DID := 100e
pxe-rom-e1000e   efi-rom-e1000e   : VID := 8086
pxe-rom-e1000e   efi-rom-e1000e   : DID := 10d3
pxe-rom-eepro100 efi-rom-eepro100 : VID := 8086
pxe-rom-eepro100 efi-rom-eepro100 : DID := 1209
pxe-rom-ne2k_pci efi-rom-ne2k_pci : VID := 1050
pxe-rom-ne2k_pci efi-rom-ne2k_pci : DID := 0940
pxe-rom-pcnet    efi-rom-pcnet    : VID := 1022
pxe-rom-pcnet    efi-rom-pcnet    : DID := 2000
pxe-rom-rtl8139  efi-rom-rtl8139  : VID := 10ec
pxe-rom-rtl8139  efi-rom-rtl8139  : DID := 8139
pxe-rom-virtio   efi-rom-virtio   : VID := 1af4
pxe-rom-virtio   efi-rom-virtio   : DID := 1000
pxe-rom-vmxnet3  efi-rom-vmxnet3  : VID := 15ad
pxe-rom-vmxnet3  efi-rom-vmxnet3  : DID := 07b0

#
# cross compiler auto detection
#
path := $(subst :, ,$(PATH))
system := $(shell uname -s | tr "A-Z" "a-z")

# first find cross binutils in path
find-cross-ld = $(firstword $(wildcard $(patsubst %,%/$(1)-*$(system)*-ld,$(path))))
# then check we have cross gcc too
find-cross-gcc = $(firstword $(wildcard $(patsubst %ld,%gcc,$(call find-cross-ld,$(1)))))
# finally strip off path + toolname so we get the prefix
find-cross-prefix = $(subst gcc,,$(notdir $(call find-cross-gcc,$(1))))

powerpc64_cross_prefix := $(call find-cross-prefix,powerpc64)
powerpc_cross_prefix := $(call find-cross-prefix,powerpc)
x86_64_cross_prefix := $(call find-cross-prefix,x86_64)
riscv32_cross_prefix := $(call find-cross-prefix,riscv32)
riscv64_cross_prefix := $(call find-cross-prefix,riscv64)

# tag our seabios builds
SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"

#
# EfiRom utility is shipped with edk2 / tianocore, in BaseTools/
#
# We need that to combine multiple images (legacy bios,
# efi ia32, efi x64) into a single rom binary.
#
EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom

default help:
	@echo "nothing is build by default"
	@echo "available build targets:"
	@echo "  bios               -- update bios.bin (seabios)"
	@echo "  vgabios            -- update vgabios binaries (seabios)"
	@echo "  sgabios            -- update sgabios binaries"
	@echo "  pxerom             -- update nic roms (bios only)"
	@echo "  efirom             -- update nic roms (bios+efi)"
	@echo "  slof               -- update slof.bin"
	@echo "  skiboot            -- update skiboot.lid"
	@echo "  u-boot.e500        -- update u-boot.e500"
	@echo "  u-boot.sam460      -- update u-boot.sam460"
	@echo "  efi                -- update UEFI (edk2) platform firmware"
	@echo "  opensbi32-virt     -- update OpenSBI for 32-bit virt machine"
	@echo "  opensbi64-virt     -- update OpenSBI for 64-bit virt machine"
	@echo "  opensbi64-sifive_u -- update OpenSBI for 64-bit sifive_u machine"
	@echo "  bios-microvm       -- update bios-microvm.bin (qboot)"
	@echo "  clean              -- delete the files generated by the previous" \
	                              "build targets"

bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k
	cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin
	cp seabios/builds/seabios-256k/bios.bin ../pc-bios/bios-256k.bin

vgabios seavgabios: $(patsubst %,seavgabios-%,$(vgabios_variants))

seavgabios-isavga: build-seabios-config-vga-isavga
	cp seabios/builds/vga-isavga/vgabios.bin ../pc-bios/vgabios.bin

seavgabios-%: build-seabios-config-vga-%
	cp seabios/builds/vga-$*/vgabios.bin ../pc-bios/vgabios-$*.bin

build-seabios-config-%: config.%
	mkdir -p seabios/builds/$*
	cp $< seabios/builds/$*/.config
	$(MAKE) -C seabios \
		EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \
		CROSS_PREFIX=$(x86_64_cross_prefix) \
		KCONFIG_CONFIG=$(CURDIR)/seabios/builds/$*/.config \
		OUT=$(CURDIR)/seabios/builds/$*/ oldnoconfig
	$(MAKE) -C seabios \
		EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \
		CROSS_PREFIX=$(x86_64_cross_prefix) \
		KCONFIG_CONFIG=$(CURDIR)/seabios/builds/$*/.config \
		OUT=$(CURDIR)/seabios/builds/$*/ all


.PHONY: sgabios skiboot
sgabios:
	$(MAKE) -C sgabios
	cp sgabios/sgabios.bin ../pc-bios


pxerom: $(patsubst %,pxe-rom-%,$(pxerom_variants))

pxe-rom-%: build-pxe-roms
	cp ipxe/src/bin/$(VID)$(DID).rom ../pc-bios/pxe-$*.rom

efirom: $(patsubst %,efi-rom-%,$(pxerom_variants))

efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools
	$(EDK2_EFIROM) -f "0x$(VID)" -i "0x$(DID)" -l 0x02 \
		-b ipxe/src/bin/$(VID)$(DID).rom \
		-ec ipxe/src/bin-i386-efi/$(VID)$(DID).efidrv \
		-ec ipxe/src/bin-x86_64-efi/$(VID)$(DID).efidrv \
		-o ../pc-bios/efi-$*.rom

build-pxe-roms:
	$(MAKE) -C ipxe/src CONFIG=qemu \
		CROSS_COMPILE=$(x86_64_cross_prefix) \
		$(patsubst %,bin/%.rom,$(pxerom_targets))

build-efi-roms: build-pxe-roms
	$(MAKE) -C ipxe/src CONFIG=qemu \
		CROSS_COMPILE=$(x86_64_cross_prefix) \
		$(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \
		$(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets))

# Build scripts can pass compiler/linker flags to the EDK2
# build tools via the EDK2_BASETOOLS_OPTFLAGS (CFLAGS) and
# EDK2_BASETOOLS_LDFLAGS (LDFLAGS) environment variables.
#
# Example:
#
#  make -C roms \
#    EDK2_BASETOOLS_OPTFLAGS='...' \
#    EDK2_BASETOOLS_LDFLAGS='...' \
#    efirom
#
edk2-basetools:
	$(MAKE) -C edk2/BaseTools \
		PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \
		EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \
		EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)'

slof:
	$(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) qemu
	cp SLOF/boot_rom.bin ../pc-bios/slof.bin

u-boot.e500:
	$(MAKE) -C u-boot O=build.e500 qemu-ppce500_config
	$(MAKE) -C u-boot CROSS_COMPILE=$(powerpc_cross_prefix) \
		O=build.e500
	$(powerpc_cross_prefix)strip u-boot/build.e500/u-boot -o \
		../pc-bios/u-boot.e500

u-boot.sam460:
	$(MAKE) -C u-boot-sam460ex Sam460ex_config
	$(MAKE) -C u-boot-sam460ex CROSS_COMPILE=$(powerpc_cross_prefix)
	cp u-boot-sam460ex/u-boot.bin ../pc-bios/u-boot-sam460-20100605.bin

skiboot:
	$(MAKE) -C skiboot CROSS=$(powerpc64_cross_prefix)
	cp skiboot/skiboot.lid ../pc-bios/skiboot.lid

efi: edk2-basetools
	$(MAKE) -f Makefile.edk2

opensbi32-virt:
	$(MAKE) -C opensbi \
		CROSS_COMPILE=$(riscv32_cross_prefix) \
		PLATFORM="qemu/virt"
	cp opensbi/build/platform/qemu/virt/firmware/fw_jump.bin ../pc-bios/opensbi-riscv32-virt-fw_jump.bin

opensbi64-virt:
	$(MAKE) -C opensbi \
		CROSS_COMPILE=$(riscv64_cross_prefix) \
		PLATFORM="qemu/virt"
	cp opensbi/build/platform/qemu/virt/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-virt-fw_jump.bin

opensbi64-sifive_u:
	$(MAKE) -C opensbi \
		CROSS_COMPILE=$(riscv64_cross_prefix) \
		PLATFORM="sifive/fu540"
	cp opensbi/build/platform/sifive/fu540/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin

bios-microvm:
	$(MAKE) -C qboot
	cp qboot/bios.bin ../pc-bios/bios-microvm.bin

clean:
	rm -rf seabios/.config seabios/out seabios/builds
	$(MAKE) -C sgabios clean
	rm -f sgabios/.depend
	$(MAKE) -C ipxe/src veryclean
	$(MAKE) -C edk2/BaseTools clean
	$(MAKE) -C SLOF clean
	rm -rf u-boot/build.e500
	$(MAKE) -C u-boot-sam460ex distclean
	$(MAKE) -C skiboot clean
	$(MAKE) -f Makefile.edk2 clean
	$(MAKE) -C opensbi clean
	$(MAKE) -C qboot clean
