Commit Graph

443 Commits

Author SHA1 Message Date
Steve Klabnik
422574400f Rollup merge of #34007 - flo-l:improve-hacking-docs, r=alexcrichton
add documentation on howto build just rustc without libstd to the build system

I searched for days until I found this, maybe this helps other poor souls 😂

for reference #33990
2016-06-07 10:43:56 -04:00
flo-l
4e87986514 add documentation on howto build just rustc without libstd to the build system 2016-06-05 21:03:38 +02:00
Georg Brandl
d5c7ddc38f Makefile.in: dont use unnecessary escapes in echo 2016-05-22 08:28:42 +02:00
Guillaume Gomez
3bb96abce5 Rollup merge of #33489 - GuillaumeGomez:howto, r=alexcrichton
Improve help for make command

r? @steveklabnik
2016-05-11 21:30:19 +02:00
Guillaume Gomez
0619eeb739 Add default rule for Makefile and make it displays some help.
Add examples for "make help" command
2016-05-11 00:05:19 +02:00
Georg Brandl
e24999e485 Makefile: there is only one tidy target now
Also removes mention of tidy.py from the tidy sources.
2016-05-03 07:13:10 +02:00
Alex Crichton
02538d463a mk: Bootstrap from stable instead of snapshots
This commit removes all infrastructure from the repository for our so-called
snapshots to instead bootstrap the compiler from stable releases. Bootstrapping
from a previously stable release is a long-desired feature of distros because
they're not fans of downloading binary stage0 blobs from us. Additionally, this
makes our own CI easier as we can decommission all of the snapshot builders and
start having a regular cadence to when we update the stage0 compiler.

A new `src/etc/get-stage0.py` script was added which shares some code with
`src/bootstrap/bootstrap.py` to read a new file, `src/stage0.txt`, which lists
the current stage0 compiler as well as cargo that we bootstrap from. This script
will download the relevant `rustc` package an unpack it into `$target/stage0` as
we do today.

One problem of bootstrapping from stable releases is that we're not able to
compile unstable code (e.g. all the `#![feature]` directives in libcore/libstd).
To overcome this we employ two strategies:

