Skip to content

Commit 14e5a6e

Browse files
committed
mk: Cleanup. Minor fixes
1 parent c707a2d commit 14e5a6e

File tree

4 files changed

+128
-135
lines changed

4 files changed

+128
-135
lines changed

configure

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@ fi
534534
# a little post-processing of various config values
535535

536536
CFG_PREFIX=${CFG_PREFIX%/}
537+
CFG_HOST_TRIPLES="$(echo $CFG_HOST_TRIPLES | tr ',' ' ')"
537538
CFG_TARGET_TRIPLES="$(echo $CFG_TARGET_TRIPLES | tr ',' ' ')"
538539

539540
# copy host-triples to target-triples so that hosts are a subset of targets

mk/dist.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ $(PKG_TAR): $(PKG_FILES)
8383

8484
.PHONY: dist distcheck
8585

86-
ifdef CFG_WINDOWSY
86+
ifdef CFG_WINDOWSY_$(CFG_BUILD_TRIPLE)
8787

8888
dist: $(PKG_EXE)
8989

mk/platform.mk

Lines changed: 122 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,88 @@ CFG_GCCISH_CFLAGS += -fno-omit-frame-pointer
3636
# embedded into the executable, so use a no-op command.
3737
CFG_DSYMUTIL := true
3838

39+
# Hack: not sure how to test if a file exists in make other than this
40+
OS_SUPP = $(patsubst %,--suppressions=%,\
41+
$(wildcard $(CFG_SRC_DIR)src/etc/$(CFG_OSTYPE).supp*))
42+
43+
ifdef CFG_DISABLE_OPTIMIZE_CXX
44+
$(info cfg: disabling C++ optimization (CFG_DISABLE_OPTIMIZE_CXX))
45+
CFG_GCCISH_CFLAGS += -O0
46+
else
47+
CFG_GCCISH_CFLAGS += -O2
48+
endif
49+
50+
ifdef CFG_VALGRIND
51+
CFG_VALGRIND += --error-exitcode=100 \
52+
--quiet \
53+
--suppressions=$(CFG_SRC_DIR)src/etc/x86.supp \
54+
$(OS_SUPP)
55+
ifdef CFG_ENABLE_HELGRIND
56+
CFG_VALGRIND += --tool=helgrind
57+
else
58+
CFG_VALGRIND += --tool=memcheck \
59+
--leak-check=full
60+
endif
61+
endif
62+
63+
ifneq ($(findstring linux,$(CFG_OSTYPE)),)
64+
# -znoexecstack is here because librt is for some reason being created
65+
# with executable stack and Fedora (or SELinux) doesn't like that (#798)
66+
ifdef CFG_PERF
67+
ifneq ($(CFG_PERF_WITH_LOGFD),)
68+
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3 --log-fd 2
69+
else
70+
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3
71+
endif
72+
else
73+
ifdef CFG_VALGRIND
74+
CFG_PERF_TOOL :=\
75+
$(CFG_VALGRIND) --tool=cachegrind --cache-sim=yes --branch-sim=yes
76+
else
77+
CFG_PERF_TOOL := /usr/bin/time --verbose
78+
endif
79+
endif
80+
endif
81+
82+
# These flags will cause the compiler to produce a .d file
83+
# next to the .o file that lists header deps.
84+
CFG_DEPEND_FLAGS = -MMD -MP -MT $(1) -MF $(1:%.o=%.d)
85+
86+
AR := ar
87+
88+
CFG_INFO := $(info cfg: using $(CFG_C_COMPILER))
89+
ifeq ($(CFG_C_COMPILER),clang)
90+
ifeq ($(origin CC),default)
91+
CC=clang
92+
endif
93+
ifeq ($(origin CXX),default)
94+
CXX=clang++
95+
endif
96+
ifeq ($(origin CPP),default)
97+
CPP=clang
98+
endif
99+
else
100+
ifeq ($(CFG_C_COMPILER),gcc)
101+
ifeq ($(origin CC),default)
102+
CC=gcc
103+
endif
104+
ifeq ($(origin CXX),default)
105+
CXX=g++
106+
endif
107+
ifeq ($(origin CPP),default)
108+
CPP=gcc
109+
endif
110+
else
111+
CFG_ERR := $(error please try on a system with gcc or clang)
112+
endif
113+
endif
114+
115+
39116
# x86_64-unknown-linux-gnu configuration
117+
CC_x86_64-unknown-linux-gnu=$(CC)
118+
CXX_x86_64-unknown-linux-gnu=$(CXX)
119+
CPP_x86_64-unknown-linux-gnu=$(CPP)
120+
AR_x86_64-unknown-linux-gnu=$(AR)
40121
CFG_LIB_NAME_x86_64-unknown-linux-gnu=lib$(1).so
41122
CFG_LIB_GLOB_x86_64-unknown-linux-gnu=lib$(1)-*.so
42123
CFG_LIB_DSYM_GLOB_x86_64-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
@@ -59,6 +140,10 @@ CFG_RUN_x86_64-unknown-linux-gnu=$(2)
59140
CFG_RUN_TARG_x86_64-unknown-linux-gnu=$(call CFG_RUN_x86_64-unknown-linux-gnu,,$(2))
60141

