# Makefile for CHIBI PC-09 Firmware

.PHONY: all clean
.IGNORE: clean
.DEFAULT_GOAL := all

# ------------------------------------------------------------------------------
# Project Defaults & Folders
# ------------------------------------------------------------------------------

TARGET  := boot
TARGROM := $(TARGET).bin
SRCDIR  := src/
BUILDDIR := build/
SRCS    := $(wildcard $(SRCDIR)*.s)
OBJS    := $(patsubst $(SRCDIR)%.s,$(BUILDDIR)%.o,$(SRCS))
INCS    := $(wildcard $(SRCDIR)*.inc)

# ------------------------------------------------------------------------------
# Toolchain Definitions
# ------------------------------------------------------------------------------

AS  := lwasm
LD  := lwlink
FIX := mot2bin

ASFLAGS := -f obj
LDFLAGS := -f srec -m map.txt -s linkscript

# ------------------------------------------------------------------------------
# Rules and Phony Targets
# ------------------------------------------------------------------------------

all: $(TARGROM)

# Fix srec into flashable bin file
$(TARGROM): $(TARGET).s19
	$(FIX) -out $@ $<

# Link objects
$(TARGET).s19: $(OBJS)
	$(LD) $(LDFLAGS) -o $@ $^

# Assemble objects
$(OBJS): $(BUILDDIR)%.o : $(SRCDIR)%.s
	-@mkdir -p $(BUILDDIR)
	$(AS) $(ASFLAGS) -o $@ $<

.IGNORE: clean
clean:
	@echo 'Cleaning up intermediary files...'
	@rm -rv $(TARGROM) $(TARGET).s19 map.txt $(BUILDDIR)
