Skip to content

Commit c888fc6

Browse files
committed
auto merge of #10164 : brson/rust/configure, r=brson
Rebase of #9990
2 parents f73a48e + b9504f9 commit c888fc6

File tree

19 files changed

+256
-226
lines changed

19 files changed

+256
-226
lines changed

Makefile.in

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -70,22 +70,22 @@ include config.mk
7070
ALL_OBJ_FILES :=
7171

7272
MKFILE_DEPS := config.stamp $(call rwildcard,$(CFG_SRC_DIR)mk/,*)
73-
NON_BUILD_HOST_TRIPLES = $(filter-out $(CFG_BUILD_TRIPLE),$(CFG_HOST_TRIPLES))
74-
NON_BUILD_TARGET_TRIPLES = $(filter-out $(CFG_BUILD_TRIPLE),$(CFG_TARGET_TRIPLES))
73+
NON_BUILD_HOST = $(filter-out $(CFG_BUILD),$(CFG_HOST))
74+
NON_BUILD_TARGET = $(filter-out $(CFG_BUILD),$(CFG_TARGET))
7575

7676
ifneq ($(MAKE_RESTARTS),)
7777
CFG_INFO := $(info cfg: make restarts: $(MAKE_RESTARTS))
7878
endif
7979

80-
CFG_INFO := $(info cfg: build triple $(CFG_BUILD_TRIPLE))
81-
CFG_INFO := $(info cfg: host triples $(CFG_HOST_TRIPLES))
82-
CFG_INFO := $(info cfg: target triples $(CFG_TARGET_TRIPLES))
80+
CFG_INFO := $(info cfg: build triple $(CFG_BUILD))
81+
CFG_INFO := $(info cfg: host triples $(CFG_HOST))
82+
CFG_INFO := $(info cfg: target triples $(CFG_TARGET))
8383

84-
ifneq ($(wildcard $(NON_BUILD_HOST_TRIPLES)),)
85-
CFG_INFO := $(info cfg: non-build host triples $(NON_BUILD_HOST_TRIPLES))
84+
ifneq ($(wildcard $(NON_BUILD_HOST)),)
85+
CFG_INFO := $(info cfg: non-build host triples $(NON_BUILD_HOST))
8686
endif
87-
ifneq ($(wildcard $(NON_BUILD_TARGET_TRIPLES)),)
88-
CFG_INFO := $(info cfg: non-build target triples $(NON_BUILD_TARGET_TRIPLES))
87+
ifneq ($(wildcard $(NON_BUILD_TARGET)),)
88+
CFG_INFO := $(info cfg: non-build target triples $(NON_BUILD_TARGET))
8989
endif
9090

