Merge pull request #311 from atiselsts/contrib/build-all

A script to build all examples
This commit is contained in:
Simon Duquennoy 2018-03-12 14:41:02 +01:00 committed by GitHub
commit ee5833a447
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
69 changed files with 410 additions and 42 deletions

View File

@ -85,6 +85,35 @@ else
include $(target_makefile)
endif
# Decide whether to build or to skip this target for this platform
ifneq ("", "$(PLATFORMS_ONLY)")
ifeq ("","$(filter $(TARGET), $(PLATFORMS_ONLY))")
PLATFORM_ACTION = skip
endif
endif
ifneq ("", "$(PLATFORMS_EXCLUDE)")
ifneq ("","$(filter $(TARGET), $(PLATFORMS_EXCLUDE))")
PLATFORM_ACTION = skip
endif
endif
ifneq ($(BOARD),)
ifneq ("", "$(BOARDS_ONLY)")
ifeq ("","$(filter $(BOARD), $(BOARDS_ONLY))")
PLATFORM_ACTION = skip
endif
endif
ifneq ("", "$(BOARDS_EXCLUDE)")
ifneq ("","$(filter $(BOARD), $(BOARDS_EXCLUDE))")
PLATFORM_ACTION = skip
endif
endif
endif # $(BOARD) not empty
PLATFORM_ACTION ?= build
# Configure MAC layer
# The different options
@ -259,7 +288,7 @@ endef
clean:
-rm -f *~ *core core *.srec \
*.lst *.map \
*.lst *.map *.o \
*.cprg *.bin *.data contiki*.a *.firmware core-labels.S *.ihex *.ini \
rm -rf $(CLEAN)
-rm -rf $(OBJECTDIR)
@ -396,8 +425,15 @@ endif
# the match-anything rule below instead.
%: %.c
ifeq ($(PLATFORM_ACTION),skip)
# Skip this target.
$(CONTIKI_PROJECT):
@echo "Skipping $@: not for the '$(TARGET)/$(BOARD)' platform!"
else
# Build this target.
# Match-anything pattern rule to allow the project makefiles to
# abstract from the actual binary name. It needs to contain some
# command in order to be a rule, not just a prerequisite.
%: %.$(TARGET)
@
endif

View File

@ -14,12 +14,6 @@ endif
# custom MAC: ble_ipsp_mac_driver
MAKE_MAC ?= MAKE_MAC_OTHER
# we only support IPv6
MAKE_NET ?= MAKE_NET_IPV6
ifneq ($(MAKE_NET),MAKE_NET_IPV6)
$(error Only IPv6 stack is supported!)
endif
$(info SDK: $(NRF52_SDK_ROOT))
ifeq ($(NRF52_DK_REVISION),)
@ -145,7 +139,7 @@ CFLAGS += -ggdb
CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
# keep every function in separate section. This will allow linker to dump unused functions
LDFLAGS += -Xlinker -Map=$(LISTING_DIRECTORY)/$(OUTPUT_FILENAME).map
LDFLAGS += -Xlinker -Map=$(@:.elf=-$(TARGET).map)
LDFLAGS += -mabi=aapcs -L $(TEMPLATE_PATH) -T$(LINKER_SCRIPT)
LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
# let linker to dump unused sections

View File

@ -34,6 +34,11 @@
/*---------------------------------------------------------------------------*/
#include "cm4/cm4-def.h"
/*---------------------------------------------------------------------------*/
#if !NETSTACK_CONF_WITH_IPV6
/* we only support IPv6 */
#error "Only IPv6 stack is supported!"
#endif
/*---------------------------------------------------------------------------*/
#define RTIMER_ARCH_SECOND 62500
/*---------------------------------------------------------------------------*/
#endif /* NRF52832_DEF_H_ */

View File

