partially-working picoTCP integration

This commit is contained in:
Joseph Henry
2016-10-14 14:03:06 -07:00
parent d9033ba2f3
commit 8514c6bcab
164 changed files with 47767 additions and 56 deletions

View File

@@ -25,6 +25,7 @@ ONE_IDTOOL = $(BUILD)/$(ONE_IDTOOL_NAME)
LWIP_LIB = $(BUILD)/$(LWIP_LIB_NAME)
#
LWIP_DIR = ext/lwip
PICOTCP_DIR = ext/picotcp
# Automagically pick clang or gcc, with preference for clang
# This is only done if we have not overridden these with an environment or CLI variable
@@ -81,14 +82,34 @@ INCLUDES+= -Iext \
-Isrc \
-I$(LWIP_DIR)/src/include \
-I$(LWIP_DIR)/src/include/ipv4 \
-I$(LWIP_DIR)/src/include/ipv6
-I$(LWIP_DIR)/src/include/ipv6 \
-I$(PICOTCP_DIR)/include \
-I$(PICOTCP_DIR)/build/include
# lwIP
# lwIP debug
ifeq ($(SDK_LWIP_DEBUG),1)
LWIP_FLAGS+=SDK_LWIP_DEBUG=1
endif
# lwIP
ifeq ($(SDK_LWIP),1)
STACK_FLAGS+=-DSDK_LWIP
endif
# picoTCP
ifeq ($(SDK_PICOTCP),1)
STACK_FLAGS+=-DSDK_PICOTCP
endif
# jip
ifeq ($(SDK_JIP),1)
STACK_FLAGS+=-DSDK_JIP
endif
# Debug output for the SDK
# Specific levels can be controlled in src/SDK_Debug.h
ifeq ($(SDK_DEBUG),1)
@@ -114,6 +135,15 @@ remove_only_intermediates:
lwip:
-make -f make-liblwip.mk $(LWIP_FLAGS)
pico:
mkdir -p build
cd ext/picotcp; make lib ARCH=shared IPV4=1 IPV6=1
$(CC) -g -nostartfiles -shared -o ext/picotcp/build/lib/libpicotcp.so ext/picotcp/build/lib/*.o ext/picotcp/build/modules/*.o
cp ext/picotcp/build/lib/libpicotcp.so build/libpicotcp.so
jip:
-make -f make-jip.mk $(JIP_FLAGS)
# --------- LINUX ----------
# Build everything
@@ -132,8 +162,8 @@ linux_intercept:
cd src ; gcc $(DEFS) $(INCLUDES) -g -O2 -Wall -std=c99 -fPIC -DVERBOSE -D_GNU_SOURCE -DSDK_INTERCEPT -nostdlib -nostdlib -shared -o ../$(INTERCEPT) SDK_Sockets.c SDK_Intercept.c SDK_RPC.c -ldl
# Build only the SDK service
linux_sdk_service: lwip $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(DEFS) $(INCLUDES) -DSDK -DZT_ONE_NO_ROOT_CHECK -o $(SDK_SERVICE) $(OBJS) $(ZT1)/service/OneService.cpp src/SDK_EthernetTap.cpp src/SDK_Proxy.cpp $(ZT1)/one.cpp src/SDK_RPC.c $(LDLIBS) -ldl
linux_sdk_service: $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(STACK_FLAGS) $(DEFS) $(INCLUDES) -DSDK -DZT_ONE_NO_ROOT_CHECK -o $(SDK_SERVICE) $(OBJS) $(ZT1)/service/OneService.cpp src/SDK_EthernetTap.cpp src/SDK_Proxy.cpp $(ZT1)/one.cpp src/SDK_RPC.c $(LDLIBS) -ldl
ln -sf $(SDK_SERVICE_NAME) $(BUILD)/zerotier-cli
ln -sf $(SDK_SERVICE_NAME) $(BUILD)/zerotier-idtool
@@ -245,7 +275,7 @@ clean_basic:
-rm -rf $(INT)/Unity3D/Assets/Plugins/*
-rm -rf zerotier-cli zerotier-idtool
-find . -type f \( -name $(ONE_SERVICE_NAME) -o -name $(SDK_SERVICE_NAME) \) -delete
-find . -type f \( -name '*.o' -o -name '*.so' -o -name '*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' \) -delete
-find . -type f \( -name '*.a' -o -name '*.o' -o -name '*.so' -o -name '*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' \) -delete
clean_thorough: clean_basic
-rm -rf .depend