Skip to content

Commit 70fa4e7

Browse files
committed
support for GNU configure syntax
1 parent c16a95c commit 70fa4e7

File tree

19 files changed

+249
-219
lines changed

19 files changed

+249
-219
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.
@@ -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

Lines changed: 50 additions & 21 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,25 @@ 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+
valopt datadir "/usr/share" "install data"
398+
valopt infodir "/usr/share/info" "install additional info"
399+
valopt mandir "/usr/share/man" "install man pages in PATH"
400+
valopt libdir "/usr/lib" "install libraries"
401+
402+
#Deprecated opts to keep compatibility
403+
valopt build-triple "${DEFAULT_BUILD}" "LLVM build triple"
404+
valopt host-triples "${CFG_BUILD}" "LLVM host triples"
405+
valopt target-triples "${CFG_HOST}" "LLVM target triples"
406+
394407
# Validate Options
395408
step_msg "validating $CFG_SELF args"
396409
validate_opt
@@ -589,23 +602,24 @@ fi
589602
# a little post-processing of various config values
590603

591604
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)"
605+
CFG_MANDIR=${CFG_MANDIR%/}
606+
CFG_HOST="$(echo $CFG_HOST | tr ',' ' ')"
607+
CFG_TARGET="$(echo $CFG_TARGET | tr ',' ' ')"
608+
CFG_SUPPORTED_TARGET="$(grep ^CC_*=* $CFG_SRC_DIR/mk/platform.mk | sed -e 's/^CC_//' -e 's/\([^=]*\).*/\1/' | xargs)"
595609

596610
# copy host-triples to target-triples so that hosts are a subset of targets
597611
V_TEMP=""
598-
for i in $CFG_HOST_TRIPLES $CFG_TARGET_TRIPLES;
612+
for i in $CFG_HOST $CFG_TARGET;
599613
do
600614
echo "$V_TEMP" | grep -qF $i || V_TEMP="$V_TEMP${V_TEMP:+ }$i"
601615
done
602-
CFG_TARGET_TRIPLES=$V_TEMP
616+
CFG_TARGET=$V_TEMP
603617

604618
# check target-specific tool-chains
605-
for i in $CFG_TARGET_TRIPLES
619+
for i in $CFG_TARGET
606620
do
607621
L_CHECK=false
608-
for j in $CFG_SUPPORTED_TARGET_TRIPLES
622+
for j in $CFG_SUPPORTED_TARGET
609623
do
610624
if [ $i = $j ]
611625
then
@@ -664,17 +678,17 @@ do
664678
make_dir $i
665679
done
666680

667-
for t in $CFG_HOST_TRIPLES
681+
for t in $CFG_HOST
668682
do
669683
make_dir $t/llvm
670684
done
671685

672-
for t in $CFG_HOST_TRIPLES
686+
for t in $CFG_HOST
673687
do
674688
make_dir $t/rustllvm
675689
done
676690

677-
for t in $CFG_TARGET_TRIPLES
691+
for t in $CFG_TARGET
678692
do
679693
make_dir $t/rt
680694
for s in 0 1 2 3
@@ -703,9 +717,9 @@ then
703717
CFG_LIBDIR=bin
704718
fi
705719

706-
for h in $CFG_HOST_TRIPLES
720+
for h in $CFG_HOST_
707721
do
708-
for t in $CFG_TARGET_TRIPLES
722+
for t in $CFG_TARGET
709723
do
710724
for i in 0 1 2 3
711725
do
@@ -785,7 +799,7 @@ fi
785799
# Configure llvm, only if necessary
786800
step_msg "looking at LLVM"
787801
CFG_LLVM_SRC_DIR=${CFG_SRC_DIR}src/llvm/
788-
for t in $CFG_HOST_TRIPLES
802+
for t in $CFG_HOST
789803
do
790804
do_reconfigure=1
791805

@@ -961,14 +975,29 @@ putvar CFG_OSTYPE
961975
putvar CFG_CPUTYPE
962976
putvar CFG_CONFIGURE_ARGS
963977
putvar CFG_PREFIX
964-
putvar CFG_BUILD_TRIPLE
965-
putvar CFG_HOST_TRIPLES
966-
putvar CFG_TARGET_TRIPLES
978+
putvar CFG_BUILD
979+
putvar CFG_HOST
980+
putvar CFG_TARGET
967981
putvar CFG_C_COMPILER
968982
putvar CFG_LIBDIR
969983
putvar CFG_DISABLE_MANAGE_SUBMODULES
970984
putvar CFG_ANDROID_CROSS_PATH
971985
putvar CFG_MINGW32_CROSS_PATH
986+
putvar CFG_MANDIR
987+
988+
# Support for deprecated syntax, should be dropped.
989+
putvar CFG_BUILD_TRIPLE
990+
putvar CFG_HOST_TRIPLES
991+
putvar CFG_TARGET_TRIPLES
992+
if [ ! -z "$CFG_BUILD_TRIPLE" ]; then
993+
CFG_BUILD=${CFG_BUILD_TRIPLE}
994+
fi
995+
if [ ! -z "$CFG_HOST_TRIPLES" ]; then
996+
CFG_HOST=${CFG_HOST_TRIPLES}
997+
fi
998+
if [ ! -z "$CFG_TARGET_TRIPLES" ]; then
999+
CFG_TARGET=${CFG_TARGET_TRIPLES}
1000+
fi
9721001

9731002
if [ ! -z "$CFG_ENABLE_PAX_FLAGS" ]
9741003
then
@@ -1015,7 +1044,7 @@ fi
10151044
putvar CFG_LLVM_ROOT
10161045
putvar CFG_LLVM_SRC_DIR
10171046

1018-
for t in $CFG_HOST_TRIPLES
1047+
for t in $CFG_HOST
10191048
do
10201049
CFG_LLVM_BUILD_DIR=$(echo CFG_LLVM_BUILD_DIR_${t} | tr - _)
10211050
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)
@@ -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)