mirror of
https://github.com/hexagonal-sun/moss-kernel.git
synced 2026-02-01 01:51:45 -05:00
48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
# Experimental macOS build scripts
|
|
|
|
This is the folder for experimental macOS build support on Apple Silicon (we do not plan to support x86_64 macOS).
|
|
|
|
These scripts are not guaranteed to work and are not actively supported by the maintainer or other contributors.
|
|
If you do have any issues, please mention @IAmTheNerdNextDoor in GitHub Issues.
|
|
|
|
### Dependencies
|
|
Regardless of stdlib, you will need:
|
|
- [Rustup](https://rustup.rs) (DO NOT install Rustup from Homebrew as you will incur conflicts. If you have Rustup installed from Homebrew, uninstall it and reinstall from the Rustup site.)
|
|
- [aarch64-none-elf](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads)
|
|
- [Homebrew](https://brew.sh)
|
|
- QEMU (`brew install qemu`)
|
|
- dosfstools (`brew install dosfstools`)
|
|
|
|
If building for the GNU library:
|
|
- aarch64-unknown-linux-gnu (`brew tap messense/macos-cross-toolchains && brew install aarch64-unknown-linux-gnu`)
|
|
|
|
If building for the Musl library:
|
|
- Zig (`brew install zig`)
|
|
|
|
We use Zig to cross-compile to Linux musl on macOS.
|
|
|
|
When it comes to Rust, you need the nightly toolchain. To install it, run:
|
|
`rustup default nightly`
|
|
|
|
### Building
|
|
You can start building the initrd programs using this script:
|
|
`./scripts/mac-experimental/build-deps.sh`
|
|
|
|
musl programs are built by default.
|
|
|
|
If you want GNU program builds:
|
|
`stdlib=gnu ./scripts/mac-experimental/build-deps.sh`
|
|
|
|
After building, you can make the initrd with:
|
|
`./scripts/mac-experimental/create-image.sh`
|
|
|
|
The initrd should now be at `./moss.img`.
|
|
|
|
You can then build and run moss with:
|
|
`cargo run --release`
|
|
|
|
If you get an error about `aarch64-unknown-none-softfloat` during building, you need to install the target:
|
|
`rustup target install aarch64-unknown-none-softfloat`
|
|
|
|
Have fun!
|