CFLAGS += -DCONTIKI=1 -DCONTIKI_TARGET_$(TARGET_UPPERCASE)=1
在Contiki的Makefile中有这么一句 其中<-DCONTIKI=1>的意思是在Makefile执行时为编译定义一个宏 相当于
#define CONTIKI 1
# Include IPv6, IPv4, and/or Rime
HAS_STACK = 0
ifeq ($(CONTIKI_WITH_IPV4),1)
HAS_STACK = 1
CFLAGS += -DNETSTACK_CONF_WITH_IPV4=1
MODULES += core/net/ipv4 core/net/ip
endif
ifeq ($(CONTIKI_WITH_RIME),1)
HAS_STACK = 1
CFLAGS += -DNETSTACK_CONF_WITH_RIME=1
MODULES += core/net/rime
endif
在Makefile中有判断宏CONTIKI_WITH_IPV4和CONTIKI_WITH_IPV6 ,CONTIKI_WITH_RIME的过程,不过在源码中也存在这三个宏的定义。如果没有定义协议栈那么IPV6将会是默认的协议栈。