simplification of control
[henge/webcc.git] / make / lib / rules.mk
index 8bac388..c798491 100644 (file)
@@ -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