Added MAKE_ROUTING make variable for cleaner routing protocol selection

This commit is contained in:
Simon Duquennoy 2017-10-11 20:58:15 +02:00
parent 78dd665db6
commit 41967732b1
12 changed files with 78 additions and 46 deletions

View File

@ -118,7 +118,7 @@ ifeq ($(MAKE_MAC),MAKE_MAC_OTHER)
CFLAGS += -DMAC_CONF_WITH_OTHER=1
endif
# Configure IPv6, RPL
# Configure Network layer
MAKE_NET_NULLNET = 0
MAKE_NET_IPV6 = 1
@ -133,8 +133,6 @@ endif
ifeq ($(MAKE_NET),MAKE_NET_IPV6)
CFLAGS += -DNETSTACK_CONF_WITH_IPV6=1
CONTIKI_WITH_RPL ?= 1
CONTIKI_WITH_RPL_LITE ?= 1
MODULES += os/net/ipv6
else
CFLAGS += -DNETSTACK_CONF_WITH_NULLNET=1
@ -145,22 +143,34 @@ ifeq ($(MAKE_NET),MAKE_NET_OTHER)
CFLAGS += -DNETSTACK_CONF_WITH_OTHER=1
endif
ifeq ($(CONTIKI_WITH_RPL),1)
CFLAGS += -DUIP_CONF_IPV6_RPL=1
ifeq ($(CONTIKI_WITH_RPL_LITE),1)
CFLAGS += -DUIP_CONF_IPV6_RPL_LITE=1
MODULES += os/net/rpl-lite
else
MODULES += os/net/rpl-classic
endif
else
CFLAGS += -DUIP_CONF_IPV6_RPL=0
endif
ifeq ($(WITH_IP64),1)
MODULES += os/services/ip64
endif
# Configure Routing protocol
MAKE_ROUTING_NONE = 0
MAKE_ROUTING_RPL_CLASSIC = 1
MAKE_ROUTING_RPL_LITE = 2
# Default routing protocol: RPL for IPv6, None otherwise
ifeq ($(MAKE_NET),MAKE_NET_IPV6)
MAKE_ROUTING ?= MAKE_ROUTING_RPL_LITE
else
MAKE_ROUTING ?= MAKE_ROUTING_NONE
endif
ifeq ($(MAKE_ROUTING),MAKE_ROUTING_RPL_CLASSIC)
CFLAGS += -DUIP_CONF_IPV6_RPL=1
CFLAGS += -DUIP_CONF_IPV6_RPL_CLASSIC=1
MODULES += os/net/rpl-classic
else ifeq ($(MAKE_ROUTING),MAKE_ROUTING_RPL_LITE)
CFLAGS += -DUIP_CONF_IPV6_RPL=1
CFLAGS += -DUIP_CONF_IPV6_RPL_LITE=1
MODULES += os/net/rpl-lite
else
CFLAGS += -DUIP_CONF_IPV6_RPL=0
endif
ifdef MODULES
UNIQUEMODULES = $(call uniq,$(MODULES))
MODULEDIRS = ${wildcard ${addprefix $(CONTIKI)/, $(UNIQUEMODULES)}}
@ -363,8 +373,7 @@ viewconf:
@echo "##### \"BOARD\": _________________________________ $(BOARD)"
@echo "##### \"MAKE_MAC\": ______________________________ $(MAKE_MAC)"
@echo "##### \"MAKE_NET\": ______________________________ $(MAKE_NET)"
@echo "##### \"CONTIKI_WITH_RPL\": ______________________ $(CONTIKI_WITH_RPL)"
@echo "##### \"CONTIKI_WITH_RPL_LITE\": _________________ $(CONTIKI_WITH_RPL_LITE)"
@echo "##### \"MAKE_ROUTING\": __________________________ $(MAKE_ROUTING)"
@echo "----------------- C variables: -----------------"
$(Q)$(CC) $(CFLAGS) -E $(CONTIKI)/tools/viewconf.c | grep \#\#\#\#\#
@echo "------------------------------------------------"

View File

