about summary refs log tree commit diff
path: root/src/bootstrap/mk
AgeCommit message (Collapse)AuthorLines
2019-08-16ci: move linkcheck from mingw-2 to mingw-1Pietro Albini-0/+9
Running UI tests now takes a huge amount of time on mingw builders (between 40 and 50 minutes), with mingw-1 builders taking even an hour less to finish than mingw-2. This PR moves linkcheck from mingw-2 to mingw-1, removing between 10 and 20 minutes of runtime on the -2 builders.
2019-07-27Remove run-pass test suitesVadim Petrochenkov-4/+0
2019-05-13ci: remove fanout from the azure pipelines configPietro Albini-68/+2
2019-05-10Add Azure PipelinesJohn Erickson-4/+70
2019-03-15rustbuild: remove obsolete fulldeps behavior from src/test/pretty tests, and ↵Eduard-Mihai Burtescu-1/+0
enable them by default.
2019-01-24Remove quote_*! macros and associated APIsMark Simulacrum-1/+0
2018-12-25Remove licensesMark Rousskov-10/+0
2018-11-04Move a few more tests into the appveyor-subset-2.kennytm-1/+6
This should allow the timings be more balanced.
2018-03-24appveyor: Move run-pass-fulldeps to extra buildersAlex Crichton-0/+7
We've made headway towards splitting the test suite across two appveyor builders and this moves one more tests suite between builders. The last [failed build][fail] had its longest running test suite and I've moved that to the secondary builder. cc #48844 [fail]: https://ci.appveyor.com/project/rust-lang/rust/build/1.0.6782
2018-03-07appveyor: Fix a switched condition for cargotestAlex Crichton-2/+2
It was intended that EXCLUDE_CARGO *doesn't* run cargotest!
2018-03-07Fix an error in the appveyor configAlex Crichton-2/+6
2018-03-07appveyor: Shard more slow MSVC buildersAlex Crichton-0/+1
Take two more slow builders and split them in two to get them under 2 hrs
2017-12-03Move the swap the tools test and cargotest within check-aux.kennytm-3/+1
The cargotest job is renamed to tools for clarification.
2017-10-23Move cargotest to separate jobs on Travis-CI and AppVeyorSimon Sapin-1/+0
2017-09-17Get the miri test suite to run inside the rustc dev environmentOliver Schneider-0/+1
2017-09-13Reviewer changesNick Cameron-0/+1
2017-08-27rustbuild: Rewrite the configure script in PythonAlex Crichton-2/+0
This commit rewrites our ancient `./configure` script from shell into Python. The impetus for this change is to remove `config.mk` which is just a vestige of the old makefile build system at this point. Instead all configuration is now solely done through `config.toml`. The python script allows us to more flexibly program (aka we can use loops easily) and create a `config.toml` which is based off `config.toml.example`. This way we can preserve comments and munge various values as we see fit. It is intended that the configure script here is a drop-in replacement for the previous configure script, no functional change is intended. Also note that the rationale for this is also because our build system requires Python, so having a python script a bit earlier shouldn't cause too many problems. Closes #40730
2017-07-25bootstrap: Major refactoringMilton Mazzarri-0/+2
This commit includes the following: * Fix syntax errors in Python 3 * Include more docstrings in classes, methods, and functions * Include unit tests using `unittest` * Merge implementation of `{rustc,cargo}_out_of_date` * Merge implementation of `RustBuild.{cargo,rustc}` * Remove unnecessary source code * Move all the attributes defined outside of `__init__` * Remove remaining `%s` from print function * Remove `WindowsError` reference on non-windows systems * Rename some variables to be more explicit avoid their meaning * Run bootstrap tests in the CI process * Remove non-pythonic getters * Remove duplicate code in `download_stage0` method * Reduce the number of branches in `build_bootstrap` method * Re-raise exception when we cannot execute uname in non-windows systems * Avoid long lines
2017-07-17Run RLS testsNick Cameron-1/+2
2017-05-22rustbuild: split Install out of Dist subcommandMarc-Antoine Perennou-1/+1
only create source tarball for the Dist subcommand mark install rule as default for Kind::Install split install-docs split install-std factor out empty_dir handling split install-cargo split install-analysis split install-src rework install-rustc properly handle cross-compilation setups for install use pkgname in install split plain source tarball generation from rust-src dist document src-tarball in config.toml.exmaple Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-04-24Run tests for the cargo submodule in treeAlex Crichton-0/+1
Previously the `cargotest` suite would run some arbitrary revision of Cargo's test suite, but now that we're bundling it in tree we should be running the Cargo submodule's test suite instead.
2017-02-25travis: Make more network requests retryableAlex Crichton-0/+2
This commit attempts to move more network operations to being retryable through various operations. For example git submodule updates, downloading snapshots, etc, are now all in retryable steps. Hopefully this commit can cut down on the number of network failures we've been seeing!
2017-02-06rustbuild: Fix a few locations with makefiles goneAlex Crichton-1/+2
* Add version info to channel.rs as main.mk is no longer available * Update `Makefile.in` used with bootstrap to not try to require `mk/util.mk` * Update the `dist` target to avoid the makefile pieces
2016-12-30rustbuild: Compile all support tools in stage0Alex Crichton-1/+1
This commit changes all tools and such to get compiled in stage0, not in later stages. The purpose of this commit is to cut down dependencies on later stages for future modifications to the build system. Notably we're going to be adding builders that produce a full suite of cross-compiled artifacts for a particular host, and that shouldn't compile the `x86_64-unknown-linux-gnu` compiler more than once. Currently dependencies on, for example, the error index end up compiling the `x86_64-unknown-linux-gnu` compiler more than necessary. As a result here we move many dependencies on these tools to being produced by a stage0 compiler, not a stage1+ compiler. None of these tools actually need to be staged at all, so they'll exhibit consistent behavior across the stages.
2016-12-29rustbuild: Don't run pretty tests by defaultAlex Crichton-2/+10
This commit relegates all pretty tests to not get run by default and rather get run as part of an "aux" test suite. This "aux" suite is renamed from the old "cargotest" suite to just collect tests that don't need to run everywhere but should at least pass on Unix/Windows.
2016-12-20rustbuild: Actually test musl on the musl botAlex Crichton-1/+1
A typo unfortunately meant that we haven't been testing musl for a bit, so now it's time to discover if we accidentally introduced a regression!
2016-12-14rustbuild: Run `dist` on a `distcheck`Alex Crichton-1/+2
This is what the nightly bots expect, so let's be sure to do that.
2016-12-11Auto merge of #38252 - pnkfelix:mildly-robustify-configure-msg, r=alexcrichtonbors-1/+1
Make configure message re x.py not assume build dir == src dir Fix #38251 but perhaps not BEST fix for it. As driveby, fix copyright year in `Makefile.in`
2016-12-08rustbuild: Implement distcheckAlex Crichton-0/+2
This commit implements the `distcheck` target for rustbuild which is only ever run on our nightly bots. This essentially just creates a tarball, un-tars it, and then runs a full build, validating that the release tarballs do indeed have everything they need to build Rust.
2016-12-08Fix #38251 but perhaps not BEST fix for it.Felix S. Klock II-1/+1
2016-12-07mk: Switch rustbuild to the default build systemAlex Crichton-8/+12
This commit switches the default build system for Rust from the makefiles to rustbuild. The rustbuild build system has been in development for almost a year now and has become quite mature over time. This commit is an implementation of the proposal on [internals] which slates deletion of the makefiles on 2016-01-02. [internals]: https://internals.rust-lang.org/t/proposal-for-promoting-rustbuild-to-official-status/4368 This commit also updates various documentation in `README.md`, `CONTRIBUTING.md`, `src/bootstrap/README.md`, and throughout the source code of rustbuild itself. Closes #37858
2016-11-11Move all Linux/OSX CI infastructure to TravisAlex Crichton-1/+4
This commit configures our `.travis.yml` to test the full suite of tests we have on Buildbot right now. A whole mess of docker images are added to the `src/ci` directory which represent all the build environments for each configuration. Each of these environments is then configured in `.travis.yml` to run on the auto branch. Note that the full matrix of tests aren't intended to be run on all PRs. Instead, we continue to run only one entry in the matrix, forcing all others to finish quickly. Only the `auto` branch should run the full matrix of builds. Also note that the infrastructure hasn't quite been allocated yet to the rust-lang/rust repository, so everything is disabled for now except for the one build that happens on PRs. Once that infrastructure is allocated though we can enable this and let it fly! Notable modifications from the current test suite today: * Android tests are run in rustbuild instead of the makefiles, for whatever reason I couldn't get the makefiles to work on Travis. * A debuginfo test was updated to work with the current version of the Android NDK. * Some dependencies in `mk/tests.mk` were fixed to allow running tests in parallel.
2016-11-02rustbuild: Rewrite user-facing interfaceAlex Crichton-16/+15
This commit is a rewrite of the user-facing interface to the rustbuild build system. The intention here is to make it much easier to compile/test the project without having to remember weird rule names and such. An overall view of the new interface is: # build everything ./x.py build # document everyting ./x.py doc # test everything ./x.py test # test libstd ./x.py test src/libstd # build libcore stage0 ./x.py build src/libcore --stage 0 # run stage1 run-pass tests ./x.py test src/test/run-pass --stage 1 The `src/bootstrap/bootstrap.py` script is now aliased as a top-level `x.py` script. This `x` was chosen to be both short and easily tab-completable (no collisions in that namespace!). The build system now accepts a "subcommand" of what to do next, the main ones being build/doc/test. Each subcommand then receives an optional list of arguments. These arguments are paths in the source repo of what to work with. That is, if you want to test a directory, you just pass that directory as an argument. The purpose of this rewrite is to do away with all of the arcane renames like "rpass" is the "run-pass" suite, "cfail" is the "compile-fail" suite, etc. By simply working with directories and files it's much more intuitive of how to run a test (just pass it as an argument). The rustbuild step/dependency management was also rewritten along the way to make this easy to work with and define, but that's largely just a refactoring of what was there before. The *intention* is that this support is extended for arbitrary files (e.g. `src/test/run-pass/my-test-case.rs`), but that isn't quite implemented just yet. Instead directories work for now but we can follow up with stricter path filtering logic to plumb through all the arguments.
2016-10-06Prevent accidentally running 'make install' as sudo.Ahmed Charles-0/+4
2016-10-05rustbuild: Add install target. #34675Ahmed Charles-0/+2
It just prints to the screen currently.
2016-08-17Add 'make help' for rustbuildSimon Sapin-0/+4
It is still advertised by the configure script.
2016-06-29Add rustc-stageN targets to rustbuildSeo Sanghyeon-0/+5
2016-04-12rustbuild: Migrate tidy checks to RustAlex Crichton-0/+2
This commit rewrites all of the tidy checks we have, namely: * featureck * errorck * tidy * binaries into Rust under a new `tidy` tool inside of the `src/tools` directory. This at the same time deletes all the corresponding Python tidy checks so we can be sure to only have one source of truth for all the tidy checks. cc #31590
2016-03-25Fix the name of the 'check-cargotest' stepBrian Anderson-2/+2
2016-03-22Introduce 'cargotest' and the check-cargotest buildstepBrian Anderson-0/+2
This is a new suite of tests that verifies that the compiler builds specific revisions of select crates from crates.io. It does not run by default. It is intended that buildbot runs these tests against all PRs, and gate on them.
2016-03-16rustbuild: Implement `make dist`Alex Crichton-0/+4
This commit implements the `make dist` command in the new rustbuild build system, porting over `dist.mk` and `prepare.mk` into Rust. There's a huge amount of complexity between those two files, not all of which is likely justified, so the Rust implementation is *much* smaller. Currently the implementation still shells out to rust-installer as well as some python scripts, but ideally we'd rewrite it all in the future to not shell out and be in Rust proper.
2016-03-07rustbuild: Add `make check` and a check targetAlex Crichton-0/+2
We'll tack on more steps here later
2016-02-16rustbuild: Add rustbook/standalone doc supportAlex Crichton-0/+12
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-11bootstrap: Add a --clean flagAlex Crichton-0/+3
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!