raspberry3_bare/Makefile

35 lines
756 B
Makefile
Raw Normal View History

2022-03-14 20:27:46 +01:00
# Used to generated .d file that deal with header dependencies
CPPFLAGS = -MMD
2022-03-14 07:46:32 +01:00
CROSS=aarch64-linux-gnu-
CC=$(CROSS)gcc
LD=$(CROSS)ld
CFLAGS=-Wall -Wextra -ffreestanding -march=armv8-a+crc -mcpu=cortex-a53
LDSCRIPT=rpi3.ld
OBJS=crt0.o uart.o hello.o
2022-03-14 20:27:46 +01:00
gasmsrc=$(wildcard *.S)
gasmobj=$(gasmsrc:%.S=%.o)
csrc=$(wildcard *.c)
cobj=$(csrc:%.c=%.o)
deps=$(csrc:%.c=%.d) $(gasmsrc:%.S=%.d)
2022-03-14 07:46:32 +01:00
all:kernel.bin
2022-03-14 20:27:46 +01:00
kernel.elf: $(cobj) $(gasmobj) $(LDSCRIPT)
$(LD) $(LDFLAGS) -o $@ $(cobj) $(gasmobj) -T$(LDSCRIPT) -Map kernel.map
2022-03-14 07:46:32 +01:00
kernel.bin: kernel.elf
2022-03-14 20:27:46 +01:00
$(CROSS)objcopy -O binary $< $@
2022-03-14 07:46:32 +01:00
clean:
2022-03-14 20:27:46 +01:00
rm -rf $(cobj) $(gasmobj) $(deps) *.bin *.elf *.map
2022-03-14 07:46:32 +01:00
run: kernel.bin
qemu-system-aarch64 -machine raspi3b -kernel $<
2022-03-14 20:27:46 +01:00
ifneq ($(MAKECMDGOALS),clean)
-include $(deps)
endif