monitor/Makefile

68 lines
1.3 KiB
Makefile

# BUILDDIR=.build
# _BIN= rom_monitor.bin ram_monitor.bin MONITOR.COM
# BIN = $(patsubst %,$(BUILDDIR)/%,$(_BIN))
#
# .PHONY: all clean
#
# all: $(BUILDDIR) $(BIN)
#
# $(BUILDDIR)/%.bin: src/%.z80 | $(BUILDDIR)
# @zasm -w -i $< -o $@
#
# $(BUILDDIR)/%.COM: src/%.z80 | $(BUILDDIR)
# @zasm -w -i $< -o $@
#
# $(BUILDDIR):
# @mkdir $(BUILDDIR)
#
# clean:
# @rm -df $(BUILDDIR)/*.bin $(BUILDDIR)/*.COM $(BUILDDIR)/*.lst .build
AS = sdasz80
LD = sdldz80
OBJCOPY = sdobjcopy
BUILD = .build
TARGET_ROM = rom_monitor
TARGET_COM = MONITOR
ASFLAGS = -plosff
SRC_ROM = \
src/monitor.s \
src/rom.s
SRC_COM = \
src/monitor.s \
src/cpm.s
OBJ_ROM = $(addprefix $(BUILD)/, $(notdir $(SRC_ROM:.s=.rel)))
OBJ_COM = $(addprefix $(BUILD)/, $(notdir $(SRC_COM:.s=.rel)))
vpath %.s $(sort $(dir $(SRC_ROM)))
vpath %.s $(sort $(dir $(SRC_COM)))
.PHONY: all clean
all: $(BUILD) $(BUILD)/$(TARGET_ROM).bin $(BUILD)/$(TARGET_COM).COM
$(BUILD)/%.rel: %.s Makefile | $(BUILD)
$(AS) $(ASFLAGS) $@ $<
$(BUILD)/$(TARGET_ROM).ihx: $(OBJ_ROM)
$(LD) -im1 $@ $(OBJ_ROM) -b BOOT=0x0000
$(BUILD)/$(TARGET_COM).ihx: $(OBJ_COM)
$(LD) -im1 $@ $(OBJ_COM) -b BOOT=0x0100 -b MAIN=0xE200
%.bin: %.ihx
$(OBJCOPY) -I ihex -O binary $< $@
%.COM: %.ihx
$(OBJCOPY) -I ihex -O binary $< $@
$(BUILD):
mkdir $@
clean:
rm -fr $(BUILD)