19
19
$(foreach t,$(CFG_TARGET_TRIPLES),$(eval $(call DEF_HOST_VAR,$(t))))
20
20
$(foreach t,$(CFG_TARGET_TRIPLES ) ,$(info cfg : host for $(t ) is $(HOST_$(t ) ) ))
21
21
22
+ # Ditto for OSTYPE
23
+ define DEF_OSTYPE_VAR
24
+ OSTYPE_$(1 ) = $(subst $(firstword $(subst -, ,$(1 ) ) ) -,,$(1 ) )
25
+ endef
26
+ $(foreach t,$(CFG_TARGET_TRIPLES),$(eval $(call DEF_OSTYPE_VAR,$(t))))
27
+ $(foreach t,$(CFG_TARGET_TRIPLES ) ,$(info cfg : os for $(t ) is $(OSTYPE_$(t ) ) ))
28
+
22
29
# FIXME: no-omit-frame-pointer is just so that task_start_wrapper
23
30
# has a frame pointer and the stack walker can understand it. Turning off
24
31
# frame pointers everywhere is overkill
@@ -33,6 +40,21 @@ CFG_DSYMUTIL := true
33
40
# non-Darwin platforms; omitting it causes a full -R copy of lib/
34
41
CFG_LIB_DSYM_GLOB =lib$(1 ) -*.dylib.dSYM
35
42
43
+ # Hack: not sure how to test if a file exists in make other than this
44
+ OS_SUPP = $(patsubst % ,--suppressions=% ,\
45
+ $(wildcard $(CFG_SRC_DIR ) src/etc/$(CFG_OSTYPE ) .supp* ) )
46
+
47
+ ifneq ($(findstring mingw,$(CFG_OSTYPE ) ) ,)
48
+ CFG_WINDOWSY := 1
49
+ endif
50
+
51
+ ifdef CFG_DISABLE_OPTIMIZE_CXX
52
+ $(info cfg : disabling C++ optimization (CFG_DISABLE_OPTIMIZE_CXX))
53
+ CFG_GCCISH_CFLAGS += -O0
54
+ else
55
+ CFG_GCCISH_CFLAGS += -O2
56
+ endif
57
+
36
58
ifneq ($(findstring freebsd,$(CFG_OSTYPE ) ) ,)
37
59
CFG_LIB_NAME =lib$(1 ) .so
38
60
CFG_LIB_GLOB =lib$(1 ) -*.so
@@ -112,32 +134,6 @@ ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
112
134
CFG_INSTALL_NAME = -Wl,-install_name,@rpath/$(1 )
113
135
endif
114
136
115
- # Hack: not sure how to test if a file exists in make other than this
116
- OS_SUPP = $(patsubst % ,--suppressions=% ,\
117
- $(wildcard $(CFG_SRC_DIR ) src/etc/$(CFG_OSTYPE ) .supp* ) )
118
-
119
- ifneq ($(findstring mingw,$(CFG_OSTYPE ) ) ,)
120
- CFG_WINDOWSY := 1
121
- endif
122
-
123
- ifdef CFG_DISABLE_OPTIMIZE_CXX
124
- $(info cfg : disabling C++ optimization (CFG_DISABLE_OPTIMIZE_CXX))
125
- CFG_GCCISH_CFLAGS += -O0
126
- else
127
- CFG_GCCISH_CFLAGS += -O2
128
- endif
129
-
130
- CFG_TESTLIB =$(CFG_BUILD_DIR ) /$(2 ) /$(strip \
131
- $(if $(findstring stage0,$(1 ) ) , \
132
- stage0/$(CFG_LIBDIR ) , \
133
- $(if $(findstring stage1,$(1 ) ) , \
134
- stage1/$(CFG_LIBDIR ) , \
135
- $(if $(findstring stage2,$(1 ) ) , \
136
- stage2/$(CFG_LIBDIR ) , \
137
- $(if $(findstring stage3,$(1 ) ) , \
138
- stage3/$(CFG_LIBDIR ) , \
139
- ) ) ) ) ) /rustc/$(CFG_BUILD_TRIPLE ) /$(CFG_LIBDIR )
140
-
141
137
ifdef CFG_UNIXY
142
138
CFG_INFO := $(info cfg: unix-y environment)
143
139
@@ -152,25 +148,26 @@ ifdef CFG_UNIXY
152
148
CFG_LIBUV_LINK_FLAGS =-lpthread -lkvm
153
149
endif
154
150
155
- ifdef CFG_ENABLE_MINGW_CROSS
156
- CFG_WINDOWSY := 1
157
- CFG_INFO := $(info cfg: mingw-cross)
158
- CFG_GCCISH_CROSS := i586-mingw32msvc-
159
- ifdef CFG_VALGRIND
160
- CFG_VALGRIND += wine
161
- endif
151
+ # FIXME: This is surely super broken
152
+ # ifdef CFG_ENABLE_MINGW_CROSS
153
+ # CFG_WINDOWSY := 1
154
+ # CFG_INFO := $(info cfg: mingw-cross)
155
+ # CFG_GCCISH_CROSS := i586-mingw32msvc-
156
+ # ifdef CFG_VALGRIND
157
+ # CFG_VALGRIND += wine
158
+ # endif
162
159
163
- CFG_GCCISH_CFLAGS := -march=i586
164
- CFG_GCCISH_PRE_LIB_FLAGS :=
165
- CFG_GCCISH_POST_LIB_FLAGS :=
166
- CFG_GCCISH_DEF_FLAG :=
167
- CFG_GCCISH_LINK_FLAGS := -shared
160
+ # CFG_GCCISH_CFLAGS := -march=i586
161
+ # CFG_GCCISH_PRE_LIB_FLAGS :=
162
+ # CFG_GCCISH_POST_LIB_FLAGS :=
163
+ # CFG_GCCISH_DEF_FLAG :=
164
+ # CFG_GCCISH_LINK_FLAGS := -shared
168
165
169
- ifeq ($(CFG_CPUTYPE), x86_64)
170
- CFG_GCCISH_CFLAGS += -m32
171
- CFG_GCCISH_LINK_FLAGS += -m32
172
- endif
173
- endif
166
+ # ifeq ($(CFG_CPUTYPE), x86_64)
167
+ # CFG_GCCISH_CFLAGS += -m32
168
+ # CFG_GCCISH_LINK_FLAGS += -m32
169
+ # endif
170
+ # endif
174
171
ifdef CFG_VALGRIND
175
172
CFG_VALGRIND += --error-exitcode=100 \
176
173
--quiet \
@@ -200,6 +197,18 @@ else
200
197
CFG_LDPATH :=
201
198
CFG_RUN =$(2 )
202
199
endif
200
+
201
+ CFG_TESTLIB =$(CFG_BUILD_DIR ) /$(2 ) /$(strip \
202
+ $(if $(findstring stage0,$(1 ) ) , \
203
+ stage0/$(CFG_LIBDIR ) , \
204
+ $(if $(findstring stage1,$(1 ) ) , \
205
+ stage1/$(CFG_LIBDIR ) , \
206
+ $(if $(findstring stage2,$(1 ) ) , \
207
+ stage2/$(CFG_LIBDIR ) , \
208
+ $(if $(findstring stage3,$(1 ) ) , \
209
+ stage3/$(CFG_LIBDIR ) , \
210
+ ) ) ) ) ) /rustc/$(CFG_BUILD_TRIPLE ) /$(CFG_LIBDIR )
211
+
203
212
CFG_RUN_TARG =$(call CFG_RUN,$(HLIB$(1 ) _H_$(CFG_BUILD_TRIPLE ) ) ,$(2 ) )
204
213
CFG_RUN_TEST =$(call CFG_RUN,$(call CFG_TESTLIB,$(1 ) ,$(3 ) ) ,$(1 ) )
205
214
CFG_LIBUV_LINK_FLAGS =-lWs2_32 -lpsapi -liphlpapi
@@ -233,34 +242,13 @@ ifeq ($(CFG_C_COMPILER),clang)
233
242
# next to the .o file that lists header deps.
234
243
CFG_DEPEND_FLAGS = -MMD -MP -MT $(1 ) -MF $(1:%.o=%.d )
235
244
236
- define CFG_MAKE_CC
237
- CFG_COMPILE_C_$(1) = $$(CFG_GCCISH_CROSS )$$(CC ) \
238
- $$(CFG_GCCISH_CFLAGS ) $$(CFG_CLANG_CFLAGS ) \
239
- $$(CFG_GCCISH_CFLAGS_$$(HOST_$(1 ) ) ) \
240
- $$(CFG_CLANG_CFLAGS_$$(HOST_$(1 ) ) ) \
241
- $$(CFG_DEPEND_FLAGS ) \
242
- -c -o $$(1 ) $$(2 )
243
- CFG_LINK_C_$(1) = $$(CFG_GCCISH_CROSS )$$(CC ) \
244
- $$(CFG_GCCISH_LINK_FLAGS ) -o $$(1 ) \
245
- $$(CFG_GCCISH_LINK_FLAGS_$$(HOST_$(1 ) ) ) \
246
- $$(CFG_GCCISH_DEF_FLAG )$$(3 ) $$(2 ) \
247
- $$(call CFG_INSTALL_NAME,$$(4 ) )
248
- CFG_COMPILE_CXX_$(1) = $$(CFG_GCCISH_CROSS )$$(CXX ) \
249
- $$(CFG_GCCISH_CFLAGS ) $$(CFG_CLANG_CFLAGS ) \
250
- $$(CFG_GCCISH_CXXFLAGS ) \
251
- $$(CFG_GCCISH_CFLAGS_$$(HOST_$(1 ) ) ) \
252
- $$(CFG_CLANG_CFLAGS_$$(HOST_$(1 ) ) ) \
253
- $$(CFG_DEPEND_FLAGS ) \
254
- -c -o $$(1 ) $$(2 )
255
- CFG_LINK_CXX_$(1) = $$(CFG_GCCISH_CROSS )$$(CXX ) \
256
- $$(CFG_GCCISH_LINK_FLAGS ) -o $$(1 ) \
257
- $$(CFG_GCCISH_LINK_FLAGS_$$(HOST_$(1 ) ) ) \
258
- $$(CFG_GCCISH_DEF_FLAG )$$(3 ) $$(2 ) \
259
- $$(call CFG_INSTALL_NAME,$$(4 ) )
245
+ CFG_SPECIFIC_CC_CFLAGS = $(CFG_CLANG_CFLAGS )
246
+ define MAKE_CLANG_SPECIFIC_CFLAGS
247
+ CFG_SPECIFIC_CC_CFLAGS_$$(HOST_$(target)) = $(CFG_CLANG_CFLAGS_$$(HOST_$(target ) ) )
260
248
endef
261
-
262
249
$(foreach target,$(CFG_TARGET_TRIPLES), \
263
- $(eval $(call CFG_MAKE_CC,$(target))))
250
+ $(eval $(call MAKE_CLANG_SPECIFIC_CFLAGS,$(target))))
251
+
264
252
else
265
253
ifeq ($(CFG_C_COMPILER ) ,gcc)
266
254
ifeq ($(origin CC),default)
@@ -279,12 +267,24 @@ ifeq ($(CFG_C_COMPILER),gcc)
279
267
# next to the .o file that lists header deps.
280
268
CFG_DEPEND_FLAGS = -MMD -MP -MT $(1 ) -MF $(1:%.o=%.d )
281
269
282
- define CFG_MAKE_CC
270
+ CFG_SPECIFIC_CC_CFLAGS = $(CFG_GCC_CFLAGS )
271
+ define MAKE_GCC_SPECIFIC_CFLAGS
272
+ CFG_SPECIFIC_CC_CFLAGS_$$(HOST_$(target)) = $(CFG_GCC_CFLAGS_$$(HOST_$(target ) ) )
273
+ endef
274
+ $(foreach target,$(CFG_TARGET_TRIPLES), \
275
+ $(eval $(call MAKE_GCC_SPECIFIC_CFLAGS,$(target))))
276
+
277
+ else
278
+ CFG_ERR := $(error please try on a system with gcc or clang)
279
+ endif
280
+ endif
281
+
282
+ define CFG_MAKE_CC
283
283
CFG_COMPILE_C_$(1 ) = $$(CFG_GCCISH_CROSS )$$(CC ) \
284
284
$$(CFG_GCCISH_CFLAGS ) \
285
285
$$(CFG_GCCISH_CFLAGS_$$(HOST_$(1 ) ) ) \
286
- $$(CFG_GCC_CFLAGS ) \
287
- $$(CFG_GCC_CFLAGS_ $$(HOST_$(1 ) ) ) \
286
+ $$(CFG_SPECIFIC_CC_CFLAGS ) \
287
+ $$(CFG_SPECIFIC_CC_CFLAGS_ $$(HOST_$(1 ) ) ) \
288
288
$$(CFG_DEPEND_FLAGS ) \
289
289
-c -o $$(1 ) $$(2 )
290
290
CFG_LINK_C_$(1 ) = $$(CFG_GCCISH_CROSS )$$(CC ) \
@@ -296,23 +296,19 @@ ifeq ($(CFG_C_COMPILER),gcc)
296
296
$$(CFG_GCCISH_CFLAGS ) \
297
297
$$(CFG_GCCISH_CXXFLAGS ) \
298
298
$$(CFG_GCCISH_CFLAGS_$$(HOST_$(1 ) ) ) \
299
- $$(CFG_GCC_CFLAGS ) \
300
- $$(CFG_GCC_CFLAGS_ $$(HOST_$(1 ) ) ) \
299
+ $$(CFG_SPECIFIC_CC_CFLAGS ) \
300
+ $$(CFG_SPECIFIC_CC_CFLAGS_ $$(HOST_$(1 ) ) ) \
301
301
$$(CFG_DEPEND_FLAGS ) \
302
302
-c -o $$(1 ) $$(2 )
303
303
CFG_LINK_CXX_$(1 ) = $$(CFG_GCCISH_CROSS )$$(CXX ) \
304
304
$$(CFG_GCCISH_LINK_FLAGS ) -o $$(1 ) \
305
305
$$(CFG_GCCISH_LINK_FLAGS_$$(HOST_$(1 ) ) ) \
306
306
$$(CFG_GCCISH_DEF_FLAG )$$(3 ) $$(2 ) \
307
307
$$(call CFG_INSTALL_NAME,$$(4 ) )
308
- endef
308
+ endef
309
309
310
- $(foreach target,$(CFG_TARGET_TRIPLES), \
311
- $(eval $(call CFG_MAKE_CC,$(target))))
312
- else
313
- CFG_ERR := $(error please try on a system with gcc or clang)
314
- endif
315
- endif
310
+ $(foreach target,$(CFG_TARGET_TRIPLES), \
311
+ $(eval $(call CFG_MAKE_CC,$(target))))
316
312
317
313
# We're using llvm-mc as our assembler because it supports
318
314
# .cfi pseudo-ops on mac
0 commit comments