Building (Toutatis)

From Trisquel Enhancement Project
Jump to: navigation, search
Main: Software Building

Executables can be compressed using the following commands:

sudo apt-get install upx-ucl
upx --lzma dir/exec_name

Replace dir/exec_name with the path to executable you want to compress (e.g. doom3/doom.x86).

To package the resulting files as downloadable content, use the following commands:

7zr a -mx=9 dir_name.7z dir_name
rm -fr dir_name

Replace dir_name with the name of the directory you want to package (e.g. doom3).

ath9k_htc firmware[edit]

Note: Since 22 December 2013, Trisquel includes the "open-ath9k-htc-firmware" packaged in its repository, and is installed through updates by default. These instructions are therefore needed only if you want to build and use the latest development version.

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install make gcc libc6-dev m4 cmake
wget https://github.com/qca/open-ath9k-htc-firmware/archive/master.zip
unzip master
rm -f master.zip
cd open-ath9k-htc-firmware-master
Build
make toolchain
make -C target_firmware
Clean
mkdir ../firmware
mv docs target_firmware/*.fw *.TXT README ../firmware
cd ..
rm -fr open-ath9k-htc-firmware-master

Pre-compiled binaries can be downloaded here, or here. The official GitHub page with the released source code is here.

Brány Skeldalu (Gates of Skeldal)[edit]

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install g++ libsdl-mixer1.2-dev make subversion
svn co http://svn.code.sf.net/p/skeldal/code/branches/next_ghost
cd next_ghost
Build
./configure
make
cd tools
make
Clean
mkdir -p ../../skeldal/tools
mv ../{icons,README,skeldal} ../../skeldal
mv demus{,.sh} musinfo ../../skeldal/tools
cd ../..
rm -fr next_ghost

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code of the GNU/Linux port is available through the official SourceForge page here.

CorsixTH[edit]

Prepare
sudo add-apt-repository ppa:jon-severinsson/ffmpeg
sudo add-apt-repository "deb http://repos.codelite.org/wx3.0/ubuntu precise universe"
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 1AC82609
sudo apt-get update
sudo apt-get --no-install-recommends install cmake make g++ liblua5.1-0-dev libsdl-mixer1.2-dev libavdevice-dev libswscale-dev libpostproc-dev libswresample-dev libfreetype6-dev libwxgtk3.0-dev ant openjdk-7-jdk
wget https://github.com/CorsixTH/CorsixTH/archive/v0.30.tar.gz
tar xf v0.30.tar.gz
rm -f v0.30.tar.gz
cd CorsixTH-0.30
Build
cmake .
make
mv CorsixTH/CorsixTH{,_SDL}
cmake -DWITH_OPENGL=ON -DBUILD_ANIMVIEWER=ON -DBUILD_MAPEDITOR=ON .
make
mv CorsixTH/CorsixTH{,_OpenGL}
wget https://raw.github.com/CorsixTH/CorsixTH/master/LevelEdit/build.xml -O LevelEdit/build.xml
sudo update-alternatives --set java /usr/lib/jvm/java-7-openjdk-`dpkg --print-architecture`/jre/bin/java
ant -f LevelEdit/build.xml
Clean
mkdir -p ../CorsixTH/lib
mv AnimView/AnimView{,.ico} CorsixTH/{Bitmap,Levels,Lua,changelog.txt,CorsixTH{.ico,.lua,_OpenGL,_SDL},*.svg} LevelEdit/{dist/LevelEdit.jar,README.txt} MapEdit/MapEdit{,.ico} LICENSE README ../CorsixTH
cp /usr/lib/`uname -i`-linux-gnu/{libswresample.so.0,libwx_baseu_unofficial-3.0.so.0,libwx_gtk2u_unofficial_{core,gl,ribbon}-3.0.so.0} ../CorsixTH/lib
for A in AnimView CorsixTH_{OpenGL,SDL} MapEdit;do echo LD_LIBRARY_PATH=lib ./$A>../CorsixTH/$A.sh;done
echo java -jar LevelEdit.jar>../CorsixTH/LevelEdit.sh
cd ..
rm -fr CorsixTH-0.30

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code is available through GitHub here.

Doom 3[edit]

Note: Since SDL2 has broken full-screen support (aspect ratio is ignored), version 1.2 is used instead. To fix crackling noise in the sound (Open Sound System only), run "echo drivers=oss>~/.alsoftrc" from Terminal.

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install cmake make g++ libjpeg-turbo8-dev libvorbis-dev libopenal-dev libsdl1.2-dev
wget https://github.com/dhewm/dhewm3/archive/master.zip
unzip master
rm -f master.zip
cd dhewm3-master/neo
Build
cmake -DCMAKE_BUILD_TYPE=MinSizeRel
make
Clean
mkdir ../../dhewm3
mv dhewm3{,.`arch`}
mv dhewm3.`arch` *.so ../*.{md,txt} ../../dhewm3
cd ../..
rm -fr dhewm3-master

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code is available through GitHub here.

Doom 3 BFG Edition[edit]

Note: To fix crackling noise in the sound (Open Sound System only), run "echo drivers=oss>~/.alsoftrc" from Terminal

Pre-requisite: libsdl2-2.0-0, libsdl2-dev (use GDebi to install them)

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install cmake make g++ libopenal-dev libavformat-dev libswscale-dev
wget https://github.com/RobertBeckebans/RBDOOM-3-BFG/archive/138a2118bbd643b70ba7e5a56be1f22f3178896a.zip -O master.zip	# later revisions have choppy performance
unzip master
rm -f master.zip
cd RBDOOM-3-BFG*/neo
Build
cmake -DCMAKE_BUILD_TYPE=MinSizeRel -DSDL2=ON
make
Clean
mkdir "../../Doom 3 BFG Edition"
mv RBDoom3BFG{,.`arch`}
mv RBDoom3BFG.`arch` ../*.txt "../../Doom 3 BFG Edition"
cp /usr/lib/`uname -i`-linux-gnu/libSDL2-2.0.so.0 "../../Doom 3 BFG Edition"
echo LD_LIBRARY_PATH=. ./RBDoom3BFG.`arch`>"../../Doom 3 BFG Edition/RBDoom3BFG.sh"
cd ../..
rm -fr RBDOOM-3-BFG*

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code is available through GitHub here.

Fabother World[edit]

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install make libsdl1.2-dev g++
wget https://github.com/fabiensanglard/Another-World-Bytecode-Interpreter/archive/master.zip
unzip master
rm -f master.zip
cd Another-World-Bytecode-Interpreter-master
Build
make
Clean
mkdir "../Fabother World"
mv COPYING game README* "../Fabother World"
cd ..
rm -fr Another-World-Bytecode-Interpreter-master

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code is available through GitHub here.

Fish Fillets Clone[edit]

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install make gcc libcairo2-dev liblua5.1-0-dev
wget http://www.olsak.net/mirek/ff-clone/ff-clone-1.1.tgz
tar xf ff-clone-1.1.tgz
rm -f ff-clone-1.1.tgz
cd ff-clone-1.1
Build
make
Clean
mkdir ../ff-clone
mv data svg_src COPYING dokumentace ff-clone ../ff-clone
echo ./ff-clone -d data>../ff-clone/ff-clone.sh
cd ..
rm -fr ff-clone-1.1

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. The official website of the game is here.

HandBrake[edit]

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install make libtool g++ libass-dev libtheora-dev libvorbis-dev libsamplerate0-dev libxml2-dev libbz2-dev intltool libgtk2.0-dev libnotify-dev libdbus-glib-1-dev libgudev-1.0-dev dpkg-dev
VER=`wget -O- http://packages.ubuntu.com/trusty/handbrake|grep Package:|cut -d'(' -f2|cut -d')' -f1`
wget http://archive.ubuntu.com/ubuntu/pool/universe/h/handbrake/handbrake_{$VER.{dsc,debian.tar.gz},`echo $VER|cut -d- -f1`.orig.tar.bz2}
dpkg-source -x handbrake*.dsc
wget http://downloads.sourceforge.net/project/handbrake/0.9.9/HandBrake-0.9.9.tar.bz2
tar xf HandBrake*.tar.bz2
mv HandBrake-0.9.9/contrib handbrake-0.9.9+dfsg
rm -fr handbrake*.{dsc,tar.bz2} HandBrake{*.tar.bz2,-0.9.9}
Reverse patch #0003
tar xf handbrake*.tar.gz
sed -i -e '67i\ ifeq (1-gnu,$(FEATURE.gtk)-$(BUILD.system))\n     ## build gtk when gtk+gnu\n     MODULES += gtk\n endif\n ' -e '81s/faac //' -e '82,83s/mp4v2 //' debian/patches/0003-Remove-embedded-downloaded-copies-of-various-librari.patch
cd handbrake-0.9.9+dfsg
patch -p1 -R<../debian/patches/0003-Remove-embedded-downloaded-copies-of-various-librari.patch
rm -fr ../{handbrake*.tar.gz,debian}
Build
./configure
cd build
make
Clean
mkdir ../../HandBrake
mv gtk/src/ghb HandBrakeCLI ../{AUTHORS,COPYING,CREDITS,NEWS,README.pod,THANKS,TRANSLATIONS} ../../HandBrake
cd ../..
rm -fr handbrake-0.9.9+dfsg

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. The official website of the application is here.

Holyspirit: Act of Faith (demo)[edit]

Note: Once built, run the download_data.sh script to obtain the game data files (requires subversion to be installed). Note that this does not include HolyEditor and Holyspirit Launcher since they are currently broken.

Prepare
sudo add-apt-repository ppa:sonkun/sfml-stable
sudo apt-get update
sudo apt-get --no-install-recommends install subversion cmake make g++ libsfml-dev libxrandr-dev libfreetype6-dev libglew1.6-dev libjpeg-turbo8-dev libsndfile1-dev libopenal-dev
svn co http://svn.code.sf.net/p/lechemindeladam/code/trunk --depth files
cd trunk
svn co http://svn.code.sf.net/p/lechemindeladam/code/trunk/distribution http://svn.code.sf.net/p/lechemindeladam/code/trunk/Source
wget https://github.com/JonnyJD/PKGBUILDs/raw/master/holyspirit-svn/backspace.patch
patch -p1<backspace.patch
Build
cmake .
make
Clean
mkdir ../Holyspirit
mv Source/{Holyspirit.png,Licence.txt} *.conf credits.txt *.ini Holyspirit Liste_des_references_des_touches.txt README ../Holyspirit
echo svn export http://svn.code.sf.net/p/lechemindeladam/code/trunk/Data>../Holyspirit/download_data.sh
sed -i 's|/usr/local/share/games/holyspirit/||' ../Holyspirit/holyspirit.ini
sed -i -e '/^brightness:/s/ .*/ 0/' -e '/^contrast:/s/ .*/ 1/' -e '/^music_volume:/s/ .*/ 100/' ../Holyspirit/configuration.conf	# fixes colors and turns on music
cd ..
rm -fr trunk

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code is available through SourceForge here.

