ROOT_DIR := ../
TARGET = USB_CDC_SDCC
BUILD_DIR =  ./build/

#obj2占位符抵消../
BUILD_OBJ_DIR =  ./build/obj/obj2/
PREFIX = 
 
CC = $(PREFIX)sdcc 
AS = $(PREFIX)sdas8051 #sdc51

 
RM = -rm -rf
MAKE = make 
 
MCU_MODEL = -mmcs51
MODEL  = --model-large
CODE_SIZE = --code-size 65536  # 64KB 的 Flash 存储器
IRAM_SIZE = --iram-size 2048    # 2KB 的内部 SRAM
XRAM_SIZE = --xram-size 32768   # 32KB 的内部扩展 RAM
 
AS_DEFS = 
C_DEFS = 
 
# includes,头文件必须包含在以下文件中
AS_INCLUDES = 
INC_PATHS =  \
-I$(ROOT_DIR)User \
-I$(ROOT_DIR)Library

 
# libraries
USER_SRC =  $(ROOT_DIR)Library

C_SOURCES := $(wildcard   $(USER_SRC)/*.c)

 # 对象文件
C_OBJECTS := $(patsubst %.c, $(BUILD_OBJ_DIR)/%.rel, $(C_SOURCES))

# 最终目标文件
ALL_OBJECTS := $(C_OBJECTS) 

# 规则
.PHONY: all clean mk

# 主要目标
all: $(BUILD_DIR)/$(TARGET).lib

# 清理
clean:
	-rm -rf $(BUILD_DIR)/*

# 编译
$(BUILD_OBJ_DIR)/%.rel: %.c
	@echo "Compiling $< into $(dir $@)"
	mkdir -p $(dir $@) | $(CC) -c -o $@ $(MCU_MODEL) $(INC_PATHS) $(MODEL) --out-fmt-ihx --debug $<

# 链接生成
$(BUILD_DIR)/$(TARGET).lib: $(ALL_OBJECTS)
	@echo "Compiling $^ into $(dir $@)"
	mkdir -p $(dir $@) | sdar rv $@ $^


# 删除构建目录
clean-build-dir:
	rm -rf $(BUILD_DIR)