OpenWeave তৈরি করুন

OpenWeave নির্মাণের জন্য প্রাথমিক সমর্থিত টুলচেন হল GNU Autotools।

সিস্টেমের জন্য আবশ্যক

সমস্ত প্রধান OS প্ল্যাটফর্ম ওপেনওয়েভের নির্মাণ এবং ক্রস-সংকলন সমর্থন করে। তালিকাভুক্ত টুলচেইন আনুষ্ঠানিকভাবে নেস্ট দ্বারা পরীক্ষা করা হয়েছে।

লিনাক্স

প্রয়োজনীয়তা: উবুন্টু 14.04 (ট্রাস্টি) আনুষ্ঠানিকভাবে সমর্থিত, তবে একই ধরনের লিনাক্স-ভিত্তিক সিস্টেম কাজ করা উচিত।
C/C++, জাভা, পাইথন বাইন্ডিং
টুলচেন gcc 4.6.3
টার্গেট i386-অজানা-লিনাক্স-জিএনইউ
x86_64-অজানা-লিনাক্স-গ্নু
C/C++, জাভা বাইন্ডিং
টুলচেন gcc 4.6
টার্গেট arm-unknown-linux-android
armv7-অজানা-লিনাক্স-অ্যান্ড্রয়েড
i386-অজানা-লিনাক্স-অ্যান্ড্রয়েড

ম্যাক ওএস এক্স

প্রয়োজনীয়তা: সিম্বলিক লিঙ্ক সহ একটি ডিরেক্টরি সাবট্রিতে অন্য ডাইরেক্টরি ক্লোন করার জন্য XQuartz
C/C++, কোকো বাইন্ডিং
টার্গেট armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, পাইথন বাইন্ডিং
টুলচেন LLVM/ক্ল্যাং 3.5 (6.0)
টার্গেট i386-apple-darwin-macosx
x86_64-আপেল-ডারউইন-ম্যাকোসএক্স

উইন্ডোজ

প্রয়োজনীয়তা: লিনাক্স কমান্ড লাইন সমর্থনের জন্য সাইগউইন
C/C++ বাইন্ডিং
টুলচেন gcc 4.8.3
টার্গেট i686-pc-cygwin

এমবেডেড

C/C++ বাইন্ডিং
টুলচেন gcc 4.4.1
LLVM/ক্ল্যাং 3.1
LLVM/ক্ল্যাং 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

GNU Autotools

OpenWeave এর বিল্ড সিস্টেমের জন্য GNU Autotools এর উপর নির্ভর করে। ওপেনওয়েভ সফলভাবে তৈরি করার জন্য GNU Autotools-এর একটি সংস্করণ উপলব্ধ থাকতে হবে। লিনাক্সে অটোটুলগুলির সিস্টেম-প্রদত্ত সংস্করণ ব্যবহার করতে:

sudo apt-get install libtool autoconf automake

যেসব সিস্টেমে GNU Autotools সহজে পাওয়া যায় না বা ইনস্টল করা যায় না (উদাহরণস্বরূপ, ম্যাক ওএস) অথবা যে সিস্টেমে সিস্টেম-প্রদত্ত সংস্করণ একটি কঠিন আউট-অফ-বক্স বিল্ড জেনারেশন প্রদান করে না, নেস্ট ল্যাবস একটি কাস্টমাইজড, টার্নকি বিল্ড তৈরি করেছে। সিস্টেম ফ্রেমওয়ার্ক, GNU Autotools এর উপর ভিত্তি করে। সিস্টেমটি বিল্ড জেনারেশনে ব্যবহৃত প্রোগ্রামগুলির সেটকে একটি পরিচিত ভাল সংস্করণে পিন করে। একটি নির্দিষ্ট সংস্করণে সরঞ্জামগুলিকে পিন করা অটোটুলগুলির আউটপুটে তুলনামূলকভাবে কম মন্থন নিশ্চিত করে যার ফলে অনুমানযোগ্য বিকাশকারী এবং সহায়তার অভিজ্ঞতা হয়। 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 ব্যবহার করতে, আপনার লিনাক্স মেশিনে হ্যাপি ইনস্টল করুন। আরও তথ্যের জন্য শুভ সেটআপ দেখুন।

স্বতন্ত্র অ্যাপ্লিকেশন

একটি ডেস্কটপ বা সার্ভার ডেভেলপমেন্ট হোস্টের জন্য ডিফল্ট 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

উদাহরণস্বরূপ, উইভ ডিবাগ কোড এবং লগিং সক্ষম করতে:

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 — লাইব্রেরি

অ্যান্ড্রয়েড এবং আইওএস

অ্যান্ড্রয়েড এবং আইওএস প্রকল্প লিঙ্ক করার জন্য লাইব্রেরি তৈরি করতে, প্ল্যাটফর্ম-নির্দিষ্ট Makefiles ব্যবহার করুন:

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

বিল্ড কাস্টমাইজেশনের জন্য কোন বিল্ড সুইচ পাওয়া যায় তা জানতে Makefile- <platform> -এর help পতাকা ব্যবহার করুন। উদাহরণ স্বরূপ:

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

কনফিগারেশন

বিভিন্ন স্ক্রিপ্ট এবং হেডার দিয়ে OpenWeave কনফিগার করার আগে, প্রাসঙ্গিক বিল্ড ফাইল বুটস্ট্র্যাপ করতে autotools ব্যবহার করুন:

./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 headers-এ অবস্থিত একটি প্রকল্প-নির্দিষ্ট WeaveProjectConfig.h ফাইল ব্যবহার করতে OpenWeave কনফিগার করতে:

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

