############################################################
# module.mak 用于单独模块编译
############################################################
include $(_COMMON_MAKE_PATH)/cpucompileoptioncfg.mak
include $(_DIV_SOURCE_PATH)/all_cfg.mak
FUNC_TYPE = PS_MP
MODULE_NAME = $(MAKECMDGOALS)
TMP_PATH = $(_TARGET_PATH)/tmp
# 路径信息
SRC_PATH = $(_PS_PATH)/$(MODULE_NAME)/source
OBJ_PATH = $(TMP_PATH)/$(MODULE_NAME)/obj
DEP_PATH = $(TMP_PATH)/$(MODULE_NAME)/dep
MODULE_OBJ = $(TMP_PATH)/$(MODULE_NAME).obj
SRCS = $(wildcard $(SRC_PATH)/*.c)
OBJS = $(addprefix $(OBJ_PATH)/,$(subst .c,.o,$(notdir $(SRCS))))
DEPS = $(addprefix $(DEP_PATH)/,$(subst .c,.d,$(notdir $(SRCS))))
# 终极目标: module.obj
$(MODULE_NAME):$(MODULE_OBJ)
$(MODULE_OBJ):$(OBJS)
$(LD) -r -o $@ $+
@echo ouput $@
$(DEP_PATH)/%.d:$(SRC_PATH)/%.c
@echo . create dep file $@
@if [ ! -d $(DEP_PATH) ]; then $(MKDIR) $(DEP_PATH); fi
$(CC) $(ALL_DEPCFLAGS) -c $< | \
sed "s/$*\.o[ :]*/$(subst /,\/,$(OBJ_PATH))\/$*.o \
$(subst /,\/,$(DEP_PATH))\/$*.d \: /g" > $@
$(OBJ_PATH)/%.o:$(SRC_PATH)/*.c
@echo . compiling file: $<
@if [ ! -d $(OBJ_PATH) ]; then $(MKDIR) $(OBJ_PATH); fi
$(CC) $(ALL_CFLAGS) -o $@ -c $<
# clean一般是最后一个目标
clean:
@rm -rf $(TMP_PATH)
# 包括依赖文件
-include $(DEPS)