X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=Readme.scons.txt;h=1c2d0dd8ba1a9440fbc7e1d99de27522cb85e167;hb=1704667698f8ce8835fab41b52d99ee0fc3d87e9;hp=ae2dab5056faaa73ec112fb087173b75966be204;hpb=01be9765a95ede47003777ee576fe9a4de4229e5;p=platform%2Fupstream%2Fiotivity.git diff --git a/Readme.scons.txt b/Readme.scons.txt index ae2dab5..1c2d0dd 100644 --- a/Readme.scons.txt +++ b/Readme.scons.txt @@ -1,11 +1,14 @@ == 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 libexpat1-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 @@ -123,7 +126,7 @@ by doing the following: * 3. External libraries -IoTivity project depends on some external libraries, such as boost, expat ... +IoTivity project depends on some external libraries, such as boost ... During building, the existence of external library will be checked, if it doesn't exist, the build script will try to download, unpack and build the library or notify user to install it. @@ -133,39 +136,139 @@ tool isn't installed. An message will be displayed, please follow the message to skip it. -=== Build IoTivity project on Linux(Ubuntu) === +=== Build IoTivity project === -1. Build IoTivity project for Linux - $ cd - $ sudo apt-get install libboost-dev libexpat1-dev libboost-thread-dev libssl-dev libtool - $ scons +Linux: + * Possible values for are: ALL, IP, BLE + +1. Go to root directory + $ cd + $ sudo apt-get install libboost-dev libboost-thread-dev libssl-dev libtool + +2. Execute following command(s) to start build based on transport selection required + + -> Building for all transports : + $ scons TARGET_OS=linux TARGET_TRANSPORT=ALL + + -> Building for a specific transport : + $ scons TARGET_OS=linux TARGET_TRANSPORT=IP + + -> Building for multiple transports : + $ scons TARGET_OS=linux TARGET_TRANSPORT=IP,BLE TARGET_ARCH=xxx + + -> Clean Build (all transports) : + $ scons TARGET_OS=linux TARGET_TRANSPORT=ALL -c (for clean) + +Android: + * Possible values for are: ALL, IP, BT, BLE + * Possible values for are: x86, armeabi, armeabi-v7a, armeabi-v7a-hard + (To see all of its allowed value, please execute command 'scons TARGET_OS=android -Q -h') + +1. Go to root directory + $ cd + +2. Execute following command(s) to start build based on transport selection required + + -> Building for all transports : + $ scons TARGET_OS=android TARGET_TRANSPORT=ALL TARGET_ARCH=xxx -2. Build IoTivity project for Android - $ cd - $ scons TARGET_OS=android TARGET_ARCH=xxx -(xxx can be x86, armeabi, armeabi-v7a, armeabi-v7a-hard. To see all of its -allowed value, please execute command 'scons TARGET_OS=android -Q -h') - -3. Build IoTivity project for Arduino - $ cd - $ sudo apt-get install dos2unix - $ scons TARGET_OS=arduino TARGET_ARCH=xxx BOARD=yyy SHIELD=zzz -(xxx can be avr, arm; yyy is the name of the board, zzz is the shield type, to -get allowed values run: scons TARGET_OS=arduino TARGET_ARCH=xxx SHIELD=zzz -h. + -> Building for a specific transport : + $ scons TARGET_OS=android TARGET_TRANSPORT=IP TARGET_ARCH=xxx + + -> Building for multiple transports : + $ scons TARGET_OS=android TARGET_TRANSPORT=IP,BT,BLE TARGET_ARCH=xxx + + -> Clean Build (all transports) : + $ scons TARGET_OS=android TARGET_TRANSPORT=ALL -c (for clean) + +Tizen: + * Possible values for are: ALL, IP, BT, BLE + + 1. Go to root directory + $ cd + + 2. Execute following command(s) to start build based on transport selection required + + -> Building for all transports : + $ scons TARGET_OS=tizen TARGET_TRANSPORT=ALL + + -> Building for a specific transport : + $ scons TARGET_OS=tizen TARGET_TRANSPORT=IP + + -> Building for multiple transports : + $ scons TARGET_OS=tizen TARGET_TRANSPORT=IP,BT,BLE TARGET_ARCH=xxx + + -> Clean Build (all transports) : + $ 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 platform, we can refer the following +wiki to setup Tizen development environment: +https://source.tizen.org/documentation/developer-guide/getting-started-guide) + +Arduino: + * Possible values for are: IP, BLE + * Possible values for are: arv, arm + (arv: arduino due, arm: arduino mega) + * Possible values for are: arduino_due_x_dbg, arduino_due_x, mega + * Possible values for are: ETH, WIFI + (It is required in the case of the arduino due.) + + 1. Go to root directory + $ cd + $ sudo apt-get install dos2unix + + 2. Execute following command(s) to start build based on transport selection required + + -> Building for a specific transport : + $ scons TARGET_OS=arduino TARGET_ARCH=xxx BOARD=yyy SHIELD=zzz + +(To get allowed values run: scons TARGET_OS=arduino TARGET_ARCH=xxx SHIELD=zzz -h. You may see a option 'CPU' in the output of above command line, that's due to some boards have different processors, to specify the processor, add 'CPU=zzz' in the command line. If no 'CPU' option exists, that means the board only support one kind of processor, it's unnecessary to specify it) -4. Build Iotivity project for Tizen - $ cd - $ sh gbsbuild.sh -(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 -wiki to setup Tizen development environment: -https://source.tizen.org/documentation/developer-guide/getting-started-guide) +Mac OSX: + * Possible values for are: OSX version, e.g. 10.9 + + 1. Go to root directory + $ cd -Note: Currently most IoTivity project doesn't support Windows, so you can't set + 2. Execute following command(s) to start build based on transport selection required + + -> Building for a specific transport : + $ scons SYS_VERSION=yyy + +IOS: + * Possible values for are: i386, x86_64, armv7, armv7s, arm64 + * Possible values for are: IOS version, e.g. 7.0 + + 1. Go to root directory + $ cd + + 2. Execute following command(s) to start build based on transport selection required + + -> Building for a specific transport : + $ scons TARGET_OS=ios TARGET_ARCH=xxx SYS_VERSION=yyy + +* 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) + * SIMULATOR=true or false (Build with simulator module) + * Possible values for are: PUB,SUB,BROKER (Build including Message Queue) + -> PUB : publisher, SUB : subscriber, BROKER : MQ broker(not supported yet) + +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: @@ -174,25 +277,7 @@ or run on Windows $ scons may always fail. - -=== Build IoTivity project on Mac OSX === - -1. Build IoTivity project for Mac OSX - $ cd - $ scons SYS_VERSION=yyy -(yyy is the OSX version, e.g. 10.9) - -2. Build IoTivity project for Android(It's the same as on Ubuntu) - $ cd - $ scons TARGET_OS=android TARGET_ARCH=xxx -(xxx can be x86, armeabi, armeabi-v7a, armeabi-v7a-hard) - -3. Build IoTivity project for IOS - $ cd - $ scons TARGET_OS=ios TARGET_ARCH=xxx SYS_VERSION=yyy -(xxx can be i386, x86_64, armv7, armv7s, arm64, yyy is IOS version, e.g. 7.0) - -Note: +Note2: 1) for convenience, a script (auto_build.sh) is provided to run possible build at once. Following is the usage: