Build tweaks, better flag handling across makefiles

This commit is contained in:
Joseph Henry
2017-08-14 15:53:53 -07:00
parent efe5d15143
commit ad17909f06
5 changed files with 31 additions and 67 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)