Site Tools


IoTivity can be built from sources for various OS : linux, yocto, tizen and for various hardware.

The supported OS is Ubuntu 12.04, so you need to open a terminal and type a couple of commands to set it up :

sudo apt-get install \
  build-essential git-core scons ssh doxygen libtool autoconf \
  pkg-config libcurl4-gnutls-dev

More details on:

Get the sources using git or download a tarball.

git clone ssh://
git tag -L

Then try :

scons TARGET_PLATFORM=x86 # or adapt if "uname -m" = i686
find out/ 

Check detailed pages too :

Build tools & System dependencies

supported compiler : g++, gcc, msvc, ...


On Ubuntu linux :

sudo apt-get install scons unzip build-essential

Library Dependencies

scons will tell automatically what is needed and how download some of them:

We strongly recommend to rely on scons, however this can be done differently if not possible, here are some fallback options, to add them in place.

You can also comment this bug about version tracking:

boost : 1.55+

This project relies on utilities in the Boost C++library which is open source software with a Boost Software License v1.0.

The details of the license can be found at:

The original software is available from:

Try to install boost from your OS if packaged, for instance:

cat /etc/os-release # VERSION="14.04.4 LTS, Trusty Tahr"
sudo apt-get install libboost1.55-all-dev

Check dedicated page for more notes about IoTivity and boost:


The CoAP protocol is provided by the libcoap package, which is open source software, written and copyright by Olaf Bergmann with a BSD and GPLv2 license.

The original software is available from

1.2.1 and earlier forked this lib in : resource/csdk/connectivity/lib/libcoap-4.1.1

So there is no need to pull it, until project is rebased on upstream, check this related repo:



JSON serialization is provided by the cjson package, which is open source software, written and copyright by Dave Gamble with an MIT license.

The original software is available from

Downstream changes:


Warning previous releases (1.1.0-) gtest-1.7 links are obsolete, so please use master, 1.1-rel or 1.2-rel branches or just peak:

It will fetch gtest-1.7 archive from this mirror:

Note: we plan to update to gtest-1.8

Alternative is to use this patch :


CBOR serialization is provided by the tinycbor package, which is open source software, written by Thiago Macieira and is copyright by the Intel Corporation.

The original software is available from:


Iotivity master is supporting 0.4

git clone extlibs/tinycbor/tinycbor -b v0.4

If not please report bug.


Iotivity 1.2.1 (to be released) from 1.2-rel is supporting 0.4

git clone extlibs/tinycbor/tinycbor -b v0.4


Iotivity 1.2.0 from 1.2-rel is supporting 0.3.2

git clone extlibs/tinycbor/tinycbor -b v0.3.2



IoTivity 1.1.1 from 1.1-rel or earlier need v0.2.1 version:

git clone extlibs/tinycbor/tinycbor -b v0.2.1 



  • sqlite: is needed for secured build.

For Linux and Tizen, system's one should be used, so you need to install it:

On Debian based distro:

sudo apt-get install libsqlite3-dev

If sqlite3 is not available in your GNU/Linux distro, you'll have to revert this patch and please file a bug.

Then it will behave like Others OS (windows, …) and will pull this package:

If documentation is not mentioning about sqlite3 please let us know.

Note version 1.2.0 and earlier is pulling sqlite and using system one is not recommended.



git clone extlibs/mbedtls/mbedtls 

Untracked patch, to upstream (TODO: was it forwarded at least?):


git clone extlibs/mbedtls/mbedtls -b mbedtls-2.4.0 



git clone extlibs/mbedtls/mbedtls -b mbedtls-2.3.0



On ubuntu :

sudo apt-get install uuid-dev python-dev autotools-dev libicu-dev libbz2-dev libglib2.0-dev

CI trick

If CI builder are not setup the way you need you can use this temporary “” fallback trick (created for tizen) :


git fetch ssh:// refs/changes/99/12499/1 && git checkout FETCH_HEAD
git branch tmp/
git rebase -i tmp/
git push


Scons also support install rule, which is very convenient for integration in supported os:

scons install

Note regarding headers locations:

  • In previous versions (1.2-rel and 1.3.0), they were installed directly to /usr/include/{resource,service},
  • Then iotivity namepace was proposed to avoid clash, and symlinks to legacy places to enable smooth transition.
  • Anyway we recommend applications developers to rely on pkgconfig to build their apps, and don't bother with paths.



build.txt · Last modified: 2018/01/24 09:48 by rzr