@ -44,6 +44,8 @@ CONTIKI_APP_OBJ = $(CONTIKI_APP).co
MODULES += os/net os/net/mac os/net/mac/framer
## Copied from Makefile.include, since Cooja overrides CFLAGS et al
# Configure Network layer
MAKE_NET_NULLNET = 0
MAKE_NET_IPV6 = 1
MAKE_NET_OTHER = 2
@ -51,26 +53,48 @@ MAKE_NET_OTHER = 2
# Make IPv6 the default stack
MAKE_NET ?= MAKE_NET_IPV6
ifeq ($(MAKE_NET),MAKE_NET_IPV6)
CFLAGS += -DNETSTACK_CONF_WITH_IPV6=1
CONTIKI_WITH_RPL ?= 1
CONTIKI_WITH_RPL_LITE ?= 1
MODULES += os/net/ipv6
COOJA_NET = uip-driver.c
else
COOJA_NET =
ifeq ($(MAKE_NET),MAKE_NET_NULLNET)
CFLAGS += -DNETSTACK_CONF_WITH_NULLNET=1
endif
ifeq ($(CONTIKI_WITH_RPL),1)
CFLAGS += -DUIP_CONF_IPV6_RPL=1
ifeq ($(CONTIKI_WITH_RPL_LITE),1)
CFLAGS += -DUIP_CONF_IPV6_RPL_LITE=1
MODULES += os/net/rpl-lite
else
MODULES += os/net/rpl
endif
ifeq ($(MAKE_NET),MAKE_NET_IPV6)
CFLAGS += -DNETSTACK_CONF_WITH_IPV6=1
MODULES += os/net/ipv6
else
CFLAGS += -DUIP_CONF_IPV6_RPL=0
CFLAGS += -DNETSTACK_CONF_WITH_NULLNET=1
MODULES += os/net/nullnet
endif
ifeq ($(MAKE_NET),MAKE_NET_OTHER)
CFLAGS += -DNETSTACK_CONF_WITH_OTHER=1
endif
ifeq ($(WITH_IP64),1)
MODULES += os/services/ip64
endif
# Configure Routing protocol
MAKE_ROUTING_NONE = 0
MAKE_ROUTING_RPL_CLASSIC = 1
MAKE_ROUTING_RPL_LITE = 2
# Default routing protocol: RPL for IPv6, None otherwise
ifeq ($(MAKE_NET),MAKE_NET_IPV6)
MAKE_ROUTING ?= MAKE_ROUTING_RPL_LITE
else
MAKE_ROUTING ?= MAKE_ROUTING_NONE
endif
ifeq ($(MAKE_ROUTING),MAKE_ROUTING_RPL_CLASSIC)
CFLAGS += -DUIP_CONF_IPV6_RPL=1
CFLAGS += -DUIP_CONF_IPV6_RPL_CLASSIC=1
MODULES += os/net/rpl-classic
else ifeq ($(MAKE_ROUTING),MAKE_ROUTING_RPL_LITE)
CFLAGS += -DUIP_CONF_IPV6_RPL=1
CFLAGS += -DUIP_CONF_IPV6_RPL_LITE=1
MODULES += os/net/rpl-lite
else
CFLAGS += -DUIP_CONF_IPV6_RPL=0
endif
### COOJA platform sources

View File

@ -4,6 +4,7 @@ PROJECT_SOURCEFILES += test-sf.c
CONTIKI = ../../../
MAKE_MAC = MAKE_MAC_TSCH
MAKE_ROUTING = MAKE_ROUTING_NONE
MODULES += os/net/mac/tsch/sixtop
include $(CONTIKI)/Makefile.include

View File

@ -31,8 +31,6 @@
#ifndef _PROJECT_CONF_H_
#define _PROJECT_CONF_H_
#define CONTIKI_WITH_RPL 0
#define UIP_CONF_IPV6_RPL 0
#define UIP_CONF_ND6_SEND_RA 0
#if CONTIKI_TARGET_COOJA

View File

@ -2,5 +2,5 @@ all: http-example
CONTIKI=../..
MODULES += os/net/app-layer/http-socket
CONTIKI_WITH_RPL_LITE = 0
MAKE_ROUTING = MAKE_ROUTING_RPL_CLASSIC
include $(CONTIKI)/Makefile.include

View File

@ -5,5 +5,5 @@ CONTIKI = ../../..
MODULES += os/net/ipv6/multicast
CONTIKI_WITH_RPL_LITE = 1
MAKE_ROUTING = MAKE_ROUTING_RPL_CLASSIC
include $(CONTIKI)/Makefile.include

View File

@ -18,5 +18,5 @@ endif
# custom net layer, but with IPv6 enabled
MAKE_NET = MAKE_NET_IPV6
CONTIKI_WITH_RPL = 0
MAKE_ROUTING = MAKE_ROUTING_NONE
include $(CONTIKI)/Makefile.include

View File

@ -1,9 +1,9 @@
CONTIKI_PROJECT = blink-hello
CONTIKI_WITH_RPL=0
MAKE_ROUTING = MAKE_ROUTING_NONE
NRF52_WITHOUT_SOFTDEVICE=1
all: $(CONTIKI_PROJECT)
all: $(CONTIKI_PROJECT)
CONTIKI = ../../../..
include $(CONTIKI)/Makefile.include

View File

@ -25,6 +25,6 @@ PROJECT_SOURCEFILES += $(REST_RESOURCES_FILES)
# REST Engine shall use Erbium CoAP implementation
MODULES += os/net/app-layer/coap
CONTIKI_WITH_RPL = 0
MAKE_ROUTING = MAKE_ROUTING_NONE
include $(CONTIKI)/Makefile.include

View File

@ -1,6 +1,6 @@
all: mqtt-demo
CONTIKI_WITH_RPL = 0
MAKE_ROUTING = MAKE_ROUTING_NONE
MODULES += os/net/app-layer/mqtt

View File

@ -1,9 +1,9 @@
CONTIKI_PROJECT = timer-test
CONTIKI_WITH_RPL=0
MAKE_ROUTING = MAKE_ROUTING_NONE
NRF52_WITHOUT_SOFTDEVICE=1
all: $(CONTIKI_PROJECT)
all: $(CONTIKI_PROJECT)
CONTIKI = ../../../..
include $(CONTIKI)/Makefile.include

View File

@ -1,5 +1,5 @@
all: sender-node receiver-node root-node
CONTIKI=../../..
CONTIKI_WITH_RPL_LITE = 0
MAKE_ROUTING = MAKE_ROUTING_RPL_CLASSIC
include $(CONTIKI)/Makefile.include