diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-09-24 08:03:25 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-09-24 08:03:25 +0800 |
commit | 1488aa8ea62a4f2b1a3ae66dcd76ba650f4be338 (patch) | |
tree | 3f9e2b3cb9bb090c9b2e522e5fb95d38e33a4816 | |
parent | 7e3fbd1eb15fa4739005081abda7c63680eb431e (diff) | |
download | mrust-1488aa8ea62a4f2b1a3ae66dcd76ba650f4be338.tar.gz |
minicargo.mk - Support alternate output dir and source location
-rw-r--r-- | minicargo.mk | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/minicargo.mk b/minicargo.mk index 0ba087be..84fa134a 100644 --- a/minicargo.mk +++ b/minicargo.mk @@ -1,16 +1,26 @@ +RUSTC_CHANNEL ?= nightly +RUSTC_VERSION ?= 2017-07-08 +OVERRIDE_SUFFIX ?= # -linux +OUTDIR := output/ + MRUSTC := bin/mrustc MINICARGO := tools/bin/minicargo -RUSTCSRC := rustc-nightly/ +ifeq ($(RUSTC_CHANNEL),nightly) + RUSTCSRC := rustc-nightly/ +else + RUSTCSRC := rustc-$(RUSTC_VERSION)-src/ +endif -LLVM_CONFIG := rustc-nightly/build/bin/llvm-config +LLVM_CONFIG := $(RUSTCSRC)build/bin/llvm-config RUSTC_TARGET := x86_64-unknown-linux-gnu +OVERRIDE_DIR := script-overrides/$(RUSTC_CHANNEL)-$(RUSTC_VERSION)$(OVERRIDE_SUFFIX)/ -.PHONY: bin/mrustc tools/bin/minicargo output/libsrc.hir output/libtest.hir output/libpanic_unwind.hir output/rustc output/cargo +.PHONY: bin/mrustc tools/bin/minicargo $(OUTDIR)libsrc.hir $(OUTDIR)libtest.hir $(OUTDIR)libpanic_unwind.hir $(OUTDIR)rustc $(OUTDIR)cargo -all: output/rustc +all: $(OUTDIR)rustc -mini: output/libpanic_unwind.hir output/libtest.hit +mini: $(OUTDIR)libpanic_unwind.hir $(OUTDIR)libtest.hit $(MRUSTC): $(MAKE) -f Makefile all @@ -20,30 +30,30 @@ $(MINICARGO): $(MAKE) -C tools/minicargo/ test -e $@ -output/libstd.hir: $(MRUSTC) $(MINICARGO) - $(MINICARGO) rustc-nightly/src/libstd --script-overrides script-overrides/nightly-2017-07-08/ +$(OUTDIR)libstd.hir: $(MRUSTC) $(MINICARGO) + $(MINICARGO) $(RUSTCSRC)src/libstd --script-overrides $(OVERRIDE_DIR) --output-dir $(OUTDIR) test -e $@ -output/libpanic_unwind.hir: $(MRUSTC) $(MINICARGO) output/libstd.hir - $(MINICARGO) rustc-nightly/src/libpanic_unwind --script-overrides script-overrides/nightly-2017-07-08/ +$(OUTDIR)libpanic_unwind.hir: $(MRUSTC) $(MINICARGO) $(OUTDIR)libstd.hir + $(MINICARGO) $(RUSTCSRC)src/libpanic_unwind --script-overrides $(OVERRIDE_DIR) --output-dir $(OUTDIR) test -e $@ -output/libtest.hir: $(MRUSTC) $(MINICARGO) output/libstd.hir output/libpanic_unwind.hir - $(MINICARGO) rustc-nightly/src/libtest --vendor-dir rustc-nightly/src/vendor +$(OUTDIR)libtest.hir: $(MRUSTC) $(MINICARGO) $(OUTDIR)libstd.hir $(OUTDIR)libpanic_unwind.hir + $(MINICARGO) $(RUSTCSRC)src/libtest --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR) test -e $@ RUSTC_ENV_VARS := CFG_COMPILER_HOST_TRIPLE=$(RUSTC_TARGET) RUSTC_ENV_VARS += LLVM_CONFIG=$(abspath $(LLVM_CONFIG)) RUSTC_ENV_VARS += CFG_RELEASE= -RUSTC_ENV_VARS += CFG_RELEASE_CHANNEL=nightly -RUSTC_ENV_VARS += CFG_VERSION=2017-07-08-nightly-mrustc +RUSTC_ENV_VARS += CFG_RELEASE_CHANNEL=$(RUSTC_CHANNEL) +RUSTC_ENV_VARS += CFG_VERSION=$(RUSTC_VERSION)-$(RUSTC_CHANNEL)-mrustc RUSTC_ENV_VARS += CFG_PREFIX=mrustc RUSTC_ENV_VARS += CFG_LIBDIR_RELATIVE=lib -output/rustc: $(MRUSTC) $(MINICARGO) output/libstd.hir output/libtest.hir $(LLVM_CONFIG) - $(RUSTC_ENV_VARS) $(MINICARGO) rustc-nightly/src/rustc --vendor-dir rustc-nightly/src/vendor -output/cargo: $(MRUSTC) output/libstd.hir - $(MINICARGO) rustc-nightly/src/tools/cargo --vendor-dir rustc-nightly/src/vendor +$(OUTDIR)rustc: $(MRUSTC) $(MINICARGO) $(OUTDIR)libstd.hir $(OUTDIR)libtest.hir $(LLVM_CONFIG) + $(RUSTC_ENV_VARS) $(MINICARGO) $(RUSTCSRC)src/rustc --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR) +$(OUTDIR)cargo: $(MRUSTC) $(OUTDIR)libstd.hir + $(MINICARGO) $(RUSTCSRC)src/tools/cargo --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR) -# Reference rustc-nightly/src/bootstrap/native.rs for these values +# Reference $(RUSTCSRC)src/bootstrap/native.rs for these values LLVM_CMAKE_OPTS := LLVM_TARGET_ARCH=$(firstword $(subst -, ,$(RUSTC_TARGET))) LLVM_DEFAULT_TARGET_TRIPLE=$(RUSTC_TARGET) LLVM_CMAKE_OPTS += LLVM_TARGETS_TO_BUILD=X86#;ARM;AArch64;Mips;PowerPC;SystemZ;JSBackend;MSP430;Sparc;NVPTX LLVM_CMAKE_OPTS += LLVM_ENABLE_ASSERTIONS=OFF @@ -53,8 +63,8 @@ LLVM_CMAKE_OPTS += CMAKE_CXX_COMPILER="g++" CMAKE_C_COMPILER="gcc" $(LLVM_CONFIG): $(RUSTCSRC)build/Makefile - $Vcd rustc-nightly/build && $(MAKE) + $Vcd $(RUSTCSRC)build && $(MAKE) $(RUSTCSRC)build/Makefile: $(RUSTCSRC)src/llvm/CMakeLists.txt @mkdir -p $(RUSTCSRC)build - $Vcd rustc-nightly/build && cmake $(addprefix -D , $(LLVM_CMAKE_OPTS)) ../src/llvm + $Vcd $(RUSTCSRC)build && cmake $(addprefix -D , $(LLVM_CMAKE_OPTS)) ../src/llvm |