mirror of
https://github.com/badcf00d/UEFI-helloworld
synced 2026-08-26 10:26:04 -04:00
41 lines
929 B
Makefile
41 lines
929 B
Makefile
ASM = nasm
|
|
ASMFLAGS = -f win64
|
|
|
|
LINKER = clang
|
|
LLD-FLAGS = --target=x86_64-unknown-windows -nostdlib -Wl,-entry:_start -Wl,-subsystem:efi_application -fuse-ld=lld
|
|
|
|
SRC_DIR = src
|
|
OBJ_DIR = obj
|
|
EFI_DIR = efi
|
|
INC_DIR = inc
|
|
|
|
SRC = $(wildcard $(SRC_DIR)/*.asm)
|
|
|
|
OBJ = $(SRC:$(SRC_DIR)/%.asm=$(OBJ_DIR)/%.obj)
|
|
|
|
EFI = $(EFI_DIR)/uefi.efi
|
|
BIOS = $(wildcard $(INC_DIR)/*.bios)
|
|
BOOT_DRIVE = uefi.img
|
|
|
|
.PHONY: clean qemu all img
|
|
|
|
all: $(OBJ)
|
|
$(LINKER) $(LLD-FLAGS) -o $(EFI) $<
|
|
make img
|
|
|
|
clean:
|
|
rm -f $(OBJ) $(BOOT_DRIVE) $(EFI)
|
|
|
|
qemu:
|
|
qemu-system-x86_64 -bios $(BIOS) -drive file=$(BOOT_DRIVE),format=raw
|
|
|
|
# needs dosfstools and mtools
|
|
img:
|
|
dd if=/dev/zero of=$(BOOT_DRIVE) bs=1M count=1
|
|
mkfs.vfat $(BOOT_DRIVE)
|
|
mmd -i $(BOOT_DRIVE) ::EFI
|
|
mmd -i $(BOOT_DRIVE) ::EFI/BOOT
|
|
mcopy -i $(BOOT_DRIVE) $(EFI) ::EFI/BOOT/BOOTX64.EFI
|
|
|
|
$(OBJ_DIR)/%.obj: $(SRC_DIR)/%.asm
|
|
$(ASM) $(ASMFLAGS) -o $@ $<
|