OpenWeave 빌드

OpenWeave 빌드를 위해 지원되는 기본 도구 모음은 GNU Autotools입니다.

시스템 요구사항

모든 주요 OS 플랫폼은 OpenWeave의 빌드 및 크로스 컴파일을 지원합니다. 나열된 도구 모음은 Nest에서 공식적으로 테스트했습니다.

Linux

요구사항: Ubuntu 14.04 (Trusty)는 공식적으로 지원되지만 비슷한 Linux 기반 시스템이 모두 작동해야 합니다.
C/C++, 자바, Python 바인딩
도구 모음 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++, Cocoa 바인딩
대상 armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, Python 바인딩
도구 모음 LLVM/clang 3.5 (6.0)
대상 i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

Windows

요구사항: Linux 명령줄 지원의 경우 Cygwin.
C/C++ 바인딩
도구 모음 gcc 4.8.3
대상 i686-pc-cygwin

Embedded

C/C++ 바인딩
도구 모음 gcc 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
대상 arm*-unknown-linux*
arm*-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

GNU Autotools

OpenWeave는 빌드 시스템의 GNU Autotools에 의존합니다. OpenWeave를 성공적으로 빌드하려면 GNU Autotools 버전을 사용할 수 있어야 합니다. Linux에서 시스템 제공 버전의 Autotools를 사용하려면 다음 단계를 따르세요.

sudo apt-get install libtool autoconf automake

GNU Autotools를 즉시 사용할 수 없거나 설치할 수 없는 시스템(예: Mac OS) 또는 시스템에서 제공하는 빌드가 즉시 사용 가능한 시스템을 생성하지 않는 시스템을 위해 Nest Labs는 GNU Autotools를 기반으로 맞춤설정된 턴키 빌드 시스템 프레임워크를 만들었습니다. 시스템은 빌드 생성에 사용되는 프로그램 집합을 정상으로 알려진 버전으로 고정합니다. 또한 도구를 특정 버전에 고정하면 Autotools의 출력에서 비교적 낮은 제거가 발생하므로 예측 가능한 개발자 및 지원 환경을 확보할 수 있습니다. GNU Autotools의 Nest Lab 빌드는 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를 사용하려면 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

예를 들어 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. OpenWeave 빌드:
    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

help 플래그를 Makefile-<platform>와 함께 사용하여 빌드 맞춤설정에 사용할 수 있는 빌드 스위치를 알아봅니다. 예를 들면 다음과 같습니다.

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에 있는 프로젝트별 WeaveProjectConfig.h 파일을 사용하도록 OpenWeave를 구성하려면 다음을 실행합니다.

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