61142
# i686-unknown-linux-gnu configuration
143+
CC_i686-unknown-linux-gnu=$(CC)
144+
CXX_i686-unknown-linux-gnu=$(CXX)
145+
CPP_i686-unknown-linux-gnu=$(CPP)
146+
AR_i686-unknown-linux-gnu=$(AR)
62147
CFG_LIB_NAME_i686-unknown-linux-gnu=lib$(1).so
63148
CFG_LIB_GLOB_i686-unknown-linux-gnu=lib$(1)-*.so
64149
CFG_LIB_DSYM_GLOB_i686-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
@@ -81,6 +166,10 @@ CFG_RUN_i686-unknown-linux-gnu=$(2)
81166
CFG_RUN_TARG_i686-unknown-linux-gnu=$(call CFG_RUN_i686-unknown-linux-gnu,,$(2))
82167

83168
# x86_64-apple-darwin configuration
169+
CC_x86_64-apple-darwin=$(CC)
170+
CXX_x86_64-apple-darwin=$(CXX)
171+
CPP_x86_64-apple-darwin=$(CPP)
172+
AR_x86_64-apple-darwin=$(AR)
84173
CFG_LIB_NAME_x86_64-apple-darwin=lib$(1).dylib
85174
CFG_LIB_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib
86175
CFG_LIB_DSYM_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib.dSYM
@@ -102,6 +191,10 @@ CFG_RUN_x86_64-apple-darwin=$(2)
102191
CFG_RUN_TARG_x86_64-apple-darwin=$(call CFG_RUN_x86_64-apple-darwin,,$(2))
103192

104193
# i686-apple-darwin configuration
194+
CC_i686-apple-darwin=$(CC)
195+
CXX_i686-apple-darwin=$(CXX)
196+
CPP_i686-apple-darwin=$(CPP)
197+
AR_i686-apple-darwin=$(AR)
105198
CFG_LIB_NAME_i686-apple-darwin=lib$(1).dylib
106199
CFG_LIB_GLOB_i686-apple-darwin=lib$(1)-*.dylib
107200
CFG_LIB_DSYM_GLOB_i686-apple-darwin=lib$(1)-*.dylib.dSYM
@@ -123,6 +216,10 @@ CFG_RUN_i686-apple-darwin=$(2)
123216
CFG_RUN_TARG_i686-apple-darwin=$(call CFG_RUN_i686-apple-darwin,,$(2))
124217

