Skip to content

Commit 8a593a8

Browse files
cndbrson
authored andcommittedOct 29, 2013
support for GNU configure syntax
1 parent 611c94d commit 8a593a8

19 files changed

+247
-218
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.
@@ -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

+50-21
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

+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)
@@ -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)
Please sign in to comment.