-
Notifications
You must be signed in to change notification settings - Fork 1
Install
The Polysync Transcoder is developed and tested specifically on the Ubuntu 16.04 distribution. It can work on most POSIX-compliant systems where the following dependencies can be satisfied.
CMake is used by polysync-transcode, the others are needed to build and install Mettle.
sudo apt-get install --yes cmake patchelf python-setuptools
Boost dependencies include both Hana and DLL; both of which appeared first in Boost-1.61.
Hana requires an up to date C++14 compiler, which include Clang >= 3.5.0 and GCC >=6.0.0.
GCC and Clang are both new enough on 16.10 by default. On 16.04, the default version of gcc (5.4) is too old to compile Hana, but the default Clang (3.8) works fine.
Using clang on either 16.10 or 16.04:
sudo apt-get install --yes clang
Ubuntu 16.10:
Both Hana and DLL are in the default boost package.
sudo apt-get install libboost-dev
Ubuntu 16.04:
The default version of boost on 16.04 is too old, so a newer version must be installed. Here, we show how this may be done from source. Because the transcoder uses dynamically loaded plugins, boost must be dynamically linked, so if you get fancier with the build here do not also disable the dynamic libraries.
The steps below were taken from the guide http://www.boost.org/doc/libs/1_63_0/more/getting_started/unix-variants.html
:
wget https://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz
tar xvzf boost_1_63_0.tar.gz
cd boost_1_63_0
./bootstrap.sh --with-toolset=clang
./b2 -j2 cxxflags="-std=c++11"
... wait ...
sudo ./b2 install
... wait some more...
Boost should appear in /usr/local/
, waiting to be found by CMake's FindBoost
feature.
If you want to compile and run the unit tests, you must install the Mettle unit test framework.
Mettle also has strict requirements on C++14 compliance, but they are weaker than Hana so the clang >= 3.5 or gcc >= 6.0 installed prior to Boost is already sufficient. Mettle has it's own dependencies, which we also show.
cd
sudo easy_install bfg9000
git clone https://github.com/jimporter/mettle.git
cd mettle/
scripts/vendorize_bencode.py
9k build
cd build
make
sudo make install
Now /usr/local/bin/mettle
should appear along with /usr/local/include/mettle
.
cd
git clone https://github.com/PolySync/polysync-transcoder.git
mkdir polysync-transcoder/build
cd polysync-transcoder/build
CXX=clang++ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install