furix
cute os
boot/uefi/Makefile
851 bytes raw
1BOOT_SRC := boot/uefi/main.c
2
3# number of vCPUs. anything above 1 is required for SMP work (AP bringup).
4SMP ?= 4
5
6SRC := $(KERNEL_SRC) $(ARCH_SRC) $(ARCH_ASM_SRC) $(BOOT_SRC)
7OBJ := $(patsubst %,$(BUILD)/%.o,$(SRC))
8DEP := $(OBJ:.o=.d)
9
10.PHONY: run
11run: $(EFI)
12 @mkdir -p $(BUILD_BOOT)/esp/EFI/BOOT
13 cp $(EFI) $(BUILD_BOOT)/esp/EFI/BOOT/BOOTX64.EFI
14 @test -f $(BUILD_BOOT)/OVMF_VARS.fd || cp /usr/share/edk2-ovmf/OVMF_VARS.fd $(BUILD_BOOT)/OVMF_VARS.fd
15 qemu-system-x86_64 -m 128M -smp $(SMP) -no-reboot \
16 -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2-ovmf/OVMF_CODE.fd \
17 -drive if=pflash,format=raw,file=$(BUILD_BOOT)/OVMF_VARS.fd \
18 -drive format=raw,file=fat:rw:$(BUILD_BOOT)/esp \
19 -nographic
20
21$(EFI): $(OBJ)
22 @mkdir -p $(dir $@)
23 lld-link -subsystem:efi_application -entry:efi_main -nodefaultlib -out:$@ $^
24
25-include $(DEP)