@ -30,6 +30,8 @@ CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES)
# Enable nullmac by default
MAKE_MAC ?= MAKE_MAC_NULLMAC
CLEAN += *.native
### Define the CPU directory
CONTIKI_CPU=$(CONTIKI)/arch/cpu/native
include $(CONTIKI)/arch/cpu/native/Makefile.native

View File

@ -127,7 +127,7 @@ platform_init_stage_two(void)
#ifdef UART0_ENABLED
uart0_init();
#if SLIP_ARCH_CONF_ENABLE
slip_arch_init();
#error Platform does not support SLIP
#else
uart0_set_input(serial_line_input_byte);
serial_line_init();

View File

@ -4,6 +4,8 @@ CONTIKI_TARGET_SOURCEFILES += contiki-sky-platform.c \
sht11.c sht11-sensor.c light-sensor.c battery-sensor.c \
button-sensor.c
CLEAN += *.sky
include $(CONTIKI)/arch/platform/sky/Makefile.common
MODULES += arch/dev/cc2420 arch/dev/sht11 arch/dev/ds2411 os/storage/cfs

View File

@ -1,6 +1,7 @@
MOTELIST_ZOLERTIA = orion
MODULES += arch/dev/enc28j60
CC2538_ENC28J60_ARCH ?= gpio
WITH_IP64 ?= 1
ifeq ($(WITH_IP64),1)
CFLAGS += -DUIP_FALLBACK_INTERFACE=ip64_uip_fallback_interface
BOARD_SOURCEFILES += board.c enc28j60-arch-$(CC2538_ENC28J60_ARCH).c
endif
BOARD_SOURCEFILES += board.c enc28j60-arch-$(CC2538_ENC28J60_ARCH).c leds-arch.c

View File

@ -1,10 +1,14 @@
CONTIKI_PROJECT = sixp-node.c
CONTIKI_PROJECT = sixp-node
PROJECT_SOURCEFILES += test-sf.c
PLATFORMS_EXCLUDE = sky nrf52dk native
BOARDS_EXCLUDE = srf06/cc13xx launchpad/cc1310 launchpad/cc1350 sensortag/cc2650 sensortag/cc1350
CONTIKI = ../../../
MAKE_MAC = MAKE_MAC_TSCH
MAKE_ROUTING = MAKE_ROUTING_NULLROUTING
MODULES += os/net/mac/tsch/sixtop
all: $(CONTIKI_PROJECT)
include $(CONTIKI)/Makefile.include

View File

@ -1,6 +1,9 @@
CONTIKI_PROJECT = node
all: $(CONTIKI_PROJECT)
PLATFORMS_EXCLUDE = sky nrf52dk native
BOARDS_EXCLUDE = srf06/cc13xx launchpad/cc1310 launchpad/cc1350 sensortag/cc2650 sensortag/cc1350
MAKE_WITH_SECURITY ?= 0 # force Security from command line
ifeq ($(MAKE_WITH_SECURITY),1)
CFLAGS += -DWITH_SECURITY=1

View File

@ -1,6 +1,9 @@
CONTIKI_PROJECT = node
all: $(CONTIKI_PROJECT)
PLATFORMS_EXCLUDE = sky nrf52dk native
BOARDS_EXCLUDE = srf06/cc13xx launchpad/cc1310 launchpad/cc1350 sensortag/cc2650 sensortag/cc1350
CONTIKI=../../..
# force Orchestra from command line

View File

@ -1,6 +1,9 @@
CONTIKI_PROJECT = node-sixtop
all: $(CONTIKI_PROJECT)
PLATFORMS_EXCLUDE = sky nrf52dk native
BOARDS_EXCLUDE = srf06/cc13xx launchpad/cc1310 launchpad/cc1350 sensortag/cc2650 sensortag/cc1350
PROJECT_SOURCEFILES += sf-simple.c
CONTIKI=../../..

View File