* The bootstrap key of the previous compiler is hardcoded into `src/stage0.txt`
  (enabled as a result of #32731) and exported by the build system. This enables
  nightly features in the compiler we download.
* The standard library and compiler are pinned to a specific stage0, which
  doesn't change, so we're guaranteed that we'll continue compiling as we start
  from a known fixed source.

The process for making a release will also need to be tweaked now to continue to
cadence of bootstrapping from the previous release. This process looks like:

1. Merge `beta` to `stable`
2. Produce a new stable compiler.
3. Change `master` to bootstrap from this new stable compiler.
4. Merge `master` to `beta`
5. Produce a new beta compiler
6. Change `master` to bootstrap from this new beta compiler.

Step 3 above should involve very few changes as `master` was previously
bootstrapping from `beta` which is the same as `stable` at that point in time.
Step 6, however, is where we benefit from removing lots of `#[cfg(stage0)]` and
get to use new features. This also shouldn't slow the release too much as steps
1-5 requires little work other than waiting and step 6 just needs to happen at
some point during a release cycle, it's not time sensitive.

Closes #29555
Closes #29557
2016-04-19 10:56:49 -07:00
Manish Goregaokar
bdecd9d904 mention debug-assertions 2016-02-25 10:21:32 +05:30
Alex Crichton
5cd9ca90c5 mk: Remove all perf-related targets
I don't believe these have been used at all recently, and I doubt many of them
still work, so remove the stale support.
2016-01-21 14:45:23 -08:00
Alex Gaynor
a2fbf9da29 Fixed an apparent typo
Repertory is a real world, but it doesn't really make sense in that context.
2015-09-19 08:10:54 -04:00
Manish Goregaokar
08a8ee19fb Rollup merge of #26645 - richo:makefile-typo, r=sfackler 2015-06-29 13:59:34 +05:30
Richo Healey
f07b11d07e mk: Fix a typo in the tips 2015-06-28 19:05:09 -07:00
Peter Elmers
9b6fe6ca36 Add tip to do partial compile. 2015-06-28 18:49:22 -07:00
Alex Crichton
eb5bf151a5 mk: Remove generation of .d files
Looks like cl.exe doesn't support this and we're also barely using them anyway
as we have very few header files and C code in general.
2015-05-19 10:36:00 -07:00
Tamir Duberstein
cc267cefcb Clarify comment 2015-04-17 07:35:35 -07:00
Richo Healey
7a1d726696 mk: Add a printer helper to the make setup
Also add docs because not being able to discover these things is the
pits.
2015-04-10 17:10:03 -07:00
Manish Goregaokar
c785e7e2a1 Rollup merge of #23510 - lgvz:makefile, r=Manishearth
The wiki doesn't seem to exist
2015-03-20 12:43:13 +05:30
Steve Klabnik
7cbc42849f RUST_TEST_TASKS -> RUST_TEST_THREADS
We don't use 'task' anymore, these are now threads.

Because this changes the name of a compiler option, this is

[breaking-change]
2015-03-19 15:42:56 -04:00
Tero Hänninen
13fd0a1c68 Remove dead link to wiki in Makefile comments 2015-03-19 09:01:07 +02:00
Brian Anderson
62c90fc6be mk: Add tidy commands to 'make tips' 2015-02-05 14:37:16 -08:00
Steve Klabnik
71884601f9 Remove dead link from make tips
Fixes #17950
2015-01-12 17:12:05 -05:00
Joseph Rushton Wakeling
8c881cdafc Fix incorrect link in Makefile.in documentation 2014-12-28 22:42:12 +01:00
Michael Woerister
7608d06027 debuginfo: Add script that allows to conveniently start LLDB in "rust-mode" 2014-11-26 15:58:17 +01:00
Daniel Micay
1ee099da36 enable jemalloc debugging in unoptimized builds
The performance hit from these checks is significant, but unoptimized
builds are already incredibly slow. Enabling these checks results in
better test coverage since there are bots doing unoptimized builds, and
the cost is relatively small in the context of an unoptimized build.
This also allows using `JEMALLOC_FLAGS` to override the default
configure flags.
2014-09-07 14:23:48 -04:00
Corey Richardson
c41a7dfcc7 Shuffle around check-lexer conditions 2014-07-21 18:38:40 -07:00
Corey Richardson
cbd6799110 lexer tests: makefile/configure 2014-07-21 18:37:17 -07:00
Brian Anderson
f4ae8a83f9 Update repo location 2014-06-16 18:16:36 -07:00
Alex Crichton
bfbd732dae mk: Don't run benchmarks with make check
The current suite of benchmarks for the standard distribution take a significant
amount of time to run, but it's unclear whether we're gaining any benefit from
running them. Some specific pain points:

* No one is looking at the data generated by the benchmarks. We have no graphs
  or analysis of what's happening, so all the data is largely being cast into
  the void.

* No benchmark has ever uncovered a bug, they have always run successfully.

* Benchmarks not only take a significant amount of time to run, but also take a
  significant amount of time to compile. I don't think we should mitigate this
  for now because it's useful to ensure that they do indeed still compile.

This commit disables --bench test runs by default as part of `make check`,
flipping the NO_BENCH environment variable to a PLEASE_BENCH variable which will
manually enable benchmarking. If and when a dedicated bot is set up for
benchmarking, this flag can be enabled on that bot.
2014-05-15 13:50:14 -07:00
bors
29436d54ee auto merge of #13142 : alexcrichton/rust/issue-13118, r=brson
The previous dependency calculation was based on an arbitrary set of asterisks
at an arbitrary depth, but using the recursive version should be much more
robust in figuring out what's dependent.
2014-03-27 17:11:58 -07:00
Brian Anderson
e509cd6e2b Revert "Revert "mk: Run 'make install' through install.sh""
This reverts commit d62163188a.

Conflicts:
	mk/install.mk
2014-03-25 21:35:10 -07:00
Alex Crichton
47093648a7 mk: Use rwildcard to calculate dependent files
The previous dependency calculation was based on an arbitrary set of asterisks
at an arbitrary depth, but using the recursive version should be much more
robust in figuring out what's dependent.

Closes #13118
2014-03-25 15:50:36 -07:00
Virgile Andreani
54f710fd2d mk: Talk about make clean in the build help 2014-02-18 11:55:34 +01:00
Virgile Andreani
ece12d8da6 mk: Fix the regexp of SHOW_DOCS
The tag marks were missing, and `make tips` didn't work.
2014-02-18 11:53:23 +01:00
Brian Anderson
508cb29dc4 mk: Base the windows dist target on prepare.mk 2014-02-15 14:18:00 -08:00
Brian Anderson
4cd8bdc969 mk: Add prepare.mk
This is a slightly more generic rewrite of install.mk. Currently
used for nothing, but we'll base all the binary distributables off it.
2014-02-15 14:17:57 -08:00
Brian Anderson
5d88a4a76c mk: Clean up conditions for including dist.mk 2014-02-15 03:00:00 -08:00
Brian Anderson
8d4b675ced mk: Address review feedback 2014-02-14 19:17:50 -08:00
Brian Anderson
334af011f0 mk: Improve build system help commands 2014-02-14 17:45:54 -08:00
Brian Anderson
ab17f445fe mk: Add NO_MKFILE_DEPS for turning off rebuild from makefile changes 2014-02-14 17:45:54 -08:00
Brian Anderson
2852fea61e mk: Move most of Makefile.in to .mk files
Because the build system treats Makefile.in and the .mk files slightly
differently (.in is copied, .mk are included), this makes the system
more uniform. Fewer build system changes will require a complete
reconfigure.
2014-02-14 17:45:54 -08:00
Brian Anderson
94d2c8a21f mk: Remove the concept of 'snapshot transitions'
This way of doing snapshots hasn't been used since 2011.
2014-02-14 17:45:53 -08:00
Brian Anderson
b11e73d0be mk: Add some serious documentation and 'make help'
'make help' is implemented in a fairly ridiculous way, using awk
to parse comments out of Makefile.in and displaying them.
2014-02-14 17:45:53 -08:00
Alex Crichton
1c5295c0bf Register new snapshots 2014-02-13 12:54:17 -08:00
Vadim Chugunov
b7651325eb Build compiler-rt and link it to all crates, similarly to morestack. 2014-02-11 15:59:59 -08:00
Alex Crichton
47ece1fa2c Don't use -Z prefer-dynamic at stage0
This is blocking a snapshot because the stage0 target compiler comes from a
stage1 host compiler. This means that the stage0 compiler doesn't actually
understand the -Z prefer-dynamic flag and is dying as a result.

This will get added back to stage0 after a snapshot.
2014-02-10 23:06:37 -08:00
gifnksm
1b969e1188 Makefile.in: --no-rpath => -C no-rpath 2014-02-11 00:25:10 +09:00
Alex Crichton
071ee96277 Consolidate codegen-related compiler flags
Move them all behind a new -C switch. This migrates some -Z flags and some
top-level flags behind this -C codegen option.

The -C flag takes values of the form "-C name=value" where the "=value" is
optional for some flags.

Flags affected:

* --llvm-args           => -C llvm-args
* --passes              => -C passes
* --ar                  => -C ar
* --linker              => -C linker
* --link-args           => -C link-args
* --target-cpu          => -C target-cpu
* --target-feature      => -C target-fature
* --android-cross-path  => -C android-cross-path
* --save-temps          => -C save-temps
* --no-rpath            => -C no-rpath
* -Z no-prepopulate     => -C no-prepopulate-passes
* -Z no-vectorize-loops => -C no-vectorize-loops
* -Z no-vectorize-slp   => -C no-vectorize-slp
* -Z soft-float         => -C soft-float
* -Z gen-crate-map      => -C gen-crate-map
* -Z prefer-dynamic     => -C prefer-dynamic
* -Z no-integrated-as   => -C no-integrated-as

As a bonus, this also promotes the -Z extra-debug-info flag to a first class -g
or --debuginfo flag.

* -Z debug-info         => removed
* -Z extra-debug-info   => -g or --debuginfo

Closes #9770
Closes #12000
2014-02-10 00:50:39 -08:00
Alex Crichton
91882a4c56 Remove VPATH usage in Makefiles
This is just messing up all the doc dependencies because of such similar
directory names and file names.

Closes #11422
2014-02-02 10:59:14 -08:00
Corey Richardson
25fe2cadb1 Remove rustpkg.
I'm sorry :'(

Closes #11859
2014-02-02 03:08:56 -05:00
Alex Crichton
dea86ca86b Fix a typo in disable rpaths
Closes #5219
2014-01-28 11:49:25 -08:00