From d1fd7d49a773d5b5921a659d9c1222b662b991d5 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 1 Dec 2011 11:31:29 -0800 Subject: [PATCH] Build infra and minor build-enabling bugfixes for cargo. --- Makefile.in | 3 ++- mk/clean.mk | 1 + mk/dist.mk | 2 ++ mk/pp.mk | 5 +++-- mk/tools.mk | 18 ++++++++++++++++++ src/cargo/cargo.rc | 14 ++++++++++++++ src/{ => cargo}/cargo.rs | 8 ++------ 7 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 src/cargo/cargo.rc rename src/{ => cargo}/cargo.rs (95%) diff --git a/Makefile.in b/Makefile.in index d0e6a3733b4..4f23ec4f669 100644 --- a/Makefile.in +++ b/Makefile.in @@ -343,9 +343,10 @@ TSREQS := \ $(foreach target,$(CFG_TARGET_TRIPLES), \ $(SREQ3_T_$(target)_H_$(CFG_HOST_TRIPLE))) FUZZ := $(HBIN3_H_$(CFG_HOST_TRIPLE))/fuzzer$(X) +CARGO := $(HBIN3_H_$(CFG_HOST_TRIPLE))/cargo$(X) #all: $(SREQ3$(CFG_HOST_TRIPLE)) $(GENERATED) $(DOCS) $(FUZZ) -all: $(TSREQS) $(GENERATED) $(DOCS) $(FUZZ) +all: $(TSREQS) $(GENERATED) $(DOCS) $(FUZZ) $(CARGO) endif diff --git a/mk/clean.mk b/mk/clean.mk index f9dfbda3fb6..071b4ae0350 100644 --- a/mk/clean.mk +++ b/mk/clean.mk @@ -54,6 +54,7 @@ define CLEAN_HOST_STAGE_N clean$(1)_H_$(2): $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustc$(X) $(Q)rm -f $$(HBIN$(1)_H_$(2))/fuzzer$(X) + $(Q)rm -f $$(HBIN$(1)_H_$(2))/cargo$(X) $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUNTIME) $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_STDLIB) $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUSTLLVM) diff --git a/mk/dist.mk b/mk/dist.mk index def3cfc1269..54fcfdeb013 100644 --- a/mk/dist.mk +++ b/mk/dist.mk @@ -52,6 +52,8 @@ PKG_FILES = \ $(FUZZER_INPUTS) \ $(COMPILETEST_CRATE) \ $(COMPILETEST_INPUTS) \ + $(CARGO_CRATE) \ + $(CARGO_INPUTS) \ $(PKG_PP_EXAMPLES) \ $(MKFILE_DEPS) diff --git a/mk/pp.mk b/mk/pp.mk index 15b537a5823..7ee3cee8c41 100644 --- a/mk/pp.mk +++ b/mk/pp.mk @@ -4,9 +4,10 @@ ifdef PPFILES else PP_INPUTS = $(wildcard $(addprefix $(S)src/lib/,*.rs */*.rs)) \ $(wildcard $(addprefix $(S)src/comp/,*.rs */*.rs */*/*.rs)) \ - $(wildcard $(S)src/test/*/*.rs \ + $(wildcard $(S)src/test/*/*.rs \ $(S)src/test/*/*/*.rs) \ - $(wildcard $(S)src/fuzzer/*.rs) + $(wildcard $(S)src/fuzzer/*.rs) \ + $(wildcard $(S)src/cargo/*.rs) PP_INPUTS_FILTERED = $(shell echo $(PP_INPUTS) | xargs grep -L \ "no-reformat\|xfail-pretty\|xfail-test") diff --git a/mk/tools.mk b/mk/tools.mk index bb36cdf2f36..3a944f76f32 100644 --- a/mk/tools.mk +++ b/mk/tools.mk @@ -8,6 +8,10 @@ FUZZER_INPUTS := $(wildcard $(addprefix $(S)src/fuzzer/, *.rs)) COMPILETEST_CRATE := $(S)src/compiletest/compiletest.rc COMPILETEST_INPUTS := $(wildcard $(S)src/compiletest/*rs) +# Cargo, the package manager +CARGO_CRATE := $(S)src/cargo/cargo.rc +CARGO_INPUTS := $(wildcard $(S)src/cargo/*rs) + # FIXME: These are only built for the host arch. Eventually we'll # have tools that need to built for other targets. define TOOLS_STAGE_N @@ -43,6 +47,20 @@ $$(HBIN$(2)_H_$(4))/compiletest$$(X): \ @$$(call E, cp: $$@) $$(Q)cp $$< $$@ +$$(TBIN$(1)_T_$(4)_H_$(3))/cargo$$(X): \ + $$(CARGO_CRATE) $$(CARGO_INPUTS) \ + $$(TSREQ$(1)_T_$(4)_H_$(3)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC) + @$$(call E, compile_and_link: $$@) + $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< + +$$(HBIN$(2)_H_$(4))/cargo$$(X): \ + $$(TBIN$(1)_T_$(4)_H_$(3))/cargo$$(X) \ + $$(HSREQ$(2)_$(4)) + @$$(call E, cp: $$@) + $$(Q)cp $$< $$@ + endef $(foreach host,$(CFG_TARGET_TRIPLES), \ diff --git a/src/cargo/cargo.rc b/src/cargo/cargo.rc new file mode 100644 index 00000000000..93d58f6dbad --- /dev/null +++ b/src/cargo/cargo.rc @@ -0,0 +1,14 @@ +// -*- rust -*- + +// cargo.rs - Rust package manager + +use std; +use rustc; + +// Local Variables: +// fill-column: 78; +// indent-tabs-mode: nil +// c-basic-offset: 4 +// buffer-file-coding-system: utf-8-unix +// compile-command: "make -k -C $RBUILD 2>&1 | sed -e 's/\\/x\\//x:\\//g'"; +// End: diff --git a/src/cargo.rs b/src/cargo/cargo.rs similarity index 95% rename from src/cargo.rs rename to src/cargo/cargo.rs index 248e35fa3da..7da29ab88a0 100644 --- a/src/cargo.rs +++ b/src/cargo/cargo.rs @@ -1,8 +1,5 @@ // cargo.rs - Rust package manager -use rustc; -use std; - import rustc::syntax::{ast, codemap, visit}; import rustc::syntax::parse::parser; @@ -98,7 +95,7 @@ fn rest(s: str, start: uint) -> str { } } -fn install_file(path: str) -> option::t { +fn install_file(_path: str) -> option::t { let wd = tempfile::mkdtemp("/tmp/cargo-work-", ""); ret wd; } @@ -110,7 +107,7 @@ fn cmd_install(argv: [str]) { ret; } - let wd = if str::starts_with(argv[2], "file:") { + let _wd = if str::starts_with(argv[2], "file:") { let path = rest(argv[2], 5u); install_file(path) } else { @@ -132,4 +129,3 @@ fn main(argv: [str]) { _ { cmd_usage(); } } } -