36 lines
No EOL
807 B
Makefile
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
|