125218
# arm-unknown-android configuration
219+
CC_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc
220+
CXX_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-g++
221+
CPP_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc -E
222+
AR_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-ar
126223
CFG_LIB_NAME_arm-unknown-android=lib$(1).so
127224
CFG_LIB_GLOB_arm-unknown-android=lib$(1)-*.so
128225
CFG_LIB_DSYM_GLOB_arm-unknown-android=lib$(1)-*.dylib.dSYM
@@ -135,7 +232,6 @@ CFG_GCCISH_POST_LIB_FLAGS_arm-unknown-android := -Wl,-no-whole-archive -Wl,-znoe
135232
CFG_DEF_SUFFIX_arm-unknown-android := .android.def
136233
CFG_INSTALL_NAME_arm-unknown-android =
137234
CFG_LIBUV_LINK_FLAGS_arm-unknown-android =
138-
CFG_GCCISH_CROSS_PREFIX_arm-unknown-android = $(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-
139235
CFG_EXE_SUFFIX_arm-unknown-android :=
140236
CFG_WINDOWSY_arm-unknown-android :=
141237
CFG_UNIXY_arm-unknown-android := 1
@@ -146,6 +242,10 @@ CFG_RUN_TARG_arm-unknown-android=
146242
RUSTC_FLAGS_arm-unknown-android :=--android-cross-path='$(CFG_ANDROID_CROSS_PATH)'
147243

148244
# i686-pc-mingw32 configuration
245+
CC_i686-pc-mingw32=$(CC)
246+
CXX_i686-pc-mingw32=$(CXX)
247+
CPP_i686-pc-mingw32=$(CPP)
248+
AR_i686-pc-mingw32=$(AR)
149249
CFG_LIB_NAME_i686-pc-mingw32=$(1).dll
150250
CFG_LIB_GLOB_i686-pc-mingw32=$(1)-*.dll
151251
CFG_LIB_DSYM_GLOB_i686-pc-mingw32=$(1)-*.dylib.dSYM
@@ -167,6 +267,10 @@ CFG_RUN_i686-pc-mingw32=PATH="$(CFG_LDPATH_i686-pc-mingw32):$(1)" $(2)
167267
CFG_RUN_TARG_i686-pc-mingw32=$(call CFG_RUN_i686-pc-mingw32,$(HLIB$(1)_H_$(CFG_BUILD_TRIPLE)),$(2))
168268

169269
# i586-mingw32msvc configuration
270+
CC_i586-mingw32msvc=$(CC)
271+
CXX_i586-mingw32msvc=$(CXX)
272+
CPP_i586-mingw32msvc=$(CPP)
273+
AR_i586-mingw32msvc=$(AR)
170274
CFG_LIB_NAME_i586-mingw32msvc=$(1).dll
171275
CFG_LIB_GLOB_i586-mingw32msvc=$(1)-*.dll
172276
CFG_LIB_DSYM_GLOB_i586-mingw32msvc=$(1)-*.dylib.dSYM
@@ -179,7 +283,6 @@ CFG_GCCISH_POST_LIB_FLAGS_i586-mingw32msvc :=
179283
CFG_DEF_SUFFIX_i586-mingw32msvc := .mingw32.def
180284
CFG_INSTALL_NAME_i586-mingw32msvc =
181285
CFG_LIBUV_LINK_FLAGS_i586-mingw32msvc := -lWs2_32 -lpsapi -liphlpapi
182-
CFG_GCCISH_CROSS_PREFIX_i586-mingw32msvc = $(CFG_MIGW32_CROSS_PATH)/bin/i586-mingw32msvc-
183286
CFG_EXE_SUFFIX_i586-mingw32msvc := .exe
184287
CFG_WINDOWSY_i586-mingw32msvc := 1
185288
CFG_UNIXY_i586-mingw32msvc :=
@@ -191,6 +294,10 @@ CFG_RUN_i586-mingw32msvc=
191294
CFG_RUN_TARG_i586-mingw32msvc=
192295

193296
# x86_64-unknown-freebsd configuration
297+
CC_x86_64-unknown-freebsd=$(CC)
298+
CXX_x86_64-unknown-freebsd=$(CXX)
299+
CPP_x86_64-unknown-freebsd=$(CPP)
300+
AR_x86_64-unknown-freebsd=$(AR)
194301
CFG_LIB_NAME_x86_64-unknown-freebsd=lib$(1).so
195302
CFG_LIB_GLOB_x86_64-unknown-freebsd=lib$(1)-*.so
196303
CFG_LIB_DSYM_GLOB_x86_64-unknown-freebsd=$(1)-*.dylib.dSYM
@@ -210,166 +317,50 @@ CFG_LDPATH_x86_64-unknown-freebsd :=
210317
CFG_RUN_x86_64-unknown-freebsd=$(2)
211318
CFG_RUN_TARG_x86_64-unknown-freebsd=$(call CFG_RUN_x86_64-unknown-freebsd,,$(2))
212319

213-
# Hack: not sure how to test if a file exists in make other than this
214-
OS_SUPP = $(patsubst %,--suppressions=%,\
215-
$(wildcard $(CFG_SRC_DIR)src/etc/$(CFG_OSTYPE).supp*))
216-
217-
ifdef CFG_DISABLE_OPTIMIZE_CXX
218-
$(info cfg: disabling C++ optimization (CFG_DISABLE_OPTIMIZE_CXX))
219-
CFG_GCCISH_CFLAGS += -O0
220-
else
221-
CFG_GCCISH_CFLAGS += -O2
222-
endif
223320

224-
ifdef CFG_VALGRIND
225-
CFG_VALGRIND += --error-exitcode=100 \
226-
--quiet \
227-
--suppressions=$(CFG_SRC_DIR)src/etc/x86.supp \
228-
$(OS_SUPP)
229-
ifdef CFG_ENABLE_HELGRIND
230-
CFG_VALGRIND += --tool=helgrind
231-
else
232-
CFG_VALGRIND += --tool=memcheck \
233-
--leak-check=full
234-
endif
235-
endif
236-
237-
ifneq ($(findstring linux,$(CFG_OSTYPE)),)
238-
# -znoexecstack is here because librt is for some reason being created
239-
# with executable stack and Fedora (or SELinux) doesn't like that (#798)
240-
ifdef CFG_PERF
241-
ifneq ($(CFG_PERF_WITH_LOGFD),)
242-
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3 --log-fd 2
243-
else
244-
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3
245-
endif
246-
else
247-
ifdef CFG_VALGRIND
248-
CFG_PERF_TOOL :=\
249-
$(CFG_VALGRIND) --tool=cachegrind --cache-sim=yes --branch-sim=yes
250-
else
251-
CFG_PERF_TOOL := /usr/bin/time --verbose
252-
endif
253-
endif
254-
endif
255-
256-
CFG_INFO := $(info cfg: using $(CFG_C_COMPILER))
257-
ifeq ($(CFG_C_COMPILER),clang)
258-
ifeq ($(origin CC),default)
259-
CC=clang
260-
endif
261-
ifeq ($(origin CXX),default)
262-
CXX=clang++
263-
endif
264-
ifeq ($(origin CPP),default)
265-
CPP=clang
266-
endif
267-
CFG_GCCISH_CFLAGS +=
268-
CFG_GCCISH_CXXFLAGS +=
269-
CFG_GCCISH_LINK_FLAGS +=
270-
# These flags will cause the compiler to produce a .d file
271-
# next to the .o file that lists header deps.
272-
CFG_DEPEND_FLAGS = -MMD -MP -MT $(1) -MF $(1:%.o=%.d)
273-
274-
else
275-
ifeq ($(CFG_C_COMPILER),gcc)
276-
ifeq ($(origin CC),default)
277-
CC=gcc
278-
endif
279-
ifeq ($(origin CXX),default)
280-
CXX=g++
281-
endif
282-
ifeq ($(origin CPP),default)
283-
CPP=gcc
284-
endif
285-
CFG_GCCISH_CFLAGS +=
286-
CFG_GCCISH_CXXFLAGS +=
287-
CFG_GCCISH_LINK_FLAGS +=
288-
# These flags will cause the compiler to produce a .d file
289-
# next to the .o file that lists header deps.
290-
CFG_DEPEND_FLAGS = -MMD -MP -MT $(1) -MF $(1:%.o=%.d)
291-
292-
else
293-
CFG_ERR := $(error please try on a system with gcc or clang)
294-
endif
295-
endif
296-
297-
define CFG_MAKE_CC
298-
ifeq ($$(CFG_BUILD_TRIPLE),$(1))
299-
300-
CFG_COMPILE_C_$(1) = $$(CC) \
301-
$$(CFG_GCCISH_CFLAGS) \
302-
$$(CFG_GCCISH_CFLAGS_$(1)) \
303-
$$(CFG_DEPEND_FLAGS) \
304-
-c -o $$(1) $$(2)
305-
CFG_LINK_C_$(1) = $$(CC) \
306-
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
307-
$$(CFG_GCCISH_LINK_FLAGS_$(1))) \
308-
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
309-
$$(call CFG_INSTALL_NAME_$(1),$$(4))
310-
CFG_COMPILE_CXX_$(1) = $$(CXX) \
321+
define CFG_MAKE_TOOLCHAIN
322+
CFG_COMPILE_C_$(1) = $$(CC_$(1)) \
311323
$$(CFG_GCCISH_CFLAGS) \
312-
$$(CFG_GCCISH_CXXFLAGS) \
313324
$$(CFG_GCCISH_CFLAGS_$(1)) \
314-
$$(CFG_GCCISH_CXXFLAGS_$(1)) \
315325
$$(CFG_DEPEND_FLAGS) \
316326
-c -o $$(1) $$(2)
317-
CFG_LINK_CXX_$(1) = $$(CXX) \
318-
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
319-
$$(CFG_GCCISH_LINK_FLAGS_$(1)) \
320-
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
321-
$$(call CFG_INSTALL_NAME_$(1),$$(4))
322-
323-
else
324-
325-
CFG_COMPILE_C_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC) \
326-
$$(CFG_GCCISH_CFLAGS) \
327-
$$(CFG_GCCISH_CFLAGS_$(1)) \
328-
$$(CFG_DEPEND_FLAGS) \
329-
-c -o $$(1) $$(2)
330-
CFG_LINK_C_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC) \
327+
CFG_LINK_C_$(1) = $$(CC_$(1)) \
331328
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
332329
$$(CFG_GCCISH_LINK_FLAGS_$(1))) \
333330
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
334331
$$(call CFG_INSTALL_NAME_$(1),$$(4))
335-
CFG_COMPILE_CXX_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX) \
332+
CFG_COMPILE_CXX_$(1) = $$(CXX_$(1)) \
336333
$$(CFG_GCCISH_CFLAGS) \
337334
$$(CFG_GCCISH_CXXFLAGS) \
338335
$$(CFG_GCCISH_CFLAGS_$(1)) \
339336
$$(CFG_GCCISH_CXXFLAGS_$(1)) \
340337
$$(CFG_DEPEND_FLAGS) \
341338
-c -o $$(1) $$(2)
342-
CFG_LINK_CXX_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX) \
339+
CFG_LINK_CXX_$(1) = $$(CXX_$(1)) \
343340
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
344341
$$(CFG_GCCISH_LINK_FLAGS_$(1)) \
345342
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
346343
$$(call CFG_INSTALL_NAME_$(1),$$(4))
347344

