建構 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 pycryptodomex
sudo 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.git
cd openweave-core
make -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-core
make -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-Android
make -f Makefile-iOS
將 help
標記與 Makefile-<platform>
搭配使用,即可瞭解哪些建構開關可用來自訂建構作業。例如:
make -f Makefile-Android help
make -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