@@ -91,61 +91,64 @@ RUNTIME_S_$(1)_$(2) := rt/arch/$$(HOST_$(1))/_context.S \
91
91
rt/arch/$$(HOST_$(1 ) ) /ccall.S \
92
92
rt/arch/$$(HOST_$(1 ) ) /record_sp.S
93
93
94
+ RT_OUTPUT_DIR_$(1 ) := $(1 ) /rt
95
+ RT_BUILD_DIR_$(1 ) _$(2 ) := $$(RT_OUTPUT_DIR_$(1 ) ) /stage$(2 )
96
+
94
97
ifeq ($$(CFG_WINDOWSY_$(1 ) ) , 1)
95
98
LIBUV_OSTYPE_$(1)_$(2) := win
96
- LIBUV_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /libuv/libuv.a
97
- JEMALLOC_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /jemalloc/lib/jemalloc.lib
99
+ LIBUV_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /libuv/libuv.a
100
+ JEMALLOC_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /jemalloc/lib/jemalloc.lib
98
101
else ifeq ($(OSTYPE_$(1)), apple-darwin)
99
102
LIBUV_OSTYPE_$(1)_$(2) := mac
100
- LIBUV_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /libuv/libuv.a
101
- JEMALLOC_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /jemalloc/lib/libjemalloc_pic.a
103
+ LIBUV_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /libuv/libuv.a
104
+ JEMALLOC_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /jemalloc/lib/libjemalloc_pic.a
102
105
else ifeq ($(OSTYPE_$(1)), unknown-freebsd)
103
106
LIBUV_OSTYPE_$(1)_$(2) := unix/freebsd
104
- LIBUV_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /libuv/libuv.a
105
- JEMALLOC_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /jemalloc/lib/libjemalloc_pic.a
107
+ LIBUV_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /libuv/libuv.a
108
+ JEMALLOC_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /jemalloc/lib/libjemalloc_pic.a
106
109
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
107
110
LIBUV_OSTYPE_$(1)_$(2) := unix/android
108
- LIBUV_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /libuv/libuv.a
109
- JEMALLOC_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /jemalloc/lib/libjemalloc_pic.a
111
+ LIBUV_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /libuv/libuv.a
112
+ JEMALLOC_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /jemalloc/lib/libjemalloc_pic.a
110
113
else
111
114
LIBUV_OSTYPE_$(1)_$(2) := unix/linux
112
- LIBUV_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /libuv/libuv.a
113
- JEMALLOC_LIB_$(1)_$(2) := rt/ $( 1 ) /stage $(2 ) /jemalloc/lib/libjemalloc_pic.a
115
+ LIBUV_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /libuv/libuv.a
116
+ JEMALLOC_LIB_$(1)_$(2) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /jemalloc/lib/libjemalloc_pic.a
114
117
endif
115
118
116
- RUNTIME_DEF_$(1 ) _$(2 ) := rt /rustrt$(CFG_DEF_SUFFIX_$(1 ) )
119
+ RUNTIME_DEF_$(1 ) _$(2 ) := $$( RT_OUTPUT_DIR_ $( 1 ) ) /rustrt$ $(CFG_DEF_SUFFIX_$(1 ) )
117
120
RUNTIME_INCS_$(1 ) _$(2 ) := -I $$(S ) src/rt -I $$(S ) src/rt/isaac -I $$(S ) src/rt/uthash \
118
121
-I $$(S ) src/rt/arch/$$(HOST_$(1 ) ) \
119
122
-I $$(S ) src/rt/linenoise \
120
123
-I $$(S ) src/libuv/include
121
- RUNTIME_OBJS_$(1 ) _$(2 ) := $$(RUNTIME_CXXS_$(1 ) _$(2 ) :rt/%.cpp=rt/ $( 1 ) /stage $(2 ) /%.o ) \
122
- $$(RUNTIME_CS_$(1 ) _$(2 ) :rt/%.c=rt/ $( 1 ) /stage $(2 ) /%.o ) \
123
- $$(RUNTIME_S_$(1 ) _$(2 ) :rt/%.S=rt/ $( 1 ) /stage $(2 ) /%.o )
124
+ RUNTIME_OBJS_$(1 ) _$(2 ) := $$(RUNTIME_CXXS_$(1 ) _$(2 ) :rt/%.cpp=$$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o ) \
125
+ $$(RUNTIME_CS_$(1 ) _$(2 ) :rt/%.c=$$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o ) \
126
+ $$(RUNTIME_S_$(1 ) _$(2 ) :rt/%.S=$$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o )
124
127
ALL_OBJ_FILES += $$(RUNTIME_OBJS_$(1 ) _$(2 ) )
125
128
126
- MORESTACK_OBJ_$(1 ) _$(2 ) := rt/ $( 1 ) /stage $(2 ) /arch/$$(HOST_$(1 ) ) /morestack.o
129
+ MORESTACK_OBJ_$(1 ) _$(2 ) := $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /arch/$$(HOST_$(1 ) ) /morestack.o
127
130
ALL_OBJ_FILES += $$(MORESTACK_OBJS_$(1 ) _$(2 ) )
128
131
129
- rt/ $( 1 ) /stage $(2 ) /%.o: rt/%.cpp $$(MKFILE_DEPS )
132
+ $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o: rt/%.cpp $$(MKFILE_DEPS )
130
133
@$$(call E, compile: $$@ )
131
134
$$(Q )$$(call CFG_COMPILE_CXX_$(1 ) , $$@ , $$(RUNTIME_INCS_$(1 ) _$(2 ) ) \
132
135
$$(SNAP_DEFINES ) $$(RUNTIME_CXXFLAGS_$(1 ) _$(2 ) ) ) $$<
133
136
134
- rt/ $( 1 ) /stage $(2 ) /%.o: rt/%.c $$(MKFILE_DEPS )
137
+ $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o: rt/%.c $$(MKFILE_DEPS )
135
138
@$$(call E, compile: $$@ )
136
139
$$(Q )$$(call CFG_COMPILE_C_$(1 ) , $$@ , $$(RUNTIME_INCS_$(1 ) _$(2 ) ) \
137
140
$$(SNAP_DEFINES ) $$(RUNTIME_CFLAGS_$(1 ) _$(2 ) ) ) $$<
138
141
139
- rt/ $( 1 ) /stage $(2 ) /%.o: rt/%.S $$(MKFILE_DEPS ) \
142
+ $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o: rt/%.S $$(MKFILE_DEPS ) \
140
143
$$(LLVM_CONFIG_$$(CFG_BUILD_TRIPLE ) )
141
144
@$$(call E, compile: $$@ )
142
145
$$(Q )$$(call CFG_ASSEMBLE_$(1 ) ,$$@ ,$$< )
143
146
144
- rt/ $( 1 ) /stage $(2 ) /arch/$$(HOST_$(1 ) ) /libmorestack.a: $$(MORESTACK_OBJ_$(1 ) _$(2 ) )
147
+ $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /arch/$$(HOST_$(1 ) ) /libmorestack.a: $$(MORESTACK_OBJ_$(1 ) _$(2 ) )
145
148
@$$(call E, link: $$@ )
146
149
$$(Q )$(AR_$(1 ) ) rcs $$@ $$<
147
150
148
- rt/ $( 1 ) /stage $(2 ) /$(CFG_RUNTIME_$(1 ) ) : $$(RUNTIME_OBJS_$(1 ) _$(2 ) ) $$(MKFILE_DEPS ) \
151
+ $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /$(CFG_RUNTIME_$(1 ) ) : $$(RUNTIME_OBJS_$(1 ) _$(2 ) ) $$(MKFILE_DEPS ) \
149
152
$$(RUNTIME_DEF_$(1 ) _$(2 ) ) $$(LIBUV_LIB_$(1 ) _$(2 ) ) $$(JEMALLOC_LIB_$(1 ) _$(2 ) )
150
153
@$$(call E, link: $$@ )
151
154
$$(Q )$$(call CFG_LINK_CXX_$(1 ) ,$$@ , $$(RUNTIME_OBJS_$(1 ) _$(2 ) ) \
@@ -167,88 +170,103 @@ LIBUV_DEPS := $$(wildcard \
167
170
$$(S ) src/libuv/* /* /* /* )
168
171
endif
169
172
173
+ LIBUV_MAKEFILE_$(1 ) _$(2 ) := $$(CFG_BUILD_DIR )$$(RT_BUILD_DIR_$(1 ) _$(2 ) ) /libuv/Makefile
174
+ LIBUV_NO_LOAD = run-benchmarks.target.mk run-tests.target.mk \
175
+ uv_dtrace_header.target.mk uv_dtrace_provider.target.mk
176
+
177
+ export PYTHONPATH := $(PYTHONPATH ) :$$(S ) src/gyp/pylib
178
+
179
+ $$(LIBUV_MAKEFILE_$(1 ) _$(2 ) ) :
180
+ (cd $(S ) src/libuv/ && \
181
+ $$(CFG_PYTHON ) ./gyp_uv -f make -Dtarget_arch=$$(LIBUV_ARCH_$(1 ) ) -D ninja \
182
+ -Goutput_dir=$$(@D ) --generator-output $$(@D ) )
183
+
170
184
# XXX: Shouldn't need platform-specific conditions here
171
185
ifdef CFG_WINDOWSY_$(1)
172
186
$$(LIBUV_LIB_$(1 ) _$(2 ) ) : $$(LIBUV_DEPS )
173
- $$(Q )$$(MAKE ) -C $$(S ) src/libuv/ \
174
- builddir_name =" $$ (CFG_BUILD_DIR)/rt/ $( 1 ) /stage $( 2 ) /libuv " \
175
- OS=mingw \
187
+ $$(Q )$$(MAKE ) -C $$(S ) src/libuv -f Makefile.mingw \
188
+ CFLAGS =" $$ (CFG_GCCISH_CFLAGS) $$ (LIBUV_FLAGS_ $$ (HOST_ $( 1 ) )) $$ (SNAP_DEFINES) " \
189
+ AR= " $$ (AR_ $( 1 ) ) " \
176
190
V=$$(VERBOSE )
191
+ $$(Q ) cp $$(S ) src/libuv/libuv.a $$@
177
192
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
178
- $$(LIBUV_LIB_$(1 ) _$(2 ) ) : $$(LIBUV_DEPS )
179
- $$(Q )$$(MAKE ) -C $$(S ) src/libuv/ \
193
+ $$(LIBUV_LIB_$(1 ) _$(2 ) ) : $$(LIBUV_DEPS ) $$( LIBUV_MAKEFILE_ $( 1 ) _ $( 2 ) )
194
+ $$(Q )$$(MAKE ) -C $$(@D ) \
180
195
CFLAGS=" $$ (CFG_GCCISH_CFLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) )) $$ (SNAP_DEFINES)" \
181
196
LDFLAGS=" $$ (CFG_GCCISH_LINK_FLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) ))" \
182
197
CC=" $$ (CC_$( 1) )" \
183
198
CXX=" $$ (CXX_$( 1) )" \
184
199
LINK=" $$ (CXX_$( 1) )" \
185
200
AR=" $$ (AR_$( 1) )" \
186
201
PLATFORM=android \
187
- BUILDTYPE=Release \
188
- builddir_name=" $$ (CFG_BUILD_DIR)/rt/$( 1) /stage$( 2) /libuv" \
189
202
host=android OS=linux \
203
+ builddir=" ." \
204
+ BUILDTYPE=Release \
205
+ NO_LOAD=" $$ (LIBUV_NO_LOAD)" \
190
206
V=$$(VERBOSE )
191
207
else
192
- $$(LIBUV_LIB_$(1 ) _$(2 ) ) : $$(LIBUV_DEPS )
193
- $$(Q )$$(MAKE ) -C $$(S ) src/libuv/ \
208
+ $$(LIBUV_LIB_$(1 ) _$(2 ) ) : $$(LIBUV_DEPS ) $$( LIBUV_MAKEFILE_ $( 1 ) _ $( 2 ) )
209
+ $$(Q )$$(MAKE ) -C $$(@D ) \
194
210
CFLAGS=" $$ (CFG_GCCISH_CFLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) )) $$ (SNAP_DEFINES)" \
195
211
LDFLAGS=" $$ (CFG_GCCISH_LINK_FLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) ))" \
196
212
CC=" $$ (CC_$( 1) )" \
197
213
CXX=" $$ (CXX_$( 1) )" \
198
214
AR=" $$ (AR_$( 1) )" \
199
- builddir_name=" $$ (CFG_BUILD_DIR)/rt/$( 1) /stage$( 2) /libuv" \
215
+ builddir=" ." \
216
+ BUILDTYPE=Release \
217
+ NO_LOAD=" $$ (LIBUV_NO_LOAD)" \
200
218
V=$$(VERBOSE )
201
219
endif
202
220
203
221
ifeq ($(OSTYPE_$(1 ) ) , linux-androideabi)
204
222
$$(JEMALLOC_LIB_$(1 ) _$(2 ) ) :
205
- cd $$(CFG_BUILD_DIR ) /rt/ $(1 ) /stage $(2 ) /jemalloc; $(S ) src/rt/jemalloc/configure \
223
+ cd $$(RT_BUILD_DIR_ $(1 ) _ $(2 ) ) /jemalloc; $(S ) src/rt/jemalloc/configure \
206
224
--disable-experimental --build=$(CFG_BUILD_TRIPLE ) --host=$(1 ) --disable-tls \
207
225
EXTRA_CFLAGS=" $$ (CFG_GCCISH_CFLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) )) $$ (SNAP_DEFINES)" \
208
226
LDFLAGS=" $$ (CFG_GCCISH_LINK_FLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) ))" \
209
227
CC=" $$ (CC_$( 1) )" \
210
228
CXX=" $$ (CXX_$( 1) )" \
211
229
AR=" $$ (AR_$( 1) )"
212
- $$(Q )$$(MAKE ) -C $$(CFG_BUILD_DIR ) /rt/ $(1 ) /stage $(2 ) /jemalloc
230
+ $$(Q )$$(MAKE ) -C $$(RT_BUILD_DIR_ $(1 ) _ $(2 ) ) /jemalloc
213
231
else
214
232
$$(JEMALLOC_LIB_$(1 ) _$(2 ) ) :
215
- cd $$(CFG_BUILD_DIR ) /rt/ $(1 ) /stage $(2 ) /jemalloc; $(S ) src/rt/jemalloc/configure \
233
+ cd $$(RT_BUILD_DIR_ $(1 ) _ $(2 ) ) /jemalloc; $(S ) src/rt/jemalloc/configure \
216
234
--disable-experimental --build=$(CFG_BUILD_TRIPLE ) --host=$(1 ) \
217
235
EXTRA_CFLAGS=" $$ (CFG_GCCISH_CFLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) )) $$ (SNAP_DEFINES)" \
218
236
LDFLAGS=" $$ (CFG_GCCISH_LINK_FLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) ))" \
219
237
CC=" $$ (CC_$( 1) )" \
220
238
CXX=" $$ (CXX_$( 1) )" \
221
239
AR=" $$ (AR_$( 1) )"
222
- $$(Q )$$(MAKE ) -C $$(CFG_BUILD_DIR ) /rt/ $(1 ) /stage $(2 ) /jemalloc
240
+ $$(Q )$$(MAKE ) -C $$(RT_BUILD_DIR_ $(1 ) _ $(2 ) ) /jemalloc
223
241
endif
224
242
225
243
226
244
# These could go in rt.mk or rustllvm.mk, they're needed for both.
227
245
228
246
# This regexp has a single $, escaped twice
229
- %.bsd.def: %.def.in $$(MKFILE_DEPS )
247
+ $( 1 ) / %.bsd.def: %.def.in $$(MKFILE_DEPS )
230
248
@$$(call E, def: $$@ )
231
249
$$(Q ) echo "{" > $$@
232
250
$$(Q ) sed 's/.$$$$/&;/' $$< >> $$@
233
251
$$(Q ) echo "};" >> $$@
234
252
235
- %.linux.def: %.def.in $$(MKFILE_DEPS )
253
+ $( 1 ) / %.linux.def: %.def.in $$(MKFILE_DEPS )
236
254
@$$(call E, def: $$@ )
237
255
$$(Q ) echo "{" > $$@
238
256
$$(Q ) sed 's/.$$$$/&;/' $$< >> $$@
239
257
$$(Q ) echo "};" >> $$@
240
258
241
- %.darwin.def: %.def.in $$(MKFILE_DEPS )
259
+ $( 1 ) / %.darwin.def: %.def.in $$(MKFILE_DEPS )
242
260
@$$(call E, def: $$@ )
243
261
$$(Q ) sed 's/^./_&/' $$< > $$@
244
262
245
- %.android.def: %.def.in $$(MKFILE_DEPS )
263
+ $( 1 ) / %.android.def: %.def.in $$(MKFILE_DEPS )
246
264
@$$(call E, def: $$@ )
247
265
$$(Q ) echo "{" > $$@
248
266
$$(Q ) sed 's/.$$$$/&;/' $$< >> $$@
249
267
$$(Q ) echo "};" >> $$@
250
268
251
- %.mingw32.def: %.def.in $$(MKFILE_DEPS )
269
+ $( 1 ) / %.mingw32.def: %.def.in $$(MKFILE_DEPS )
252
270
@$$(call E, def: $$@ )
253
271
$$(Q ) echo LIBRARY $$* > $$@
254
272
$$(Q ) echo EXPORTS >> $$@
0 commit comments