@ -1,8 +1,13 @@
all: coap-example-server coap-example-client
CONTIKI_PROJECT = coap-example-server coap-example-client
# use target "plugtest-server" explicitly when required
all: $(CONTIKI_PROJECT)
CONTIKI=../..
# Do not try to build on Sky because of code size limitation
PLATFORMS_EXCLUDE = sky
# build RESTful resources
include $(CONTIKI)/Makefile.identify-target
ifeq ($(TARGET),native)

View File

@ -1,6 +1,8 @@
CONTIKI_PROJECT = gpio-hal-example
CONTIKI = ../../..
PLATFORMS_ONLY = srf06-cc26xx cc2538dk openmote-cc2538 zoul
include $(CONTIKI)/Makefile.identify-target
MODULES_REL += $(TARGET)

View File

@ -3,6 +3,8 @@ CONTIKI = ../../..
MODULES_REL += $(TARGET)
PLATFORMS_ONLY = zoul
all: $(CONTIKI_PROJECT)
include $(CONTIKI)/Makefile.include

View File

@ -1,5 +1,8 @@
all: http-example websocket-example
CONTIKI_PROJECT = http-example websocket-example
all: $(CONTIKI_PROJECT)
CONTIKI=../..
MODULES += os/net/app-layer/http-socket
PLATFORMS_EXCLUDE = sky
include $(CONTIKI)/Makefile.include

View File

@ -4,3 +4,10 @@ install:
run:
nodejs example-server.js
# Needed by the build all script
all:
true
clean:
rm -rf node_modules

View File

@ -1,4 +1,11 @@
all: ip64-router
CONTIKI_PROJECT = ip64-router
all: $(CONTIKI_PROJECT)
CONTIKI=../..
# Currently only supported on Orion, the only platform with 802.15.4 + Ethernet
PLATFORMS_ONLY = zoul
BOARDS_ONLY = orion
BOARD = orion
WITH_IP64 = 1
include $(CONTIKI)/Makefile.include

View File

@ -2,6 +2,8 @@ CONTIKI_PROJECT = example-ipso-objects
CONTIKI_SOURCEFILES += serial-protocol.c example-ipso-temperature.c
PLATFORMS_EXCLUDE = sky
all: $(CONTIKI_PROJECT)
MODULES += os/net/app-layer/coap

View File

@ -1,4 +1,5 @@
all: ipv6-hooks
CONTIKI_PROJECT = ipv6-hooks
all: $(CONTIKI_PROJECT)
CONTIKI=../..
include $(CONTIKI)/Makefile.include

View File

@ -1,5 +1,8 @@
CONTIKI_PROJECT = logging
all: $(CONTIKI_PROJECT)
# Does not fit on Sky
PLATFORMS_EXCLUDE = sky
CONTIKI = ../../..
include $(CONTIKI)/Makefile.include

View File

@ -1,5 +1,7 @@
CONTIKI_PROJECT = example-stack-check
all: $(CONTIKI_PROJECT)
PLATFORMS_EXCLUDE = native cooja
CONTIKI = ../../..
include $(CONTIKI)/Makefile.include

View File

@ -1,8 +1,14 @@
CONTIKI_PROJECT = root intermediate sink
all: $(CONTIKI_PROJECT)
# nrf52dk only supports slave mode, i.e., with no routing
PLATFORMS_EXCLUDE = nrf52dk
CONTIKI = ../..
include $(CONTIKI)/Makefile.identify-target
MODULES_REL += $(TARGET)
MODULES += os/net/ipv6/multicast
MAKE_ROUTING = MAKE_ROUTING_RPL_CLASSIC

View File

@ -0,0 +1,2 @@
/* Get some extra RAM */
#define LPM_CONF_MAX_PM 1

View File

@ -3,6 +3,8 @@ all: $(CONTIKI_PROJECT)
CONTIKI = ../..
PLATFORMS_EXCLUDE = nrf52dk
#use this to enable TSCH: MAKE_MAC = MAKE_MAC_TSCH
MAKE_MAC ?= MAKE_MAC_CSMA
MAKE_NET = MAKE_NET_NULLNET

