== Quick guide: build and run IoTivity projects on Ubuntu ==
1. Build
- Go to the top directory of 'iotivity' project(Note: should always run 'scons'
-command in this directory)
+ Go to the top directory of 'iotivity' project(Note: should always run 'scons'
+ command in this directory)
+
+ Install build tools:
+ $ sudo apt-get install git-core scons ssh build-essential g++ doxygen valgrind
Install external libraries:
- $ sudo apt-get install libboost-dev libboost-program-options-dev libboost-thread-dev uuid-dev libssl-dev libtool
+ $ sudo apt-get install libboost-dev libboost-program-options-dev libboost-thread-dev uuid-dev libssl-dev libtool libglib2.0-dev
Build release binaries:
$ scons
('<iotivity>' is the path to 'iotivity' project. If your device is x86, arm,
or arm64, please change 'x86_64' to the proper arch)
+3. To build and test IoTivity with Security enabled (required for certification)
+follow the instructions found in:
+ <iotivity>/resource/csdk/security/README-building-and-running-secure-IoTivity-stack.txt
+
== How to build IoTivity projects ==
IoTivity includes a series of projects. You can find all these projects here:
$ scons TARGET_OS=tizen TARGET_TRANSPORT=ALL -c (for clean)
(we provide the spec file required by gbs tool at toools/tizen directory.
-gbs is default build tool for Tizen platfrom, we can refer the following
+gbs is default build tool for Tizen platform, we can refer the following
wiki to setup Tizen development environment:
https://source.tizen.org/documentation/developer-guide/getting-started-guide)
-> Building for a specific transport :
$ scons TARGET_OS=ios TARGET_ARCH=xxx SYS_VERSION=yyy
+Windows:
+ * Possible values for <TARGET_ARCH> are: amd64
+
+For convenience to build projects supported on Windows a batch file (run.bat) is provided
+to run many build combinations with TARGET_OS to 'windows'.
+
+1. Go to root directory
+ $ cd <top directory of the project>
+2. To clean before building:
+ $ run clean
+3. To build debug amd64 binaries:
+ $ run build
+See run.bat for more example usage parameters
+
* Additional options
* VERBOSE=true or false (Show compilation)
* RELEASE=true or false (Build for release?)
* LOGGING=true or false (Enable stack logging)
* SECURED=1 or 0 (Build with DTLS)
* TEST=1 or 0 (Run unit tests)
- * SECURED=1 or 0 (Build with DTLS)
* BUILD_SAMPLE=ON or OFF (Build with sample)
* ROUTING=GW or EP (Enable routing)
* WITH_TCP=true or false (Enable CoAP over TCP Transport, arduino is not supported)
* WITH_RA=true or false (Build with Remote Access module)
- * WITH_RD=1 or 0 (Build including Resource Directory)
+ * RD_MODE=CLIENT or SERVER (Build including Resource Directory)
* SIMULATOR=true or false (Build with simulator module)
-
-Note1: Currently most IoTivity project doesn't support Windows, so you can't set
-TARGET_OS to 'windows' except the project support Windows.
-
-That's to say if the project doesn't support Windows, run:
- $ scons TARGET_OS=windows ....
-or run on Windows
- $ scons
-may always fail.
-
-Note2:
+ * Possible values for <WITH_MQ> are: PUB,SUB,BROKER (Build including Message Queue)
+ -> PUB : publisher, SUB : subscriber, BROKER : MQ broker(not supported yet)
+ * LOG_LEVEL=DEBUG or INFO or WARNING or ERROR or FATAL
+ (select log level to print, LOGGING option should be true)
+ default is debug level with no private log.
+ ex) LOG_LEVEL=DEBUG : All logs including DEBUG, INFO, WARNING, ERROR, FATAL level is printed.
+ and private log is disabled.
+ LOG_LEVEL=INFO : The logs including INFO, WARNING, ERROR, FATAL level is printed.
+ and private log is disabled.
+ LOG_LEVEL=WARNING : The logs including WARNING, ERROR, FATAL level is printed.
+ LOG_LEVEL=ERROR : The logs including ERROR, FATAL level is printed.
+ LOG_LEVEL=FATAL : FATAL level is printed.
+
+Note:
1) for convenience, a script (auto_build.sh) is provided to run possible build
at once. Following is the usage: