構建 OpenWeave

構建 OpenWeave 的主要支持工具鍊是 GNU Autotools。

系統要求

所有主要的操作系統平台都支持 OpenWeave 的構建和交叉編譯。列出的工具鏈已由 Nest 正式測試。

Linux

要求:Ubuntu的14.04(忠實的)官方支持,但任何類似的基於Linux的系統應該工作。
C/C++、Java、Python 綁定
工具鏈海灣合作委員會 4.6.3
目標i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++、Java 綁定
工具鏈海灣合作委員會 4.6
目標arm-unknown-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

要求: XQuartz克隆一個目錄樹到另一個符號鏈接。
C/C++、Cocoa 綁定
目標armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++、Python 綁定
工具鏈LLVM/clang 3.5 (6.0)
目標i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

視窗

要求: Cygwin的用於Linux的命令行支持。
C/C++ 綁定
工具鏈海灣合作委員會 4.8.3
目標i686-pc-cygwin

嵌入式

C/C++ 綁定
工具鏈海灣合作委員會 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
目標arm*-unknown-linux*
arm*-unknown-freertos-lwip

先決條件

除了支持的工具鏈之外,我們還建議在構建 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 上使用系統提供的 autotools 版本:

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 中包含的測試腳本,或在模擬拓撲中使用 Wea​​ve,請在您的 Linux 機器上安裝 Happy。見逍遙設置以獲取更多信息。

獨立應用

為桌面或服務器開發主機使用默認的 OpenWeave Standalone 應用程序。

  1. 克隆OpenWeave庫:
    git clone https://github.com/openweave/openweave-core.git
  2. 構建OpenWeave獨立應用程序:
    cd openweave-core
    make -f Makefile-Standalone

使用help與國旗Makefile-Standalone學習什麼構建開關可用於構建定制。

make -f Makefile-Standalone help

例如,要啟用 Wea​​ve 調試代碼和日誌記錄:

make -f Makefile-Standalone DEBUG=1

項目對接

  1. 克隆OpenWeave庫:
    git clone https://github.com/openweave/openweave-core.git
  2. 配置構建環境GNU自動工具:
    cd openweave-core
    ./bootstrap
    ./configure
  3. 構建OpenWeave:
    make all
  4. 級的輸出到不同的地點供項目鏈接:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

升級後,使用目錄下<openweave-output>項目鏈接:

  • /usr/local/include -公共標題
  • /usr/local/lib -庫

安卓和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 之前,使用自動工具引導相關構建文件:

./bootstrap

這個步驟需要進行一次,一棵樹後結賬,並隨後在任何改變configure.acMakefile.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使用項目特定WeaveProjectConfig.h位於文件~/my-project/headers

./configure --with-weave-project-includes=~/my-project/headers