67 lines
1.3 KiB
Makefile
67 lines
1.3 KiB
Makefile
# Toolchain definitions
|
|
CC = sdcc
|
|
LD = stm8-ld
|
|
AS = stm8-as
|
|
|
|
MKDIR = mkdir
|
|
CP = cp
|
|
|
|
DEFINE = -DSTM8S003
|
|
|
|
# Include settings
|
|
INCLUDE = $(addprefix -I, inc/)
|
|
|
|
# Assembler flags
|
|
AS_FLAGS =
|
|
|
|
# Compiler flags
|
|
CC_FLAGS = -mstm8 --out-fmt-elf -c --debug --opt-code-size --asm=gas --function-sections --data-sections $(INCLUDE)
|
|
|
|
# Path definitions
|
|
PROJECT = STM8
|
|
|
|
# Objects definition
|
|
# Compiled objects list
|
|
OBJ_DIR = obj
|
|
VPATH += src
|
|
OBJECTS = $(addprefix $(OBJ_DIR)/, main.o bar.o)
|
|
|
|
# Linker flags
|
|
LD_FLAGS = -T./elf32stm8s003f3.x --print-memory-usage --gc-sections -Map $(OBJ_DIR)/map_$(PROJECT).map
|
|
LIB_DIRS = $(addprefix -L, /usr/local/share/sdcc/lib/stm8)
|
|
|
|
# Source dependencies:
|
|
DEPS = $(OBJECTS:.o=.d)
|
|
ASM_DEPS = $(OBJECTS:.o=.asm)
|
|
|
|
# ------------------------------------
|
|
# Instructions
|
|
# ------------------------------------
|
|
|
|
$(OBJ_DIR)/$(PROJECT).elf: $(OBJECTS)
|
|
$(LD) $^ -o $@ $(LD_FLAGS) $(LIBS)
|
|
|
|
#-include $(DEPS)
|
|
|
|
clean:
|
|
rm -rf $(OBJ_DIR)/
|
|
|
|
# Uncomment for standard generation
|
|
|
|
$(OBJ_DIR)/%.d: %.c
|
|
@$(MKDIR) -p $(OBJ_DIR)
|
|
$(CC) $< $(DEFINE) $(CC_FLAGS) -MM > $@
|
|
|
|
$(OBJ_DIR)/%.o: %.c $(OBJ_DIR)/%.d
|
|
@$(MKDIR) -p $(OBJ_DIR)
|
|
$(CC) $< $(DEFINE) $(CC_FLAGS) -o $@
|
|
|
|
$(OBJ_DIR)/%.o: %.asm
|
|
@$(MKDIR) -p $(OBJ_DIR)
|
|
$(AS) $< $(AS_FLAGS) -o $@
|
|
|
|
# ----------------------------------------
|
|
# Phony targets
|
|
# ----------------------------------------
|
|
.PHONY: clean debug
|