44
44
ARTIFACT_NAME = $($(ARTIFACT_ID ) _NAME)
45
45
ARTIFACT_VERSION = $($(ARTIFACT_ID ) _VERSION)
46
46
ARTIFACT_DEPENDENCIES = $(addprefix $(HOST ) ,$(DEPENDENCIES ) )
47
+ ARTIFACT_DEP_LIST = $(addprefix $(HOST ) ,$(call uniq, $(DEPENDENCIES ) $(TEST_DEPENDENCIES ) $(HOST )$(ARTIFACT_ID ) ) )
47
48
48
49
ARTIFACT_BIN = $($(HOST )$(ARTIFACT_ID ) _BIN)
49
50
ARTIFACT_INC = $($(HOST )$(ARTIFACT_ID ) _INC)
@@ -59,6 +60,7 @@ ARTIFACT_SLIBLINK = $(LIBRARY_PREFIX)$(ARTIFACT_NAME)$(STATICLIB_EXT)
59
60
ARTIFACT_PC = $(ARTIFACT_BIN ) /$(ARTIFACT_NAME )$(PKGCONFIG_EXT )
60
61
ARTIFACT_DEPS = $(call dquery, OBJ, $(ARTIFACT_DEPENDENCIES ) )
61
62
ARTIFACT_CFLAGS = $(call query, CFLAGS, $(ARTIFACT_DEPENDENCIES ) $(HOST )$(ARTIFACT_ID ) )
63
+ ARTIFACT_DEPFLAGS = $(call query, CFLAGS, $(ARTIFACT_DEP_LIST ) )
62
64
ARTIFACT_LDFLAGS = $(call query, LDFLAGS, $(ARTIFACT_DEPENDENCIES ) $(HOST )$(ARTIFACT_ID ) )
63
65
ARTIFACT_OBJFILES = $(call query, OBJ, $(ARTIFACT_DEPENDENCIES ) $(HOST )$(ARTIFACT_ID ) )
64
66
@@ -105,15 +107,17 @@ dep_clean:
105
107
$(DEP_CXX ) : dep_clean
106
108
echo " dep [$( ARTIFACT_NAME) ] $( DEP_CXX_FILE) "
107
109
mkdir -p $(dir $(@ ) )
108
- $(CXX ) -MM -MT " \$ $( $( ARTIFACT_ID) _BIN) /$( DEP_DEP_FILE) " -MF $(@ ) $(DEP_CXX_FILE ) $(CXXFLAGS ) $(INCLUDE ) $(ARTIFACT_CFLAGS )
110
+ $(CXX ) -MM -MT " \$ $( $( ARTIFACT_ID) _BIN) /$( DEP_DEP_FILE) " -MF $(@ ) $(DEP_CXX_FILE ) $(CXXFLAGS ) $(INCLUDE ) $(ARTIFACT_DEPFLAGS )
109
111
110
112
depend : $(DEP_CXX )
111
- $(foreach dep,$(ARTIFACT_DEPENDENCIES ) $( HOST )$( ARTIFACT_ID ) ,\
113
+ $(foreach dep,$(ARTIFACT_DEP_LIST ) ,\
112
114
$(if $($(dep ) _INC) , \
113
- $(eval SED_RULES += s/$(shell echo "$($(dep ) _INC) " | sed "s/\\//\\\\\//g") /\$$$$\\($(dep ) _INC\\) /g; )\
115
+ $(eval REPLACEMENT = $(shell echo "$($(dep ) _INC) " | sed -E "s/\//\\\\\\\\\//g") ) \
116
+ $(eval SED_RULES += s/$(REPLACEMENT ) /\$$$$\\($(dep ) _INC\\) /g; )\
114
117
)\
115
118
$(if $($(dep ) _BIN) , \
116
- $(eval SED_RULES += s/$(shell echo "$($(dep ) _BIN) " | sed "s/\\//\\\\\//g") /\\$$$$\\($(dep ) _BIN\\) /g; )\
119
+ $(eval REPLACEMENT = $(shell echo "$($(dep ) _BIN) " | sed -E "s/\//\\\\\\\\\//g") ) \
120
+ $(eval SED_RULES += s/$(REPLACEMENT ) /\\$$$$\\($(dep ) _BIN\\) /g; )\
117
121
)\
118
122
)
119
123
cat $(DEP_CXX ) | sed -E " $( SED_RULES) " > Makefile.d
0 commit comments