mirror of
https://gitlab.com/fabinfra/fabaccess/bffh.git
synced 2024-11-22 14:57:56 +01:00
Cross-compilation docs
This commit is contained in:
parent
2cb7a28967
commit
7861568ca1
@ -1,2 +0,0 @@
|
|||||||
[build]
|
|
||||||
rustflags = ["-C", "target-cpu=native"]
|
|
@ -75,6 +75,43 @@ When you want feedback on your current progress or are ready to have it merged u
|
|||||||
request. Don't worry we don't bite! ^^
|
request. Don't worry we don't bite! ^^
|
||||||
|
|
||||||
|
|
||||||
|
# Development Setup
|
||||||
|
|
||||||
|
## Cross-compilation
|
||||||
|
|
||||||
|
If you want to cross-compile you need both a C-toolchain for your target
|
||||||
|
and install the Rust stdlib for said target.
|
||||||
|
|
||||||
|
As an example for the target `aarch64-unknown-linux-gnu` (64-bit ARMv8
|
||||||
|
running Linux with the glibc, e.g. a Raspberry Pi 3 or later with a 64-bit
|
||||||
|
Debian Linux installation):
|
||||||
|
|
||||||
|
1. Install C-toolchain using your distro package manager:
|
||||||
|
- On Archlinux: `pacman -S aarch64-unknown-linux-gnu-gcc`
|
||||||
|
2. Install the Rust stdlib:
|
||||||
|
- using rustup: `rustup target add aarch64-unknown-linux-gnu`
|
||||||
|
3. Configure your cargo config:
|
||||||
|
|
||||||
|
### Configuring cargo
|
||||||
|
|
||||||
|
You need to tell Cargo to use your C-toolchain. For this you need to have
|
||||||
|
a block in [your cargo config](https://doc.rust-lang.org/cargo/reference/config.html) setting at
|
||||||
|
least the paths to the gcc as `linker` and ar as `ar`:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[target.aarch64-unknown-linux-gnu]
|
||||||
|
# You must set the gcc as linker since a lot of magic must happen here.
|
||||||
|
linker = "aarch64-linux-gnu-gcc"
|
||||||
|
ar = "aarch64-linux-gnu-ar"
|
||||||
|
```
|
||||||
|
|
||||||
|
To actually compile for the given triple you need to call `cargo build`
|
||||||
|
with the `--target` flag:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cargo build --release --target=aarch64-unknown-linux-gnu
|
||||||
|
```
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
|
|
||||||
Sadly, still very much `// TODO:`. We're working on it! :/
|
Sadly, still very much `// TODO:`. We're working on it! :/
|
||||||
|
13
INSTALL.md
13
INSTALL.md
@ -1,4 +1,4 @@
|
|||||||
## Installation
|
# Installation
|
||||||
|
|
||||||
Currently there are no distribution packages available.
|
Currently there are no distribution packages available.
|
||||||
However installation is reasonably straight-forward, since Diflouroborane compiles into a single
|
However installation is reasonably straight-forward, since Diflouroborane compiles into a single
|
||||||
@ -7,7 +7,7 @@ mostly static binary with few dependencies.
|
|||||||
At the moment only Linux is supported. If you managed to compile Diflouroborane please open an issue
|
At the moment only Linux is supported. If you managed to compile Diflouroborane please open an issue
|
||||||
outlining your steps or add a merge request expanding this part. Thanks!
|
outlining your steps or add a merge request expanding this part. Thanks!
|
||||||
|
|
||||||
### Requirements
|
## Requirements
|
||||||
|
|
||||||
General requirements; scroll down for distribution-specific instructions
|
General requirements; scroll down for distribution-specific instructions
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ General requirements; scroll down for distribution-specific instructions
|
|||||||
$ pacman -S gsasl rust capnproto
|
$ pacman -S gsasl rust capnproto
|
||||||
```
|
```
|
||||||
|
|
||||||
### Compiling from source
|
## Compiling from source
|
||||||
|
|
||||||
Diflouroborane uses Cargo, so compilation boils down to:
|
Diflouroborane uses Cargo, so compilation boils down to:
|
||||||
|
|
||||||
@ -33,3 +33,10 @@ $ cargo build --release
|
|||||||
```
|
```
|
||||||
|
|
||||||
The compiled binary can then be found in `./target/release/diflouroborane`
|
The compiled binary can then be found in `./target/release/diflouroborane`
|
||||||
|
|
||||||
|
### Cross-compiling
|
||||||
|
|
||||||
|
If you need to compile for a different CPU target than your own (e.g. you want
|
||||||
|
to use BFFH on a raspberry pi but compile on your desktop PC), you need to
|
||||||
|
setup a cross-compilation toolchain and configure your Cargo correctly.
|
||||||
|
[The `CONTRIBUTING.md` has a section on how to setup a cross-compilation system.](CONTRIBUTING.md#cross-compilation)
|
||||||
|
Loading…
Reference in New Issue
Block a user