MAC layer configuration done from Makefile instead of .h files

This commit is contained in:
Simon Duquennoy 2017-09-08 17:48:29 +02:00
parent a1fbd826ef
commit ffc94f832c
44 changed files with 102 additions and 114 deletions

View File

@ -74,7 +74,36 @@ endif
MODULES += os os/sys os/dev os/lib os/services
# Include IPv6, RPL
# Configure MAC layer
# The different options
MAKE_MAC_NULLMAC = 0
MAKE_MAC_CSMA = 1
MAKE_MAC_TSCH = 2
MAKE_MAC_OTHER = 3
# Make CSMA the default MAC
MAKE_MAC ?= MAKE_MAC_CSMA
ifeq ($(MAKE_MAC),MAKE_MAC_NULLMAC)
CFLAGS += -DMAC_CONF_WITH_NULLMAC=1
endif
ifeq ($(MAKE_MAC),MAKE_MAC_CSMA)
MODULES += os/net/mac/csma
CFLAGS += -DMAC_CONF_WITH_CSMA=1
endif
ifeq ($(MAKE_MAC),MAKE_MAC_TSCH)
MODULES += os/net/mac/tsch
CFLAGS += -DMAC_CONF_WITH_TSCH=1
endif
ifeq ($(MAKE_MAC),MAKE_MAC_OTHER)
CFLAGS += -DMAC_CONF_WITH_OTHER=1
endif
# Configure IPv6, RPL
HAS_STACK = 0

View File

@ -20,7 +20,6 @@ CONTIKI_CPU=$(CONTIKI)/arch/cpu/cc2538
include $(CONTIKI_CPU)/Makefile.cc2538
MODULES += os/net os/net/mac os/net/mac/framer \
os/net/mac/csma os/net/mac/nullmac \
os/storage/cfs
PYTHON = python

View File

@ -77,8 +77,7 @@ CFLAGSNO += -Werror
endif
CFLAGS += $(CFLAGSNO)
MODULES += os/net os/net/mac os/net/mac/framer os/net/ip64-addr \
os/net/mac/csma os/net/mac/nullmac
MODULES += os/net os/net/mac os/net/mac/framer os/net/ip64-addr
## Copied from Makefile.include, since Cooja overrides CFLAGS et al
HAS_STACK = 0

View File

@ -143,8 +143,7 @@ endif
CLEAN += *.jn516x
CLEAN += *.jn516x.bin
MODULES += os/net os/net/mac os/net/mac/framer \
os/net/mac/csma os/net/mac/nullmac
MODULES += os/net os/net/mac os/net/mac/framer
CONTIKI_TARGET_SOURCEFILES += $(ARCH)
CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES)

View File

@ -30,6 +30,9 @@ CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES)
.SUFFIXES:
# Enable nullmac by default
MAKE_MAC ?= MAKE_MAC_NULLMAC
### Define the CPU directory
CONTIKI_CPU=$(CONTIKI)/arch/cpu/native
include $(CONTIKI)/arch/cpu/native/Makefile.native
@ -42,5 +45,4 @@ CURSES_LIBS ?= -lncurses
TARGET_LIBFILES += $(CURSES_LIBS)
MODULES+=os/net os/net/mac os/net/mac/framer os/net/ip64-addr/ \
os/net/mac/csma os/net/mac/nullmac
MODULES+=os/net os/net/mac os/net/mac/framer os/net/ip64-addr/

View File

@ -68,10 +68,6 @@ typedef unsigned short uip_stats_t;
#if NETSTACK_CONF_WITH_IPV6
#ifndef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC nullmac_driver
#endif /* NETSTACK_CONF_MAC */
#ifndef NETSTACK_CONF_RADIO
#define NETSTACK_CONF_RADIO nullradio_driver
#endif /* NETSTACK_CONF_RADIO */

View File

@ -24,9 +24,11 @@ CLEAN += *.nrf52dk
### Unless the example dictates otherwise, build with code size optimisations switched off
SMALL ?= 0
# Custom MAC layer for BLE (ble_ipsp_mac_driver)
MAKE_MAC = MAKE_MAC_OTHER
### Define the CPU directory and pull in the correct CPU makefile.
CONTIKI_CPU=$(CONTIKI)/arch/cpu/nrf52832
include $(CONTIKI_CPU)/Makefile.nrf52832
MODULES += os/net os/net/mac os/net/mac/framer \
os/net/mac/csma os/net/mac/nullmac
MODULES += os/net os/net/mac os/net/mac/framer