View File

@ -2,5 +2,7 @@ CONTIKI_PROJECT = test-pwm timer-test test-uart
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = cc2538dk openmote-cc2538 zoul
CONTIKI = ../../..
include $(CONTIKI)/Makefile.include

View File

@ -3,5 +3,7 @@ CONTIKI_PROJECT += sha256-test
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = cc2538dk openmote-cc2538 zoul
CONTIKI = ../../../..
include $(CONTIKI)/Makefile.include

View File

@ -1,5 +1,7 @@
all: mqtt-demo
CONTIKI_PROJECT = mqtt-demo
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = cc2538dk openmote-cc2538 zoul
MODULES += os/net/app-layer/mqtt

View File

@ -2,5 +2,7 @@ CONTIKI_PROJECT = ecc-ecdh ecc-sign ecc-verify
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = cc2538dk openmote-cc2538 zoul
CONTIKI = ../../../..
include $(CONTIKI)/Makefile.include

View File

@ -1,5 +1,7 @@
CONTIKI_PROJECT = cc26xx-demo
PLATFORMS_ONLY = srf06-cc26xx
all: $(CONTIKI_PROJECT)
CONTIKI = ../../..

View File

@ -1,4 +1,7 @@
all: cc26xx-web-demo
CONTIKI_PROJECT = cc26xx-web-demo
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = srf06-cc26xx
MODULES_REL += ./resources

View File

@ -1,5 +1,7 @@
CONTIKI_PROJECT = very-sleepy-demo
PLATFORMS_ONLY = srf06-cc26xx
all: $(CONTIKI_PROJECT)
MODULES += os/net/app-layer/coap

View File

@ -1,6 +1,8 @@
CONTIKI=../../../..
CONTIKI_PROJECT = node
PLATFORMS_ONLY = jn516x
TARGET ?= jn516x
JN516x_WITH_DR1175 = 1

View File

@ -1,6 +1,8 @@
CONTIKI_PROJECT = dongle-node
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = jn516x
TARGET ?= jn516x
JN516x_WITH_DONGLE = 1

View File

@ -1,6 +1,8 @@
CONTIKI_PROJECT = dr1175-node
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = jn516x
TARGET ?= jn516x
JN516x_WITH_DR1175 = 1

View File

@ -1,6 +1,8 @@
CONTIKI_PROJECT = dr1199-node
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = jn516x
TARGET ?= jn516x
JN516x_WITH_DR1199 = 1

View File

@ -1,6 +1,8 @@
CONTIKI_PROJECT = node
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = jn516x
TARGET ?= jn516x
CONTIKI=../../../../..

View File

@ -1,5 +1,7 @@
CONTIKI_PROJECT = node
PLATFORMS_ONLY = jn516x
TARGET ?= jn516x
JN516x_WITH_DONGLE = 1

View File

@ -1,5 +1,7 @@
CONTIKI_PROJECT = node
PLATFORMS_ONLY = jn516x
TARGET ?= jn516x
JN516x_WITH_DONGLE = 1

View File

@ -1,5 +1,7 @@
CONTIKI_PROJECT=rpl-border-router
PLATFORMS_ONLY = jn516x
TARGET ?= jn516x
JN516x_WITH_DONGLE = 1

View File

@ -1,5 +1,7 @@
CONTIKI_PROJECT = uart1-test-node
PLATFORMS_ONLY = jn516x
TARGET = jn516x
JN516x_WITH_DR1174 = 1
TARGET_WITH_UART1 = 1

View File

@ -6,5 +6,7 @@ NRF52_WITHOUT_SOFTDEVICE=1
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = nrf52dk
CONTIKI = ../../../..
include $(CONTIKI)/Makefile.include

View File

