Skip to content

Commit f35de11

Browse files
committed
auto merge of #9990 : Heather/rust/configure-changes, r=brson
Re-created: #9760 Now, without adding `pc-linux-gnu` platform Re-created: #9565 t will be useful for unix systems, some package managers and external tools that is passing / maybe looking for GNU configure syntax options. One of related bugs: #5138 Also that could be useful in future if project will really install man pages / other stuff using those variables.
2 parents dcdcd30 + 782cf04 commit f35de11

19 files changed

+254
-223
lines changed

Makefile.in

+33-33
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.
@@ -270,7 +270,7 @@ define LIST_ALL_OLD_GLOB_MATCHES_EXCEPT
270270
endef
271271
endif
272272

273-
$(foreach target,$(CFG_TARGET_TRIPLES),\
273+
$(foreach target,$(CFG_TARGET),\
274274
$(eval $(call DEF_LIBS,$(target))))
275275

276276
######################################################################
@@ -336,7 +336,7 @@ LLC_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llc$$(X_$(1))
336336

337337
endef
338338

339-
$(foreach host,$(CFG_HOST_TRIPLES), \
339+
$(foreach host,$(CFG_HOST), \
340340
$(eval $(call DEF_LLVM_VARS,$(host))))
341341

342342
######################################################################
@@ -350,7 +350,7 @@ export CFG_SRC_DIR
350350
export CFG_BUILD_DIR
351351
export CFG_VERSION
352352
export CFG_VERSION_WIN
353-
export CFG_BUILD_TRIPLE
353+
export CFG_BUILD
354354
export CFG_LLVM_ROOT
355355
export CFG_ENABLE_MINGW_CROSS
356356
export CFG_PREFIX
@@ -465,7 +465,7 @@ CFGFLAG$(1)_T_$(2)_H_$(3) = stage$(1)
465465
# if you're building a cross config, the host->* parts are
466466
# effectively stage1, since it uses the just-built stage0.
467467
ifeq ($(1),0)
468-
ifneq ($(strip $(CFG_BUILD_TRIPLE)),$(strip $(3)))
468+
ifneq ($(strip $(CFG_BUILD)),$(strip $(3)))
469469
CFGFLAG$(1)_T_$(2)_H_$(3) = stage1
470470
endif
471471
endif
@@ -488,8 +488,8 @@ PERF_STAGE$(1)_T_$(2)_H_$(3) := \
488488

489489
endef
490490

491-
$(foreach build,$(CFG_HOST_TRIPLES), \
492-
$(eval $(foreach target,$(CFG_TARGET_TRIPLES), \
491+
$(foreach build,$(CFG_HOST), \
492+
$(eval $(foreach target,$(CFG_TARGET), \
493493
$(eval $(foreach stage,$(STAGES), \
494494
$(eval $(call SREQ,$(stage),$(target),$(build))))))))
495495

@@ -504,34 +504,34 @@ define DEF_RUSTC_STAGE_TARGET
504504
# $(2) == stage
505505

506506
rustc-stage$(2)-H-$(1): \
507-
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
507+
$$(foreach target,$$(CFG_TARGET), \
508508
$$(SREQ$(2)_T_$$(target)_H_$(1)))
509509

510510
endef
511511

512-
$(foreach host,$(CFG_HOST_TRIPLES), \
512+
$(foreach host,$(CFG_HOST), \
513513
$(eval $(foreach stage,1 2 3, \
514514
$(eval $(call DEF_RUSTC_STAGE_TARGET,$(host),$(stage))))))
515515

516-
rustc-stage1: rustc-stage1-H-$(CFG_BUILD_TRIPLE)
517-
rustc-stage2: rustc-stage2-H-$(CFG_BUILD_TRIPLE)
518-
rustc-stage3: rustc-stage3-H-$(CFG_BUILD_TRIPLE)
516+
rustc-stage1: rustc-stage1-H-$(CFG_BUILD)
517+
rustc-stage2: rustc-stage2-H-$(CFG_BUILD)
518+
rustc-stage3: rustc-stage3-H-$(CFG_BUILD)
519519

520520
define DEF_RUSTC_TARGET
521521
# $(1) == architecture
522522

523523
rustc-H-$(1): rustc-stage2-H-$(1)
524524
endef
525525

526-
$(foreach host,$(CFG_TARGET_TRIPLES), \
526+
$(foreach host,$(CFG_TARGET), \
527527
$(eval $(call DEF_RUSTC_TARGET,$(host))))
528528

529-
rustc-stage1: rustc-stage1-H-$(CFG_BUILD_TRIPLE)
530-
rustc-stage2: rustc-stage2-H-$(CFG_BUILD_TRIPLE)
531-
rustc-stage3: rustc-stage3-H-$(CFG_BUILD_TRIPLE)
532-
rustc: rustc-H-$(CFG_BUILD_TRIPLE)
529+
rustc-stage1: rustc-stage1-H-$(CFG_BUILD)
530+
rustc-stage2: rustc-stage2-H-$(CFG_BUILD)
531+
rustc-stage3: rustc-stage3-H-$(CFG_BUILD)
532+
rustc: rustc-H-$(CFG_BUILD)
533533

534-
rustc-H-all: $(foreach host,$(CFG_HOST_TRIPLES),rustc-H-$(host))
534+
rustc-H-all: $(foreach host,$(CFG_HOST),rustc-H-$(host))
535535

536536
######################################################################
537537
# Entrypoint rule
@@ -547,12 +547,12 @@ CFG_INFO := $(info cfg: *** stage2 and later will not be built ***)
547547
CFG_INFO := $(info cfg:)
548548

549549
#XXX This is surely busted
550-
all: $(SREQ1$(CFG_BUILD_TRIPLE)) $(GENERATED) docs
550+
all: $(SREQ1$(CFG_BUILD)) $(GENERATED) docs
551551

552552
else
553553

554554
define ALL_TARGET_N
555-
ifneq ($$(findstring $(1),$$(CFG_HOST_TRIPLES)),)
555+
ifneq ($$(findstring $(1),$$(CFG_HOST)),)
556556
# This is a host
557557
all-target-$(1)-host-$(2): $$(CSREQ2_T_$(1)_H_$(2))
558558
else
@@ -561,12 +561,12 @@ all-target-$(1)-host-$(2): $$(SREQ2_T_$(1)_H_$(2))
561561
endif
562562
endef
563563

564-
$(foreach target,$(CFG_TARGET_TRIPLES), \
565-
$(foreach host,$(CFG_HOST_TRIPLES), \
564+
$(foreach target,$(CFG_TARGET), \
565+
$(foreach host,$(CFG_HOST), \
566566
$(eval $(call ALL_TARGET_N,$(target),$(host)))))
567567

568-
ALL_TARGET_RULES = $(foreach target,$(CFG_TARGET_TRIPLES), \
569-
$(foreach host,$(CFG_HOST_TRIPLES), \
568+
ALL_TARGET_RULES = $(foreach target,$(CFG_TARGET), \
569+
$(foreach host,$(CFG_HOST), \
570570
all-target-$(target)-host-$(host)))
571571

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

configure

+55-25
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

+11-11
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)
@@ -86,7 +86,7 @@ clean$(1)_H_$(2):
8686

8787
endef
8888

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

@@ -118,8 +118,8 @@ clean$(1)_T_$(2)_H_$(3):
118118
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/run_pass_stage* # For windows
119119
endef
120120

121-
$(foreach host, $(CFG_HOST_TRIPLES), \
122-
$(eval $(foreach target, $(CFG_TARGET_TRIPLES), \
121+
$(foreach host, $(CFG_HOST), \
122+
$(eval $(foreach target, $(CFG_TARGET), \
123123
$(eval $(foreach stage, 0 1 2 3, \
124124
$(eval $(call CLEAN_TARGET_STAGE_N,$(stage),$(target),$(host))))))))
125125

@@ -133,5 +133,5 @@ clean-llvm$(1): ;
133133
endif
134134
endef
135135

136-
$(foreach host, $(CFG_HOST_TRIPLES), \
136+
$(foreach host, $(CFG_HOST), \
137137
$(eval $(call DEF_CLEAN_LLVM_HOST,$(host))))

0 commit comments

Comments
 (0)