OpenWeave را بسازید

زنجیره ابزار اصلی پشتیبانی شده برای ساخت OpenWeave، ابزار خودکار گنو است.

سیستم مورد نیاز

همه پلتفرم های اصلی سیستم عامل از ساخت و کامپایل متقابل OpenWeave پشتیبانی می کنند. زنجیره های ابزار فهرست شده توسط Nest به طور رسمی آزمایش شده اند.

لینوکس

مورد نیاز: Ubuntu 14.04 (Trusty) رسما پشتیبانی می شود، اما هر سیستم مشابه مبتنی بر لینوکس باید کار کند.
پیوندهای C/C++، جاوا، پایتون
زنجیر ابزار gcc 4.6.3
اهداف i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++، اتصالات جاوا
زنجیر ابزار gcc 4.6
اهداف arm-unknown-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

مورد نیاز: XQuartz برای شبیه سازی یک زیردرخت دایرکتوری به دیگری با پیوندهای نمادین.
C/C++، اتصالات کاکائویی
اهداف armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++، اتصالات پایتون
زنجیر ابزار LLVM/clang 3.5 (6.0)
اهداف i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

پنجره ها

مورد نیاز: Cygwin برای پشتیبانی از خط فرمان لینوکس.
اتصالات 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-freertos-lwip

پیش نیازها

علاوه بر زنجیره ابزار پشتیبانی شده، توصیه می کنیم بسته ها و ابزارهای زیر را قبل از ساخت 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 برای سیستم ساخت خود به ابزارهای خودکار گنو وابسته است. برای ساخت موفقیت آمیز OpenWeave باید نسخه ای از ابزار خودکار گنو در دسترس باشد. برای استفاده از نسخه ارائه شده توسط سیستم Autotools در لینوکس:

sudo apt-get install libtool autoconf automake

برای سیستم‌هایی که ابزارهای خودکار گنو به‌راحتی در دسترس یا قابل نصب نیستند (مثلاً سیستم‌عامل مک) یا در سیستم‌هایی که نسخه ارائه‌شده توسط سیستم، تولید کاملی از جعبه ارائه نمی‌کند، Nest Labs یک ساخت سفارشی و کلید در دست ایجاد کرده است. چارچوب سیستم، بر اساس ابزار خودکار گنو. سیستم مجموعه ای از برنامه های مورد استفاده در تولید ساخت را به یک نسخه خوب شناخته شده پین ​​می کند. سنجاق کردن ابزارها به یک نسخه خاص، ریزش نسبتاً کم در خروجی ابزارهای خودکار را تضمین می کند، بنابراین منجر به تجربه توسعه دهنده و پشتیبانی قابل پیش بینی می شود. ساخت 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 در توپولوژی‌های شبیه‌سازی‌شده، Happy را بر روی دستگاه لینوکس خود نصب کنید. برای اطلاعات بیشتر به تنظیمات Happy مراجعه کنید.

برنامه مستقل

از برنامه پیش فرض OpenWeave Standalone برای میزبان توسعه دسکتاپ یا سرور استفاده کنید.

  1. مخزن OpenWeave را کلون کنید:
    git clone https://github.com/openweave/openweave-core.git
  2. برنامه OpenWeave Standalone را بسازید:
    cd openweave-core
    make -f Makefile-Standalone

از پرچم help با Makefile-Standalone استفاده کنید تا بدانید که چه سوئیچ‌هایی برای سفارشی‌سازی ساخت در دسترس هستند.

make -f Makefile-Standalone help

به عنوان مثال، برای فعال کردن کد اشکال زدایی Weave و ورود به سیستم:

make -f Makefile-Standalone DEBUG=1

پیوند پروژه

  1. مخزن OpenWeave را کلون کنید:
    git clone https://github.com/openweave/openweave-core.git
  2. محیط ساخت را برای ابزارهای خودکار گنو پیکربندی کنید:
    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 — کتابخانه ها

اندروید و iOS

برای ایجاد کتابخانه برای پیوند پروژه اندروید و 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

به عنوان مثال، برای پیکربندی OpenWeave بدون پشتیبانی BlueZ:

./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
،

زنجیره ابزار اصلی پشتیبانی شده برای ساخت OpenWeave، ابزار خودکار گنو است.

سیستم مورد نیاز

همه پلتفرم های اصلی سیستم عامل از ساخت و کامپایل متقابل OpenWeave پشتیبانی می کنند. زنجیره های ابزار فهرست شده توسط Nest به طور رسمی آزمایش شده اند.

لینوکس

مورد نیاز: Ubuntu 14.04 (Trusty) رسما پشتیبانی می شود، اما هر سیستم مشابه مبتنی بر لینوکس باید کار کند.
پیوندهای C/C++، جاوا، پایتون
زنجیر ابزار gcc 4.6.3
اهداف i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++، اتصالات جاوا
زنجیر ابزار gcc 4.6
اهداف arm-unknown-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

مورد نیاز: XQuartz برای شبیه سازی یک زیردرخت دایرکتوری به دیگری با پیوندهای نمادین.
C/C++، اتصالات کاکائویی
اهداف armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++، اتصالات پایتون
زنجیر ابزار LLVM/clang 3.5 (6.0)
اهداف i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

پنجره ها

مورد نیاز: Cygwin برای پشتیبانی از خط فرمان لینوکس.
اتصالات 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-freertos-lwip

پیش نیازها

علاوه بر زنجیره ابزار پشتیبانی شده، توصیه می کنیم بسته ها و ابزارهای زیر را قبل از ساخت 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 برای سیستم ساخت خود به ابزارهای خودکار گنو وابسته است. برای ساخت موفقیت آمیز OpenWeave باید نسخه ای از ابزار خودکار گنو در دسترس باشد. برای استفاده از نسخه ارائه شده توسط سیستم Autotools در لینوکس:

sudo apt-get install libtool autoconf automake

برای سیستم‌هایی که ابزارهای خودکار گنو به‌راحتی در دسترس یا قابل نصب نیستند (مثلاً سیستم‌عامل مک) یا در سیستم‌هایی که نسخه ارائه‌شده توسط سیستم، تولید کاملی از جعبه ارائه نمی‌کند، Nest Labs یک ساخت سفارشی و کلید در دست ایجاد کرده است. چارچوب سیستم، بر اساس ابزار خودکار گنو. سیستم مجموعه ای از برنامه های مورد استفاده در تولید ساخت را به یک نسخه خوب شناخته شده پین ​​می کند. سنجاق کردن ابزارها به یک نسخه خاص، ریزش نسبتاً کم در خروجی ابزارهای خودکار را تضمین می کند، بنابراین منجر به تجربه توسعه دهنده و پشتیبانی قابل پیش بینی می شود. ساخت 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 در توپولوژی‌های شبیه‌سازی‌شده، Happy را بر روی دستگاه لینوکس خود نصب کنید. برای اطلاعات بیشتر به تنظیمات Happy مراجعه کنید.

اپلیکیشن مستقل

از برنامه پیش فرض OpenWeave Standalone برای میزبان توسعه دسکتاپ یا سرور استفاده کنید.

  1. مخزن OpenWeave را کلون کنید:
    git clone https://github.com/openweave/openweave-core.git
  2. برنامه OpenWeave Standalone را بسازید:
    cd openweave-core
    make -f Makefile-Standalone

از پرچم help با Makefile-Standalone استفاده کنید تا بدانید که چه سوئیچ‌هایی برای سفارشی‌سازی ساخت در دسترس هستند.

make -f Makefile-Standalone help

به عنوان مثال، برای فعال کردن کد اشکال زدایی Weave و ورود به سیستم:

make -f Makefile-Standalone DEBUG=1

پیوند پروژه

  1. مخزن OpenWeave را کلون کنید:
    git clone https://github.com/openweave/openweave-core.git
  2. محیط ساخت را برای ابزارهای خودکار گنو پیکربندی کنید:
    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 — کتابخانه ها

اندروید و iOS

برای ایجاد کتابخانه برای پیوند پروژه اندروید و 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

به عنوان مثال، برای پیکربندی OpenWeave بدون پشتیبانی BlueZ:

./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