2.3 KiB
2.3 KiB
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