2.4 KiB
2.4 KiB
Attention this guid is currently outdated! (Project got restructured)
Anyway most of this stuff is still relevant for the web client, just the last few steps may differ
Environment setup
Basic system requirements
I used a clean debian jessi docker
apt-get install git wget gcc make python2.7 xz-utils php5 autoconf libtool zip
ATTENTION: Its important to have python2.7 as default python
command.
Install java (Required for emscripten)
apt-get install software-properties-common
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
Install cmake (For webassembly and emscripten)
wget https://cmake.org/files/v3.12/cmake-3.12.3.tar.gz
tar xvf cmake-*.tar.gz
cd cmake-*
./configure
make -j 4
make install
Install nodjs (Later for emscripten too)
wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz
tar xvf node-*.tar.xz
cd node-*
cp -R * /usr/local/
Install emscripten with fastcomp and llvm + clang
Fastcomp and CLang compiler
git clone https://github.com/kripken/emscripten-fastcomp
cd emscripten-fastcomp
git clone https://github.com/kripken/emscripten-fastcomp-clang tools/clang
mkdir build; cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="host;JSBackend" -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DCLANG_INCLUDE_TESTS=OFF
make -j 4
make install
Emscripten
git clone https://github.com/kripken/emscripten.git
cd emscripten
python emscripten.py
python emscripten.py #Execute it twice to detekt error
echo "PATH=\"$PATH:`pwd`\"" >> ~/.bashrc
Build TeaWeb
Clone and initialize project
git clone https://github.com/TeaSpeak/TeaWeb
git submodule update --init --recursive --remote --checkout
Build native libraries
Opus
Native loader
cd asm
./make_opus.sh
Javascript loader
npm run build-worker
Tommath
cd libraries/tommath
mkdir build; cd build
emcmake cmake ..
emmake make -j 4
Tomcrypt
ATTENTION: Do not create_build.sh!
cd libraries/tomcrypt
emmake make -f makefile CFLAGS="-DUSE_LTM -DLTM_DESC -I../tommath/" EXTRALIBS="$(pwd)/../tommath/build/libtommathStatic.a" test
Make js files
cd asm
mkdir build; cd build
emcmake cmake ..
emmake make -j 4
Now generate project structure
npm install --only=dev
./scripts/build_web_release.sh
./scripts/package_web_release.sh