X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fwebcc.git;a=blobdiff_plain;f=make%2Flib%2Frules.mk;fp=make%2Flib%2Frules.mk;h=c798491a9db9f361068e0e02f3d09860a9b041f1;hp=8bac388f1c53045a79f1da2fef7c96b3d60b32f8;hb=5d7ddfc424292ca110d60ae38d64d83fa9f16a52;hpb=695d24d66eff41e489c7016798da5311bf81777e diff --git a/make/lib/rules.mk b/make/lib/rules.mk index 8bac388..c798491 100644 --- a/make/lib/rules.mk +++ b/make/lib/rules.mk @@ -107,6 +107,8 @@ $(eval DRIVER_LDFILE := $(DRV_LD)) $(eval $1_LD := $(file <$(DRIVER_LDFILE))) $(eval undefine DRIVER_LDINFO) $(eval undefine DRIVER_LDINFO_D) +$(eval DRIVER_LDINFO += $(1:%.$2=%.$($2_OBJ))) +$(eval DRIVER_LDINFO_D += $(1:$(dir $1)%.$2=$(dir $1).$($2_DBG)/%.$($2_OBJ))) $(foreach ldobj,$($1_LD), $(if $(filter -l%,$(ldobj)), $(eval ldlibname := $(ldobj:-l%=%)) @@ -129,10 +131,6 @@ $(eval DRIVER_LDINFO += $(LIB_DIR)/$(deplib).$($2_AROBJ)) $(eval DRIVER_LDINFO_D += $(LIB_DIR)/.$($2_DBG)/$(deplib).$($2_AROBJ))) )) ) -$(eval DRIVER_LDINFO += $(1:%.$2=%.$($2_OBJ))) -$(eval DRIVER_LDINFO_D += $(1:$(dir $1)%.$2=$(dir $1).$($2_DBG)/%.$($2_OBJ))) -$(info DRIVER_INFO: $(DRIVER_LDINFO)) -$(info DRIVER_INFO:: $(DRIVER_LDINFO_D)) # Directory setup $(eval MAKE_DIRS += $(dir $(DRIVER_TARG))) @@ -147,10 +145,6 @@ $(DRIVER_TARG): $(filter-out -l%,$(DRIVER_LDINFO)) | $(dir $(DRIVER_TARG)) $(eval MAKE_DIRS += $(DRIVER_TARG_DIR).$($2_DBG)/) $(DRIVER_TARG_D): $(filter-out -l%,$(DRIVER_LDINFO_D)) | $(dir $(DRIVER_TARG_D)) $($2_C) $($2_FLAGS) $(DRIVER_LDINFO_D) -o $$@ -# Make a rule to run this driver after building -$(DRIVER_NAME)-run: $(DRIVER_TARG) - $(DRIVER_TARG) -$(DRIVER_NAME)-d: $(DRIVER_TARG_D) #/SRC_LANG_DRVRULE############################################################### endef @@ -312,7 +306,7 @@ $(eval $2_INIT := t) #/LANG_LIB_INIT################################################################# endef -# Initialize data for supported lanaguages ###################################### +# Initialize data for supported lanaguages ##################################### define LANG_INIT = $(eval $1_OBJ := $($($1_C)_OBJ) @@ -351,5 +345,19 @@ $(module)_TRG += $($(module)_$1_TRG) $(foreach src,$(filter $(SRC_DIR)/$(module)/%,$($1_MOD_SRC)),\ $(eval $(call SRC_LANG_RULE,$(src),$1))\ )) -#/LANG_INIT###################################################################### +#/LANG_INIT##################################################################### +endef + +# Create a phony target and rule for the specified source driver +define DRVSRC_DRIVERPHONY +$(eval PH_TARG := $(basename $(notdir $1))) +$(eval PH_TARGS += $(PH_TARG)) +$(eval PH_LANG := $(lastword $(subst ., ,$1))) +$(eval RL_TARG := $(basename $(subst $(SRC_DIR),$(ROOT_DIR),$1))$($(PH_LANG)_OUT)) +.PHONY: $(PH_TARG) $(PH_TARG:%=%-d) +$(PH_TARG): $(RL_TARG) + @echo Built [$$@] at ./$$< +$(PH_TARG:%=%-d): $(RL_TARG:%=%-d) + @echo Build [$$@] with debugging information at ./$$< +#/SRC_SIMLIST_PHONYRULE ######################################################## endef