summary refs log tree commit diff
path: root/src/bootstrap/build
AgeCommit message (Collapse)AuthorLines
2016-03-01Auto merge of #31713 - alexcrichton:rustbuild-docs, r=brsonbors-0/+142
This commit implements documentation generation of the nomicon, the book, the style guide, and the standalone docs. New steps were added for each one as well as appropriate makefile targets for each one as well.
2016-02-28rustbuild: Update nightly dateAlex Crichton-7/+10
Also fix a bug where we didn't clean out previous nightlies
2016-02-28rustbuild: Relax assertions about stage0Alex Crichton-3/+1
This allows bootstrapping new platforms immediately in stage0
2016-02-28rustbuild: Remove extra rustc flagsAlex Crichton-15/+1
These should all no longer be necessary as they've been folded into the compiler.
2016-02-28rustbuild: Add steps for linking a sysrootAlex Crichton-6/+88
When cross compiling for a new host, we can't actually run the host compiler to generate its own libs. In theory, however, all stage2 compilers (for any host) will produce the same libraries, so we just require the build compiler to produce the necessary host libraries and then we link those into place.
2016-02-28rustbuild: Document what steps areAlex Crichton-0/+14
2016-02-28rustbuild: Compile with the build compilerAlex Crichton-2/+2
This switches the defaults to ensure that everything is built with the build compiler rather than the host compiler itself (which we're not guaranteed to be able to run)
2016-02-28rustbuild: Move assembling rustc to its own stepAlex Crichton-18/+20
Right now it's implicitly done as part of building the compiler, but this was intended to be a standalone step to ensure we tracked what built what.
2016-02-28rustbuild: Fix a copy/paste errorAlex Crichton-1/+1
Fixes `--step librustc`
2016-02-28rustbuild: Enable cross-compiling LLVMAlex Crichton-4/+7
Currently all multi-host builds assume the the build platform can run the `llvm-config` binary generated for each host platform we're creating a compiler for. Unfortunately this assumption isn't always true when cross compiling, so we need to handle this case. This commit alters the build script of `rustc_llvm` to understand when it's running an `llvm-config` which is different than the platform we're targeting for.
2016-02-28rustbuild: Fix compiler-rt build on gnueabihfAlex Crichton-0/+8
Needs a different target to get built and also we apparently need to appease the C++ compiler somehow.
2016-02-28rustbuild: Enable bootstrapping new hostsAlex Crichton-7/+4
This commit fixes a longstanding issue with the makefiles where all host platforms bootstrap themselves. This commit alters the build logic for the bootstrap to instead only bootstrap the build triple, and all other compilers are compiled from that one compiler. The benefit of this change is that we can cross-compile compilers which cannot run on the build platform. For example our builders could start creating `arm-unknown-linux-gnueabihf` compilers. This reduces the amount of bootstrapping we do, reducing the amount of test coverage, but overall it should largely just end in faster build times for multi-host compiles as well as enabling a feature which can't be done today. cc #5258
2016-02-20Auto merge of #31620 - alexcrichton:fix-out-of-tree-builds, r=brsonbors-14/+15
This removes creating some extraneous directories and also fixes some submodule management with out of tree builds. Closes #31619
2016-02-16rustbuild: Add rustbook/standalone doc supportAlex Crichton-0/+142
This commit implements documentation generation of the nomicon, the book, the style guide, and the standalone docs. New steps were added for each one as well as appropriate makefile targets for each one as well.
2016-02-12rustbuild: Fix submodules for out of tree buildsAlex Crichton-14/+15
Be sure to put the git command into the right directory when we run the submodule management information. Closes #31619
2016-02-12bootstrap: Be resilient to job object failuresAlex Crichton-2/+13
The build bots already use job objects, and they don't support nested job objects, and we shouldn't entirely bail out in this case anyway!
2016-02-11bootstrap: Add a --clean flagAlex Crichton-0/+44
Also add a `clean` target for the makefiles to blow away everything related to the build. Note that this specifically does not tamper with: * the LLVM build directory * the directory of the bootstrap system * the cached downloads of cargo/rustc
2016-02-11bootstrap: Read configuration from config.mkAlex Crichton-0/+107
During the transition period where we're still using ./configure and makefiles, read some extra configuration from `config.mk` if it's present. This means that the bootstrap build should be configured the same as the original ./configure invocation. Eventually this will all be removed in favor of only storing information in `config.toml` (e.g. the configure script will generate config.toml), but for now this should suffice.
2016-02-11Add a Cargo-based build systemAlex Crichton-0/+1887
This commit is the start of a series of commits which start to replace the makefiles with a Cargo-based build system. The aim is not to remove the makefiles entirely just yet but rather just replace the portions that invoke the compiler to do the bootstrap. This commit specifically adds enough support to perform the bootstrap (and all the cross compilation within) along with generating documentation. More commits will follow up in this series to actually wire up the makefiles to call this build system, so stay tuned!