
vgabios_variants := stdvga cirrus vmware qxl isavga virtio bochs-display ramfb ati
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))))

arm_cross_prefix := $(call find-cross-prefix,arm)
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 firmware builds
FIRMWARE_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

-include edk2-version

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 "  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 "  npcm7xx_bootrom    -- update vbootrom for npcm7xx"
	@echo "  efi                -- update UEFI (edk2) platform firmware"
	@echo "  opensbi32-generic  -- update OpenSBI for 32-bit generic machine"
	@echo "  opensbi64-generic  -- update OpenSBI for 64-bit generic machine"
	@echo "  qboot              -- update qboot"
	@echo "  hppa-firmware      -- update 32- and 64-bit hppa firmware"
	@echo "  clean              -- delete the files generated by the previous" \
	                              "build targets"

bios: build-seabios-config-seabios-128k \
		build-seabios-config-seabios-256k \
		build-seabios-config-seabios-microvm
	cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin
	cp seabios/builds/seabios-256k/bios.bin ../pc-bios/bios-256k.bin
	cp seabios/builds/seabios-microvm/bios.bin ../pc-bios/bios-microvm.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=$(FIRMWARE_EXTRAVERSION) \
		CROSS_PREFIX=$(x86_64_cross_prefix) \
		KCONFIG_CONFIG=$(CURDIR)/seabios/builds/$*/.config \
		OUT=$(CURDIR)/seabios/builds/$*/ oldnoconfig
	$(MAKE) -C seabios \
		EXTRAVERSION=$(FIRMWARE_EXTRAVERSION) \
		CROSS_PREFIX=$(x86_64_cross_prefix) \
		KCONFIG_CONFIG=$(CURDIR)/seabios/builds/$*/.config \
		OUT=$(CURDIR)/seabios/builds/$*/ all


.PHONY: skiboot qboot

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-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-x86_64-efi/%.efidrv,$(pxerom_targets))

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

edk2-version: edk2
	if test -e edk2/.git; then \
		echo "EDK2_STABLE = $$(cd edk2; git describe --tags --match 'edk2-stable*')" > $@; \
		echo "EDK2_DATE = $$(cd edk2; git log -1 --pretty='format:%cd' --date='format:%m/%d/%Y')" >> $@; \
	else \
		touch $@; \
	fi

efi: edk2-version
	$(PYTHON) edk2-build.py --config edk2-build.config \
		--version-override "$(EDK2_STABLE)$(FIRMWARE_EXTRAVERSION)" \
		--release-date "$(EDK2_DATE)" \
		--silent --no-logs
	rm -f ../pc-bios/edk2-*.fd.bz2
	bzip2 --verbose ../pc-bios/edk2-*.fd

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

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

MESON = meson
NINJA = ninja
qboot:
	mkdir -p qboot/build
	$(MESON) setup $(if $(wildcard qboot/build/meson-private),--wipe,) qboot qboot/build
	$(NINJA) -C qboot/build
	cp qboot/build/bios.bin ../pc-bios/qboot.rom

npcm7xx_bootrom:
	$(MAKE) -C vbootrom CROSS_COMPILE=$(arm_cross_prefix)
	cp vbootrom/npcm7xx_bootrom.bin ../pc-bios/npcm7xx_bootrom.bin

hppa-firmware:
	$(MAKE) -C seabios-hppa parisc
	cp seabios-hppa/out/hppa-firmware.img      ../pc-bios/
	cp seabios-hppa/out-64/hppa-firmware64.img ../pc-bios/

clean:
	rm -rf seabios/.config seabios/out seabios/builds
	$(MAKE) -C ipxe/src veryclean
	$(MAKE) -C edk2/BaseTools clean
	rm -rf edk2/Conf/{.cache,BuildEnv.sh,build_rule.txt,target.txt,tools_def.txt}
	$(MAKE) -C SLOF clean
	rm -rf u-boot/build-e500
	$(MAKE) -C u-boot-sam460ex distclean
	$(MAKE) -C skiboot clean
	rm -rf Build
	$(MAKE) -C opensbi clean
	$(MAKE) -C qboot clean
	$(MAKE) -C vbootrom clean
	$(MAKE) -C seabios-hppa clean
