Add separate rules to generate dependencies files for C BPF build
This commit is contained in:
parent
86850ceac4
commit
6f193bf357
|
@ -147,14 +147,28 @@ define C_RULE
|
|||
$1: $2
|
||||
@echo "[cc] $1 ($2)"
|
||||
$(_@)mkdir -p $(dir $1)
|
||||
$(_@)$(CC) $(BPF_C_FLAGS) -o $1 -c $2 -MD -MF $(1:.o=.d)
|
||||
$(_@)$(CC) $(BPF_C_FLAGS) -o $1 -c $2
|
||||
endef
|
||||
|
||||
define CC_RULE
|
||||
$1: $2
|
||||
@echo "[cxx] $1 ($2)"
|
||||
$(_@)mkdir -p $(dir $1)
|
||||
$(_@)$(CXX) $(BPF_CXX_FLAGS) -o $1 -c $2 -MD -MF $(1:.o=.d)
|
||||
$(_@)$(CXX) $(BPF_CXX_FLAGS) -o $1 -c $2
|
||||
endef
|
||||
|
||||
define D_RULE
|
||||
$1: $2 $(LOCAL_PATH)/bpf.mk
|
||||
@echo "[GEN] $1 ($2)"
|
||||
$(_@)mkdir -p $(dir $1)
|
||||
$(_@)$(CC) -M -MT '$(basename $1).o' $(BPF_C_FLAGS) $2 | sed 's,\($(basename $1)\)\.o[ :]*,\1.o $1 : ,g' > $1
|
||||
endef
|
||||
|
||||
define DXX_RULE
|
||||
$1: $2 $(LOCAL_PATH)/bpf.mk
|
||||
@echo "[GEN] $1 ($2)"
|
||||
$(_@)mkdir -p $(dir $1)
|
||||
$(_@)$(CXX) -M -MT '$(basename $1).o' $(BPF_CXX_FLAGS) $2 | sed 's,\($(basename $1)\)\.o[ :]*,\1.o $1 : ,g' > $1
|
||||
endef
|
||||
|
||||
define O_RULE
|
||||
|
@ -180,7 +194,7 @@ define TEST_C_RULE
|
|||
$1: $2
|
||||
@echo "[test cc] $1 ($2)"
|
||||
$(_@)mkdir -p $(dir $1)
|
||||
$(_@)$(CC) $(TEST_C_FLAGS) -o $1 $2 -MD -MF $(1:.o=.d)
|
||||
$(_@)$(CC) $(TEST_C_FLAGS) -o $1 $2
|
||||
$(_@)$(MACOS_ADJUST_TEST_DYLIB) $1
|
||||
endef
|
||||
|
||||
|
@ -188,10 +202,24 @@ define TEST_CC_RULE
|
|||
$1: $2
|
||||
@echo "[test cxx] $1 ($2)"
|
||||
$(_@)mkdir -p $(dir $1)
|
||||
$(_@)$(CXX) $(TEST_CXX_FLAGS) -o $1 $2 -MD -MF $(1:.o=.d)
|
||||
$(_@)$(CXX) $(TEST_CXX_FLAGS) -o $1 $2
|
||||
$(_@)$(MACOS_ADJUST_TEST_DYLIB) $1
|
||||
endef
|
||||
|
||||
define TEST_D_RULE
|
||||
$1: $2 $(LOCAL_PATH)/bpf.mk
|
||||
@echo "[GEN] $1 ($2)"
|
||||
$(_@)mkdir -p $(dir $1)
|
||||
$(_@)$(CC) -M -MT '$(basename $1)' $(TEST_C_FLAGS) $2 | sed 's,\($(basename $1)\)[ :]*,\1 $1 : ,g' > $1
|
||||
endef
|
||||
|
||||
define TEST_DXX_RULE
|
||||
$1: $2 $(LOCAL_PATH)/bpf.mk
|
||||
@echo "[GEN] $1 ($2)"
|
||||
$(_@)mkdir -p $(dir $1)
|
||||
$(_@)$(CXX) -M -MT '$(basename $1)' $(TEST_CXX_FLAGS) $2 | sed 's,\($(basename $1)\)[ :]*,\1 $1 : ,g' > $1
|
||||
endef
|
||||
|
||||
define TEST_EXEC_RULE
|
||||
$1: $2
|
||||
$2$(\n)
|
||||
|
@ -223,8 +251,10 @@ $(foreach PROGRAM, $(PROGRAM_NAMES), \
|
|||
$(eval $($(PROGRAM)_SRCS): $(INSTALL_SH)) \
|
||||
$(eval $(call SO_RULE,$(OUT_DIR)/$(PROGRAM).so,$($(PROGRAM)_OBJS))) \
|
||||
$(foreach _,$(filter %.c,$($(PROGRAM)_SRCS)), \
|
||||
$(eval $(call D_RULE,$(subst $(SRC_DIR),$(OUT_DIR),$(_:%.c=%.d)),$_)) \
|
||||
$(eval $(call C_RULE,$(subst $(SRC_DIR),$(OUT_DIR),$(_:%.c=%.o)),$_))) \
|
||||
$(foreach _,$(filter %.cc,$($(PROGRAM)_SRCS)), \
|
||||
$(eval $(call DXX_RULE,$(subst $(SRC_DIR),$(OUT_DIR),$(_:%.cc=%.d)),$_)) \
|
||||
$(eval $(call CC_RULE,$(subst $(SRC_DIR),$(OUT_DIR),$(_:%.cc=%.o)),$_))) \
|
||||
\
|
||||
$(eval TESTS := $(notdir $(basename $(wildcard $(SRC_DIR)/$(PROGRAM)/$(TEST_PREFIX)*.c)))) \
|
||||
|
@ -236,8 +266,10 @@ $(foreach PROGRAM, $(PROGRAM_NAMES), \
|
|||
$(notdir $(wildcard $(SRC_DIR)/$(PROGRAM)/$(TEST).c $(SRC_DIR)/$(PROGRAM)/$(TEST).cc)))) \
|
||||
$(eval $($(TEST)_SRCS): $(INSTALL_SH)) \
|
||||
$(foreach _,$(filter %.c,$($(TEST)_SRCS)), \
|
||||
$(eval $(call TEST_D_RULE,$(subst $(SRC_DIR),$(OUT_DIR),$(_:%.c=%.d)),$_)) \
|
||||
$(eval $(call TEST_C_RULE,$(subst $(SRC_DIR),$(OUT_DIR),$(_:%.c=%)),$_))) \
|
||||
$(foreach _,$(filter %.cc, $($(TEST)_SRCS)), \
|
||||
$(eval $(call TEST_DXX_RULE,$(subst $(SRC_DIR),$(OUT_DIR),$(_:%.cc=%.d)),$_)) \
|
||||
$(eval $(call TEST_CC_RULE,$(subst $(SRC_DIR),$(OUT_DIR),$(_:%.cc=%)),$_))) \
|
||||
$(eval $(call TEST_EXEC_RULE,$(TEST),$(addprefix $(OUT_DIR)/$(PROGRAM)/, $(TEST)))) \
|
||||
) \
|
||||
|
|
Loading…
Reference in New Issue