| 1 | # Build and Install Instructions |
| 2 |
|
| 3 | > **NOTE:** This document is about building and installing Limine. |
| 4 | > For information about deployment for usage, see [USAGE.md](USAGE.md). |
| 5 |
|
| 6 | ## Prerequisites |
| 7 |
|
| 8 | In order to build Limine, the following programs have to be installed: |
| 9 | common UNIX tools (also known as `coreutils`), |
| 10 | `GNU make`, `grep`, `sed`, `find`, `awk`, `nasm`, `mtools` |
| 11 | (optional, necessary to build `limine-uefi-cd.bin`). |
| 12 | Furthermore, `gcc` or `llvm/clang` must also be installed, alongside |
| 13 | the respective binutils. |
| 14 |
|
| 15 | ## Configure |
| 16 |
|
| 17 | If using a release tarball (recommended, see |
| 18 | https://github.com/Limine-Bootloader/Limine/releases), run `./configure` |
| 19 | directly. |
| 20 |
|
| 21 | If checking out from the repository, run `./bootstrap` first in order to |
| 22 | download the necessary [dependencies](3RDPARTY.md) and generate the configure |
| 23 | script (`GNU autoconf` required). |
| 24 |
|
| 25 | `./configure` takes arguments and environment variables; for more information |
| 26 | on these, run `./configure --help`. |
| 27 |
|
| 28 | > **NOTE:** `./configure` by default does not build any Limine port. Make sure |
| 29 | > to read the output of `./configure --help` and enable any or all ports! |
| 30 |
|
| 31 | Limine supports both in-tree and out-of-tree builds. Simply run the `configure` |
| 32 | script from the directory you wish to execute the build in. The following |
| 33 | `make` commands are supposed to be run inside the build directory. |
| 34 |
|
| 35 | ## Building |
| 36 |
|
| 37 | To build Limine, run: |
| 38 | ```bash |
| 39 | make # (or gmake where applicable) |
| 40 | ``` |
| 41 |
|
| 42 | ## Installing |
| 43 |
|
| 44 | This step will install Limine files to `share`, `include`, and `bin` |
| 45 | directories in the specified prefix (default is `/usr/local`, see |
| 46 | `./configure --help`. |
| 47 |
|
| 48 | To install Limine, run: |
| 49 | ```bash |
| 50 | make install # (or gmake where applicable) |
| 51 | ``` |
| 52 |
|