Skip to content

Compiling

Kinshuk Bairagi edited this page Feb 12, 2025 · 7 revisions

Building on Ubuntu

  1. Install the dependent packages
sudo apt-get update
sudo apt-get install -y build-essential cmake libcurl4-openssl-dev pkg-config libboost1.71-all-dev libasound-dev

PS: This list has been created based on Ubuntu 20.04 LTS, In case any of any other OS, please refer to your distribution to find the corresponding package names.

  1. Clone Project
git clone --recurse-submodules https://github.com/voiceip/tinyphone.git
cd tinyphone
  1. Compile Libraries
pushd lib/cryptopp/
make
sudo make install
popd

pushd lib/pjproject
cat >./pjlib/include/pj/config_site.h <<EOL
#define ENABLE_SIP_TCP 1
#define PJ_HAS_TCP 1
#define PJMEDIA_AUDIO_DEV_HAS_WASAPI 0
#define PJMEDIA_AUDIO_DEV_HAS_WMME 0
EOL
cat ./pjlib/include/pj/config_site.h
./configure
make realclean
make dep
make
sudo make install
popd 
  1. Compile Tinyphone
cd tinyphone-linux
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
  1. Run tinyphone!
chmod +x ./tinyphone
./tinyphone

Building on Windows

Boost Libraries You must have boost libraries installed on your system. Incase you don't have you can either download the sources and build it, or install a precompiled binaries from here.

Vcpkg for Dependency Management Vcpkg is a C++ Library Manager for Windows, Linux, and MacOS. It simplifies the installation of software libraries.

You can find instructions for installing on Windows here Note: I recommend cloning the repo in C:/Tools contrary to the documentation

Fixing the LIBPATH Issue

Ensure the LIBPATH in Visual Studio project properties for tinyphone accurately points to the directories where the compiled libraries are located, including the correct path for libcurl and other dependencies.

Note for Visual Studio 2019 double check the E:\lib\curl\builds directory and verify that sub directory libcurl-vc-x86-release-dll-ipv6-sspi-winssl or libcurl-vc**19**-x86-release-dll-ipv6-sspi-winssl matches with what is on you LIBPATH.

  1. You can update the LIBPATH so that they match doc

  2. or manually rename the folder to match what is in your LIBPATH

Clone this wiki locally