diff options
Diffstat (limited to 'make-bsd.mk')
-rw-r--r-- | make-bsd.mk | 79 |
1 files changed, 48 insertions, 31 deletions
diff --git a/make-bsd.mk b/make-bsd.mk index 800c0c2a..713cafc0 100644 --- a/make-bsd.mk +++ b/make-bsd.mk @@ -5,19 +5,18 @@ DEFS= LIBS= include objects.mk -OBJS+=osdep/BSDEthernetTap.o ext/http-parser/http_parser.o +ONE_OBJS+=osdep/BSDEthernetTap.o ext/http-parser/http_parser.o -# Build with ZT_ENABLE_CLUSTER=1 to build with cluster support -ifeq ($(ZT_ENABLE_CLUSTER),1) - DEFS+=-DZT_ENABLE_CLUSTER +# Build with address sanitization library for advanced debugging (clang) +ifeq ($(ZT_SANITIZE),1) + SANFLAGS+=-fsanitize=address -DASAN_OPTIONS=symbolize=1 endif - # "make debug" is a shortcut for this ifeq ($(ZT_DEBUG),1) - DEFS+=-DZT_TRACE - CFLAGS+=-Wall -g -pthread $(INCLUDES) $(DEFS) + CFLAGS+=-Wall -Werror -g -pthread $(INCLUDES) $(DEFS) LDFLAGS+= STRIP=echo + ZT_TRACE=1 # The following line enables optimization for the crypto code, since # C25519 in particular is almost UNUSABLE in heavy testing without it. node/Salsa20.o node/SHA512.o node/C25519.o node/Poly1305.o: CFLAGS = -Wall -O2 -g -pthread $(INCLUDES) $(DEFS) @@ -28,80 +27,84 @@ else STRIP=strip --strip-all endif +ifeq ($(ZT_TRACE),1) + DEFS+=-DZT_TRACE +endif + # Determine system build architecture from compiler target CC_MACH=$(shell $(CC) -dumpmachine | cut -d '-' -f 1) ZT_ARCHITECTURE=999 ifeq ($(CC_MACH),x86_64) - ZT_ARCHITECTURE=2 + ZT_ARCHITECTURE=2 ZT_USE_X64_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),amd64) - ZT_ARCHITECTURE=2 + ZT_ARCHITECTURE=2 ZT_USE_X64_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),i386) - ZT_ARCHITECTURE=1 + ZT_ARCHITECTURE=1 endif ifeq ($(CC_MACH),i686) - ZT_ARCHITECTURE=1 + ZT_ARCHITECTURE=1 endif ifeq ($(CC_MACH),arm) - ZT_ARCHITECTURE=3 + ZT_ARCHITECTURE=3 override DEFS+=-DZT_NO_TYPE_PUNNING ZT_USE_ARM32_NEON_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),armel) - ZT_ARCHITECTURE=3 + ZT_ARCHITECTURE=3 override DEFS+=-DZT_NO_TYPE_PUNNING ZT_USE_ARM32_NEON_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),armhf) - ZT_ARCHITECTURE=3 + ZT_ARCHITECTURE=3 override DEFS+=-DZT_NO_TYPE_PUNNING ZT_USE_ARM32_NEON_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),armv6) - ZT_ARCHITECTURE=3 + ZT_ARCHITECTURE=3 override DEFS+=-DZT_NO_TYPE_PUNNING ZT_USE_ARM32_NEON_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),armv6zk) - ZT_ARCHITECTURE=3 + ZT_ARCHITECTURE=3 override DEFS+=-DZT_NO_TYPE_PUNNING ZT_USE_ARM32_NEON_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),armv6kz) - ZT_ARCHITECTURE=3 + ZT_ARCHITECTURE=3 override DEFS+=-DZT_NO_TYPE_PUNNING ZT_USE_ARM32_NEON_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),armv7) - ZT_ARCHITECTURE=3 + ZT_ARCHITECTURE=3 override DEFS+=-DZT_NO_TYPE_PUNNING ZT_USE_ARM32_NEON_ASM_SALSA2012=1 endif ifeq ($(CC_MACH),arm64) - ZT_ARCHITECTURE=4 + ZT_ARCHITECTURE=4 override DEFS+=-DZT_NO_TYPE_PUNNING endif ifeq ($(CC_MACH),aarch64) - ZT_ARCHITECTURE=4 + ZT_ARCHITECTURE=4 override DEFS+=-DZT_NO_TYPE_PUNNING endif ifeq ($(CC_MACH),mipsel) - ZT_ARCHITECTURE=5 + ZT_ARCHITECTURE=5 override DEFS+=-DZT_NO_TYPE_PUNNING endif ifeq ($(CC_MACH),mips) - ZT_ARCHITECTURE=5 + ZT_ARCHITECTURE=5 override DEFS+=-DZT_NO_TYPE_PUNNING endif ifeq ($(CC_MACH),mips64) - ZT_ARCHITECTURE=6 + ZT_ARCHITECTURE=6 override DEFS+=-DZT_NO_TYPE_PUNNING endif ifeq ($(CC_MACH),mips64el) - ZT_ARCHITECTURE=6 + ZT_ARCHITECTURE=6 override DEFS+=-DZT_NO_TYPE_PUNNING endif @@ -115,11 +118,11 @@ endif # Build faster crypto on some targets ifeq ($(ZT_USE_X64_ASM_SALSA2012),1) override DEFS+=-DZT_USE_X64_ASM_SALSA2012 - override OBJS+=ext/x64-salsa2012-asm/salsa2012.o + override CORE_OBJS+=ext/x64-salsa2012-asm/salsa2012.o endif ifeq ($(ZT_USE_ARM32_NEON_ASM_SALSA2012),1) override DEFS+=-DZT_USE_ARM32_NEON_ASM_SALSA2012 - override OBJS+=ext/arm32-neon-salsa2012-asm/salsa2012.o + override CORE_OBJS+=ext/arm32-neon-salsa2012-asm/salsa2012.o endif override DEFS+=-DZT_BUILD_PLATFORM=$(ZT_BUILD_PLATFORM) -DZT_BUILD_ARCHITECTURE=$(ZT_ARCHITECTURE) -DZT_SOFTWARE_UPDATE_DEFAULT="\"disable\"" @@ -128,18 +131,32 @@ CXXFLAGS+=$(CFLAGS) -fno-rtti -std=c++11 #-D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_ all: one -one: $(OBJS) service/OneService.o one.o - $(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-one $(OBJS) service/OneService.o one.o $(LIBS) +one: $(CORE_OBJS) $(ONE_OBJS) one.o + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-one $(CORE_OBJS) $(ONE_OBJS) one.o $(LIBS) $(STRIP) zerotier-one ln -sf zerotier-one zerotier-idtool ln -sf zerotier-one zerotier-cli -selftest: $(OBJS) selftest.o - $(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-selftest selftest.o $(OBJS) $(LIBS) +zerotier-one: one + +zerotier-idtool: one + +zerotier-cli: one + +libzerotiercore.a: $(CORE_OBJS) + ar rcs libzerotiercore.a $(CORE_OBJS) + ranlib libzerotiercore.a + +core: libzerotiercore.a + +selftest: $(CORE_OBJS) $(ONE_OBJS) selftest.o + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-selftest selftest.o $(CORE_OBJS) $(ONE_OBJS) $(LIBS) $(STRIP) zerotier-selftest +zerotier-selftest: selftest + clean: - rm -rf *.o node/*.o controller/*.o osdep/*.o service/*.o ext/http-parser/*.o build-* zerotier-one zerotier-idtool zerotier-selftest zerotier-cli ZeroTierOneInstaller-* $(OBJS) + rm -rf *.a *.o node/*.o controller/*.o osdep/*.o service/*.o ext/http-parser/*.o build-* zerotier-one zerotier-idtool zerotier-selftest zerotier-cli $(ONE_OBJS) $(CORE_OBJS) debug: FORCE gmake -j 4 ZT_DEBUG=1 |