# STM8S003F3P6TR PB5独立LED测试工程。
# 本工程不包含Bootloader；测试主程序按0x8500链接，用于和汇编Bootloader合并。

PROJECT := pb5_led_test
BUILD_DIR := build
CC := sdcc
PACKIHX := packihx

CFLAGS := -mstm8 --std-c99 --opt-code-size -Iinclude
LDFLAGS := -mstm8 --out-fmt-ihx --code-loc 0x8000
APP_LDFLAGS := -mstm8 --out-fmt-ihx --code-loc 0x8500

OBJECT := $(BUILD_DIR)/main.rel
IHX := $(BUILD_DIR)/$(PROJECT).ihx
HEX := $(BUILD_DIR)/$(PROJECT).hex
APP_IHX := $(BUILD_DIR)/$(PROJECT)_app.ihx
APP_HEX := $(BUILD_DIR)/$(PROJECT)_app.hex

.PHONY: all app clean

all: app

# 生成供Bootloader跳转测试使用的主程序镜像，链接地址必须为0x8500。
app: $(APP_HEX)

$(APP_HEX): $(APP_IHX)
	$(PACKIHX) $< > $@

$(APP_IHX): $(OBJECT)
	@mkdir -p $(BUILD_DIR)
	$(CC) $(APP_LDFLAGS) -o $@ $<

$(HEX): $(IHX)
	$(PACKIHX) $< > $@

$(IHX): $(OBJECT)
	@mkdir -p $(BUILD_DIR)
	$(CC) $(LDFLAGS) -o $@ $<

$(OBJECT): src/main.c
	@mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -rf $(BUILD_DIR)
