VERSION = 6.2.0

DEPENDENT_MODULES = lib_ethernet(>=4.0.1) lib_otpinfo(>=2.2.1) lib_random(>=1.3.0) lib_xassert(>=4.3.1) lib_logging(>=3.3.1)

# Build flags
MODULE_XCC_FLAGS = $(XCC_FLAGS) -g -O3

# Source directories
# Note: only includes IPv4 of lwIP
LWIP_SOURCE_DIRS = src src/xtcp_lwip/api src/xtcp_lwip/core src/xtcp_lwip/core/ipv4 src/xtcp_lwip/netif src/xtcp_lwip/xcore/src
UIP_SOURCE_DIRS  = src src/xtcp_uip src/xtcp_uip/autoip src/xtcp_uip/dhcpc src/xtcp_uip/igmp

# Include directories
LWIP_INCLUDE_DIRS = src src/xtcp_lwip/include src/xtcp_lwip/xcore/include

# Exclude files
UIP_EXCLUDE_FILES  += uip-fw.c uip-neighbor.c xtcp_lwip.xc xtcp_lwip_includes.h
LWIP_EXCLUDE_FILES += xtcp_uip.xc xtcp_uip_includes.h

# Provide the conditional defines needed for optional includes
OPTIONAL_HEADERS += xtcp_client_conf.h xtcp_conf.h

ifneq (,$(findstring XTCP_STACK_LWIP,$(XCC_FLAGS)))
SOURCE_DIRS   += $(LWIP_SOURCE_DIRS)
INCLUDE_DIRS  += $(LWIP_INCLUDE_DIRS) api
EXCLUDE_FILES += $(LWIP_EXCLUDE_FILES)

else ifneq (,$(findstring XTCP_STACK_UIP,$(XCC_FLAGS)))
# LWIP files added to build pbuf.c to support common xtcp_shared.xc 
SOURCE_DIRS   += $(UIP_SOURCE_DIRS) src/xtcp_lwip/core src/xtcp_lwip/core/ipv4 src/xtcp_lwip/netif src/xtcp_lwip/xcore/src
INCLUDE_DIRS  += $(UIP_SOURCE_DIRS) api src/xtcp_lwip/include src/xtcp_lwip/xcore/include
EXCLUDE_FILES += $(UIP_EXCLUDE_FILES)

else
$(error Must define either XTCP_STACK_UIP or XTCP_STACK_LWIP in XCC_FLAGS

endif
