@@ -91,6 +91,12 @@ CXX_OBJ_NEON_D32 = $(ARTIFACT_BIN)/main/arm/neon-d32.o
91
91
CXX_OBJ_AARCH64 = $(ARTIFACT_BIN ) /main/aarch64/aarch64.o
92
92
CXX_OBJ_ASIMD = $(ARTIFACT_BIN ) /main/aarch64/asimd.o
93
93
CXX_OBJ = $(CXX_OBJ_MAIN ) $(CXX_OBJ_EXT )
94
+ CXX_OBJ_ALL = \
95
+ $(CXX_OBJ_MAIN ) \
96
+ $(CXX_OBJ_EXPORT ) \
97
+ $(CXX_OBJ_EXT ) \
98
+ $(CXX_OBJ_TEST ) \
99
+ $(CXX_OBJ_NOTEST )
94
100
95
101
ifeq ($(ARCHITECTURE_FAMILY ) ,ia32)
96
102
CXX_OBJ_EXT += $(CXX_OBJ_X86 ) $(CXX_OBJ_SSE ) $(CXX_OBJ_SSE2 ) $(CXX_OBJ_SSE3 ) $(CXX_OBJ_SSE4 ) $(CXX_OBJ_AVX ) $(CXX_OBJ_AVX2 )
@@ -107,6 +113,7 @@ CXX_FILE = $(patsubst $(ARTIFACT_BIN)/%.o,%.cpp, $(@))
107
113
CXX_HDR_PATHS = $(foreach hdr,$(ARTIFACT_HEADERS ) ,$(ARTIFACT_INC ) /$(hdr ) )
108
114
CXX_HEADERS = $(foreach path,$(CXX_HDR_PATHS ) ,$(call rwildcard, $(path ) , * .h) )
109
115
CXX_INSTHEADERS = $(patsubst $(ARTIFACT_INC ) /% ,$(DESTDIR )$(INCDIR ) /% ,$(CXX_HEADERS ) )
116
+ DEP_FILE = $(patsubst % .o,% .d, $(@ ) )
110
117
111
118
CXX_SSE_CFLAGS = -mmmx -m3dnow -msse
112
119
CXX_SSE2_CFLAGS = $(CXX_SSE_CFLAGS ) -msse2
@@ -128,41 +135,21 @@ DEP_CXX_FILE = $(patsubst $(ARTIFACT_BIN)/%.d,%.cpp,$(@))
128
135
DEP_DEP_FILE = $(patsubst $(ARTIFACT_BIN ) /% .d,% .o,$(@ ) )
129
136
130
137
.DEFAULT_GOAL = all
131
- .PHONY : compile depend dep_clean all install uninstall
138
+ .PHONY : compile all install uninstall
132
139
.PHONY : $(ARTIFACT_DEPS )
133
140
134
- # Dependencies
135
- dep_clean :
136
-
137
- $(DEP_CXX ) : dep_clean
138
- echo " dep [$( ARTIFACT_NAME) ] $( DEP_CXX_FILE) "
139
- mkdir -p $(dir $(@ ) )
140
- $(CXX ) -MM -MT " \$ $( $( ARTIFACT_ID) _BIN) /$( DEP_DEP_FILE) " -MF $(@ ) $(DEP_CXX_FILE ) $(CXXFLAGS ) $(INCLUDE ) $(ARTIFACT_DEPFLAGS )
141
-
142
- depend : $(DEP_CXX )
143
- $(foreach dep,$(ARTIFACT_DEP_LIST ) ,\
144
- $(if $($(dep ) _INC) , \
145
- $(eval REPLACEMENT = $(shell echo "$($(dep ) _INC) " | sed -E "s/\//\\\\\\\\\//g") ) \
146
- $(eval SED_RULES += s/$(REPLACEMENT ) /\$$$$\\($(dep ) _INC\\) /g; )\
147
- )\
148
- $(if $($(dep ) _BIN) , \
149
- $(eval REPLACEMENT = $(shell echo "$($(dep ) _BIN) " | sed -E "s/\//\\\\\\\\\//g") ) \
150
- $(eval SED_RULES += s/$(REPLACEMENT ) /\\$$$$\\($(dep ) _BIN\\) /g; )\
151
- )\
152
- )
153
- cat $(DEP_CXX ) | sed -E " $( SED_RULES) " > Makefile.$(ARCHITECTURE_FAMILY ) .d
154
-
141
+ # Compile dependencies
155
142
$(ARTIFACT_DEPS ) :
156
143
echo " make $( notdir $( $( @) _OBJ) ) "
157
144
$(MAKE ) -C " $( $( @) _PATH) " compile VERBOSE=" $( VERBOSE) " CONFIG=" $( CONFIG) " DEMO_TEST=" 0" BUILD_HOST=" $( BUILD_HOST) "
158
145
159
146
# Compilation
160
147
compile : $(ARTIFACT_OBJ )
161
148
162
- $(CXX_OBJ_MAIN ) $( CXX_OBJ_EXPORT ) $( CXX_OBJ_EXT ) $( CXX_OBJ_TEST ) $( CXX_OBJ_NOTEST ) :
149
+ $(CXX_OBJ_ALL ) :
163
150
echo " $( $( HOST) CXX) [$( ARTIFACT_NAME) ] $( CXX_FILE) "
164
151
mkdir -p $(dir $@ )
165
- $($(HOST ) CXX) -o $(@ ) -c $(CXX_FILE ) -fPIC $($(HOST ) CXXFLAGS) $(ARTIFACT_MFLAGS ) $($(HOST ) EXT_FLAGS) $(INCLUDE ) $(ARTIFACT_CFLAGS )
152
+ $($(HOST ) CXX) -o $(@ ) -c $(CXX_FILE ) -fPIC $($(HOST ) CXXFLAGS) $(ARTIFACT_MFLAGS ) $($(HOST ) EXT_FLAGS) $(INCLUDE ) $(ARTIFACT_CFLAGS ) -MMD -MP -MF $( DEP_FILE ) -MT $( @ )
166
153
167
154
# Producing large object files
168
155
$(ARTIFACT_OBJ ) : $(CXX_OBJ )
@@ -235,4 +222,4 @@ $(CXX_OBJ_NEON_D32): EXT_FLAGS=$(CXX_NEON_D32_CFLAGS)
235
222
$(CXX_OBJ_ASIMD ) : EXT_FLAGS=$(CXX_ASIMD_CFLAGS )
236
223
237
224
# Dependencies
238
- -include $(CURDIR ) /Makefile. $( ARCHITECTURE_FAMILY ) .d
225
+ -include $(foreach objfile, $( CXX_OBJ_ALL ) , $( patsubst % .o, % .d, $( objfile ) ) )
0 commit comments