How to compile FireStorm on Ubuntu 20.04

Thread Started By jagiwig920

1489
0
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rate Thread
#1
Exclamation 
Compiling Firestorm

It's hard to find a proper tutorial on how to compile FireStorm with Ubuntu 20.04.
So I made this easy-to-follow tutorial, you should be able to follow this tutorial by simply copy & pasting the commands.
The "hardest" part is registering a FMOD account to download FMOD Engine. So we will start with that.

Download FMOD (Sound Engine)
Go to

[To see links please register here]

and register a account. You can use a disposable email service (

[To see links please register here]

) if you don't like to give your personal mail.
Make sure to download FMOD in your Downloads folder, this will make it easier to follow this tutorial. Afterwards open the terminal (CTRL + ALT +T)
And you can start to copy and paste the commands below

Load FMOD Version into Environment Variables
Code:
cd ~/Downloads
rm -rf fmodstudioapi*\(*\).tar.gz

#Extract FMOD Version
FMOD_LATEST=`ls fmodstudioapi*.tar.gz | perl -e 'print sort { length($a) <=> length($b) } <>' | tail -n 1`
FMOD_VERSION=`ls $FMOD_LATEST | grep -Eo '[0-9]{1,}'`
FMOD_VERSION_PRETTY=${FMOD_VERSION:0:1}.${FMOD_VERSION:1:2}.${FMOD_VERSION:3:4}

echo $FMOD_VERSION_PRETTY
Important: Confirm if you can see the FMOD version displayed in your terminal after you press ENTER

Installing dependencies
This may take a couple of minutes to complete
Code:
sudo apt install --install-recommends make cmake curl doxygen gdb git python2 python2-dev python-all python3-virtualenv libalut-dev libapr1-dev libaprutil1-dev libatk1.0-dev libboost-all-dev libcairo2-dev libcollada-dom2.4-dp-dev libcurl4-openssl-dev libgl1-mesa-dev libglu1-mesa-dev libpython-all-dev libstdc++6 libx11-dev libxinerama-dev libxml2-dev libxrender-dev g++ gcc -y
Create and activate virtualenv with python 2.7
Ubuntu 20.04 comes with Python 3.x, Linden Labs autobuild system still requires Python 2.7. To not affect the stability of our system we will create a virtual environment for python 2.7
Code:
cd ~
virtualenv -p /usr/bin/python2.7 py27_env
cd ~/py27_env
source bin/activate
After this you will see a py27_env prefix in your terminal which will make sure any executed Python scripts will be interpreted by Python 2.7 and not Python 3.x

Download and install Python PIP
*PIP is a Package Installer for Python
Code:
mkdir -p ~/src/modules/python-pip
cd ~/src/modules/python-pip

curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
python2 get-pip.py
Install Autobuild and llbase with PIP
Code:
pip install --upgrade pip
pip install autobuild
pip install llbase
Download Firestorm Source Code

This may take a couple of minutes to complete
Code:
cd ~/src
time git clone https://vcs.firestormviewer.org/phoenix-firestorm
Download Vorbis 1.3.3

Vorbis is a audio encoder and decoder
Code:
mkdir -p ~/src/modules/vorbis
cd ~/src/modules/vorbis

wget https://fireandicegrid.net/downloads/ogg_vorbis-1.3.3-1.3.6.200930615-linux64-200930615.tar.bz2
md5sum ogg_vorbis-1.3.3-1.3.6.200930615-linux64-200930615.tar.bz2
Download FMOD libraries
Code:
cd ~/src
git clone https://vcs.firestormviewer.org/3p-libraries/3p-fmodstudio

#Copy FMOD Engine to Lib directory
cp ~/Downloads/${FMOD_LATEST} ~/src/3p-fmodstudio
Configure FMOD Build Script
Code:
cd ~/src/3p-fmodstudio
file=build-cmd.sh

key=FMOD_DOWNLOAD_BASE= && value="file:///./"
line=`grep $key $file` && sed -i "s|${line}|${key}${value}|g" $file

key=FMOD_VERSION= && value=$FMOD_VERSION
line=`grep $key $file` && sed -i "s|${line}|${key}${value}|g" $file

key=FMOD_VERSION_PRETTY= && value=$FMOD_VERSION_PRETTY
line=`grep $key $file` && sed -i "s|${line}|${key}${value}|g" $file
Load Autobuild Variables
Code:
cd ~/src
git clone https://vcs.firestormviewer.org/fs-build-variables
source ./fs-build-variables/convenience Release
export AUTOBUILD_VARIABLES_FILE=${HOME}/src/fs-build-variables/variables
Build FMOD Engine
Code:
cd ~/src/3p-fmodstudio
autobuild build -A 64 --all
OUTPUT=`autobuild package -A 64`
FMOD_URL=`echo $OUTPUT | cut -d ' ' -f 4`
FMOD_HASH=`echo $OUTPUT | cut -d ' ' -f 6`
Edit autobuild.xml with FMOD and Vorbis
Code:
cd ~/src/phoenix-firestorm

autobuild installables edit fmodstudio platform=linux64 hash=${FMOD_HASH} url=file://${FMOD_URL}

autobuild installables edit ogg_vorbis platform=linux64 hash=d888b4916006c28471b4f103854526c3 url=file://${HOME}/src/modules/vorbis/ogg_vorbis-1.3.3-1.3.6.200930615-linux64-200930615.tar.bz2 --debug
Start Compiling

Because compiling takes a lot of time there is a time command added and speaker-test command to warn us when the build is ready.
Code:
cd ~/src/phoenix-firestorm

#May take a couple of minutes
echo "start time: " && date +%H:%M:%S \
&& time autobuild configure -A 64 -c ReleaseFS_open -- --package --fmodstudio --chan Release --clean -- debug --verbose \
&& speaker-test -t sine -f 1000 -l 1 -p 1 >> /dev/null

#May take longer than a hour
echo "start time: " && date +%H:%M:%S \
&& time autobuild build -A 64 -c ReleaseFS_open --no-configure -- debug --verbose \
&& speaker-test -t sine -f 1000 -l 1 -p 1 >> /dev/null
Ignore pipe errors, these are command line errors. If you get a Segmentation Fault just repeat the last autobuild command and the build should continue roughly at the last compiled file.
Also ignore the percentages after a Segmentation Fault occurs as they do not represent the actual progress anymore and the build will suddenly skip to a 100% once it's completed.

Install FireStorm
Code:
cd ~/src/phoenix-firestorm/build-linux-x86_64/newview
FS_TARBAL=`ls Phoenix*.tar.xz`
tar -vxf ${FS_TARBAL}
cd `basename ${FS_TARBAL} .tar.xz`
./install.sh

Add CryptoDog to your viewer:

[To see links please register here]

Reply




Possibly Related Threads…
Thread Author Replies Views Last Post
  Help to compile Firestorm. Bamboletto72 8 2,240 05-24-2022, 06:23 PM
Last Post: syldrakitty
  Speed and performance Hydrastorm and firestorm LINDENBLACK 2 2,387 09-29-2021, 04:16 PM
Last Post: slimbarrowstone

Forum Jump:

1 Guest(s)
Share this:

About Second Life Copybot

Second Life CopyBot Forum is a place where you can get items for Second Life and other vitual worlds for free. With our CopyBot viewers you can export and import any content from these virtual worlds and modify them in 3D software such as Blender, 3D studio Macx etc...