rpi4-osdev/part2-building/Makefile

19 lines
580 B
Makefile

CFILES = $(wildcard *.c)
OFILES = $(CFILES:.c=.o)
LLVMPATH = /opt/homebrew/opt/llvm/bin
GCCFLAGS = -Wall -O2 -ffreestanding -nostdinc -nostdlib -mcpu=cortex-a72+nosimd
all: clean kernel8.img
boot.o: boot.S
clang --target=aarch64-elf $(GCCFLAGS) -c boot.S -o boot.o
%.o: %.c
clang --target=aarch64-elf $(GCCFLAGS) -c $< -o $@
kernel8.img: boot.o $(OFILES)
$(LLVMPATH)/ld.lld -m aarch64elf -nostdlib boot.o $(OFILES) -T link.ld -o kernel8.elf
$(LLVMPATH)/llvm-objcopy -O binary kernel8.elf kernel8.img
clean:
/bin/rm kernel8.elf *.o *.img > /dev/null 2> /dev/null || true