ओपनवेव बनाएंBuild

OpenWeave के निर्माण के लिए प्राथमिक समर्थित टूलचेन GNU Autotools है।

सिस्टम आवश्यकताएं

सभी प्रमुख OS प्लेटफॉर्म OpenWeave के निर्माण और क्रॉस-संकलन का समर्थन करते हैं। सूचीबद्ध टूलचेन का आधिकारिक तौर पर नेस्ट द्वारा परीक्षण किया गया है।

लिनक्स

आवश्यकताएँ: Ubuntu 14.04 (भरोसेमंद) आधिकारिक तौर पर समर्थित है, लेकिन किसी भी इसी तरह लिनक्स आधारित प्रणाली काम करना चाहिए।
सी/सी++, जावा, पायथन बाइंडिंग
टूलचेन जीसीसी 4.6.3
लक्ष्यों को i386-अज्ञात-लिनक्स-ग्नू
x86_64-अज्ञात-लिनक्स-ग्नू
सी/सी++, जावा बाइंडिंग
टूलचेन जीसीसी 4.6
लक्ष्यों को आर्म-अज्ञात-लिनक्स-एंड्रॉइड
armv7-अज्ञात-लिनक्स-एंड्रॉइड
i386-अज्ञात-लिनक्स-एंड्रॉइड

मैक ओएस एक्स

आवश्यकताएँ: XQuartz सांकेतिक लिंक के साथ एक से दूसरे निर्देशिका सबट्री क्लोनिंग के लिए।
सी/सी++, कोको बाइंडिंग
लक्ष्यों को armv7-सेब-डार्विन-आईओएस
armv7s-सेब-डार्विन-आईओएस
i386-सेब-डार्विन-आईओएस
सी/सी++, पायथन बाइंडिंग
टूलचेन एलएलवीएम/क्लैंग 3.5 (6.0)
लक्ष्यों को i386-सेब-डार्विन-मैकोसेक्स
x86_64-सेब-डार्विन-मैकोसएक्स

खिड़कियाँ

आवश्यकताएँ: Cygwin लिनक्स कमांड लाइन समर्थन के लिए।
सी/सी++ बाइंडिंग
टूलचेन जीसीसी 4.8.3
लक्ष्यों को i686-पीसी-साइगविन

एम्बेडेड

सी/सी++ बाइंडिंग
टूलचेन जीसीसी 4.4.1
एलएलवीएम/क्लैंग 3.1
एलएलवीएम/क्लैंग 3.3
लक्ष्यों को बांह*-अज्ञात-लिनक्स*
बांह*-अज्ञात-फ्रीर्टोस-एलविप

आवश्यक शर्तें

समर्थित टूलचेन के अलावा, हम OpenWeave के निर्माण से पहले निम्नलिखित पैकेज और टूल को स्थापित करने की सलाह देते हैं।

संकुल

लिनक्स:

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

लिनक्स और मैक ओएस एक्स:

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

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

OpenWeave अपने निर्माण प्रणाली के लिए GNU Autotools पर निर्भर करता है। OpenWeave को सफलतापूर्वक बनाने के लिए GNU Autotools का एक संस्करण उपलब्ध होना चाहिए। Linux पर autotools के सिस्टम द्वारा प्रदत्त संस्करण का उपयोग करने के लिए:

sudo apt-get install libtool autoconf automake

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

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

का प्रयोग करें help के साथ ध्वज Makefile-Standalone जानने के लिए क्या निर्माण स्विच निर्माण अनुकूलन के लिए उपलब्ध हैं।

make -f Makefile-Standalone help

उदाहरण के लिए, वीव डिबग कोड और लॉगिंग को सक्षम करने के लिए:

make -f Makefile-Standalone DEBUG=1

प्रोजेक्ट लिंकिंग

  1. OpenWeave भंडार क्लोन:
    git clone https://github.com/openweave/openweave-core.git
  2. ग्नू 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 परियोजना को जोड़ने के लिए निर्माण पुस्तकालयों के लिए, प्लेटफ़ॉर्म-विशिष्ट का उपयोग 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.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 के लिए एक परियोजना विशेष उपयोग करने के लिए WeaveProjectConfig.h में स्थित फ़ाइल ~/my-project/headers :

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