Skip to content

Commit

Permalink
Linux: Update documentation for compiling
Browse files Browse the repository at this point in the history
  • Loading branch information
yaynstuff committed Mar 28, 2024
1 parent 8693cf7 commit 881a5e6
Showing 1 changed file with 16 additions and 22 deletions.
38 changes: 16 additions & 22 deletions doc/building_linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,23 @@
> [!WARNING]
> Please note that we do not give support for compiling the viewer on your own. However, there is a self-compilers group in Second Life that can be joined to ask questions related to compiling the viewer: [Firestorm Self Compilers](https://tinyurl.com/firestorm-self-compilers)
> [!NOTE]
> These instructions only apply to Firestorm versions with AlexIvy code.
This procedure is based on discussions with the Firestorm Linux development team and is the only one recommended for Firestorm for Linux. System requirements are:
- Ubuntu 20.04 x64 fully upgraded
- Ubuntu 22.04 LTS (x86_64) - fully upgraded (this is also now the minimum requirement for running the viewer).
- 16GB or more RAM ([Low Memory Caution](#common-issuesbugsglitches-and-solutions))
- 64GB hard drive space
- 4 or more core CPU (you could get by with 2 cores, but the process will take much longer)
- GCC 11 compiler (which is the default version on Ubuntu 22.04 LTS)

It is recommended that you use a virtual machine for compiling, ensuring the guest can meet the hardware requirements.

Due to the age of the build OS, it is recommended that you use a virtual machine, ensuring the guest can meet the hardware requirements.
This procedure may or may not work on other Linux distributions (or you might need to adjust some of the package names to suit the distribution you are using).

This procedure may or may not work on other Linux distributions.
> [!WARNING]
> A system with a glibc version of at least 2.34 is required (Ubuntu 22.04 LTS meets this requirement)
> Building on a system with a glibc version older than 2.34 will likely result in linker errors.
> [!IMPORTANT]
> Only 64 bit builds are possible - 32 bit support was dropped quite some time ago.
## Establish your programming environment

Expand All @@ -31,22 +36,11 @@ A few packages must be installed on the build system. Some may already be instal
| | | | | | |
| --------------- | ---------------- | ------------- | ------------------ | ---------------- | ------ |
| libgl1-mesa-dev | libglu1-mesa-dev | libpulse-dev | build-essential | python3-pip | git |
| libssl-dev | libxinerama-dev | libxrandr-dev | libfontconfig1-dev | libfreetype6-dev | gcc-10 |
| | | | | | |

```
sudo apt install libgl1-mesa-dev libglu1-mesa-dev libpulse-dev build-essential python3-pip git libssl-dev libxinerama-dev libxrandr-dev libfontconfig1-dev libfreetype6-dev gcc-10
```

### CMake

CMake version 3.18 is required but not available in Ubuntu's repositories, we have to build it from source
| libssl-dev | libxinerama-dev | libxrandr-dev | libfontconfig-dev | libfreetype6-dev | gcc-11 |
| cmake | | | | | |

```
wget https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0.tar.gz
tar xvf cmake-3.18.0.tar.gz
cd cmake-3.18.0
./bootstrap --parallel=$(nproc) --prefix=/usr && make -j $(nproc) && sudo make install
sudo apt install libgl1-mesa-dev libglu1-mesa-dev libpulse-dev build-essential python3-pip git libssl-dev libxinerama-dev libxrandr-dev libfontconfig-dev libfreetype6-dev gcc-11 cmake
```

### Install Autobuild
Expand All @@ -58,7 +52,7 @@ sudo pip3 install --upgrade pip
sudo pip3 install git+https://github.com/secondlife/autobuild.git#egg=autobuild
```

Check Autobuild version to be "autobuild 3.8" or higher: `autobuild --version`
Check Autobuild version to be "autobuild 4" or higher: `autobuild --version`

## Download the source code

Expand All @@ -81,7 +75,7 @@ The rest of this document will assume the default directory, `phoenix-firestorm`

### Clone the Autobuild build variables

Autobuild 3.0 uses a separate file to control compiler options, switches, and the like for different configurations.
Autobuild uses a separate file to control compiler options, switches, and the like for different configurations.

```
cd ~/src
Expand Down

0 comments on commit 881a5e6

Please sign in to comment.