summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2016-03-01Auto merge of #31713 - alexcrichton:rustbuild-docs, r=brsonbors-0/+154
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 dependenciesAlex Crichton-35/+18
* Fixes a warning with libc * Brings in some new flag updates for various platforms through gcc-rs * Otherwise routine updates here/there
2016-02-28rustbuild: Update nightly dateAlex Crichton-7/+11
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: Only pass RUSTC_FLAGS to target compilesAlex Crichton-3/+3
These flags aren't applicable to build scripts, and may actuall wreak havoc.
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/+154
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/+47
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-11configure: Add an option to use the cargo build systemAlex Crichton-0/+23
This commit adds a `--enable-rustbuild` option to the configure script which will copy a different `Makefile.in` into place to intercept all `make` invocations. Currently this makefile only has one target, but it's expected to be filled out quite a bit over time!
2016-02-11bootstrap: Read configuration from config.mkAlex Crichton-0/+123
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/+2592
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!