Costruisci OpenWeave

La toolchain principale supportata per la creazione di OpenWeave è GNU Autotools.

Requisiti di sistema

Tutte le principali piattaforme OS supportano la creazione e la compilazione incrociata di OpenWeave. Le toolchain elencate sono state testate ufficialmente da Nest.

Linux

Requisiti: Ubuntu 14.04 (Trusty) è ufficialmente supportato, ma qualsiasi sistema basato su Linux simili dovrebbero funzionare.
Associazioni C/C++, Java, Python
Portautensili gcc 4.6.3
obiettivi i386-sconosciuto-linux-gnu
x86_64-sconosciuto-linux-gnu
C/C++, collegamenti Java
Portautensili gcc 4.6
obiettivi arm-sconosciuto-linux-android
armv7-sconosciuto-linux-android
i386-sconosciuto-linux-android

Mac OS X

Requisiti: XQuartz per la clonazione di una sottostruttura di directory ad un'altra con i link simbolici.
C/C++, associazioni cacao
obiettivi armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, collegamenti Python
Portautensili LLVM/clang 3.5 (6.0)
obiettivi i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

finestre

Requisiti: Cygwin per il supporto linea di comando di Linux.
Associazioni C/C++
Portautensili gcc 4.8.3
obiettivi i686-pc-cygwin

Incorporato

Associazioni C/C++
Portautensili gcc 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
obiettivi arm*-unknown-linux*
arm*-sconosciuto-freertos-lwip

Prerequisiti

Oltre a una toolchain supportata, ti consigliamo di installare i seguenti pacchetti e strumenti prima di creare OpenWeave.

Pacchi

Linux:

sudo apt-get install python-pip python-setuptools bridge-utils /
               libglib2.0-dev libdbus-1-dev libudev-dev /
               libical-dev libreadline-dev

Linux e Mac OS X:

pip install --user google-cloud googleapis-common-protos grpc protobuf pycryptodomex
sudo cpan -i Text::Template

GNU Autotools

OpenWeave dipende da GNU Autotools per il suo sistema di compilazione. Una versione di GNU Autotools deve essere disponibile per compilare con successo OpenWeave. Per utilizzare la versione di autotools fornita dal sistema su Linux:

sudo apt-get install libtool autoconf automake

Per i sistemi in cui GNU Autotools non sono prontamente disponibili o installabili (ad esempio, Mac OS) o su sistemi in cui la versione fornita dal sistema non fornisce una solida generazione di build out-of-box, Nest Labs ha creato una build personalizzata e chiavi in ​​mano framework di sistema, basato su GNU Autotools. Il sistema associa l'insieme di programmi utilizzati nella generazione della build a una versione valida nota. Il fissaggio degli strumenti a una versione particolare garantisce anche un tasso di abbandono relativamente basso nell'output di autotools, portando così a un'esperienza di sviluppo e supporto prevedibile. La build Nest Labs di GNU Autotools è consigliata per l'uso con OpenWeave.

Per creare gli strumenti automatici GNU di Nest Labs:

git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools

Contento

Per eseguire gli script di test inclusi in OpenWeave o per utilizzare Weave in topologie simulate, installa Happy sulla tua macchina Linux. Vedere configurazione Felice per ulteriori informazioni.

Applicazione autonoma

Utilizzare l'applicazione OpenWeave Standalone predefinita per un host di sviluppo desktop o server.

  1. Clonare il repository OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. L'applicazione standalone OpenWeave:
    cd openweave-core
    make -f Makefile-Standalone

Utilizzare l' help contrassegna con Makefile-Standalone per imparare ciò che sono disponibili per la personalizzazione di build switch di compilazione.

make -f Makefile-Standalone help

Ad esempio, per abilitare il codice di debug e la registrazione di Weave:

make -f Makefile-Standalone DEBUG=1

Collegamento del progetto

  1. Clonare il repository OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Configurare l'ambiente di sviluppo per GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Costruire OpenWeave:
    make all
  4. In scena l'output in un luogo separato per il progetto di collegamento:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Dopo messa in scena, usare le directory in <openweave-output> per il progetto di collegamento:

  • /usr/local/include - headers pubblici
  • /usr/local/lib - librerie

Android e iOS

Per le librerie di compilazione per Android e iOS progetto di collegamento, utilizzare le specifiche della piattaforma Makefiles :

make -f Makefile-Android
make -f Makefile-iOS

Utilizzare l' help contrassegna con Makefile- <platform> per imparare ciò che sono disponibili per la personalizzazione di build switch di compilazione. Per esempio:

make -f Makefile-Android help
make -f Makefile-iOS help

Configurazione

Prima di configurare OpenWeave con vari script e intestazioni, usa gli autotools per avviare i file di build pertinenti:

./bootstrap

Questo passaggio deve essere eseguita una volta, dopo una cassa albero, e successivamente su eventuali modifiche configure.ac o Makefile.am . Non è necessario ripeterlo quando si modificano semplicemente le configurazioni di build o le destinazioni.

script

Utilizzare il --help contrassegna con lo script di configurazione in dotazione per ulteriori informazioni sulle opzioni configurabili.

./configure --help

Ad esempio, per configurare OpenWeave senza supporto BlueZ:

./configure --without-bluez

intestazioni

I inclusi Makefiles utilizzano due file header che definiscono le costanti a tempo di compilazione:

Possono essere fornite anche intestazioni di configurazione specifiche del progetto. Inserisci questi file nella directory del tuo progetto, non posizionarli all'interno del repository OpenWeave. Utilizzare l'opzione di configurazione appropriata per specificare la posizione di ciascun file durante la configurazione:

File di intestazione Opzione di configurazione
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

Ad esempio, per configurare OpenWeave usare un progetto specifico WeaveProjectConfig.h file che si trova in ~/my-project/headers :

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