OpenWeave をビルドする

OpenWeave をビルドする際の主なサポート対象ツールチェーンは GNU Autotools です。

システム要件

主な OS プラットフォームはすべて、OpenWeave のビルドとクロスコンパイルをサポートしています。記載されているツールチェーンは、Nest によって正式にテストされています。

Linux

要件: Ubuntu 14.04(Trusty)は正式にサポートされていますが、同様の Linux ベースのシステムも使用できます。
C/C++、Java、Python のバインディング
ツールチェーン gcc 4.6.3
ターゲット i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++、Java バインディング
ツールチェーン GCC4.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

Windows

要件: Cygwin(Linux コマンドライン サポート用)。
C/C++ バインディング
ツールチェーン gcc 4.8.3
ターゲット i686-pc-cygwin

埋め込み

C/C++ バインディング
ツールチェーン gcc 4.4.1
LLVM / clang 3.1
LLVM / clang 3.3
ターゲット arm*-unknown-linux*
arm*-unknown-freertos-lwip

Prerequisites

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 Autotools

OpenWeave のビルドシステムは GNU Autotools に依存しています。OpenWeave を正常にビルドするには、GNU Autotools のバージョンが必要です。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 に含まれるテスト スクリプトを実行する、またはシミュレートされたトポロジで Weave を使用するには、Linux マシンに Happy をインストールします。詳しくは、サービスのセットアップをご覧ください。

スタンドアロン アプリケーション

デスクトップまたはサーバー開発ホストには、デフォルトの OpenWeave スタンドアロン アプリケーションを使用します。

  1. OpenWeave リポジトリのクローンを作成します。
    git clone https://github.com/openweave/openweave-core.git
  2. OpenWeave スタンドアロン アプリケーションをビルドします。
    cd openweave-core
    make -f Makefile-Standalone

ビルドのカスタマイズに使用できるビルドスイッチを確認するには、Makefile-Standalonehelp フラグを使用します。

make -f Makefile-Standalone help

たとえば、Weave デバッグコードとロギングを有効にするには、次のようにします。

make -f Makefile-Standalone DEBUG=1

プロジェクト リンク

  1. OpenWeave リポジトリのクローンを作成します。
    git clone https://github.com/openweave/openweave-core.git
  2. GNU Autotools のビルド環境を構成します。
    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 - ライブラリ

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

このステップは、ツリー チェックアウトの後で 1 回、その後 configure.ac または Makefile.am の変更に対して行う必要があります。ビルド構成やターゲットを変更するだけの場合、繰り返し指定する必要はありません。

スクリプト

構成可能なオプションの詳細を確認するには、付属の構成スクリプトで --help フラグを使用します。

./configure --help

たとえば、BlueZ をサポートせずに OpenWeave を構成するには、次のようにします。

./configure --without-bluez

ヘッダー

インクルードされた Makefiles は、コンパイル時に定数を定義する 2 つのヘッダー ファイルを使用します。

プロジェクト固有の構成ヘッダーも指定できます。これらのファイルはプロジェクト ディレクトリに配置します。OpenWeave リポジトリ内には保存しないでください。適切な構成オプションを使用して、構成時に各ファイルの場所を指定します。

ヘッダー ファイル 構成オプション
InetProjectConfig.h --with-weave-inet-project-includes=<directory>
WeaveProjectConfig.h --with-weave-project-includes=<directory>

たとえば、~/my-project/headers にあるプロジェクト固有の WeaveProjectConfig.h ファイルを使用するように OpenWeave を構成するには、次のようにします。

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