
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:
	@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 "  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 \
		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="qemu/sifive_u"
	cp opensbi/build/platform/qemu/sifive_u/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-sifive_u-fw_jump.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
