diff --git a/include/lwipopts.h b/include/lwipopts.h index 532dff0..c720a52 100644 --- a/include/lwipopts.h +++ b/include/lwipopts.h @@ -48,7 +48,6 @@ #if defined(LIBZT_IPV6) #define LWIP_IPV6 1 #define LWIP_IPV4 0 - #endif #if defined(LIBZT_IPV4) #define LWIP_IPV4 1 diff --git a/make-liblwip.mk b/make-liblwip.mk index f2079d4..a12b5a4 100644 --- a/make-liblwip.mk +++ b/make-liblwip.mk @@ -44,11 +44,9 @@ ifeq ($(origin CCX),default) CCX=$(shell if [ -e /usr/bin/clang++ ]; then echo clang++; else echo g++; fi) endif -CFLAGS=-O3 -g -Wall -DIPv4 -DIPv6 -fPIC +CFLAGS=-O3 -g -Wall -fPIC -CFLAGS:=$(CFLAGS) \ - -I$(LWIPDIR)/include -I$(LWIPARCH)/include -I$(LWIPDIR)/include/ipv4 \ - -I$(LWIPDIR) -I. -Iext -Iinclude +CFLAGS:=$(CFLAGS) -I$(LWIPDIR)/include -I$(LWIPARCH)/include -I$(LWIPDIR) -I. -Iext -Iinclude # COREFILES, CORE4FILES: The minimum set of files needed for lwIP. COREFILES=$(LWIPDIR)/core/init.c \ @@ -68,7 +66,6 @@ COREFILES=$(LWIPDIR)/core/init.c \ $(LWIPDIR)/core/tcp_out.c \ $(LWIPDIR)/core/timeouts.c \ $(LWIPDIR)/core/udp.c - CORE4FILES=$(LWIPDIR)/core/ipv4/autoip.c \ $(LWIPDIR)/core/ipv4/dhcp.c \ $(LWIPDIR)/core/ipv4/etharp.c \ @@ -77,7 +74,6 @@ CORE4FILES=$(LWIPDIR)/core/ipv4/autoip.c \ $(LWIPDIR)/core/ipv4/ip4_frag.c \ $(LWIPDIR)/core/ipv4/ip4.c \ $(LWIPDIR)/core/ipv4/ip4_addr.c - CORE6FILES=$(LWIPDIR)/core/ipv6/ethip6.c \ $(LWIPDIR)/core/ipv6/icmp6.c \ $(LWIPDIR)/core/ipv6/inet6.c \ @@ -87,7 +83,6 @@ CORE6FILES=$(LWIPDIR)/core/ipv6/ethip6.c \ $(LWIPDIR)/core/ipv6/mld6.c \ $(LWIPDIR)/core/ipv6/dhcp6.c \ $(LWIPDIR)/core/ipv6/nd6.c - # APIFILES: The files which implement the sequential and socket APIs. APIFILES=$(LWIPDIR)/api/api_lib.c \ $(LWIPDIR)/api/api_msg.c \ @@ -97,30 +92,22 @@ APIFILES=$(LWIPDIR)/api/api_lib.c \ $(LWIPDIR)/api/netifapi.c \ $(LWIPDIR)/api/sockets.c \ $(LWIPDIR)/api/tcpip.c - - # NETIFFILES: Files implementing various generic network interface functions NETIFFILES=$(LWIPDIR)/netif/ethernet.c - -# -# $(LWIPDIR)/netif/slipif.c - # SIXLOWPAN: 6LoWPAN SIXLOWPAN=$(LWIPDIR)/netif/lowpan6.c \ - # ARCHFILES: Architecture specific files. ARCHFILES=$(wildcard $(LWIPARCH)/*.c $(LWIPARCH)tapif.c $(LWIPARCH)/netif/list.c $(LWIPARCH)/netif/tcpdump.c) - # LWIPFILES: All the above. LWIPFILES=$(COREFILES) $(APIFILES) $(NETIFFILES) $(ARCHFILES) -ifeq ($(IPV4),1) +ifeq ($(LIBZT_IPV4),1) LWIPFILES+=$(CORE4FILES) - CFLAGS+=-DLIBZT_IPV4=1 + CFLAGS+=-DLIBZT_IPV4=1 -DLWIP_IPV4 -DDLWIP_IPV6=0 -DIPv4 endif -ifeq ($(IPV6),1) +ifeq ($(LIBZT_IPV6),1) LWIPFILES+=$(CORE6FILES) - CFLAGS+=-DLIBZT_IPV6=1 + CFLAGS+=-DLIBZT_IPV6=1 -DLWIP_IPV6 -DLWIP_IPV4=0 -DIPv6 endif LWIPFILESW=$(wildcard $(LWIPFILES)) @@ -136,7 +123,6 @@ clean: rm -f *.o *.s .depend* *.core core depend dep: .depend - include .depend liblwip.a: $(LWIPOBJS) diff --git a/make-linux.mk b/make-linux.mk index 811229c..5acb952 100644 --- a/make-linux.mk +++ b/make-linux.mk @@ -121,15 +121,15 @@ ifeq ($(STACK_PICO),1) ifeq ($(LIBZT_IPV4)$(LIBZT_IPV6),1) ifeq ($(LIBZT_IPV4),1) CXXFLAGS+=-DLIBZT_IPV4 -STACK_FLAGS+=-IPV4=1 -IPv4=1 +STACK_FLAGS+=IPV4=1 endif ifeq ($(LIBZT_IPV6),1) CXXFLAGS+=-DLIBZT_IPV6 -STACK_FLAGS+=-IPV6=1 -IPv6=1 +STACK_FLAGS+=IPV6=1 endif else CXXFLAGS+=-DLIBZT_IPV4 -DLIBZT_IPV6 -STACK_FLAGS+=-IPV6=1 -IPv6=1 -IPV6=1 -IPv6=1 +STACK_FLAGS+=IPV6=1 IPV4=1 endif endif @@ -137,21 +137,20 @@ endif ifeq ($(STACK_LWIP),1) ifeq ($(LIBZT_IPV4)$(LIBZT_IPV6),1) ifeq ($(LIBZT_IPV4),1) -CXXFLAGS+=-DLIBZT_IPV4 -STACK_FLAGS+=IPV4=1 IPv4=1 +CXXFLAGS+=-DLIBZT_IPV4 -DLWIP_IPV4=1 +STACK_FLAGS+=LIBZT_IPV4=1 endif ifeq ($(LIBZT_IPV6),1) -CXXFLAGS+=-DLIBZT_IPV6 -STACK_FLAGS+=IPV6=1 IPv6=1 +CXXFLAGS+=-DLIBZT_IPV6 -DLWIP_IPV6=1 +STACK_FLAGS+=LIBZT_IPV6=1 endif else -CXXFLAGS+=-DLIBZT_IPV4 -STACK_FLAGS+=IPV4=1 IPv4=1 +CXXFLAGS+=-DLIBZT_IPV4 -DLWIP_IPV4=1 +STACK_FLAGS+=LIBZT_IPV4=1 endif endif LIBZT_FILES:=src/SocketTap.cpp src/libzt.cpp src/Utilities.cpp -LIBZT_OBJS+=SocketTap.o libzt.o Utilities.o ifeq ($(STACK_PICO),1) CXXFLAGS+=-DSTACK_PICO @@ -159,7 +158,6 @@ STACK_LIB:=libpicotcp.a STACK_DIR:=ext/picotcp STACK_LIB:=$(STACK_DIR)/build/lib/$(STACK_LIB) STACK_DRIVER_FILES:=src/picoTCP.cpp -STACK_DRIVER_OBJS+=picoTCP.o INCLUDES+=-Iext/picotcp/include -Iext/picotcp/build/include endif @@ -167,7 +165,6 @@ ifeq ($(STACK_LWIP),1) STACK_DRIVER_FLAGS+=-DLWIP_PREFIX_BYTEORDER_FUNCS CXXFLAGS+=-DSTACK_LWIP STACK_DRIVER_FILES:=src/lwIP.cpp -STACK_DRIVER_OBJS+=lwIP.o LWIPARCH=$(CONTRIBDIR)/ports/unix LWIPDIR=ext/lwip/src INCLUDES+=-Iext/lwip/src/include/lwip \ @@ -200,6 +197,7 @@ picotcp: cd $(STACK_DIR); make lib ARCH=shared IPV4=1 IPV6=1 lwip: + echo $(STACK_FLAGSs) -make -f make-liblwip.mk liblwip.a $(STACK_FLAGS) ############################################################################## @@ -211,8 +209,8 @@ static_lib: picotcp $(ZTO_OBJS) @mkdir -p $(BUILD) obj $(CXX) $(CXXFLAGS) $(LIBZT_FILES) $(STACK_DRIVER_FILES) -c mv *.o obj - mv ext/picotcp/build/lib/*.o obj - mv ext/picotcp/build/modules/*.o obj + #mv ext/picotcp/build/lib/*.o obj + #mv ext/picotcp/build/modules/*.o obj ar rcs -o $(STATIC_LIB) obj/*.o $(STACK_LIB) endif ifeq ($(STACK_LWIP),1) @@ -258,16 +256,10 @@ tests: $(UNIT_TEST_OBJ_FILES) ## Misc ## ############################################################################## -# Cleans only current $(OSTYPE) clean: -rm -rf $(BUILD)/* -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 everything -nuke: - -rm -rf $(BUILD)/* - -find . -type f \( -name '*.o' -o -name '*.so' -o -name '*.a' -o -name '*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' \) -delete - check: -./check.sh $(PICO_LIB) -./check.sh $(STATIC_LIB) diff --git a/make-mac.mk b/make-mac.mk index f2cd99b..22c6d11 100644 --- a/make-mac.mk +++ b/make-mac.mk @@ -119,37 +119,37 @@ ifeq ($(STACK_PICO),1) ifeq ($(LIBZT_IPV4)$(LIBZT_IPV6),1) ifeq ($(LIBZT_IPV4),1) CXXFLAGS+=-DLIBZT_IPV4 -STACK_FLAGS+=-IPV4=1 -IPv4=1 +STACK_FLAGS+=IPV4=1 endif ifeq ($(LIBZT_IPV6),1) CXXFLAGS+=-DLIBZT_IPV6 -STACK_FLAGS+=-IPV6=1 -IPv6=1 +STACK_FLAGS+=IPV6=1 endif else CXXFLAGS+=-DLIBZT_IPV4 -DLIBZT_IPV6 -STACK_FLAGS+=-IPV6=1 -IPv6=1 -IPV6=1 -IPv6=1 +STACK_FLAGS+=IPV6=1 IPV4=1 endif endif # lwIP default protocol versions +# Simultaneous IPV4 and IPV6 not supported by lwIP stack driver (yet) ifeq ($(STACK_LWIP),1) ifeq ($(LIBZT_IPV4)$(LIBZT_IPV6),1) ifeq ($(LIBZT_IPV4),1) -CXXFLAGS+=-DLIBZT_IPV4 -STACK_FLAGS+=IPV4=1 IPv4=1 +CXXFLAGS+=-DLIBZT_IPV4 -DLWIP_IPV4=1 -DLWIP_IPV6=0 +STACK_FLAGS+=LIBZT_IPV4=1 endif ifeq ($(LIBZT_IPV6),1) -CXXFLAGS+=-DLIBZT_IPV6 -STACK_FLAGS+=IPV6=1 IPv6=1 +CXXFLAGS+=-DLIBZT_IPV6 -DLWIP_IPV6=1 -DLWIP_IPV4=0 +STACK_FLAGS+=LIBZT_IPV6=1 endif else -CXXFLAGS+=-DLIBZT_IPV4 -STACK_FLAGS+=IPV4=1 IPv4=1 +CXXFLAGS+=-DLIBZT_IPV4 -DLWIP_IPV4=1 -DLWIP_IPV6=0 +STACK_FLAGS+=LIBZT_IPV4=1 endif endif LIBZT_FILES:=src/SocketTap.cpp src/libzt.cpp src/Utilities.cpp -LIBZT_OBJS+=SocketTap.o libzt.o Utilities.o ifeq ($(STACK_PICO),1) CXXFLAGS+=-DSTACK_PICO @@ -157,7 +157,6 @@ STACK_LIB:=libpicotcp.a STACK_DIR:=ext/picotcp STACK_LIB:=$(STACK_DIR)/build/lib/$(STACK_LIB) STACK_DRIVER_FILES:=src/picoTCP.cpp -STACK_DRIVER_OBJS+=picoTCP.o INCLUDES+=-Iext/picotcp/include -Iext/picotcp/build/include endif @@ -165,7 +164,6 @@ ifeq ($(STACK_LWIP),1) STACK_DRIVER_FLAGS+=-DLWIP_PREFIX_BYTEORDER_FUNCS CXXFLAGS+=-DSTACK_LWIP STACK_DRIVER_FILES:=src/lwIP.cpp -STACK_DRIVER_OBJS+=lwIP.o LWIPARCH=$(CONTRIBDIR)/ports/unix LWIPDIR=ext/lwip/src INCLUDES+=-Iext/lwip/src/include/lwip \ @@ -210,8 +208,8 @@ static_lib: picotcp $(ZTO_OBJS) @mkdir -p $(BUILD) obj $(CXX) $(CXXFLAGS) $(LIBZT_FILES) $(STACK_DRIVER_FILES) -c mv *.o obj - mv ext/picotcp/build/lib/*.o obj - mv ext/picotcp/build/modules/*.o obj + #mv ext/picotcp/build/lib/*.o obj + #mv ext/picotcp/build/modules/*.o obj libtool -static -o $(STATIC_LIB) obj/*.o $(STACK_LIB) endif ifeq ($(STACK_LWIP),1) @@ -242,10 +240,6 @@ macos_app_framework: cd examples/apple/ZeroTierSDK_Apple; xcodebuild -configuration Release -scheme ZeroTierSDK_OSX build SYMROOT="../../../$(BUILD)/macos_app_framework" cd examples/apple/ZeroTierSDK_Apple; xcodebuild -configuration Debug -scheme ZeroTierSDK_OSX build SYMROOT="../../../$(BUILD)/macos_app_framework" -############################################################################## -## Static Libraries ## -############################################################################## - ############################################################################## ## Java JNI ## ############################################################################## @@ -273,16 +267,10 @@ tests: $(UNIT_TEST_OBJ_FILES) ## Misc ## ############################################################################## -# Cleans only current $(OSTYPE) clean: -rm -rf $(BUILD)/* -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 everything -nuke: - -rm -rf $(BUILD)/* - -find . -type f \( -name '*.o' -o -name '*.so' -o -name '*.a' -o -name '*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' \) -delete - check: -./check.sh $(PICO_LIB) -./check.sh $(STATIC_LIB) diff --git a/src/lwIP.hpp b/src/lwIP.hpp index c1d1e21..d38c18a 100644 --- a/src/lwIP.hpp +++ b/src/lwIP.hpp @@ -51,7 +51,7 @@ struct tcp_pcb; struct netif; #if defined(LIBZT_IPV4) - #define LWIP_NETIF_ADD_SIG struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask, ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input + //#define LWIP_NETIF_ADD_SIG struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask, ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input #define LWIP_ETHARP_OUTPUT_SIG struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr #endif #if defined(LIBZT_IPV6) @@ -83,7 +83,6 @@ struct netif; #define LWIP_TCP_NEW_SIG void #define LWIP_TCP_RECV_SIG struct tcp_pcb * pcb, err_t (* recv)(void * arg, struct tcp_pcb * tpcb, struct pbuf * p, err_t err) #define LWIP_TCP_RECVED_SIG struct tcp_pcb * pcb, u16_t len -//#define LWIP_TCP_SNDBUF_SIG struct tcp_pcb * pcb #define LWIP_TCP_CONNECT_SIG struct tcp_pcb * pcb, const ip_addr_t * ipaddr, u16_t port, err_t (* connected)(void * arg, struct tcp_pcb * tpcb, err_t err) #define LWIP_TCP_RECV_SIG struct tcp_pcb * pcb, err_t (* recv)(void * arg, struct tcp_pcb * tpcb, struct pbuf * p, err_t err) #define LWIP_TCP_ERR_SIG struct tcp_pcb * pcb, void (* err)(void * arg, err_t err)