NAME ?= spireader.classics
LS = ls.x

LIBGCC = 

#CROSS  ?= arm-none-eabi-
CROSS  ?= arm-elf-eabi-
AS      = $(CROSS)as
CC      = $(CROSS)gcc
LD      = $(CROSS)ld
NM      = $(CROSS)nm
OBJCOPY = $(CROSS)objcopy
#CFLAGS += -Os -W -Wall -pedantic -ffreestanding -fomit-frame-pointer -ffunction-sections
CFLAGS += -I./ -Os -W -Wall -pedantic -ffreestanding -fomit-frame-pointer -ffunction-sections
LDFLAGS+= -T$(LS) $(LIBGCC) --gc-sections

BIN   = $(NAME).bin
ELF   = $(NAME).elf
SYM   = $(NAME).sym
OBJS  = main.o

all: $(BIN)

$(ELF): $(OBJS) $(LS) init.o
	$(LD) -Map $(NAME).map -o $@ $(OBJS) $(LIBS) $(LDFLAGS)

$(BIN): $(ELF)
	$(OBJCOPY) -O binary $< $@

%.o: %.c
	$(CC) $(CFLAGS) -Wa,-alhn=$*.lst -c $< -o $@

%.o: %.S
	$(AS) -alhn=$*.lst $< -o $@

clean:
	$(RM) *.lst $(NAME).map init.o $(OBJS) $(BIN) $(ELF)
