CC=arm-elf-eabi-gcc
LD=arm-elf-eabi-gcc
AS=arm-elf-eabi-gcc
OC=arm-elf-eabi-objcopy
ELF2SB=./elftosb2
ELF2SB_CMD=recovery.db
ELF2SB_KEY=fuze+_key_file.txt
CFLAGS=-Wall -O2 -std=c99 -nostdlib -ffreestanding -mcpu=arm926ej-s -fomit-frame-pointer
ASFLAGS=$(CFLAGS) -D__ASSEMBLER__
OCFLAGS=
LINKER_FILE=recovery.lds
LDFLAGS=-lgcc -Os -nostdlib -T$(LINKER_FILE) -Wl,-Map,kernel.map
SRC_C=$(wildcard *.c)
SRC_S=$(wildcard *.S)
OBJ_C=$(SRC_C:.c=.o)
OBJ_S=$(SRC_S:.S=.o)
OBJ=$(OBJ_C) $(OBJ_S)
OBJ_EXCEPT_CRT0=$(filter-out crt0.o,$(OBJ))
all: recovery.sb
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
%.o: %.S
$(AS) $(ASFLAGS) -c -o $@ $<
recovery.elf: $(OBJ)
$(LD) $(LDFLAGS) -o $@ $(OBJ_EXCEPT_CRT0)
recovery.sb: recovery.elf
$(ELF2SB) -c $(ELF2SB_CMD) -k $(ELF2SB_KEY) -d -V -o $@
clean:
rm -rf $(OBJ)