用於構建OpenWeave的主要支持工具鍊是GNU Autotools。
系統要求
所有主要的OS平台都支持OpenWeave的構建和交叉編譯。列出的工具鏈已經過Nest的正式測試。
的Linux | ||||||
---|---|---|---|---|---|---|
要求:正式支持Ubuntu 14.04(Trusty),但是任何類似的基於Linux的系統都可以使用。 | ||||||
C / C ++,Java,Python綁定 |
| |||||
C / C ++,Java綁定 |
|
Mac OS X | ||||||
---|---|---|---|---|---|---|
要求: XQuartz通過符號鏈接將一個目錄子樹克隆到另一目錄樹。 | ||||||
C / C ++,可可綁定 |
| |||||
C / C ++,Python綁定 |
|
視窗 | ||||||
---|---|---|---|---|---|---|
要求: Cygwin for Linux命令行支持。 | ||||||
C / C ++綁定 |
|
嵌入式的 | ||||||
---|---|---|---|---|---|---|
C / C ++綁定 |
|
先決條件
除了受支持的工具鏈之外,我們建議在構建OpenWeave之前安裝以下軟件包和工具。
配套
Linux:
sudo apt-get install python-pip python-setuptools bridge-utils /
libglib2.0-dev libdbus-1-dev libudev-dev /
libical-dev libreadline-dev
Linux和Mac OS X:
pip install --user google-cloud googleapis-common-protos grpc protobuf pycryptodomex
sudo cpan -i Text::Template
GNU自動工具
OpenWeave的構建系統依賴於GNU Autotools。必須有一個GNU Autotools版本才能成功構建OpenWeave。要在Linux上使用系統提供的自動工具版本:
sudo apt-get install libtool autoconf automake
對於無法立即使用或無法安裝GNU Autotools的系統(例如Mac OS),或者在系統提供的版本無法提供可靠的現成版本的系統上,Nest Labs創建了自定義的交鑰匙版本系統框架,基於GNU Autotools。系統將生成生成中使用的程序集固定到一個已知的良好版本。將工具固定到特定版本還可以確保自動工具輸出的流失率相對較低,從而帶來可預測的開發人員和支持經驗。建議將GNU Autotools的Nest Labs構建與OpenWeave一起使用。
要構建Nest Labs GNU Autotools,請執行以下操作:
git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools
快樂
要運行OpenWeave中包含的測試腳本,或在模擬拓撲中使用Weave,請在Linux機器上安裝Happy。有關更多信息,請參見快樂設置。
獨立應用
將默認的OpenWeave Standalone應用程序用於台式機或服務器開發主機。
- 克隆OpenWeave存儲庫:
git clone https://github.com/openweave/openweave-core.git
- 生成OpenWeave Standalone應用程序:
cd openweave-core
make -f Makefile-Standalone
使用帶有Makefile-Standalone
的help
標誌來了解哪些構建開關可用於構建定制。
make -f Makefile-Standalone help
例如,要啟用Weave調試代碼和日誌記錄:
make -f Makefile-Standalone DEBUG=1
項目鏈接
- 克隆OpenWeave存儲庫:
git clone https://github.com/openweave/openweave-core.git
- 配置GNU Autotools的構建環境:
cd openweave-core
./bootstrap
./configure
- 建立OpenWeave:
make all
- 將輸出分段到單獨的位置以進行項目鏈接:
mkdir <openweave-output>
make DESTDIR=<openweave-output> install
暫存後,使用<openweave-output>
下的目錄進行項目鏈接:
-
/usr/local/include
公共頭文件 /usr/local/lib
—庫
Android和iOS
要構建用於Android和iOS項目鏈接的庫,請使用特定於平台的Makefiles
:
make -f Makefile-Android
make -f Makefile-iOS
使用帶有Makefile- <platform>
的help
標誌來了解哪些構建開關可用於構建定制。例如:
make -f Makefile-Android help
make -f Makefile-iOS help
組態
在使用各種腳本和頭文件配置OpenWeave之前,請使用自動工具來引導相關的構建文件:
./bootstrap
在樹檢出之後,需要執行一次此步驟,然後對configure.ac
或Makefile.am
進行任何更改。僅更改構建配置或目標時,無需重複該操作。
劇本
將--help
標誌與隨附的配置腳本一起使用,以了解有關可配置選項的更多信息。
./configure --help
例如,要配置不支持BlueZ的OpenWeave:
./configure --without-bluez
標頭
包含的Makefiles
使用兩個頭文件在編譯時定義常量:
還可以提供項目特定的配置頭。將這些文件放置在您的項目目錄中-不要將它們放置在OpenWeave存儲庫中。使用適當的配置選項在配置過程中指定每個文件的位置:
頭文件 | 配置選項 |
---|---|
InetProjectConfig.h | --with-weave-inet-project-includes= <directory> |
WeaveProjectConfig.h | --with-weave-project-includes= <directory> |
例如,要將OpenWeave配置為使用~/my-project/headers
特定於項目的WeaveProjectConfig.h
文件:
./configure --with-weave-project-includes=~/my-project/headers