9191
CFG_RUSTC_FLAGS := $(RUSTFLAGS)
@@ -189,7 +189,7 @@ S := $(CFG_SRC_DIR)
189189
define DEF_X
190190
X_$(1) := $(CFG_EXE_SUFFIX_$(1))
191191
endef
192-
$(foreach target,$(CFG_TARGET_TRIPLES),\
192+
$(foreach target,$(CFG_TARGET),\
193193
$(eval $(call DEF_X,$(target))))
194194

195195
# Look in doc and src dirs.
@@ -273,7 +273,7 @@ define LIST_ALL_OLD_GLOB_MATCHES_EXCEPT
273273
endef
274274
endif
275275

276-
$(foreach target,$(CFG_TARGET_TRIPLES),\
276+
$(foreach target,$(CFG_TARGET),\
277277
$(eval $(call DEF_LIBS,$(target))))
278278

279279
######################################################################
@@ -347,7 +347,7 @@ LLC_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llc$$(X_$(1))
347347

348348
endef
349349

350-
$(foreach host,$(CFG_HOST_TRIPLES), \
350+
$(foreach host,$(CFG_HOST), \
351351
$(eval $(call DEF_LLVM_VARS,$(host))))
352352

353353
######################################################################
@@ -361,7 +361,7 @@ export CFG_SRC_DIR
361361
export CFG_BUILD_DIR
362362
export CFG_VERSION
363363
export CFG_VERSION_WIN
364-
export CFG_BUILD_TRIPLE
364+
export CFG_BUILD
365365
export CFG_LLVM_ROOT
366366
export CFG_ENABLE_MINGW_CROSS
367367
export CFG_PREFIX
@@ -484,7 +484,7 @@ CFGFLAG$(1)_T_$(2)_H_$(3) = stage$(1)
484484
# if you're building a cross config, the host->* parts are
485485
# effectively stage1, since it uses the just-built stage0.
486486
ifeq ($(1),0)
487-
ifneq ($(strip $(CFG_BUILD_TRIPLE)),$(strip $(3)))
487+
ifneq ($(strip $(CFG_BUILD)),$(strip $(3)))
488488
CFGFLAG$(1)_T_$(2)_H_$(3) = stage1
489489
endif
490490
endif
@@ -507,8 +507,8 @@ PERF_STAGE$(1)_T_$(2)_H_$(3) := \
507507

508508
endef
509509

510-
$(foreach build,$(CFG_HOST_TRIPLES), \
511-
$(eval $(foreach target,$(CFG_TARGET_TRIPLES), \
510+
$(foreach build,$(CFG_HOST), \
511+
$(eval $(foreach target,$(CFG_TARGET), \
512512
$(eval $(foreach stage,$(STAGES), \
513513
$(eval $(call SREQ,$(stage),$(target),$(build))))))))
514514

@@ -523,34 +523,34 @@ define DEF_RUSTC_STAGE_TARGET
523523
# $(2) == stage
524524

525525
rustc-stage$(2)-H-$(1): \
526-
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
526+
$$(foreach target,$$(CFG_TARGET), \
527527
$$(SREQ$(2)_T_$$(target)_H_$(1)))
528528

529529
endef
530530

531-
$(foreach host,$(CFG_HOST_TRIPLES), \
531+
$(foreach host,$(CFG_HOST), \
532532
$(eval $(foreach stage,1 2 3, \
533533
$(eval $(call DEF_RUSTC_STAGE_TARGET,$(host),$(stage))))))
534534

535-
rustc-stage1: rustc-stage1-H-$(CFG_BUILD_TRIPLE)
536-
rustc-stage2: rustc-stage2-H-$(CFG_BUILD_TRIPLE)
537-
rustc-stage3: rustc-stage3-H-$(CFG_BUILD_TRIPLE)
535+
rustc-stage1: rustc-stage1-H-$(CFG_BUILD)
536+
rustc-stage2: rustc-stage2-H-$(CFG_BUILD)
537+
rustc-stage3: rustc-stage3-H-$(CFG_BUILD)
538538

539539
define DEF_RUSTC_TARGET
540540
# $(1) == architecture
541541

542542
rustc-H-$(1): rustc-stage2-H-$(1)
543543
endef
544544

545-
$(foreach host,$(CFG_TARGET_TRIPLES), \
545+
$(foreach host,$(CFG_TARGET), \
546546
$(eval $(call DEF_RUSTC_TARGET,$(host))))
547547

548-
rustc-stage1: rustc-stage1-H-$(CFG_BUILD_TRIPLE)
549-
rustc-stage2: rustc-stage2-H-$(CFG_BUILD_TRIPLE)
550-
rustc-stage3: rustc-stage3-H-$(CFG_BUILD_TRIPLE)
551-
rustc: rustc-H-$(CFG_BUILD_TRIPLE)
548+
rustc-stage1: rustc-stage1-H-$(CFG_BUILD)
549+
rustc-stage2: rustc-stage2-H-$(CFG_BUILD)
550+
rustc-stage3: rustc-stage3-H-$(CFG_BUILD)
551+
rustc: rustc-H-$(CFG_BUILD)
552552

553-
rustc-H-all: $(foreach host,$(CFG_HOST_TRIPLES),rustc-H-$(host))
553+
rustc-H-all: $(foreach host,$(CFG_HOST),rustc-H-$(host))
554554

555555
######################################################################
556556
# Entrypoint rule
@@ -566,12 +566,12 @@ CFG_INFO := $(info cfg: *** stage2 and later will not be built ***)
566566
CFG_INFO := $(info cfg:)
567567

568568
#XXX This is surely busted
569-
all: $(SREQ1$(CFG_BUILD_TRIPLE)) $(GENERATED) docs
569+
all: $(SREQ1$(CFG_BUILD)) $(GENERATED) docs
570570

571571
else
572572

573573
define ALL_TARGET_N
574-
ifneq ($$(findstring $(1),$$(CFG_HOST_TRIPLES)),)
574+
ifneq ($$(findstring $(1),$$(CFG_HOST)),)
575575
# This is a host
576576
all-target-$(1)-host-$(2): $$(CSREQ2_T_$(1)_H_$(2))
577577
else
@@ -580,12 +580,12 @@ all-target-$(1)-host-$(2): $$(SREQ2_T_$(1)_H_$(2))
580580
endif
581581
endef
582582

583-
$(foreach target,$(CFG_TARGET_TRIPLES), \
584-
$(foreach host,$(CFG_HOST_TRIPLES), \
583+
$(foreach target,$(CFG_TARGET), \
584+
$(foreach host,$(CFG_HOST), \
585585
$(eval $(call ALL_TARGET_N,$(target),$(host)))))
586586

587-
ALL_TARGET_RULES = $(foreach target,$(CFG_TARGET_TRIPLES), \
588-
$(foreach host,$(CFG_HOST_TRIPLES), \
587+
ALL_TARGET_RULES = $(foreach target,$(CFG_TARGET), \
588+
$(foreach host,$(CFG_HOST), \
589589
all-target-$(target)-host-$(host)))
590590

591591
all: $(ALL_TARGET_RULES) $(GENERATED) docs

configure

Lines changed: 55 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ then
336336
fi
337337

338338

339-
DEFAULT_BUILD_TRIPLE="${CFG_CPUTYPE}-${CFG_OSTYPE}"
339+
DEFAULT_BUILD="${CFG_CPUTYPE}-${CFG_OSTYPE}"
340340

341341
CFG_SRC_DIR="$(cd $(dirname $0) && pwd)/"
342342
CFG_BUILD_DIR="$(pwd)/"
@@ -385,12 +385,26 @@ opt pax-flags 0 "apply PaX flags to rustc binaries (required for GRSecurity/PaX-
385385
valopt prefix "/usr/local" "set installation prefix"
386386
valopt local-rust-root "/usr/local" "set prefix for local rust binary"
387387
valopt llvm-root "" "set LLVM root"
388-
valopt build-triple "${DEFAULT_BUILD_TRIPLE}" "LLVM build triple"
389-
valopt host-triples "${CFG_BUILD_TRIPLE}" "LLVM host triples"
390-
valopt target-triples "${CFG_HOST_TRIPLES}" "LLVM target triples"
391388
valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path"
392389
valopt mingw32-cross-path "" "MinGW32 cross compiler path"
393390

391+
valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple"
392+
valopt host "${CFG_BUILD}" "GNUs ./configure syntax LLVM host triples"
393+
valopt target "${CFG_HOST}" "GNUs ./configure syntax LLVM target triples"
394+
395+
valopt localstatedir "/var/lib" "local state directory"
396+
valopt sysconfdir "/etc" "install system configuration files"
397+
398+
valopt datadir "${CFG_PREFIX}/share" "install data"
399+
valopt infodir "${CFG_PREFIX}/share/info" "install additional info"
400+
valopt mandir "${CFG_PREFIX}/share/man" "install man pages in PATH"
401+
valopt libdir "${CFG_PREFIX}/lib" "install libraries"
402+
403+
#Deprecated opts to keep compatibility
404+
valopt build-triple "${DEFAULT_BUILD}" "LLVM build triple"
405+
valopt host-triples "${CFG_BUILD}" "LLVM host triples"
406+
valopt target-triples "${CFG_HOST}" "LLVM target triples"
407+
394408
# Validate Options
395409
step_msg "validating $CFG_SELF args"
396410
validate_opt
@@ -589,23 +603,44 @@ fi
589603
# a little post-processing of various config values
590604

591605
CFG_PREFIX=${CFG_PREFIX%/}
592-
CFG_HOST_TRIPLES="$(echo $CFG_HOST_TRIPLES | tr ',' ' ')"
593-
CFG_TARGET_TRIPLES="$(echo $CFG_TARGET_TRIPLES | tr ',' ' ')"
594-
CFG_SUPPORTED_TARGET_TRIPLES="$(grep ^CC_*=* $CFG_SRC_DIR/mk/platform.mk | sed -e 's/^CC_//' -e 's/\([^=]*\).*/\1/' | xargs)"
606+
CFG_MANDIR=${CFG_MANDIR%/}
607+
CFG_HOST="$(echo $CFG_HOST | tr ',' ' ')"
608+
CFG_TARGET="$(echo $CFG_TARGET | tr ',' ' ')"
609+
CFG_SUPPORTED_TARGET="$(grep ^CC_*=* $CFG_SRC_DIR/mk/platform.mk | sed -e 's/^CC_//' -e 's/\([^=]*\).*/\1/' | xargs)"
595610

596611
# copy host-triples to target-triples so that hosts are a subset of targets
597612
V_TEMP=""
613+
for i in $CFG_HOST $CFG_TARGET;
614+
do
615+
echo "$V_TEMP" | grep -qF $i || V_TEMP="$V_TEMP${V_TEMP:+ }$i"
616+
done
617+
CFG_TARGET=$V_TEMP
618+
619+
# copy host-triples to target-triples so that hosts are a subset of targets
620+
# XXX: remove deprecated variables here
621+
V_TEMP=""
598622
for i in $CFG_HOST_TRIPLES $CFG_TARGET_TRIPLES;
599623
do
600624
echo "$V_TEMP" | grep -qF $i || V_TEMP="$V_TEMP${V_TEMP:+ }$i"
601625
done
602626
CFG_TARGET_TRIPLES=$V_TEMP
603627

628+
# XXX: Support for deprecated syntax, should be dropped.
629+
if [ ! -z "$CFG_BUILD_TRIPLE" ]; then
630+
CFG_BUILD=${CFG_BUILD_TRIPLE}
631+
fi
632+
if [ ! -z "$CFG_HOST_TRIPLES" ]; then
633+
CFG_HOST=${CFG_HOST_TRIPLES}
634+
fi
635+
if [ ! -z "$CFG_TARGET_TRIPLES" ]; then
636+
CFG_TARGET=${CFG_TARGET_TRIPLES}
637+
fi
638+
604639
# check target-specific tool-chains
605-
for i in $CFG_TARGET_TRIPLES
640+
for i in $CFG_TARGET
606641
do
607642
L_CHECK=false
608-
for j in $CFG_SUPPORTED_TARGET_TRIPLES
643+
for j in $CFG_SUPPORTED_TARGET
609644
do
610645
if [ $i = $j ]
611646
then
@@ -664,17 +699,17 @@ do
664699
make_dir $i
665700
done
666701

667-
for t in $CFG_HOST_TRIPLES
702+
for t in $CFG_HOST
668703
do
669704
make_dir $t/llvm
670705
done
671706

672-
for t in $CFG_HOST_TRIPLES
707+
for t in $CFG_HOST
673708
do
674709
make_dir $t/rustllvm
675710
done
676711

677-
for t in $CFG_TARGET_TRIPLES
712+
for t in $CFG_TARGET
678713
do
679714
make_dir $t/rt
680715
for s in 0 1 2 3
@@ -703,9 +738,9 @@ then
703738
CFG_LIBDIR=bin
704739
fi
705740

706-
for h in $CFG_HOST_TRIPLES
741+
for h in $CFG_HOST
707742
do
708-
for t in $CFG_TARGET_TRIPLES
743+
for t in $CFG_TARGET
709744
do
710745
for i in 0 1 2 3
711746
do
@@ -785,7 +820,7 @@ fi
785820
# Configure llvm, only if necessary
786821
step_msg "looking at LLVM"
787822
CFG_LLVM_SRC_DIR=${CFG_SRC_DIR}src/llvm/
788-
for t in $CFG_HOST_TRIPLES
823+
for t in $CFG_HOST
789824
do
790825
do_reconfigure=1
791826

@@ -961,20 +996,15 @@ putvar CFG_OSTYPE
961996
putvar CFG_CPUTYPE
962997
putvar CFG_CONFIGURE_ARGS
963998
putvar CFG_PREFIX
964-
putvar CFG_BUILD_TRIPLE
965-
putvar CFG_HOST_TRIPLES
966-
putvar CFG_TARGET_TRIPLES
999+
putvar CFG_BUILD
1000+
putvar CFG_HOST
1001+
putvar CFG_TARGET
9671002
putvar CFG_C_COMPILER
9681003
putvar CFG_LIBDIR
9691004
putvar CFG_DISABLE_MANAGE_SUBMODULES
9701005
putvar CFG_ANDROID_CROSS_PATH
9711006
putvar CFG_MINGW32_CROSS_PATH
972-
973-
if [ ! -z "$CFG_ENABLE_PAX_FLAGS" ]
974-
then
975-
putvar CFG_ENABLE_PAX_FLAGS
976-
putvar CFG_PAXCTL
977-
fi
1007+
putvar CFG_MANDIR
9781008

9791009
# Avoid spurious warnings from clang by feeding it original source on
9801010
# ccache-miss rather than preprocessed input.
@@ -1015,7 +1045,7 @@ fi
10151045
putvar CFG_LLVM_ROOT
10161046
putvar CFG_LLVM_SRC_DIR
10171047

1018-
for t in $CFG_HOST_TRIPLES
1048+
for t in $CFG_HOST
10191049
do
10201050
CFG_LLVM_BUILD_DIR=$(echo CFG_LLVM_BUILD_DIR_${t} | tr - _)
10211051
CFG_LLVM_INST_DIR=$(echo CFG_LLVM_INST_DIR_${t} | tr - _)

mk/clean.mk

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414

1515
CLEAN_STAGE_RULES = \
1616
$(foreach stage, $(STAGES), \
17-
$(foreach host, $(CFG_HOST_TRIPLES), \
17+
$(foreach host, $(CFG_HOST), \
1818
clean$(stage)_H_$(host) \
19-
$(foreach target, $(CFG_TARGET_TRIPLES), \
19+
$(foreach target, $(CFG_TARGET), \
2020
clean$(stage)_T_$(target)_H_$(host))))
2121

2222
CLEAN_LLVM_RULES = \
23-
$(foreach target, $(CFG_HOST_TRIPLES), \
23+
$(foreach target, $(CFG_HOST), \
2424
clean-llvm$(target))
2525

2626
.PHONY: clean clean-all clean-misc clean-llvm
@@ -33,17 +33,17 @@ clean: clean-misc $(CLEAN_STAGE_RULES)
3333

3434
clean-misc:
3535
@$(call E, cleaning)
36-
$(Q)find $(CFG_BUILD_TRIPLE)/rustllvm \
37-
$(CFG_BUILD_TRIPLE)/rt \
38-
$(CFG_BUILD_TRIPLE)/test \
36+
$(Q)find $(CFG_BUILD)/rustllvm \
37+
$(CFG_BUILD)/rt \
38+
$(CFG_BUILD)/test \
3939
-name '*.[odasS]' -o \
4040
-name '*.so' -o \
4141
-name '*.dylib' -o \
4242
-name '*.dll' -o \
4343
-name '*.def' -o \
4444
-name '*.bc' \
4545
| xargs rm -f
46-
$(Q)find $(CFG_BUILD_TRIPLE)\
46+
$(Q)find $(CFG_BUILD)\
4747
-name '*.dSYM' \
4848
| xargs rm -Rf
4949
$(Q)rm -f $(RUNTIME_OBJS) $(RUNTIME_DEF)
@@ -87,7 +87,7 @@ clean$(1)_H_$(2):
8787

8888
endef
8989

90-
$(foreach host, $(CFG_HOST_TRIPLES), \
90+
$(foreach host, $(CFG_HOST), \
9191
$(eval $(foreach stage, $(STAGES), \
9292
$(eval $(call CLEAN_HOST_STAGE_N,$(stage),$(host))))))
9393

@@ -121,8 +121,8 @@ clean$(1)_T_$(2)_H_$(3):
121121
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/run_pass_stage* # For windows
122122
endef
123123

124-
$(foreach host, $(CFG_HOST_TRIPLES), \
125-
$(eval $(foreach target, $(CFG_TARGET_TRIPLES), \
124+
$(foreach host, $(CFG_HOST), \
125+
$(eval $(foreach target, $(CFG_TARGET), \
126126
$(eval $(foreach stage, 0 1 2 3, \
127127
$(eval $(call CLEAN_TARGET_STAGE_N,$(stage),$(target),$(host))))))))
128128

@@ -136,5 +136,5 @@ clean-llvm$(1): ;
136136
endif
137137
endef
138138

139-
$(foreach host, $(CFG_HOST_TRIPLES), \
139+
$(foreach host, $(CFG_HOST), \
140140
$(eval $(call DEF_CLEAN_LLVM_HOST,$(host))))

0 commit comments

Comments
 (0)