.PHONY: all mrproper

PREFIX  = sh3eb-elf-
AS      = $(PREFIX)as
CC      = $(PREFIX)gcc
CXX     = $(PREFIX)g++
OBJCOPY = $(PREFIX)objcopy
WRAPPER = g1a-wrapper

FLAGS   = -m3 -mb -Os -nostdlib
CFLAGS  = -W -Wall -Wno-main -pedantic -std=c11
INCLUDE = -I. -Iinclude -isystem stdinc
LIBS    = -Llib -lgcc -lfx
NAME    = webcalc

OBJ     = build/css.o build/Disp.o build/disp_asm.o build/DOM.o build/html.o \
          build/libfont-3.1.o build/memory.o build/tex-0.9.o build/tools.o \
          build/WebCalc.o build/stdref.o build/crt0.o \
          build/font5.o build/font7.o build/font9.o build/fontm.o
ICON    = bin/icon.bmp

all: build/$(NAME).bin
	$(WRAPPER) build/$(NAME).bin -o bin/$(NAME).g1a -i $(ICON)
	cp bin/$(NAME).g1a ~/Documents/VirtualBox
	@ echo "Build finished."
	@ stat -c "Output size is %s bytes." bin/webcalc.g1a

build/$(NAME).bin: build/$(NAME).elf
	$(OBJCOPY) -R .comment -R .bss -O binary build/$(NAME).elf build/$(NAME).bin

build/$(NAME).elf: bin/addin.ld $(OBJ)
	$(CC) $(FLAGS) $(OBJ) -T"bin/addin.ld" -o build/$(NAME).elf $(LIBS)

build/%.o: %.c
	$(CC) $(FLAGS) -c $^ -o $@ $(INCLUDE) $(CFLAGS)

build/%.o: %.s
	$(AS) -c $^ -o $@

build/%.o: resources/%.fxf
	$(OBJCOPY) --input binary --output elf32-sh --binary-architecture sh3 $^ $@

mrproper:
	rm -f build/*.o
	rm -f build/$(NAME).elf
	rm -f build/$(NAME).bin
