@@ -91,61 +91,64 @@ RUNTIME_S_$(1)_$(2) := rt/arch/$$(HOST_$(1))/_context.S \
9191 rt/arch/$$(HOST_$(1 ) ) /ccall.S \
9292 rt/arch/$$(HOST_$(1 ) ) /record_sp.S
9393
94+ RT_OUTPUT_DIR_$(1 ) := $(1 ) /rt
95+ RT_BUILD_DIR_$(1 ) _$(2 ) := $$(RT_OUTPUT_DIR_$(1 ) ) /stage$(2 )
96+
9497ifeq ($$(CFG_WINDOWSY_$(1 ) ) , 1)
9598 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
98101else ifeq ($(OSTYPE_$(1)), apple-darwin)
99102 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
102105else ifeq ($(OSTYPE_$(1)), unknown-freebsd)
103106 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
106109else ifeq ($(OSTYPE_$(1)), linux-androideabi)
107110 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
110113else
111114 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
114117endif
115118
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 ) )
117120RUNTIME_INCS_$(1 ) _$(2 ) := -I $$(S ) src/rt -I $$(S ) src/rt/isaac -I $$(S ) src/rt/uthash \
118121 -I $$(S ) src/rt/arch/$$(HOST_$(1 ) ) \
119122 -I $$(S ) src/rt/linenoise \
120123 -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 )
124127ALL_OBJ_FILES += $$(RUNTIME_OBJS_$(1 ) _$(2 ) )
125128
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
127130ALL_OBJ_FILES += $$(MORESTACK_OBJS_$(1 ) _$(2 ) )
128131
129- rt/ $( 1 ) /stage $(2 ) /%.o: rt/%.cpp $$(MKFILE_DEPS )
132+ $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o: rt/%.cpp $$(MKFILE_DEPS )
130133 @$$(call E, compile: $$@ )
131134 $$(Q )$$(call CFG_COMPILE_CXX_$(1 ) , $$@ , $$(RUNTIME_INCS_$(1 ) _$(2 ) ) \
132135 $$(SNAP_DEFINES ) $$(RUNTIME_CXXFLAGS_$(1 ) _$(2 ) ) ) $$<
133136
134- rt/ $( 1 ) /stage $(2 ) /%.o: rt/%.c $$(MKFILE_DEPS )
137+ $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o: rt/%.c $$(MKFILE_DEPS )
135138 @$$(call E, compile: $$@ )
136139 $$(Q )$$(call CFG_COMPILE_C_$(1 ) , $$@ , $$(RUNTIME_INCS_$(1 ) _$(2 ) ) \
137140 $$(SNAP_DEFINES ) $$(RUNTIME_CFLAGS_$(1 ) _$(2 ) ) ) $$<
138141
139- rt/ $( 1 ) /stage $(2 ) /%.o: rt/%.S $$(MKFILE_DEPS ) \
142+ $$( RT_BUILD_DIR_ $( 1 ) _ $(2 ) ) /%.o: rt/%.S $$(MKFILE_DEPS ) \
140143 $$(LLVM_CONFIG_$$(CFG_BUILD_TRIPLE ) )
141144 @$$(call E, compile: $$@ )
142145 $$(Q )$$(call CFG_ASSEMBLE_$(1 ) ,$$@ ,$$< )
143146
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 ) )
145148 @$$(call E, link: $$@ )
146149 $$(Q )$(AR_$(1 ) ) rcs $$@ $$<
147150
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 ) \
149152 $$(RUNTIME_DEF_$(1 ) _$(2 ) ) $$(LIBUV_LIB_$(1 ) _$(2 ) ) $$(JEMALLOC_LIB_$(1 ) _$(2 ) )
150153 @$$(call E, link: $$@ )
151154 $$(Q )$$(call CFG_LINK_CXX_$(1 ) ,$$@ , $$(RUNTIME_OBJS_$(1 ) _$(2 ) ) \
@@ -171,7 +174,7 @@ endif
171174ifdef CFG_WINDOWSY_$(1)
172175$$(LIBUV_LIB_$(1 ) _$(2 ) ) : $$(LIBUV_DEPS )
173176 $$(Q )$$(MAKE ) -C $$(S ) src/libuv/ \
174- builddir_name=" $$ (CFG_BUILD_DIR)/rt/ $( 1 ) /stage $( 2) /libuv" \
177+ builddir_name=" $$ (CFG_BUILD_DIR)/$$ (RT_BUILD_DIR_ $( 1 ) _ $( 2) )/libuv" \
175178 OS=mingw \
176179 V=$$(VERBOSE )
177180else ifeq ($(OSTYPE_$(1)), linux-androideabi)
@@ -185,7 +188,7 @@ $$(LIBUV_LIB_$(1)_$(2)): $$(LIBUV_DEPS)
185188 AR=" $$ (AR_$( 1) )" \
186189 PLATFORM=android \
187190 BUILDTYPE=Release \
188- builddir_name=" $$ (CFG_BUILD_DIR)/rt/ $( 1 ) /stage $( 2) /libuv" \
191+ builddir_name=" $$ (CFG_BUILD_DIR)/$$ (RT_BUILD_DIR_ $( 1 ) _ $( 2) )/libuv" \
189192 host=android OS=linux \
190193 V=$$(VERBOSE )
191194else
@@ -196,59 +199,59 @@ $$(LIBUV_LIB_$(1)_$(2)): $$(LIBUV_DEPS)
196199 CC=" $$ (CC_$( 1) )" \
197200 CXX=" $$ (CXX_$( 1) )" \
198201 AR=" $$ (AR_$( 1) )" \
199- builddir_name=" $$ (CFG_BUILD_DIR)/rt/ $( 1 ) /stage $( 2) /libuv" \
202+ builddir_name=" $$ (CFG_BUILD_DIR)/$$ (RT_BUILD_DIR_ $( 1 ) _ $( 2) )/libuv" \
200203 V=$$(VERBOSE )
201204endif
202205
203206ifeq ($(OSTYPE_$(1 ) ) , linux-androideabi)
204207$$(JEMALLOC_LIB_$(1 ) _$(2 ) ) :
205- cd $$(CFG_BUILD_DIR ) /rt/ $(1 ) /stage $(2 ) /jemalloc; $(S ) src/rt/jemalloc/configure \
208+ cd $$(RT_BUILD_DIR_ $(1 ) _ $(2 ) ) /jemalloc; $(S ) src/rt/jemalloc/configure \
206209 --disable-experimental --build=$(CFG_BUILD_TRIPLE ) --host=$(1 ) --disable-tls \
207210 EXTRA_CFLAGS=" $$ (CFG_GCCISH_CFLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) )) $$ (SNAP_DEFINES)" \
208211 LDFLAGS=" $$ (CFG_GCCISH_LINK_FLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) ))" \
209212 CC=" $$ (CC_$( 1) )" \
210213 CXX=" $$ (CXX_$( 1) )" \
211214 AR=" $$ (AR_$( 1) )"
212- $$(Q )$$(MAKE ) -C $$(CFG_BUILD_DIR ) /rt/ $(1 ) /stage $(2 ) /jemalloc
215+ $$(Q )$$(MAKE ) -C $$(RT_BUILD_DIR_ $(1 ) _ $(2 ) ) /jemalloc
213216else
214217$$(JEMALLOC_LIB_$(1 ) _$(2 ) ) :
215- cd $$(CFG_BUILD_DIR ) /rt/ $(1 ) /stage $(2 ) /jemalloc; $(S ) src/rt/jemalloc/configure \
218+ cd $$(RT_BUILD_DIR_ $(1 ) _ $(2 ) ) /jemalloc; $(S ) src/rt/jemalloc/configure \
216219 --disable-experimental --build=$(CFG_BUILD_TRIPLE ) --host=$(1 ) \
217220 EXTRA_CFLAGS=" $$ (CFG_GCCISH_CFLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) )) $$ (SNAP_DEFINES)" \
218221 LDFLAGS=" $$ (CFG_GCCISH_LINK_FLAGS) $$ (LIBUV_FLAGS_$$ (HOST_$( 1) ))" \
219222 CC=" $$ (CC_$( 1) )" \
220223 CXX=" $$ (CXX_$( 1) )" \
221224 AR=" $$ (AR_$( 1) )"
222- $$(Q )$$(MAKE ) -C $$(CFG_BUILD_DIR ) /rt/ $(1 ) /stage $(2 ) /jemalloc
225+ $$(Q )$$(MAKE ) -C $$(RT_BUILD_DIR_ $(1 ) _ $(2 ) ) /jemalloc
223226endif
224227
225228
226229# These could go in rt.mk or rustllvm.mk, they're needed for both.
227230
228231# This regexp has a single $, escaped twice
229- %.bsd.def: %.def.in $$(MKFILE_DEPS )
232+ $( 1 ) / %.bsd.def: %.def.in $$(MKFILE_DEPS )
230233 @$$(call E, def: $$@ )
231234 $$(Q ) echo "{" > $$@
232235 $$(Q ) sed 's/.$$$$/&;/' $$< >> $$@
233236 $$(Q ) echo "};" >> $$@
234237
235- %.linux.def: %.def.in $$(MKFILE_DEPS )
238+ $( 1 ) / %.linux.def: %.def.in $$(MKFILE_DEPS )
236239 @$$(call E, def: $$@ )
237240 $$(Q ) echo "{" > $$@
238241 $$(Q ) sed 's/.$$$$/&;/' $$< >> $$@
239242 $$(Q ) echo "};" >> $$@
240243
241- %.darwin.def: %.def.in $$(MKFILE_DEPS )
244+ $( 1 ) / %.darwin.def: %.def.in $$(MKFILE_DEPS )
242245 @$$(call E, def: $$@ )
243246 $$(Q ) sed 's/^./_&/' $$< > $$@
244247
245- %.android.def: %.def.in $$(MKFILE_DEPS )
248+ $( 1 ) / %.android.def: %.def.in $$(MKFILE_DEPS )
246249 @$$(call E, def: $$@ )
247250 $$(Q ) echo "{" > $$@
248251 $$(Q ) sed 's/.$$$$/&;/' $$< >> $$@
249252 $$(Q ) echo "};" >> $$@
250253
251- %.mingw32.def: %.def.in $$(MKFILE_DEPS )
254+ $( 1 ) / %.mingw32.def: %.def.in $$(MKFILE_DEPS )
252255 @$$(call E, def: $$@ )
253256 $$(Q ) echo LIBRARY $$* > $$@
254257 $$(Q ) echo EXPORTS >> $$@
0 commit comments