Penumbra: Overture[edit]

Note: The Newton2 port of the HPL1 engine is broken and unplayable. Because of that, the master branch is used.

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install cmake make g++ mesa-common-dev libglu1-mesa-dev
mkdir FrictionalGames
cd FrictionalGames
wget https://github.com/FrictionalGames/OALWrapper/archive/2bc206415ae916f5261353b00b35ab4123c36569.zip -O OALWrapper.zip	# later revisions are broken
wget https://github.com/FrictionalGames/HPL1Engine/archive/master.zip -O HPL1Engine.zip
wget https://github.com/FrictionalGames/PenumbraOverture/archive/master.zip -O PenumbraOverture.zip
wget https://github.com/downloads/FrictionalGames/HPL1Engine/dependencies.zip
unp *
rm -f *.zip
rename s/-.*// *
cd PenumbraOverture
Build
cmake -DCMAKE_CXX_FLAGS=-fpermissive	# parameter needed for a successful compilation
make
Clean
mkdir ../../PenumbraOverture
mv overture.bin ../../PenumbraOverture
mv ../dependencies/lib/linux ../../PenumbraOverture/lib
echo LD_LIBRARY_PATH=lib ./overture.bin>../../PenumbraOverture/overture.sh
mv ../../PenumbraOverture/lib/libstdc++.so.6{,-backup}	# the game will refuse to run without this
cd ../..
rm -fr FrictionalGames
Remove non-free libraries
rm -f PenumbraOverture/lib/{libCg{,GL}.so,libNewton.a}

