diff --git a/Makefile.in b/Makefile.in index 3daf9e8dbe1..c32ac1e4986 100644 --- a/Makefile.in +++ b/Makefile.in @@ -35,6 +35,14 @@ CFG_RUNTIME :=$(call CFG_LIB_NAME,rustrt) CFG_RUSTLLVM :=$(call CFG_LIB_NAME,rustllvm) CFG_STDLIB :=$(call CFG_LIB_NAME,std) +# version-string calculation +CFG_GIT_DIR := $(CFG_SRC_DIR).git +CFG_VERSION := prerelease +ifneq ($(wildcard $(CFG_GIT_DIR)),) + CFG_VERSION += $(shell git --git-dir=$(CFG_GIT_DIR) log -1 \ + --pretty=format:'(%h %ci)') +endif + ifdef CFG_OCAMLC_OPT $(info cfg: have ocaml native compiler) OPT=.opt @@ -140,6 +148,7 @@ SREQ2 := stage2/rustc$(X) $(LREQ) stage3/glue.o stage3/$(CFG_STDLIB) ###################################################################### export CFG_SRC_DIR +export CFG_VERSION ###################################################################### # Subprograms diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs index b7bca48a068..aef6ef3bdcd 100644 --- a/src/comp/driver/rustc.rs +++ b/src/comp/driver/rustc.rs @@ -127,11 +127,12 @@ fn pretty_print_input(session.session sess, } fn version(str argv0) { - auto git_rev = ""; // when snapshotted to extenv: #env("GIT_REV"); - if (_str.byte_len(git_rev) != 0u) { - git_rev = #fmt(" (git: %s)", git_rev); + auto vers = "unknown version"; + auto env_vers = #env("CFG_VERSION"); + if (_str.byte_len(env_vers) != 0u) { + vers = env_vers; } - io.stdout().write_str(#fmt("%s prerelease%s\n", argv0, git_rev)); + io.stdout().write_str(#fmt("%s %s\n", argv0, vers)); } fn usage(str argv0) {