mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-08-17 01:10:28 +03:00
Toolchain: Update README to point to the current build instructions
This README contains *really* outdated build instructions. Let's put a pointer to the latest build instructions there instead.
This commit is contained in:
parent
72960fedc6
commit
bba2da66e7
Notes:
sideshowbarker
2024-07-19 03:37:56 +09:00
Author: https://github.com/Lubrsi Commit: https://github.com/SerenityOS/serenity/commit/bba2da66e76 Pull-request: https://github.com/SerenityOS/serenity/pull/3145
@ -1,144 +1,6 @@
|
||||
# Serenity Toolchain - Building the Serenity operating system
|
||||
# Serenity Toolchain
|
||||
|
||||
This directory contains all toolchain related files. E.g. build scripts for
|
||||
the cross compilation toolchain and build toolchain for ports.
|
||||
|
||||
- [Serenity Toolchain - Building the Serenity operating system](#serenity-toolchain---building-the-serenity-operating-system)
|
||||
- [Cross Compile Toolchain](#cross-compile-toolchain)
|
||||
- [Dependencies](#dependencies)
|
||||
- [Serenity (Full build)](#serenity-full-build)
|
||||
- [Running SerenityOS in an emulator](#running-serenityos-in-an-emulator)
|
||||
- [QEMU installation / compilation](#qemu-installation--compilation)
|
||||
- [Passing custom arguments to QEMU](#passing-custom-arguments-to-qemu)
|
||||
|
||||
## Cross Compile Toolchain
|
||||
|
||||
The cross compile toolchain contains
|
||||
|
||||
- binutils 2.32
|
||||
|
||||
- GCC 8.3.0
|
||||
|
||||
These are built from source with some patches applied.
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Build Essentials
|
||||
|
||||
```bash
|
||||
sudo apt install build-essential curl libmpfr-dev libmpc-dev libgmp-dev
|
||||
```
|
||||
|
||||
- GCC 8
|
||||
|
||||
```bash
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get install gcc-8 g++-8
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
|
||||
```
|
||||
|
||||
- e2fsprogs
|
||||
|
||||
```bash
|
||||
sudo apt install e2fsprogs
|
||||
```
|
||||
|
||||
## Serenity (Full build)
|
||||
|
||||
If everything worked out, you now have the **i686-pc-serenity** toolchain ready and we can build Serenity.
|
||||
|
||||
Go into `Kernel/` folder and build it:
|
||||
|
||||
```bash
|
||||
./makeall.sh
|
||||
```
|
||||
|
||||
Then take it for a spin:
|
||||
|
||||
```bash
|
||||
./run
|
||||
```
|
||||
|
||||
See next chapter for more options on running SerenityOS in an emulator.
|
||||
|
||||
## Running SerenityOS in an emulator
|
||||
|
||||
To run SerenityOS in a specific emulator, call the `./run` command in the `Kernel/` folder:
|
||||
|
||||
```bash
|
||||
./run
|
||||
```
|
||||
|
||||
There are several emulators supported to run SerenityOS in:
|
||||
|
||||
- Bochs
|
||||
|
||||
```bash
|
||||
sudo apt install bochs
|
||||
```
|
||||
|
||||
Add the `b` argument to the run script, to use bochs emulator:
|
||||
|
||||
```bash
|
||||
./run b
|
||||
```
|
||||
|
||||
- QEMU
|
||||
QEMU with networking enabled is used by default, when no extra argument is passed to the run script.
|
||||
There are some extra arguments to run QEMU emulator with specific settings:
|
||||
|
||||
Add the `qn` argument to the run script to use QEMU without networking:
|
||||
|
||||
```bash
|
||||
./run qn
|
||||
```
|
||||
|
||||
Add the `qgrub` argument to the run script to use QEMU with grub bootloader:
|
||||
|
||||
```bash
|
||||
./run qgrub
|
||||
```
|
||||
|
||||
Add the `qtext` argument to the run script to use QEMU with textmode:
|
||||
|
||||
```bash
|
||||
./run qtext
|
||||
```
|
||||
|
||||
Note: there is a problem with the PS/2 keyboard/mouse emulation in QEMU 2.11.1 as packaged in Ubuntu's LTS releases.
|
||||
If you have any strange behaviour with missing keyboard inputs or jittery mouse movement, try building QEMU from
|
||||
source as described in [QEMU](#qemu-installation--compilation). 2.12.1, 3.0.1, 3.1.0, and 4.0.0 are all confirmed as working when built from source.
|
||||
|
||||
### QEMU installation / compilation
|
||||
|
||||
If your distribution contains a QEMU version > 2.11.1, then you can just install it via
|
||||
|
||||
```bash
|
||||
sudo apt install qemu-system-i386 qemu-utils
|
||||
```
|
||||
|
||||
If that is not the case, you can build QEMU from sources with the provided script `BuildQemu.sh`.
|
||||
To do so, some build dependencies have to be installed first:
|
||||
|
||||
```bash
|
||||
sudo apt-get build-dep qemu
|
||||
sudo apt-get install libgtk-3-dev
|
||||
```
|
||||
|
||||
The source-repositories of your distribution have to be enabled to install the build-dep's.
|
||||
|
||||
`BuildQemu.sh` has been tested with QEMU 3.0.0 and 4.1.0 (which is default). If you
|
||||
want to build QEMU 3.0.0, change the variable `QEMU_VERSION` and `QEMU_MD5SUM` accordingly:
|
||||
|
||||
```bash
|
||||
QEMU_VERSION="qemu-3.0.0"
|
||||
QEMU_MD5SUM="${QEMU300_MD5SUM}"
|
||||
```
|
||||
|
||||
### Passing custom arguments to QEMU
|
||||
|
||||
You can modify the environment variable `SERENITY_EXTRA_QEMU_ARGS` to your needs or hand it over directly before the run command:
|
||||
|
||||
```bash
|
||||
SERENITY_EXTRA_QEMU_ARGS="-nographic" ./run qtext
|
||||
```
|
||||
This document previously contained outdated build instructions. [Click here for the latest build instructions.](https://github.com/SerenityOS/serenity/blob/master/Documentation/BuildInstructions.md)
|
||||
|
Loading…
Reference in New Issue
Block a user