Add separate rules to generate dependencies files for C BPF build
This commit is contained in:
committed by
Justin Starry
parent
3a1b2c8c9e
commit
c8d9e6c8c8
@ -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
|
||||
LD_LIBRARY_PATH=$(TESTFRAMEWORK_RPATH) \
|
||||
@ -224,8 +252,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)))) \
|
||||
@ -237,8 +267,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)))) \
|
||||
) \
|
||||
|
Reference in New Issue
Block a user