@ -1,19 +1,19 @@
CONTIKI=../../../..
CONTIKI_PROJECT = coap-client
CONTIKI=../../../../..
ifeq ($(MAKECMDGOALS),)
$(error Please specify whether coap-client or coap-server should be built)
endif
PLATFORMS_ONLY = nrf52dk
ifneq ($(filter coap-client coap-client.flash, $(MAKECMDGOALS)),)
ifeq ($(SERVER_IPV6_EP),)
$(error Please define SERVER_IPV6_EP=<full-coap-IPv6-URI>)
else
$(warning Please define SERVER_IPV6_EP=<full-coap-IPv6-URI>)
$(warning Using default SERVER_IPV6_EP=fd00::1)
SERVER_IPV6_EP=fd00::1
endif
CFLAGS += -DSERVER_IPV6_EP=\"$(SERVER_IPV6_EP)\"
CFLAGS += -DDEVICE_NAME=\"nRF52_DK_CoAP_Client\"
endif
else
CFLAGS += -DDEVICE_NAME=\"nRF52-DK-CoAP-Server\"
endif
CFLAGS += -DCOAP_OBSERVE_CLIENT=1
# automatically build RESTful resources
MODULES_REL += ./resources
@ -23,4 +23,6 @@ MODULES += os/net/app-layer/coap
MAKE_ROUTING = MAKE_ROUTING_NULLROUTING
all: $(CONTIKI_PROJECT)
include $(CONTIKI)/Makefile.include

View File

@ -0,0 +1,22 @@
CONTIKI_PROJECT = coap-server
CONTIKI=../../../../..
PLATFORMS_ONLY = nrf52dk
CFLAGS += -DDEVICE_NAME=\"nRF52-DK-CoAP-Server\"
# automatically build RESTful resources
REST_RESOURCES_DIR = ../resources
REST_RESOURCES_FILES = $(notdir $(shell find $(REST_RESOURCES_DIR) -name '*.c' ! -name 'res-plugtest*'))
PROJECTDIRS += $(REST_RESOURCES_DIR)
PROJECT_SOURCEFILES += $(REST_RESOURCES_FILES)
# REST Engine shall use Erbium CoAP implementation
MODULES += os/net/app-layer/coap
MAKE_ROUTING = MAKE_ROUTING_NULLROUTING
all: $(CONTIKI_PROJECT)
include $(CONTIKI)/Makefile.include

View File

@ -0,0 +1 @@
TARGET = nrf52dk

View File

@ -1,4 +1,7 @@
all: mqtt-demo
CONTIKI_PROJECT = mqtt-demo
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = nrf52dk
MAKE_ROUTING = MAKE_ROUTING_NULLROUTING

View File

@ -1,5 +1,7 @@
CONTIKI_PROJECT = timer-test
PLATFORMS_ONLY = nrf52dk
MAKE_ROUTING = MAKE_ROUTING_NULLROUTING
MAKE_MAC=MAKE_MAC_NULLMAC
NRF52_WITHOUT_SOFTDEVICE=1

View File

@ -15,5 +15,7 @@ MODULES += arch/dev/bme280
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = zoul
CONTIKI = ../../..
include $(CONTIKI)/Makefile.include

View File

@ -2,5 +2,7 @@ CONTIKI_PROJECT = at-master-test
MODULES = os/services/at-master
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = zoul
CONTIKI = ../../../..
include $(CONTIKI)/Makefile.include

View File

@ -25,7 +25,7 @@ To compile and flash run:
````
cd ip64-router
make TARGET=zoul BOARD=router ip64-router.upload
make TARGET=zoul BOARD=orion ip64-router.upload
````
As default we enable the `DHCP` support for autoconfiguration. Just connect to a DHCP-enabled device to obtain an IPv4 IP address and that's it!.

View File

