summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
commit9835e2ae736235810b4ea1c162ca5e65c547e770 (patch)
tree3fcebf40ed70e581d776a8a4c65923e8ec20e026 /README.md
parentReleasing progress-linux version 1.70.0+dfsg2-1~progress7.99u1. (diff)
downloadrustc-9835e2ae736235810b4ea1c162ca5e65c547e770.tar.xz
rustc-9835e2ae736235810b4ea1c162ca5e65c547e770.zip
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'README.md')
-rw-r--r--README.md51
1 files changed, 25 insertions, 26 deletions
diff --git a/README.md b/README.md
index c19e129a9..41b135972 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,8 @@ Read ["Installation"] from [The Book].
The Rust build system uses a Python script called `x.py` to build the compiler,
which manages the bootstrapping process. It lives at the root of the project.
+It also uses a file named `config.toml` to determine various configuration settings for the build.
+You can see a full list of options in `config.example.toml`.
The `x.py` command can be run directly on most Unix systems in the following
format:
@@ -85,6 +87,8 @@ See [the rustc-dev-guide for more info][sysllvm].
### Building on a Unix-like system
+#### Build steps
+
1. Clone the [source] with `git`:
```sh
@@ -96,18 +100,13 @@ See [the rustc-dev-guide for more info][sysllvm].
2. Configure the build settings:
- The Rust build system uses a file named `config.toml` in the root of the
- source tree to determine various configuration settings for the build.
- Set up the defaults intended for distros to get started. You can see a full
- list of options in `config.example.toml`.
-
```sh
- printf 'profile = "user" \nchangelog-seen = 2 \n' > config.toml
+ ./configure
```
If you plan to use `x.py install` to create an installation, it is
recommended that you set the `prefix` value in the `[install]` section to a
- directory.
+ directory: `./configure --set install.prefix=<path>`
3. Build and install:
@@ -117,12 +116,25 @@ See [the rustc-dev-guide for more info][sysllvm].
When complete, `./x.py install` will place several programs into
`$PREFIX/bin`: `rustc`, the Rust compiler, and `rustdoc`, the
- API-documentation tool. If you've set `profile = "user"` or
- `build.extended = true`, it will also include [Cargo], Rust's package
- manager.
+ API-documentation tool. By default, it will also include [Cargo], Rust's package manager.
+ You can disable this behavior by passing `--set build.extended=false` to `./configure`.
[Cargo]: https://github.com/rust-lang/cargo
+#### Configure and Make
+
+This project provides a configure script and makefile (the latter of which just invokes `x.py`).
+`./configure` is the recommended way to programatically generate a `config.toml`. `make` is not
+recommended (we suggest using `x.py` directly), but it is supported and we try not to break it
+unnecessarily.
+
+```sh
+./configure
+make && sudo make install
+```
+
+`configure` generates a `config.toml` which can also be used with normal `x.py` invocations.
+
### Building on Windows
On Windows, we suggest using [winget] to install dependencies by running the
@@ -186,7 +198,7 @@ toolchain.
4. Navigate to Rust's source code (or clone it), then build it:
```sh
- ./x.py build && ./x.py install
+ python x.py setup user && python x.py build && python x.py install
```
#### MSVC
@@ -204,6 +216,7 @@ With these dependencies installed, you can build the compiler in a `cmd.exe`
shell with:
```sh
+python x.py setup user
python x.py build
```
@@ -232,21 +245,7 @@ Windows build triples are:
The build triple can be specified by either specifying `--build=<triple>` when
invoking `x.py` commands, or by creating a `config.toml` file (as described in
-[Installing from Source](#installing-from-source)), and modifying the `build`
-option under the `[build]` section.
-
-### Configure and Make
-
-While it's not the recommended build system, this project also provides a
-configure script and makefile (the latter of which just invokes `x.py`).
-
-```sh
-./configure
-make && sudo make install
-```
-
-`configure` generates a `config.toml` which can also be used with normal `x.py`
-invocations.
+[Building on a Unix-like system](#building-on-a-unix-like-system)), and passing `--set build.build=<triple>` to `./configure`.
## Building Documentation