348-
endif
349-
350-
endef
351-
352-
$(foreach target,$(CFG_TARGET_TRIPLES), \
353-
$(eval $(call CFG_MAKE_CC,$(target))))
354-
355-
# We're using llvm-mc as our assembler because it supports
356-
# .cfi pseudo-ops on mac
357-
define CFG_MAKE_ASSEMBLER
358-
ifeq ($$(CFG_BUILD_TRIPLE),$(1))
345+
ifneq ($(1),arm-unknown-android)
359346

360-
CFG_ASSEMBLE_$(1)=$$(CPP) -E $$(CFG_DEPEND_FLAGS) $$(2) | \
347+
# We're using llvm-mc as our assembler because it supports
348+
# .cfi pseudo-ops on mac
349+
CFG_ASSEMBLE_$(1)=$$(CPP_$(1)) -E $$(CFG_DEPEND_FLAGS) $$(2) | \
361350
$$(LLVM_MC_$$(CFG_BUILD_TRIPLE)) \
362351
-assemble \
363352
-filetype=obj \
364353
-triple=$(1) \
365354
-o=$$(1)
366355
else
367356

368-
CFG_ASSEMBLE_$(1)=$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CPP) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1)
357+
# For the Android cross, use the Android assembler
358+
# XXX: We should be able to use the LLVM assembler
359+
CFG_ASSEMBLE_$(1)=$$(CXX_$(1)) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1)
369360

370361
endif
371362

372363
endef
373364

374365
$(foreach target,$(CFG_TARGET_TRIPLES),\
375-
$(eval $(call CFG_MAKE_ASSEMBLER,$(target))))
366+
$(eval $(call CFG_MAKE_TOOLCHAIN,$(target))))

mk/rt.mk

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ LIBUV_DEPS := $$(wildcard \
157157
$$(S)src/libuv/*/*/*/*)
158158
endif
159159

160+
# XXX: Shouldn't need platform-specific conditions here
160161
ifdef CFG_WINDOWSY_$(1)
161162
$$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
162163
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
@@ -168,9 +169,9 @@ $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
168169
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
169170
CFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \
170171
LDFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1)))" \
171-
CC="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC)" \
172-
CXX="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX)" \
173-
AR="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(AR)" \
172+
CC="$$(CC_$(1))" \
173+
CXX="$$(CXX_$(1))" \
174+
AR="$$(AR_$(1))" \
174175
BUILDTYPE=Release \
175176
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \
176177
host=android OS=linux \

0 commit comments

Comments
 (0)