Kernel/Makefile
Andreas Fink 55fc65ba5c struc
2025-04-10 17:18:34 +02:00

36 lines
No EOL
807 B
Makefile

CROSS_COMPILE = arm-none-eabi-
AS = $(CROSS_COMPILE)as
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy
CFLAGS = -Wall -mcpu=arm926ej-s -nostdlib -ffreestanding -I.
.SUFFIXES: .s .o .c
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.s
$(AS) -mcpu=arm926ej-s $< -o $@
ASM_S_FILES = $(wildcard system/asm/*.s)
ASM_O_FILES = $(ASM_S_FILES:.s=.o)
CFILES = $(wildcard devices/*.c) $(wildcard devices/*/*.c) $(wildcard system/*.c) $(wildcard system/*/*.c)
COFILES = $(CFILES:.c=.o)
OFILES = $(ASM_O_FILES) $(COFILES)
all: kernel.bin
kernel.elf: ${OFILES}
$(LD) -T boot.ld -o $@ $^
kernel.bin: kernel.elf
$(OBJCOPY) -O binary $< $@
clean:
rm -f *.o */*.o */*/*.o *.elf *.bin
run: kernel.bin
qemu-system-arm -M versatilepb -m 128M -nographic -kernel kernel.bin