OpenWeave নির্মাণের জন্য প্রাথমিক সমর্থিত টুলচেন হল GNU Autotools।

সিস্টেমের জন্য আবশ্যক

সমস্ত প্রধান OS প্ল্যাটফর্ম ওপেনওয়েভের নির্মাণ এবং ক্রস-সংকলন সমর্থন করে। তালিকাভুক্ত টুলচেইন আনুষ্ঠানিকভাবে নেস্ট দ্বারা পরীক্ষা করা হয়েছে।

লিনাক্স

প্রয়োজনীয়তা: উবুন্টু 14.04 (ট্রাস্টি) আনুষ্ঠানিকভাবে সমর্থিত, তবে একই ধরনের লিনাক্স-ভিত্তিক সিস্টেম কাজ করা উচিত।
C/C++, জাভা, পাইথন বাইন্ডিং
টুলচেন gcc 4.6.3
টার্গেট i386-অজানা-লিনাক্স-জিএনইউ
x86_64-অজানা-লিনাক্স-গ্নু
C/C++, জাভা বাইন্ডিং
টুলচেন gcc 4.6
টার্গেট arm-unknown-linux-android
armv7-অজানা-লিনাক্স-অ্যান্ড্রয়েড
i386-অজানা-লিনাক্স-অ্যান্ড্রয়েড

ম্যাক ওএস এক্স

প্রয়োজনীয়তা: সিম্বলিক লিঙ্ক সহ একটি ডিরেক্টরি সাবট্রিতে অন্য ডাইরেক্টরি ক্লোন করার জন্য XQuartz
C/C++, কোকো বাইন্ডিং
টার্গেট armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, পাইথন বাইন্ডিং
টুলচেন LLVM/ক্ল্যাং 3.5 (6.0)
টার্গেট i386-apple-darwin-macosx
x86_64-আপেল-ডারউইন-ম্যাকোসএক্স

উইন্ডোজ

প্রয়োজনীয়তা: লিনাক্স কমান্ড লাইন সমর্থনের জন্য সাইগউইন
C/C++ বাইন্ডিং
টুলচেন gcc 4.8.3
টার্গেট i686-pc-cygwin

এমবেডেড

C/C++ বাইন্ডিং
টুলচেন gcc 4.4.1
LLVM/ক্ল্যাং 3.1
LLVM/ক্ল্যাং 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

GNU Autotools

OpenWeave এর বিল্ড সিস্টেমের জন্য GNU Autotools এর উপর নির্ভর করে। ওপেনওয়েভ সফলভাবে তৈরি করার জন্য GNU Autotools-এর একটি সংস্করণ উপলব্ধ থাকতে হবে। লিনাক্সে অটোটুলগুলির সিস্টেম-প্রদত্ত সংস্করণ ব্যবহার করতে:

sudo apt-get install libtool autoconf automake

যেসব সিস্টেমে GNU Autotools সহজে পাওয়া যায় না বা ইনস্টল করা যায় না (উদাহরণস্বরূপ, ম্যাক ওএস) অথবা যে সিস্টেমে সিস্টেম-প্রদত্ত সংস্করণ একটি কঠিন আউট-অফ-বক্স বিল্ড জেনারেশন প্রদান করে না, নেস্ট ল্যাবস একটি কাস্টমাইজড, টার্নকি বিল্ড তৈরি করেছে। সিস্টেম ফ্রেমওয়ার্ক, GNU Autotools এর উপর ভিত্তি করে। সিস্টেমটি বিল্ড জেনারেশনে ব্যবহৃত প্রোগ্রামগুলির সেটকে একটি পরিচিত ভাল সংস্করণে পিন করে। একটি নির্দিষ্ট সংস্করণে সরঞ্জামগুলিকে পিন করা অটোটুলগুলির আউটপুটে তুলনামূলকভাবে কম মন্থন নিশ্চিত করে যার ফলে অনুমানযোগ্য বিকাশকারী এবং সহায়তার অভিজ্ঞতা হয়। 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 ব্যবহার করতে, আপনার লিনাক্স মেশিনে হ্যাপি ইনস্টল করুন। আরও তথ্যের জন্য শুভ সেটআপ দেখুন।

স্বতন্ত্র অ্যাপ্লিকেশন

একটি ডেস্কটপ বা সার্ভার ডেভেলপমেন্ট হোস্টের জন্য ডিফল্ট 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

উদাহরণস্বরূপ, উইভ ডিবাগ কোড এবং লগিং সক্ষম করতে:

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 — লাইব্রেরি

অ্যান্ড্রয়েড এবং আইওএস

অ্যান্ড্রয়েড এবং আইওএস প্রকল্প লিঙ্ক করার জন্য লাইব্রেরি তৈরি করতে, প্ল্যাটফর্ম-নির্দিষ্ট Makefiles ব্যবহার করুন:

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

বিল্ড কাস্টমাইজেশনের জন্য কোন বিল্ড সুইচ পাওয়া যায় তা জানতে Makefile- <platform> -এর help পতাকা ব্যবহার করুন। উদাহরণ স্বরূপ:

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

কনফিগারেশন

বিভিন্ন স্ক্রিপ্ট এবং হেডার দিয়ে OpenWeave কনফিগার করার আগে, প্রাসঙ্গিক বিল্ড ফাইল বুটস্ট্র্যাপ করতে autotools ব্যবহার করুন:

./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 headers-এ অবস্থিত একটি প্রকল্প-নির্দিষ্ট WeaveProjectConfig.h ফাইল ব্যবহার করতে OpenWeave কনফিগার করতে:

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