建構 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 繫結 |
|
|||||
Windows | ||||||
|---|---|---|---|---|---|---|
| 需求:Cygwin 支援 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 pycryptodomexsudo cpan -i Text::Template
GNU 自動工具
OpenWeave 依賴 GNU Autotools 打造建構系統。必須提供 GNU 版本的自動工具,才能成功建構 OpenWeave。如何在 Linux 上使用系統提供的 Autotools:
sudo apt-get install libtool autoconf automake
對於 GNU Autotools 尚未取得或可安裝的系統 (例如 Mac OS),或是系統提供的版本未提供穩定版建構的系統,Nest Labs 會根據 GNU Autotools 建立自訂的自訂建構系統架構。系統會將建立版本中使用的程式集固定在已知的良好版本中。將工具固定在特定版本,也可確保自動化工具的輸出量相對較低,進而導致開發人員和支援體驗出現可預測。建議搭配 GWeU Autotools 建構的 Nest Labs 版本,以便搭配 OpenWeave 使用。
如何建構 Nest Labs GNU Autotools:
git clone https://github.com/openweave/openweave-core.gitcd openweave-coremake -C third_party/nlbuild-autotools/repo/ tools
歡樂
如要執行 OpenWeave 中的測試指令碼,或是在模擬拓撲中使用 Weave,請在 Linux 電腦上安裝「Happy」。詳情請參閱快樂設定。
獨立應用程式
針對桌面或伺服器開發主機,使用預設的 OpenWeave 獨立應用程式。
- 複製 OpenWeave 存放區:
git clone https://github.com/openweave/openweave-core.git - 建構 OpenWeave 獨立應用程式:
cd openweave-coremake -f Makefile-Standalone
使用 help 旗標搭配 Makefile-Standalone 來瞭解哪些建構開關可以進行建構自訂。
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-Androidmake -f Makefile-iOS
將 help 標記與 Makefile-<platform> 搭配使用,即可瞭解哪些建構開關可用來自訂建構作業。例如:
make -f Makefile-Android helpmake -f Makefile-iOS help
設定
使用各種指令碼和標頭設定 OpenWeave 之前,請使用 Autotools 啟動相關建構檔案:
./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