Pre-compiled binary file (along with its dependencies) can be downloaded here, or here. The official GitHub page with the released source code is here. The above instructions applies only to the 32-bit version of Trisquel.

ResidualVM Tools[edit]

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install g++ make zlib1g-dev
wget https://github.com/residualvm/residualvm-tools/archive/master.zip
unzip master
rm -f master.zip
cd residualvm-tools-master
Build
./configure
make
Clean
mkdir ../residualvm-tools
mv doc formats animb2txt AUTHORS bm2bmp COPYING* COPYRIGHT cosb2cos delua diffr imc2wav int2flt labcopy luac meshb2obj mklab patchex patchr set2fig setb2set sklb2txt til2bmp unlab vima ../residualvm-tools
cd ..
rm -fr residualvm-tools-master

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code is available through GitHub here.

TwinEngine[edit]

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install subversion make libsdl-mixer1.2-dev libsdl-ttf2.0-dev gcc
svn export http://twin-e.googlecode.com/svn/trunk
cd trunk/src
Build
make
Clean
mkdir ../../TwinEngine
mv twin-e ../{bin/*,AUTHORS,CHANGES,COPYING,README} ../../TwinEngine
cd ../..
rm -fr trunk

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code is available through Google Code here.

Wargus[edit]

Note: Once built, use the "sh extract_data.sh PATH_TO_DATA" command to extract the game data files (requires freepats, timidity and ffmpeg2theora to be installed)

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install bzr cmake make g++ libtolua++5.1-dev libsdl1.2-dev libgtk2.0-dev libvorbis-dev libtheora-dev
bzr branch lp:stratagus
bzr branch lp:wargus
cd stratagus
Build
cmake .
make
cd ../wargus
cmake -DCMAKE_PROGRAM_PATH=../stratagus -DCMAKE_INCLUDE_PATH=../stratagus/gameheaders
make
Clean
mkdir ../Wargus
mv ../stratagus/stratagus campaigns maps scripts COPYING* README wargus.png wartool ../Wargus
echo './wartool -m -v "$1" .'>../Wargus/extract_data.sh
cd ..
rm -fr stratagus wargus

Pre-compiled binaries (both 32/64-bit) can be downloaded here, or here. Source code is available through Launchpad here.

webp-npapi[edit]

Note: The resulting file should be placed in ~/.mozilla/plugins folder, so that it can be detected by the browser. The plugin also expects that the libwebp5 package is already installed.

Pre-requisite: libwebp5, libwebpmux1, libwebpdemux1, libwebp-dev (use GDebi to install them)

Prepare
sudo apt-get update
sudo apt-get --no-install-recommends install subversion make g++ libgtk2.0-dev
wget -rl1 -nd -A.en-US.linux-`uname -m`.sdk.tar.bz2 http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/latest/sdk
tar xf xulrunner*.sdk.tar.bz2
rm -f xulrunner*.sdk.tar.bz2
svn co http://webp-npapi-linux.googlecode.com/svn/trunk
cd trunk
sed -i '20,21s|../..|../xulrunner-sdk|' webp-npapi.h CPlugin.h
sed -i '64s/NP_EXPORT(char\*)/const char\*/' webp-npapi.cpp
sed -i '11s/$(LDFLAGS) $(OBJECTS)/$(OBJECTS) $(LDFLAGS)/' Makefile
Build
make
Clean
mv webp-npapi.so ../webp-npapi-`arch`.so
cd ..
rm -fr trunk xulrunner-sdk

Pre-compiled binary (both 32/64-bit) can be downloaded here, or here. Source code is available through Google Code here.