summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-11-04 09:48:12 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-11-04 09:48:12 +0800
commit4f4319df7ddcccb7c48e8bfd28ba4f20782d6f95 (patch)
tree9e027f96611341ecd481a6153873cca7934b5aea
parent10d5dcd7120852a51228ffecdc8b07d1058925ab (diff)
downloadmrust-4f4319df7ddcccb7c48e8bfd28ba4f20782d6f95.tar.gz
minicargo.mk - Separate build artefacts for cargo/rustc from the standard library
- This allows librustc's libproc_macro to be built separate to rustc's version
-rw-r--r--minicargo.mk31
1 files changed, 19 insertions, 12 deletions
diff --git a/minicargo.mk b/minicargo.mk
index 8332205e..a4b183af 100644
--- a/minicargo.mk
+++ b/minicargo.mk
@@ -35,6 +35,9 @@ $(MINICARGO):
$(MAKE) -C tools/minicargo/
test -e $@
+# Standard library crates
+# - libstd, libpanic_unwind, libtest and libgetopts
+# - libproc_macro (mrustc)
$(OUTDIR)libstd.hir: $(MRUSTC) $(MINICARGO)
$(MINICARGO) $(RUSTCSRC)src/libstd --script-overrides $(OVERRIDE_DIR) --output-dir $(OUTDIR)
test -e $@
@@ -61,9 +64,13 @@ RUSTC_ENV_VARS += CFG_PREFIX=mrustc
RUSTC_ENV_VARS += CFG_LIBDIR_RELATIVE=lib
$(OUTDIR)rustc: $(MRUSTC) $(MINICARGO) LIBS $(LLVM_CONFIG)
- $(RUSTC_ENV_VARS) $(MINICARGO) $(RUSTCSRC)src/rustc --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)
+ mkdir -p $(OUTDIR)rustc-build
+ $(RUSTC_ENV_VARS) $(MINICARGO) $(RUSTCSRC)src/rustc --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)rustc-build -L $(OUTDIR)
+ cp $(OUTDIR)rustc-build/rustc $(OUTDIR)
$(OUTDIR)cargo: $(MRUSTC) LIBS
- $(MINICARGO) $(RUSTCSRC)src/tools/cargo --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)
+ mkdir -p $(OUTDIR)cargo-build
+ $(MINICARGO) $(RUSTCSRC)src/tools/cargo --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)cargo-build -L $(OUTDIR)
+ cp $(OUTDIR)cargo-build/cargo $(OUTDIR)
# 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)
@@ -84,13 +91,13 @@ $(RUSTCSRC)build/Makefile: $(RUSTCSRC)src/llvm/CMakeLists.txt
#
# Developement-only targets
#
-#$(OUTDIR)libserde-1_0_6.hir: $(MRUSTC) $(OUTDIR)libstd.hir
-# $(MINICARGO) $(RUSTCSRC)src/vendor/serde --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)
-$(OUTDIR)libgit2-0_6_6.hir: $(MRUSTC) LIBS
- $(MINICARGO) $(RUSTCSRC)src/vendor/git2 --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR) --features ssh,https,curl,openssl-sys,openssl-probe
-$(OUTDIR)libserde_json-1_0_2.hir: $(MRUSTC) LIBS
- $(MINICARGO) $(RUSTCSRC)src/vendor/serde_json --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)
-$(OUTDIR)libcurl-0_4_6.hir: $(MRUSTC) LIBS
- $(MINICARGO) $(RUSTCSRC)src/vendor/curl --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)
-$(OUTDIR)libterm-0_4_5.hir: $(MRUSTC) LIBS
- $(MINICARGO) $(RUSTCSRC)src/vendor/term --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)
+#$(OUTDIR)cargo-build/libserde-1_0_6.hir: $(MRUSTC) LIBS
+# $(MINICARGO) $(RUSTCSRC)src/vendor/serde --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(dir $@) -L $(OUTDIR)
+$(OUTDIR)cargo-build/libgit2-0_6_6.hir: $(MRUSTC) LIBS
+ $(MINICARGO) $(RUSTCSRC)src/vendor/git2 --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(dir $@) -L $(OUTDIR) --features ssh,https,curl,openssl-sys,openssl-probe
+$(OUTDIR)cargo-build/libserde_json-1_0_2.hir: $(MRUSTC) LIBS
+ $(MINICARGO) $(RUSTCSRC)src/vendor/serde_json --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(dir $@) -L $(OUTDIR)
+$(OUTDIR)cargo-build/libcurl-0_4_6.hir: $(MRUSTC) LIBS
+ $(MINICARGO) $(RUSTCSRC)src/vendor/curl --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(dir $@) -L $(OUTDIR)
+$(OUTDIR)cargo-build/libterm-0_4_5.hir: $(MRUSTC) LIBS
+ $(MINICARGO) $(RUSTCSRC)src/vendor/term --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(dir $@) -L $(OUTDIR)