@ -1,4 +1,4 @@
CONTIKI_PROJECT = client ifttt_client
CONTIKI_PROJECT = client ifttt-client
all: $(CONTIKI_PROJECT)
BOARD = orion
@ -7,5 +7,8 @@ MODULES += os/net/app-layer/http-socket
WITH_IP64 = 1
PLATFORMS_ONLY = zoul
BOARDS_ONLY = orion
CONTIKI = ../../../../..
include $(CONTIKI)/Makefile.include

View File

@ -31,6 +31,10 @@
/*---------------------------------------------------------------------------*/
#ifndef PROJECT_CONF_H_
#define PROJECT_CONF_H_
/* Prevent the router from dropping below LPM2 to avoid RAM overflow */
#define LPM_CONF_MAX_PM 0
/*---------------------------------------------------------------------------*/
/* Use either the cc1200_driver for sub-1GHz, or cc2538_rf_driver (default)
* for 2.4GHz built-in radio interface
@ -40,9 +44,10 @@
/* Alternate between ANTENNA_SW_SELECT_SUBGHZ or ANTENNA_SW_SELECT_2_4GHZ */
#define ANTENNA_SW_SELECT_DEF_CONF ANTENNA_SW_SELECT_2_4GHZ
#define UIP_CONF_TCP 1
#define RESOLV_CONF_SUPPORTS_MDNS 0
#define NETSTCK_ROUTING_STATE_SIZE 3
#define NBR_TABLE_CONF_MAX_NEIGHBORS 3
#define NBR_TABLE_CONF_MAX_NEIGHBORS 3
#define HTTP_CLIENT_BUFFER_LEN 256

View File

@ -1,4 +1,5 @@
all: ip64-router
CONTIKI_PROJECT = ip64-router
all: $(CONTIKI_PROJECT)
BOARD = orion
@ -8,4 +9,7 @@ WITH_IP64 = 1
PROJECT_SOURCEFILES += httpd-simple.c
PLATFORMS_ONLY = zoul
BOARDS_ONLY = orion
include $(CONTIKI)/Makefile.include

View File

@ -4,5 +4,8 @@ BOARD ?= remote-revb
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = zoul
BOARDS_ONLY = remote-revb
CONTIKI = ../../../..
include $(CONTIKI)/Makefile.include

View File

@ -4,5 +4,9 @@ TARGET = zoul
all: $(CONTIKI_PROJECT)
PLATFORMS_ONLY = zoul
# Only the Re-Mote is equiped with an RTCC
BOARDS_ONLY = remote-reva remote-revb
CONTIKI = ../../../..
include $(CONTIKI)/Makefile.include

View File

@ -2,6 +2,9 @@ CONTIKI_PROJECT = border-router
all: $(CONTIKI_PROJECT)
CONTIKI = ../..
# The BR is either native or embedded, and in the latter case must support SLIP
PLATFORMS_EXCLUDE = nrf52dk
# Include RPL BR module
MODULES += os/services/rpl-border-router
# Include webserver module

View File

@ -1,4 +1,5 @@
all: udp-client udp-server
CONTIKI_PROJECT = udp-client udp-server
all: $(CONTIKI_PROJECT)
.PHONY: renode
renode: all

View File

@ -1,6 +1,8 @@
CONTIKI_PROJECT = sensniff
CONTIKI = ../..
PLATFORMS_ONLY = cc2538dk openmote-cc2538 zoul srf06-cc26xx jn516x
PROJECT_SOURCEFILES += sensniff-mac.c netstack.c
MODULES_REL += pool $(TARGET)

View File

@ -2,6 +2,9 @@ CONTIKI_PROJECT=slip-radio
all: $(CONTIKI_PROJECT)
MODULES += os/services/slip-cmd
# slip-radio is only intended for platforms with SLIP support
PLATFORMS_EXCLUDE = native nrf52dk
CONTIKI=../..
include $(CONTIKI)/Makefile.identify-target

View File

