User Tools

Site Tools


build

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

More details on:

Get the sources using git or download a tarball.

git clone ssh://gerrit.iotivity.org/iotivity
git tag -L

Then try :

scons
find out/ 

Check detailed pages too :

Build tools & System dependencies

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

scons

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:

libcoap

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:

hippomocks

cjson

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:

gtest

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 :

tinycbor

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

Iotivity master is supporting 0.4

git clone https://github.com/01org/tinycbor.git extlibs/tinycbor/tinycbor -b v0.4

If not please report bug.

iotivity-1.2

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

git clone https://github.com/01org/tinycbor.git extlibs/tinycbor/tinycbor -b v0.4

Alternative:

Iotivity 1.2.0 from 1.2-rel is supporting 0.3.2

git clone https://github.com/01org/tinycbor.git extlibs/tinycbor/tinycbor -b v0.3.2

Alternative:

iotivity-1.1

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

git clone https://github.com/01org/tinycbor.git extlibs/tinycbor/tinycbor -b v0.2.1 

Alternative:

SQLite

  • 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.

Related:

mbedtls

git clone https://github.com/ARMmbed/mbedtls.git extlibs/mbedtls/mbedtls 

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

iotivity-1.2.1

git clone https://github.com/ARMmbed/mbedtls.git extlibs/mbedtls/mbedtls -b mbedtls-2.4.0 

Alternative:

iotivity-1.2.0

git clone https://github.com/ARMmbed/mbedtls.git extlibs/mbedtls/mbedtls -b mbedtls-2.3.0

Alternative:

Others

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 “prep.sh” fallback trick (created for tizen) :

Usage:

git fetch ssh://rzr@gerrit.iotivity.org:29418/iotivity refs/changes/99/12499/1 && git checkout FETCH_HEAD
git branch tmp/prep.sh
git rebase -i tmp/prep.sh
git push

REFERENCES

build.txt · Last modified: 2017/01/12 11:28 by Phil Coval