blob: a0089267a6f1ba6ad5ca1d15832501f2ca26acf4 [file] [log] [blame]
# /*****************************************************************************
#* °æÈ¨ËùÓÐ (C)2015, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
#*
#* ÎļþÃû³Æ: mdl_rules.mk
#* Îļþ±êʶ: mdl_rules.mk
#* ÄÚÈÝÕªÒª: Ä£¿éÎļþ¹æÔò
#* ʹÓ÷½·¨: include mdl_rules.mk
#*
#* ÐÞ¸ÄÈÕÆÚ °æ±¾ºÅ Ð޸ıê¼Ç ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
#* -----------------------------------------------------------------------------
#* 2015/05/20 V1.0 ÕûºÏ ÁõÑÇÄÏ ÕûºÏ
#*
# ******************************************************************************/
#===============================================================================
# ¶ÔÏóÎļþ¼¯ºÏ¹æÔò
#===============================================================================
_ALL_OBJECTS = $(addprefix $(_MDL_OBJ_PATH)/, \
$(subst .c,.o, $(notdir $(_C_SOURCE))))
_ALL_OBJECTS += $(addprefix $(_MDL_OBJ_PATH)/, \
$(subst .cpp,.o, $(notdir $(_CPP_SOURCE))))
_ALL_OBJECTS += $(addprefix $(_MDL_OBJ_PATH)/, \
$(subst .s,.o, $(notdir $(_s_SOURCE))))
_ALL_OBJECTS += $(addprefix $(_MDL_OBJ_PATH)/, \
$(subst .S,.o, $(notdir $(_S_SOURCE))))
ifeq ($(USE_ENABLE_LTO),yes)
ifneq ($(DISABLE_LTO_ONCE),yes)
CCFLAGS += -flto -fno-toplevel-reorder -fno-fat-lto-objects
endif
endif
#===============================================================================
# ¶ÔÏóÎļþÉú³É¹æÔò
#===============================================================================
$(_MDL_OBJ_PATH)/%.o:$(_MDL_SRC_PATH)/%.cpp
@$(ECHO) Compile $<
@-$(MKDIR) $(_MDL_OBJ_PATH)
$(VERB)$(CXX) $(CXXFLAGS) $(CPU_PUB_DEFINE) $(DEFINE) $(STDINCLUDE) $(INCLUDE) -c $< -o $@
@$(ECHO) Done!
$(_MDL_OBJ_PATH)/%.o:$(_MDL_SRC_PATH)/%.c
@$(ECHO) Compile $<
@-$(MKDIR) $(_MDL_OBJ_PATH)
ifeq ($(CONFIG_MIN_8M_VERSION), y)
$(VERB)$(CC) $(CCFLAGS) $(CPU_PUB_DEFINE) $(DEFINE) -Wno-builtin-macro-redefined -U __FILE__ -D '__FILE__=""' $(STDINCLUDE) $(INCLUDE) -c $< -o $@
else
$(VERB)$(CC) $(CCFLAGS) $(CPU_PUB_DEFINE) $(DEFINE) -Wno-builtin-macro-redefined -U __FILE__ -D '__FILE__="$(shell basename $<)"' $(STDINCLUDE) $(INCLUDE) -c $< -o $@
endif
@$(ECHO) Done!
$(_MDL_OBJ_PATH)/%.o:$(_MDL_SRC_PATH)/%.S
@$(ECHO) Compile $<
@-$(MKDIR) $(_MDL_OBJ_PATH)
@$(CC) $(CCFLAGS) $(ASFLAGS) $(CPU_PUB_DEFINE) $(DEFINE) -o $@ $(INCLUDE) $<
@$(ECHO) Done!
$(_MDL_OBJ_PATH)/%.o:$(_MDL_SRC_PATH)/%.s
@$(ECHO) Compile $<
@-$(MKDIR) $(_MDL_OBJ_PATH)
@$(ASM) $(ASFLAGS) -o $@ $(INCLUDE) $<
@$(ECHO) Done!
#===============================================================================
#¼ì²é¹æÔò
#===============================================================================
_ALL_LINT =
ifeq ($(LINTCHK), yes)
_ALL_LINT = $(addprefix $(_MDL_OBJ_PATH)/lnt/, \
$(subst .c,.lnt, $(notdir $(_C_SOURCE))))
$(_MDL_OBJ_PATH)/lnt/%.lnt:$(_MDL_SRC_PATH)/%.c
@$(ECHO) Lint $<
@-$(MKDIR) $(_MDL_OBJ_PATH)/lnt
@$(PCLINT) -u -b +fdi $(INCLUDE) $(STDINCLUDE) $(CPU_PUB_DEFINE) $(DEFINE) $(LINTOPTION) $<>>$(OBJ_PATH)/$(PRJ_NAME).lnt
@$(ECHO) Done!
endif
#===============================================================================
#Ä£¿é¹æÔò
#===============================================================================
default: mdl
clean: mdlclean
mdl:$(_ALL_OBJECTS) $(_ALL_LINT)
@$(ECHO) Compile module $(_MDL_NAME) done!
@$(ECHO) ""
mdlclean:
@-$(RM) $(_MDL_OBJ_PATH)/lnt/*
@-$(RMDIR) $(_MDL_OBJ_PATH)/lnt
@-$(RM) $(_MDL_OBJ_PATH)/*
@-$(RM) $(OBJ_PATH)/$(PRJ_NAME).lnt
@-$(RMDIR) $(_MDL_OBJ_PATH)
@$(ECHO) "--- clean obj file $(_MDL_OBJ_PATH)/* done."
@$(ECHO) ""