@ -2,6 +2,10 @@ CONTIKI = ../../..
MODULES += os/storage/antelope os/services/unit-test
all: shell-db
# does not fit on Sky
PLATFORMS_ONLY= cc2538
CONTIKI_PROJECT = shell-db
all: $(CONTIKI_PROJECT)
include $(CONTIKI)/Makefile.include

View File

@ -1,8 +1,11 @@
CONTIKI = ../../..
PLATFORMS_ONLY= cc2538 sky
MODULES += os/services/unit-test
MODULES += os/storage/cfs
all: test-cfs test-coffee example-coffee
CONTIKI_PROJECT = test-cfs test-coffee example-coffee
all: $(CONTIKI_PROJECT)
include $(CONTIKI)/Makefile.include

View File

@ -1256,9 +1256,9 @@ uip_process(uint8_t flag)
uip_ext_bitmap = 0;
#endif /* UIP_CONF_ROUTER */
#if UIP_IPV6_MULTICAST
#if UIP_IPV6_MULTICAST && UIP_CONF_ROUTER
process:
#endif
#endif /* UIP_IPV6_MULTICAST && UIP_CONF_ROUTER */
while(1) {
switch(*uip_next_hdr){

View File

@ -13,12 +13,14 @@ libs/energest/native \
libs/energest/sky \
libs/data-structures/native \
libs/data-structures/sky \
libs/stack-check/sky \
ipso-objects/native \
ipso-objects/native:MAKE_WITH_DTLS=1 \
rpl-udp/sky \
rpl-border-router/native \
rpl-border-router/sky \
slip-radio/sky \
ipv6-hooks/sky \
nullnet/native \
TOOLS=

View File

@ -47,8 +47,8 @@ hello-world/cc2538dk \
rpl-border-router/cc2538dk \
rpl-border-router/cc2538dk:MAKE_ROUTING=MAKE_ROUTING_RPL_CLASSIC \
hello-world/nrf52dk \
platform-specific/nrf52dk/coap-demo/nrf52dk:coap-server \
platform-specific/nrf52dk/coap-demo/nrf52dk:coap-client:SERVER_IPV6_EP=ffff \
platform-specific/nrf52dk/coap-demo/coap-server/nrf52dk \
platform-specific/nrf52dk/coap-demo/coap-client/nrf52dk:SERVER_IPV6_EP=ffff \
platform-specific/nrf52dk/mqtt-demo/nrf52dk \
platform-specific/nrf52dk/blink-hello/nrf52dk \
platform-specific/nrf52dk/timer-test/nrf52dk \

View File

@ -8,11 +8,13 @@ platform-specific/cc2538-common/mqtt-demo/zoul \
platform-specific/cc2538-common/crypto/zoul \
platform-specific/cc2538-common/pka/zoul \
platform-specific/zoul/orion/ip64-router/zoul:BOARD=orion \
platform-specific/zoul/orion/client/zoul:BOARD=orion \
platform-specific/zoul/rev-b/zoul:BOARD=remote-revb \
platform-specific/zoul/at-test/zoul \
platform-specific/zoul/rtcc/zoul \
platform-specific/zoul/zoul \
coap/zoul \
multicast/zoul \
ipso-objects/zoul \
ipso-objects/zoul:MAKE_WITH_DTLS=1 \
hello-world/zoul \
@ -55,7 +57,8 @@ hello-world/openmote-cc2538 \
rpl-udp/openmote-cc2538 \
dev/gpio-hal/openmote-cc2538 \
dev/leds/openmote-cc2538 \
rpl-border-router/openmote-cc2538
rpl-border-router/openmote-cc2538 \
ipv6-hooks/openmote-cc2538 \
TOOLS=

View File

@ -0,0 +1,5 @@
all:
./build.sh all
clean:
./build.sh clean

157
tests/compile-all/build.sh Executable file
View File

@ -0,0 +1,157 @@
#!/bin/bash
# Copyright (c) 2018, University of Bristol
# 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 University 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 UNIVERSITY 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 INSTITUTE 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.
#
# Author: Atis Elsts
#
# This file builds all examples for all platforms, excluding just those
# example and platform combinations that are marked as impossible in the Makefiles
# by using PLATFORMS_EXCLUDE and PLATFORMS_ONLY variables.
#
# This script can also clean all targets. To do that, run:
# ./build.sh clean
#
# To invoke the building for a specific platform, run:
# $ PLATFORMS=zoul ./build.sh
#
if [[ "$PLATFORMS" == "" ]]
then
PLATFORMS=`ls ../../arch/platform`
fi
if [[ "$MAKEFILES" == "" ]]
then
MAKEFILES=`find ../../examples/ -name Makefile`
fi
# Set the make goal the first argument of the script or to "all" if called w/o arguments
if [[ $# -gt 0 ]]
then
GOAL=$1
else
GOAL="all"
fi
# Logging level:
# 0 - quiet
# 1 - normal; prints compilation and link messages only on errors
# 2 - print all compilation and link messages
LOG_LEVEL=1
if [[ $LOG_LEVEL -ge 1 ]]
then
LOG_INFO=echo
CAT_INFO=cat
else
LOG_INFO=true
CAT_INFO=true
fi
if [[ $LOG_LEVEL -ge 2 ]]
then
LOG_DEBUG=echo
CAT_DEBUG=cat
else
LOG_DEBUG=true
CAT_DEBUG=true
fi
NUM_SUCCESS=0
NUM_FAILED=0
FAILED=
for platform in $PLATFORMS
do
# Cooja is not very friendly for command line builds at the moment
if [[ "$platform" == "cooja" ]]
then
$LOG_INFO "Skipping the Cooja platform"
continue
fi
if [[ "$platform" == "srf06-cc26xx" ]]
then
# srf06-cc26xx has multiple boards
BOARDS="srf06/cc26xx srf06/cc13xx launchpad/cc2650 launchpad/cc1350 sensortag/cc2650 sensortag/cc1350"
elif [[ "$platform" == "zoul" ]]
then
# Zoul has multiple boards
BOARDS="remote-reva remote-revb firefly-reva firefly orion"
else
# Other platforms have just a single board
BOARDS="default"
fi
$LOG_INFO "====================================================="
$LOG_INFO "Going through all examples for platform \"$platform\""
$LOG_INFO "====================================================="
for example in $MAKEFILES
do
for board in $BOARDS
do
example_dir=`dirname "$example"`
# Clean it before building
make -C "$example_dir" TARGET=$platform BOARD=$board clean 2>&1 >/dev/null
if [[ "$GOAL" == "clean" ]]
then
# do this just for the first board
break
fi
# Build the goal
$LOG_INFO "make -C \"$example_dir\" -j TARGET=$platform BOARD=$board $GOAL"
if make -C "$example_dir" -j TARGET=$platform BOARD=$board $GOAL 2>&1 >build.log
then
$LOG_INFO "..done"
$CAT_DEBUG build.log
NUM_SUCCESS=$(($NUM_SUCCESS + 1))
else
$LOG_INFO "Failed to build $example_dir for $platform ($board)"
$CAT_DEBUG build.log
NUM_FAILED=$(($NUM_FAILED + 1))
FAILED="$FAILED; $example_dir for $platform ($board)"
fi
# Clean it after building
make -C "$example_dir" TARGET=$platform BOARD=$board clean 2>&1 >/dev/null
done
done
done
# If building, not cleaning, print so statistics
if [[ "$GOAL" == "all" ]]
then
$LOG_INFO "Number of examples skipped or built successfully: $NUM_SUCCESS"
$LOG_INFO "Number of examples that failed to build: $NUM_FAILED"
$LOG_INFO "Failed examples: $FAILED"
fi