@@ -78,17 +78,19 @@ CXX_OBJ_TEST = $(patsubst %.cpp, $(ARTIFACT_BIN)/%.o, $(CXX_SRC_TEST)
78
78
CXX_OBJ_NOTEST = $(patsubst % .cpp, $(ARTIFACT_BIN ) /% .o, $(CXX_SRC_NOTEST ) )
79
79
CXX_OBJ_EXT = $(patsubst % .cpp, $(ARTIFACT_BIN ) /% .o, $(CXX_SRC_EXT ) )
80
80
CXX_OBJ = $(CXX_OBJ_MAIN ) $(CXX_OBJ_EXT )
81
+ CXX_OBJ_ALL = \
82
+ $(CXX_OBJ_MAIN ) \
83
+ $(CXX_OBJ_EXPORT ) \
84
+ $(CXX_OBJ_EXT ) \
85
+ $(CXX_OBJ_TEST ) \
86
+ $(CXX_OBJ_NOTEST )
81
87
82
88
ALL_HEADERS = $(call rwildcard, $(ARTIFACT_INC ) , * .h)
83
89
CXX_FILE = $(patsubst $(ARTIFACT_BIN ) /% .o,% .cpp, $(@ ) )
84
90
CXX_HDR_PATHS = $(foreach hdr,$(ARTIFACT_HEADERS ) ,$(ARTIFACT_INC ) /$(hdr ) )
85
91
CXX_HEADERS = $(foreach path,$(CXX_HDR_PATHS ) ,$(call rwildcard, $(path ) , * .h) )
86
92
CXX_INSTHEADERS = $(patsubst $(ARTIFACT_INC ) /% ,$(DESTDIR )$(INCDIR ) /% ,$(CXX_HEADERS ) )
87
- CXX_INSTALL_HEADERS =
88
-
89
- ifeq ($(HEADERS ) ,1)
90
- CXX_INSTALL_HEADERS = 1
91
- endif
93
+ DEP_FILE = $(patsubst % .o,% .d, $(@ ) )
92
94
93
95
BUILD_ALL = $(ARTIFACT_LIB ) $(ARTIFACT_SLIB ) $(ARTIFACT_PC )
94
96
@@ -101,44 +103,26 @@ DEP_CXX_FILE = $(patsubst $(ARTIFACT_BIN)/%.d,%.cpp,$(@))
101
103
DEP_DEP_FILE = $(patsubst $(ARTIFACT_BIN ) /% .d,% .o,$(@ ) )
102
104
103
105
.DEFAULT_GOAL = all
104
- .PHONY : compile depend dep_clean all install uninstall
106
+ .PHONY : compile all install uninstall
105
107
.PHONY : $(ARTIFACT_DEPS )
106
108
107
- # Dependencies
108
- dep_clean :
109
-
110
- $(DEP_CXX ) : dep_clean
111
- echo " dep [$( ARTIFACT_NAME) ] $( DEP_CXX_FILE) "
112
- mkdir -p $(dir $(@ ) )
113
- $(CXX ) -MM -MT " \$ $( $( ARTIFACT_ID) _BIN) /$( DEP_DEP_FILE) " -MF $(@ ) $(DEP_CXX_FILE ) $(CXXFLAGS ) $(INCLUDE ) $(ARTIFACT_CFLAGS )
114
-
115
- depend : $(DEP_CXX )
116
- $(foreach dep,$(ARTIFACT_DEPENDENCIES ) $(HOST )$(ARTIFACT_ID ) ,\
117
- $(if $($(dep ) _INC) , \
118
- $(eval SED_RULES += s/$(shell echo "$($(dep ) _INC) " | sed "s/\\//\\\\\//g") /\$$$$\\($(dep ) _INC\\) /g; )\
119
- )\
120
- $(if $($(dep ) _BIN) , \
121
- $(eval SED_RULES += s/$(shell echo "$($(dep ) _BIN) " | sed "s/\\//\\\\\//g") /\\$$$$\\($(dep ) _BIN\\) /g; )\
122
- )\
123
- )
124
- cat $(DEP_CXX ) | sed -E " $( SED_RULES) " > Makefile.d
125
-
109
+ # Compile dependencies
126
110
$(ARTIFACT_DEPS ) :
127
111
echo " make $( notdir $( $( @) _OBJ) ) "
128
112
$(MAKE ) -C " $( $( @) _PATH) " compile VERBOSE=" $( VERBOSE) " CONFIG=" $( CONFIG) " DEMO_TEST=" 0" BUILD_HOST=" $( BUILD_HOST) "
129
113
130
114
# Compilation
131
115
compile : $(ARTIFACT_OBJ )
132
116
133
- $(CXX_OBJ_MAIN ) $( CXX_OBJ_EXPORT ) $( CXX_OBJ_EXT ) $( CXX_OBJ_TEST ) $( CXX_OBJ_NOTEST ) :
117
+ $(CXX_OBJ_ALL ) :
134
118
echo " $( $( HOST) CXX) [$( ARTIFACT_NAME) ] $( CXX_FILE) "
135
119
mkdir -p $(dir $@ )
136
- $($(HOST ) CXX) -o $(@ ) -c $(CXX_FILE ) -fPIC $($(HOST ) CXXFLAGS) $(ARTIFACT_MFLAGS ) $($(HOST ) EXT_FLAGS) $(INCLUDE ) $(ARTIFACT_CFLAGS )
120
+ $($(HOST ) CXX) -o $(@ ) -c $(CXX_FILE ) -fPIC $($(HOST ) CXXFLAGS) $(ARTIFACT_MFLAGS ) $($(HOST ) EXT_FLAGS) $(INCLUDE ) $(ARTIFACT_CFLAGS ) -MMD -MP -MF $( DEP_FILE ) -MT $( @ )
137
121
138
122
# Producing large object files
139
123
$(ARTIFACT_OBJ ) : $(CXX_OBJ )
140
124
@echo " $( $( HOST) LD) [$( ARTIFACT_NAME) ] $( notdir $( ARTIFACT_OBJ) ) "
141
- @ $($(HOST ) LD) -o $(ARTIFACT_OBJ ) $($(HOST ) LDFLAGS) $(CXX_OBJ )
125
+ $($(HOST ) LD) -o $(ARTIFACT_OBJ ) $($(HOST ) LDFLAGS) $(CXX_OBJ )
142
126
143
127
$(ARTIFACT_OBJ_TEST ) : $(CXX_OBJ_TEST )
144
128
echo " $( $( HOST) LD) [$( ARTIFACT_NAME) ] $( notdir $( ARTIFACT_OBJ_TEST) ) "
@@ -176,13 +160,11 @@ $(ARTIFACT_PC):
176
160
install : all
177
161
echo " Installing $( $( ARTIFACT_ID) _NAME) "
178
162
mkdir -p " $( DESTDIR) $( LIBDIR) /pkgconfig"
179
- $(if $(CXX_INSTALL_HEADERS ) , mkdir -p "$(DESTDIR )$(INCDIR ) ")
180
- $(if $(CXX_INSTALL_HEADERS ) , cp -r "$(CXX_HDR_PATHS ) " "$(DESTDIR )$(INCDIR ) /")
163
+ $(if $(filter $( INSTALL_HEADERS ) ,1 ) , mkdir -p "$(DESTDIR )$(INCDIR ) ")
164
+ $(if $(filter $( INSTALL_HEADERS ) ,1 ) , cp -r "$(CXX_HDR_PATHS ) " "$(DESTDIR )$(INCDIR ) /")
181
165
cp $(ARTIFACT_PC ) " $( DESTDIR) $( LIBDIR) /pkgconfig/"
182
- echo $(INSTALL ) $(ARTIFACT_LIB ) -t " $( DESTDIR) $( LIBDIR) "
183
- $(INSTALL ) $(ARTIFACT_LIB ) -t " $( DESTDIR) $( LIBDIR) "
184
- echo cp $(ARTIFACT_SLIB ) -t " $( DESTDIR) $( LIBDIR) "
185
- cp $(ARTIFACT_SLIB ) -t " $( DESTDIR) $( LIBDIR) "
166
+ $(INSTALL ) $(ARTIFACT_LIB ) " $( DESTDIR) $( LIBDIR) /"
167
+ cp $(ARTIFACT_SLIB ) " $( DESTDIR) $( LIBDIR) /"
186
168
ln -sf $(notdir $(ARTIFACT_LIB ) ) " $( DESTDIR) $( LIBDIR) /$( ARTIFACT_LIBLINK) "
187
169
ln -sf $(notdir $(ARTIFACT_SLIB ) ) " $( DESTDIR) $( LIBDIR) /$( ARTIFACT_SLIBLINK) "
188
170
echo " Install OK"
@@ -198,4 +180,4 @@ uninstall:
198
180
echo " Uninstall OK"
199
181
200
182
# Dependencies
201
- -include $(CURDIR ) /Makefile.d
183
+ -include $(foreach objfile, $( CXX_OBJ_ALL ) , $( patsubst % .o, % .d, $( objfile ) ) )
0 commit comments