mirror of
https://github.com/espressif/openthread.git
synced 2026-10-22 15:38:20 +00:00
Updates to fully support and test a standalone library install. (#108)
This commit is contained in:
+4
-2
@@ -18,6 +18,8 @@ install:
|
||||
- popd
|
||||
|
||||
script:
|
||||
- ./bootstrap-configure --enable-minimum-set-of-tests
|
||||
- ./bootstrap
|
||||
- ./configure
|
||||
- make pretty-check
|
||||
- make distcheck
|
||||
- make distclean
|
||||
- make -f Makefile-Standalone distcheck
|
||||
|
||||
@@ -0,0 +1,256 @@
|
||||
#
|
||||
# Copyright (c) 2016, Nest Labs, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. Neither the name of the copyright holder nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
# Don't allow this top-level makefile's targets to be built in parallel.
|
||||
|
||||
.NOTPARALLEL:
|
||||
|
||||
COVERAGE ?= 0
|
||||
DEBUG ?= 0
|
||||
|
||||
ECHO := @echo
|
||||
MAKE := make
|
||||
MKDIR_P := mkdir -p
|
||||
LN_S := ln -s
|
||||
RM_F := rm -f
|
||||
|
||||
INSTALL := /usr/bin/install
|
||||
INSTALLFLAGS := -p
|
||||
|
||||
TopSourceDir := $(dir $(shell readlink $(firstword $(MAKEFILE_LIST))))
|
||||
AbsTopSourceDir := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
|
||||
BuildPath = build
|
||||
TopBuildDir = $(BuildPath)
|
||||
AbsTopBuildDir = $(PWD)/$(TopBuildDir)
|
||||
|
||||
ResultPath = output
|
||||
TopResultDir = $(ResultPath)
|
||||
AbsTopResultDir = $(PWD)/$(TopResultDir)
|
||||
|
||||
TargetTuple = $(shell ${AbsTopSourceDir}/build/nlbuild-autotools/repo/autoconf/config.guess | sed -e 's/[[:digit:].]*$$//g')
|
||||
|
||||
# If the user has asserted COVERAGE, alter the configuration options
|
||||
# accordingly.
|
||||
|
||||
ifeq ($(COVERAGE),1)
|
||||
configure_OPTIONS = --enable-coverage
|
||||
else
|
||||
configure_OPTIONS =
|
||||
endif
|
||||
|
||||
# If the user has asserted DEBUG, alter the configuration options
|
||||
# accordingly.
|
||||
|
||||
ifeq ($(DEBUG),1)
|
||||
configure_OPTIONS += --enable-debug --enable-optimization=no
|
||||
else
|
||||
configure_OPTIONS +=
|
||||
endif
|
||||
|
||||
#
|
||||
# configure-arch <target>
|
||||
#
|
||||
# Configure OpenThread for the specified target.
|
||||
#
|
||||
# target - The target to configure.
|
||||
#
|
||||
define configure-target
|
||||
$(ECHO) " CONFIG $(1)..."
|
||||
(cd $(BuildPath)/$(1) && $(AbsTopSourceDir)/configure \
|
||||
INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
|
||||
--prefix=/ \
|
||||
--exec-prefix=/$(1) \
|
||||
$(configure_OPTIONS))
|
||||
endef # configure-target
|
||||
|
||||
#
|
||||
# build-target <target>
|
||||
#
|
||||
# Build the OpenThread intermediate build products for the specified
|
||||
# target.
|
||||
#
|
||||
# target - The target to build.
|
||||
#
|
||||
define build-target
|
||||
$(ECHO) " BUILD $(1)"
|
||||
$(MAKE) -C $(BuildPath)/$(1) --no-print-directory \
|
||||
all
|
||||
endef # build-target
|
||||
|
||||
#
|
||||
# check-target <target>
|
||||
#
|
||||
# Check (run unit tests) OpenThread for the specified target.
|
||||
#
|
||||
# target - The target to check.
|
||||
#
|
||||
define check-target
|
||||
$(ECHO) " CHECK $(1)"
|
||||
$(MAKE) -C $(BuildPath)/$(1) --no-print-directory \
|
||||
check
|
||||
endef # check-target
|
||||
|
||||
#
|
||||
# distcheck-target <target>
|
||||
#
|
||||
# Check (run unit tests) OpenThread for the specified target.
|
||||
#
|
||||
# target - The target to distcheck.
|
||||
#
|
||||
define distcheck-target
|
||||
$(ECHO) " DISTCHECK $(1)"
|
||||
$(MAKE) -C $(BuildPath)/$(1) --no-print-directory \
|
||||
distcheck
|
||||
endef # distcheck-target
|
||||
|
||||
#
|
||||
# coverage-target <target>
|
||||
#
|
||||
# Generate code coverage from unit tests for OpenThread for the
|
||||
# specified target.
|
||||
#
|
||||
# target - The target to generate code coverage for.
|
||||
#
|
||||
define coverage-target
|
||||
$(ECHO) " COVERAGE $(1)"
|
||||
$(MAKE) -C $(BuildPath)/$(1) --no-print-directory \
|
||||
coverage
|
||||
endef # coverage-target
|
||||
|
||||
#
|
||||
# stage-target <target>
|
||||
#
|
||||
# Stage (install) the OpenThread final build products for the specified
|
||||
# target.
|
||||
#
|
||||
# target - The target to stage.
|
||||
#
|
||||
define stage-target
|
||||
$(ECHO) " STAGE $(1)"
|
||||
$(MAKE) -C $(BuildPath)/$(1) --no-print-directory \
|
||||
DESTDIR=$(AbsTopResultDir) \
|
||||
install
|
||||
endef # stage-target
|
||||
|
||||
#
|
||||
# TARGET_template <target>
|
||||
#
|
||||
# Define macros, targets and rules to configure, build, and stage
|
||||
# OpenThread for a single target.
|
||||
#
|
||||
# target - The target to instantiate the template for.
|
||||
#
|
||||
define TARGET_template
|
||||
CONFIGURE_TARGETS += configure-$(1)
|
||||
BUILD_TARGETS += do-build-$(1)
|
||||
CHECK_TARGETS += check-$(1)
|
||||
DISTCHECK_TARGETS += distcheck-$(1)
|
||||
COVERAGE_TARGETS += coverage-$(1)
|
||||
STAGE_TARGETS += stage-$(1)
|
||||
BUILD_DIRS += $(BuildPath)/$(1)
|
||||
DIRECTORIES += $(BuildPath)/$(1)
|
||||
|
||||
configure-$(1): $(BuildPath)/$(1)/config.status
|
||||
|
||||
$(BuildPath)/$(1)/config.status: | $(BuildPath)/$(1)
|
||||
$$(call configure-target,$(1))
|
||||
|
||||
do-build-$(1): configure-$(1)
|
||||
|
||||
do-build-$(1):
|
||||
$$(call build-target,$(1))
|
||||
|
||||
check-$(1): do-build-$(1)
|
||||
|
||||
check-$(1):
|
||||
$$(call check-target,$(1))
|
||||
|
||||
distcheck-$(1): do-build-$(1)
|
||||
|
||||
distcheck-$(1):
|
||||
$$(call distcheck-target,$(1))
|
||||
|
||||
coverage-$(1): do-build-$(1)
|
||||
|
||||
coverage-$(1):
|
||||
$$(call coverage-target,$(1))
|
||||
|
||||
stage-$(1): do-build-$(1)
|
||||
|
||||
stage-$(1): | $(TopResultDir)
|
||||
$$(call stage-target,$(1))
|
||||
|
||||
$(1): stage-$(1)
|
||||
endef # TARGET_template
|
||||
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
all: stage
|
||||
|
||||
# Instantiate an target-specific build template for the target.
|
||||
|
||||
$(eval $(call TARGET_template,$(TargetTuple)))
|
||||
|
||||
#
|
||||
# Common / Finalization
|
||||
#
|
||||
|
||||
configure: $(CONFIGURE_TARGETS)
|
||||
|
||||
build: $(BUILD_TARGETS)
|
||||
|
||||
check: $(CHECK_TARGETS)
|
||||
|
||||
distcheck: $(DISTCHECK_TARGETS)
|
||||
|
||||
coverage: $(COVERAGE_TARGETS)
|
||||
|
||||
stage: $(STAGE_TARGETS)
|
||||
|
||||
DIRECTORIES = $(TopResultDir) $(TopResultDir)/$(TargetTuple)/lib $(BUILD_DIRS)
|
||||
|
||||
CLEAN_DIRS = $(TopResultDir) $(BUILD_DIRS)
|
||||
|
||||
all: stage
|
||||
|
||||
$(DIRECTORIES):
|
||||
$(ECHO) " MKDIR $@"
|
||||
@$(MKDIR_P) "$@"
|
||||
|
||||
clean:
|
||||
$(ECHO) " CLEAN"
|
||||
@$(RM_F) -r $(CLEAN_DIRS)
|
||||
|
||||
help:
|
||||
$(ECHO) "Simply type 'make -f $(firstword $(MAKEFILE_LIST))' to build OpenThread for the following "
|
||||
$(ECHO) "target:"
|
||||
$(ECHO) ""
|
||||
$(ECHO) " $(TargetTuple)"
|
||||
$(ECHO) ""
|
||||
|
||||
@@ -46,7 +46,6 @@ EXTRA_DIST = \
|
||||
.default-version \
|
||||
bootstrap \
|
||||
bootstrap-configure \
|
||||
$(srcdir)/third_party \
|
||||
$(NULL)
|
||||
|
||||
BUILT_SOURCES = \
|
||||
|
||||
@@ -46,6 +46,7 @@ SUBDIRS = \
|
||||
|
||||
PRETTY_SUBDIRS = \
|
||||
cli \
|
||||
ncp \
|
||||
$(NULL)
|
||||
|
||||
include $(abs_top_nlbuild_autotools_dir)/automake/post.am
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Nest Labs, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2016, Nest Labs, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
@@ -43,6 +44,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
NODE_ID = atoi(argv[1]);
|
||||
|
||||
posixPlatformInit();
|
||||
otInit();
|
||||
otNcpInit();
|
||||
@@ -50,7 +52,7 @@ int main(int argc, char *argv[])
|
||||
while (1)
|
||||
{
|
||||
otProcessNextTasklet();
|
||||
posixPlatformProcessDrivers();
|
||||
posixPlatformProcessDrivers();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -35,18 +35,8 @@ libopenthread_posix_a_CPPFLAGS = \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/src/core \
|
||||
-I$(top_srcdir)/examples/posix/platform \
|
||||
$(OPENTHREAD_TARGET_DEFINES) \
|
||||
-D_BSD_SOURCE \
|
||||
-D_GNU_SOURCE \
|
||||
$(NULL)
|
||||
|
||||
libopenthread_posix_a_CXXFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/src/core \
|
||||
-I$(top_srcdir)/examples/posix/platform \
|
||||
$(OPENTHREAD_TARGET_DEFINES) \
|
||||
$(NULL)
|
||||
|
||||
libopenthread_posix_a_SOURCES = \
|
||||
alarm.c \
|
||||
|
||||
+2
-2
@@ -31,15 +31,15 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
|
||||
# Always package (e.g. for 'make dist') these subdirectories.
|
||||
|
||||
DIST_SUBDIRS = \
|
||||
scripts \
|
||||
unit \
|
||||
scripts \
|
||||
$(NULL)
|
||||
|
||||
# Always build (e.g. for 'make all') these subdirectories.
|
||||
|
||||
SUBDIRS = \
|
||||
scripts \
|
||||
unit \
|
||||
scripts \
|
||||
$(NULL)
|
||||
|
||||
# Always pretty (e.g. for 'make pretty') these subdirectories.
|
||||
|
||||
Vendored
+4
@@ -28,6 +28,10 @@
|
||||
|
||||
include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
|
||||
|
||||
EXTRA_DIST = \
|
||||
nlbuild-autotools \
|
||||
$(NULL)
|
||||
|
||||
# Always package (e.g. for 'make dist') these subdirectories.
|
||||
|
||||
DIST_SUBDIRS = \
|
||||
|
||||
Vendored
+8
-10
@@ -16,15 +16,20 @@
|
||||
|
||||
include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
|
||||
|
||||
EXTRA_DIST = \
|
||||
mbedtls-config.h \
|
||||
repo/include \
|
||||
$(NULL)
|
||||
|
||||
lib_LIBRARIES = libmbedcrypto.a
|
||||
|
||||
MBEDTLS_DIR = $(top_srcdir)/third_party/mbedtls/repo
|
||||
MBEDTLS_SRCDIR = $(top_srcdir)/third_party/mbedtls/repo
|
||||
|
||||
libmbedcrypto_a_CPPFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/core \
|
||||
-I$(MBEDTLS_DIR)/include \
|
||||
-I$(MBEDTLS_DIR)/include/mbedtls \
|
||||
-I$(MBEDTLS_SRCDIR)/include \
|
||||
-I$(MBEDTLS_SRCDIR)/include/mbedtls \
|
||||
-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\" \
|
||||
$(NULL)
|
||||
|
||||
@@ -38,15 +43,8 @@ libmbedcrypto_a_SOURCES = \
|
||||
repo/library/sha256.c \
|
||||
$(NULL)
|
||||
|
||||
include_HEADERS = \
|
||||
$(NULL)
|
||||
|
||||
install-headers: install-includeHEADERS
|
||||
|
||||
if OPENTHREAD_BUILD_COVERAGE
|
||||
CLEANFILES = $(wildcard *.gcda *.gcno)
|
||||
endif # OPENTHREAD_BUILD_COVERAGE
|
||||
|
||||
all:
|
||||
|
||||
include $(abs_top_nlbuild_autotools_dir)/automake/post.am
|
||||
|
||||
Reference in New Issue
Block a user