OpenWeave बनाएं

OpenWeave बनाने के लिए इस्तेमाल किया जाने वाला मुख्य टूलचेन GNU Autotools है.

सिस्टम की ज़रूरतें

सभी मुख्य ओएस प्लैटफ़ॉर्म, 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 बाइंडिंग
टूलचेन gcc 4.6
टारगेट आर्म-अज्ञात-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

ज़रूरी शर्तें: XQUartz में, एक डायरेक्ट्री सबट्री को सिंबल वाले लिंक से दूसरी साइट में बनाने की कोशिश की गई.
C/C++, कोको बाइंडिंग
टारगेट Arv7-Apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, Python बाइंडिंग
टूलचेन एलएलवीएम/क्लैंग 3.5 (6.0)
टारगेट i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

विंडो

ज़रूरी शर्तें: Linux कमांड लाइन की सहायता के लिए, Cygwin का इस्तेमाल करें.
C/C++ बाइंडिंग
टूलचेन gcc 4.8.3
टारगेट i686-पीसी-साइगविन

एम्बेड किया गया

C/C++ बाइंडिंग
टूलचेन gcc 4.4.1
LLVM/क्लैंग 3.1
LLVM/क्लैंग 3.3
टारगेट आर्म*-unknown-linux*
आर्म*-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

जीएनयू ऑटोटूल

OpenWeave टेक्नोलॉजी, बिल्ड सिस्टम के लिए GNU Autotools पर निर्भर करती है. OpenWave बनाने के लिए, GNU का अपने-आप चलने वाला टूल उपलब्ध होना चाहिए. Linux पर ऑटोटूल के सिस्टम से मिले वर्शन का इस्तेमाल करने के लिए:

sudo apt-get install libtool autoconf automake

उन सिस्टम के लिए जहां GNU Autotools आसानी से उपलब्ध नहीं है या इंस्टॉल नहीं किए जा सकते (उदाहरण के लिए, Mac OS) या ऐसे सिस्टम जहां सिस्टम से मिला वर्शन ठोस आउट-ऑफ़-बॉक्स बिल्ड जनरेट नहीं करता, Nest Labs ने GNU Autotools पर आधारित पसंद के मुताबिक, टर्नकी बिल्ड सिस्टम फ़्रेमवर्क बनाया है. सिस्टम, बिल्ड जनरेशन में इस्तेमाल किए जाने वाले प्रोग्राम के सेट को 'सही' वर्शन पर पिन कर देता है. टूल को किसी खास वर्शन में पिन करने से, ऑटोटूल का आउटपुट भी कम हो जाता है. इससे डेवलपर और सहायता का अनुभव भी मिलता है. OpenWave के साथ इस्तेमाल करने के लिए, GNU Autotools के Nest लैब बनाने का सुझाव दिया जाता है.

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 मशीन पर हैप्पी इंस्टॉल करें. ज़्यादा जानकारी के लिए खुश करने के लिए सेट अप देखें.

स्टैंडअलोन ऐप्लिकेशन

किसी डेस्कटॉप या सर्वर डेवलपमेंट होस्ट के लिए डिफ़ॉल्ट OpenWeave स्टैंडअलोन ऐप्लिकेशन का इस्तेमाल करें.

  1. OpenWeave डेटा स्टोर करने की जगह की कॉपी बनाएं:
    git clone https://github.com/openweave/openweave-core.git
  2. OpenWeave स्टैंडअलोन ऐप्लिकेशन बनाएं:
    cd openweave-core
    make -f Makefile-Standalone

बिल्ड को पसंद के मुताबिक बनाने के लिए कौनसे बिल्ड उपलब्ध हैं, यह जानने के लिए Makefile-Standalone के साथ help फ़्लैग का इस्तेमाल करें.

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. ओपन वीव बनाएं:
    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

यह चरण एक बार ट्री ट्री के बाद पूरा किया जाना चाहिए. साथ ही, इसे 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>

उदाहरण के लिए, ~/my-project/headers में मौजूद प्रोजेक्ट-खास WeaveProjectConfig.h फ़ाइल का इस्तेमाल करने के लिए OpenWeave को कॉन्फ़िगर करें:

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