View File

@ -56,9 +56,8 @@
* @{
*/
#ifndef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC ble_ipsp_mac_driver
#endif /* NETSTACK_CONF_MAC */
/* Selected in netstack.h because our Makefile sets MAKE_MAC = MAKE_MAC_OTHER */
#define NETSTACK_CONF_OTHER_MAC ble_ipsp_mac_driver
/* 6LoWPAN */
#define SICSLOWPAN_CONF_MAC_MAX_PAYLOAD 1280

View File

@ -27,7 +27,6 @@ CONTIKI_CPU=$(CONTIKI)/arch/cpu/cc2538
include $(CONTIKI_CPU)/Makefile.cc2538
MODULES += os/net os/net/mac os/net/mac/framer \
os/net/mac/csma os/net/mac/nullmac \
os/storage/cfs
PYTHON = python

View File

@ -7,6 +7,5 @@ CONTIKI_TARGET_SOURCEFILES += contiki-sky-platform.c \
include $(CONTIKI)/arch/platform/sky/Makefile.common
MODULES += os/net/mac os/net/mac/framer os/net \
os/net/mac/csma os/net/mac/nullmac \
arch/dev/cc2420 arch/dev/sht11 arch/dev/ds2411 \
os/storage/cfs

View File

@ -32,5 +32,4 @@ SMALL ?= 0
CONTIKI_CPU=$(CONTIKI)/arch/cpu/cc26xx-cc13xx
include $(CONTIKI_CPU)/Makefile.$(CPU_FAMILY)
MODULES += os/net os/net/mac os/net/mac/framer \
os/net/mac/csma os/net/mac/nullmac
MODULES += os/net os/net/mac os/net/mac/framer

View File

@ -46,7 +46,6 @@ CONTIKI_CPU=$(CONTIKI)/arch/cpu/cc2538
include $(CONTIKI_CPU)/Makefile.cc2538
MODULES += os/net os/net/mac os/net/mac/framer \
os/net/mac/csma os/net/mac/nullmac \
arch/dev/cc1200 \
os/storage/cfs

View File

@ -3,6 +3,8 @@ PROJECT_SOURCEFILES += test-sf.c
CONTIKI = ../../../
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"
MODULES += os/net/mac/tsch os/net/mac/tsch/sixtop
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/net/mac/tsch/sixtop
include $(CONTIKI)/Makefile.include

View File

@ -42,8 +42,6 @@
#error "This example is intended to be used for Cooja mote."
#endif /* CONTIKI_TARGET_COOJA */
#define NETSTACK_CONF_MAC tschmac_driver
#define TSCH_CONF_WITH_SIXTOP 1
#define TSCH_LOG_CONF_LEVEL 2
#define TSCH_CONF_AUTOSTART 1

View File

@ -17,6 +17,9 @@ MODULES += $(WITH_WEBSERVER)
CFLAGS += -DWEBSERVER=2
endif
# Custom MAC layer (border_router_mac_driver)
MAKE_MAC = MAKE_MAC_OTHER
# Configure Network stack
CONTIKI_WITH_IPV6 = 1
include $(CONTIKI)/Makefile.include

View File

@ -42,8 +42,8 @@
#define CMD_CONF_OUTPUT border_router_cmd_output
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC border_router_mac_driver
/* Selected in netstack.h because our Makefile sets MAKE_MAC = MAKE_MAC_OTHER */
#define NETSTACK_CONF_OTHER_MAC border_router_mac_driver
/* used by wpcap (see /cpu/native/net/wpcap-drv.c) */
#define SELECT_CALLBACK 1

View File

@ -6,7 +6,7 @@ CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"
WITH_TSCH ?= 0
ifeq ($(WITH_TSCH),1)
MODULES += os/net/mac/tsch
MAKE_MAC = MAKE_MAC_TSCH
endif
CFLAGS += -DWITH_TSCH=$(WITH_TSCH)

View File

@ -49,13 +49,9 @@
#if WITH_TSCH
/*******************************************************/
/********************* Enable TSCH *********************/
/********************* Configure TSCH *********************/
/*******************************************************/
/* Netstack layers */
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC tschmac_driver
/* TSCH and RPL callbacks */
#define RPL_CALLBACK_PARENT_SWITCH tsch_rpl_callback_parent_switch
#define RPL_CALLBACK_NEW_DIO_INTERVAL tsch_rpl_callback_new_dio_interval

View File

@ -5,10 +5,9 @@ PROJECT_SOURCEFILES += sf-simple.c
CONTIKI=../../..
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"
CONTIKI_WITH_IPV6 = 1
MAKE_WITH_SECURITY ?= 0 # force Security from command line
MODULES += os/net/mac/tsch
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/net/mac/tsch/sixtop
ifeq ($(MAKE_WITH_SECURITY),1)

View File

@ -51,18 +51,6 @@
/********************* Enable TSCH *********************/
/*******************************************************/
/* Netstack layers */
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC tschmac_driver
#undef NETSTACK_CONF_RDC
#define NETSTACK_CONF_RDC nordc_driver
#undef NETSTACK_CONF_FRAMER
#define NETSTACK_CONF_FRAMER framer_802154
/* IEEE802.15.4 frame version */
#undef FRAME802154_CONF_VERSION
#define FRAME802154_CONF_VERSION FRAME802154_IEEE802154_2015
/* TSCH and RPL callbacks */
#define RPL_CALLBACK_PARENT_SWITCH tsch_rpl_callback_parent_switch
#define RPL_CALLBACK_NEW_DIO_INTERVAL tsch_rpl_callback_new_dio_interval

View File

@ -9,7 +9,8 @@ MAKE_WITH_ORCHESTRA ?= 0 # force Orchestra from command line
MAKE_WITH_SECURITY ?= 0 # force Security from command line
MAKE_WITH_PERIODIC_ROUTES_PRINT ?= 0 # print #routes periodically, used for regression tests
MODULES += os/net/mac/tsch os/services/shell os/services/orchestra
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/services/shell os/services/orchestra
ifeq ($(MAKE_WITH_ORCHESTRA),1)
CFLAGS += -DWITH_ORCHESTRA=1

View File

@ -58,13 +58,9 @@
#define ORCHESTRA_CONF_RULES { &eb_per_time_source, &unicast_per_neighbor_rpl_ns, &default_common } /* Orchestra in non-storing */
/*******************************************************/
/********************* Enable TSCH *********************/
/********************* Configure TSCH *********************/
/*******************************************************/
/* Netstack layers */
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC tschmac_driver
/* TSCH and RPL callbacks */
#define RPL_CALLBACK_PARENT_SWITCH tsch_rpl_callback_parent_switch
#define RPL_CALLBACK_NEW_DIO_INTERVAL tsch_rpl_callback_new_dio_interval

View File

@ -7,7 +7,7 @@ CONTIKI=../../../../..
CONTIKI_WITH_IPV6 = 1
MODULES += os/net/mac/tsch
MAKE_MAC = MAKE_MAC_TSCH
PROJECTDIRS += .. ../tools
PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"

View File

@ -8,7 +8,8 @@ CONTIKI=../../../../..
CONTIKI_WITH_IPV6 = 1
MODULES += os/net/mac/tsch os/lib/json
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/lib/json
PROJECTDIRS += .. ../tools
PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"

View File

@ -8,7 +8,8 @@ CONTIKI=../../../../..
CONTIKI_WITH_IPV6 = 1
MODULES += os/net/mac/tsch os/lib/json
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/lib/json
PROJECTDIRS += .. ../tools
PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"

View File

@ -8,7 +8,8 @@ CONTIKI=../../../../..
CONTIKI_WITH_IPV6 = 1
MODULES += os/net/mac/tsch os/lib/json
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/lib/json
PROJECTDIRS += .. ../tools
PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"

View File

@ -39,9 +39,6 @@
/* Select a MAC configuration */
#define MAC_CONFIG MAC_CONFIG_TSCH
#undef NETSTACK_CONF_MAC
#undef NETSTACK_CONF_FRAMER
#if MAC_CONFIG == MAC_CONFIG_CSMA
#elif MAC_CONFIG == MAC_CONFIG_TSCH
@ -56,8 +53,6 @@
#define WITH_SECURITY 0
#endif /* WITH_SECURITY */
#define NETSTACK_CONF_MAC tschmac_driver
/* TSCH and RPL callbacks */
#define RPL_CALLBACK_PARENT_SWITCH tsch_rpl_callback_parent_switch
#define RPL_CALLBACK_NEW_DIO_INTERVAL tsch_rpl_callback_new_dio_interval

View File

@ -7,7 +7,7 @@ CONTIKI=../../../../..
CONTIKI_WITH_IPV6 = 1
MODULES += os/net/mac/tsch
MAKE_MAC = MAKE_MAC_TSCH
PROJECTDIRS += .. ../tools
PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"

View File

@ -129,13 +129,7 @@
#define TSCH_CONF_JOIN_SECURED_ONLY 0
#endif /* WITH_TSCH_SECURITY */
#if WITH_TSCH
/* Contiki netstack: MAC */
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC tschmac_driver
#else /* No TSCH, use Csma with ACK (default MAC) */
#if !WITH_TSCH /* No TSCH, use Csma with ACK (default MAC) */
#undef MICROMAC_CONF_CHANNEL
#define MICROMAC_CONF_CHANNEL 26

View File

@ -13,8 +13,9 @@ PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DWITH_COAP
CFLAGS += -DREST=coap_rest_implementation
CFLAGS += -DUIP_CONF_TCP=0
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/net/app-layer/coap
MODULES += os/net/mac/tsch os/services/orchestra os/lib/json
MODULES += os/services/orchestra os/lib/json
all: $(CONTIKI_PROJECT)

View File

@ -15,8 +15,9 @@ PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DWITH_COAP
CFLAGS += -DREST=coap_rest_implementation
CFLAGS += -DUIP_CONF_TCP=0
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/net/app-layer/coap
MODULES += os/net/mac/tsch os/services/orchestra os/lib/json
MODULES += os/services/orchestra os/lib/json
all: $(CONTIKI_PROJECT)
include $(CONTIKI)/Makefile.include

View File

@ -13,8 +13,9 @@ PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DWITH_COAP
CFLAGS += -DREST=coap_rest_implementation
CFLAGS += -DUIP_CONF_TCP=0
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/net/app-layer/coap
MODULES += os/net/mac/tsch os/services/orchestra os/lib/json
MODULES += os/services/orchestra os/lib/json
all: $(CONTIKI_PROJECT)

View File

@ -15,8 +15,9 @@ PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DWITH_COAP
CFLAGS += -DUIP_CONF_TCP=0
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/net/app-layer/coap
MODULES += os/net/mac/tsch os/services/orchestra os/lib/json
MODULES += os/services/orchestra os/lib/json
all: $(CONTIKI_PROJECT)
include $(CONTIKI)/Makefile.include

View File

@ -14,8 +14,9 @@ PROJECT_SOURCEFILES += rpl-tools.c
CFLAGS += -DWITH_COAP
CFLAGS += -DREST=coap_rest_implementation
CFLAGS += -DUIP_CONF_TCP=0
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/net/app-layer/coap
MODULES += os/net/mac/tsch os/services/orchestra os/lib/json
MODULES += os/services/orchestra os/lib/json
all: $(CONTIKI_PROJECT)

View File

@ -17,6 +17,9 @@ endif
### add more source files to the build or define make variables.
-include $(TARGET)/Makefile.$(TARGET)
# Custom MAC layer for sensniff (sensniff_mac_driver)
MAKE_MAC = MAKE_MAC_OTHER
all: $(CONTIKI_PROJECT)
CONTIKI = ../..

View File

@ -32,8 +32,8 @@
#ifndef PROJECT_CONF_H_
#define PROJECT_CONF_H_
/*---------------------------------------------------------------------------*/
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC sensniff_mac_driver
/* Selected in netstack.h because our Makefile sets MAKE_MAC = MAKE_MAC_OTHER */
#define NETSTACK_CONF_OTHER_MAC sensniff_mac_driver
/*---------------------------------------------------------------------------*/
/* Include platform-specific header */
#include "target-conf.h"

View File

@ -54,15 +54,6 @@
/* #define NETSTACK_CONF_FRAMER framer_802154 */
#endif /* NETSTACK_CONF_FRAMER */
/* NETSTACK_CONF_MAC specifies the Medium Access Control (MAC)
layer. The nullmac_driver does not provide any MAC
functionality. The csma_driver is the default CSMA MAC layer, but
is not compatible with all radios. */
#ifndef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC csma_driver
/* #define NETSTACK_CONF_MAC csma_driver */
#endif /* NETSTACK_CONF_MAC */
/* NETSTACK_CONF_NETWORK specifies the network layer and can be either
sicslowpan_driver, for IPv6 networking. */
#ifndef NETSTACK_CONF_NETWORK

View File

@ -51,13 +51,17 @@
#endif /* NETSTACK_CONF_NETWORK */
#endif /* NETSTACK_NETWORK */
#ifndef NETSTACK_MAC
#ifdef NETSTACK_CONF_MAC
#define NETSTACK_MAC NETSTACK_CONF_MAC
#else /* NETSTACK_CONF_MAC */
/* MAC layer configuration. The MAC layer is configured through the Makefile,
via the flag MAKE_MAC */
#if MAC_CONF_WITH_NULLMAC
#define NETSTACK_MAC nullmac_driver
#elif MAC_CONF_WITH_CSMA
#define NETSTACK_MAC csma_driver
#endif /* NETSTACK_CONF_MAC */
#endif /* NETSTACK_MAC */
#elif MAC_CONF_WITH_TSCH
#define NETSTACK_MAC tschmac_driver
#elif MAC_CONF_WITH_OTHER
#define NETSTACK_MAC NETSTACK_CONF_OTHER_MAC
#endif
#ifndef NETSTACK_RADIO
#ifdef NETSTACK_CONF_RADIO

View File

@ -1,10 +1,11 @@
all:
CFLAGS += -D PROJECT_CONF_H=\"project-conf.h\"
MODULES += os/net/mac/tsch os/net/mac/tsch/sixtop os/services/unit-test
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/net/mac/tsch/sixtop os/services/unit-test
PROJECT_SOURCEFILES += common.c
CONTIKI = ../../..
CONTIKI_WITH_IPV6 = 1
MAKE_MAC = MAKE_MAC_TSCH
include $(CONTIKI)/Makefile.include

View File

@ -45,9 +45,6 @@
#undef TSCH_CONF_AUTOSTART
#define TSCH_CONF_AUTOSTART 1
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC tschmac_driver
#undef TSCH_CONF_WITH_SIXTOP
#define TSCH_CONF_WITH_SIXTOP 1

View File

@ -1,6 +1,7 @@
all: test-panid-handling test-tcsh-create-packet
MODULES += os/net/mac/tsch os/services/unit-test
MAKE_MAC = MAKE_MAC_TSCH
MODULES += os/services/unit-test
CFLAGS += -D PROJECT_CONF_H=\"project-conf.h\"
WITH_TSCH ?= 0

View File

@ -32,9 +32,6 @@
#ifndef _PROJECT_TSCH_CONF_H
#define _PROJECT_TSCH_CONF_H
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC tschmac_driver
#if WITH_SECURITY_ON
#define TEST_CONFIG_TYPE SECURITY_ON

View File

@ -1,4 +1,4 @@
all:
all:
CFLAGS += -D PROJECT_CONF_H=\"project-conf.h\"
APPS += unit-test
@ -11,5 +11,6 @@ CFLAGS += -DSIXP_MSG_API_TEST=1
endif
CONTIKI = ../../..
CONTIKI_WITH_IPV6 = 1
# MAC layer is test_mac_driver
MAKE_MAC = MAKE_MAC_OTHER
include $(CONTIKI)/Makefile.include

View File

@ -65,16 +65,8 @@
#undef IEEE802154_CONF_PANID
#define IEEE802154_CONF_PANID 0xabcd
#undef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC test_mac_driver
#undef NETSTACK_CONF_RDC
#define NETSTACK_CONF_RDC nordc_driver
#undef NETSTACK_CONF_FRAMER
#define NETSTACK_CONF_FRAMER framer_802154
#undef FRAME802154_CONF_VERSION
#define FRAME802154_CONF_VERSION FRAME802154_IEEE802154_2015
/* Custom MAC layer, enabled via MAKE_MAC = MAKE_MAC_OTHER in the Makefile */
#undef NETSTACK_CONF_OTHER_MAC
#define NETSTACK_CONF_OTHER_MAC test_mac_driver
#endif /* __PROJECT_CONF_H__ */