|
@@ -87,82 +87,82 @@ endif
|
|
|
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),i486)
|
|
|
- ZT_ARCHITECTURE=1
|
|
|
+ ZT_ARCHITECTURE=1
|
|
|
endif
|
|
|
ifeq ($(CC_MACH),i586)
|
|
|
- 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
|
|
|
|
|
@@ -179,16 +179,17 @@ override DEFS+=-DZT_BUILD_PLATFORM=1 -DZT_BUILD_ARCHITECTURE=$(ZT_ARCHITECTURE)
|
|
|
# Static builds, which are currently done for a number of Linux targets
|
|
|
ifeq ($(ZT_STATIC),1)
|
|
|
override LDFLAGS+=-static
|
|
|
- ifeq ($(ZT_ARCHITECTURE),3)
|
|
|
- ifeq ($(shell if [ -e /usr/bin/dpkg ]; then dpkg --print-architecture; fi),armel)
|
|
|
- override CFLAGS+=-march=armv5te -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm
|
|
|
- override CXXFLAGS+=-march=armv5te -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm
|
|
|
- ZT_USE_ARM32_NEON_ASM_SALSA2012=0
|
|
|
- else
|
|
|
- override CFLAGS+=-march=armv6zk -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -mno-unaligned-access -marm
|
|
|
- override CXXFLAGS+=-march=armv6zk -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -mno-unaligned-access -marm
|
|
|
- ZT_USE_ARM32_NEON_ASM_SALSA2012=0
|
|
|
- endif
|
|
|
+endif
|
|
|
+
|
|
|
+# ARM32 hell -- use conservative CFLAGS
|
|
|
+ifeq ($(ZT_ARCHITECTURE),3)
|
|
|
+ ifeq ($(shell if [ -e /usr/bin/dpkg ]; then dpkg --print-architecture; fi),armel)
|
|
|
+ override CFLAGS+=-march=armv5 -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm
|
|
|
+ override CXXFLAGS+=-march=armv5 -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm
|
|
|
+ ZT_USE_ARM32_NEON_ASM_SALSA2012=0
|
|
|
+ else
|
|
|
+ override CFLAGS+=-march=armv5 -mfpu=vfp -mfloat-abi=hard -mno-unaligned-access -marm
|
|
|
+ override CXXFLAGS+=-march=armv5 -mfpu=vfp -mfloat-abi=hard -mno-unaligned-access -marm
|
|
|
endif
|
|
|
endif
|
|
|
|
|
@@ -204,6 +205,12 @@ endif
|
|
|
|
|
|
all: one
|
|
|
|
|
|
+ext/x64-salsa2012-asm/salsa2012.o:
|
|
|
+ $(CC) $(CFLAGS) -c ext/x64-salsa2012-asm/salsa2012.s -o ext/x64-salsa2012-asm/salsa2012.o
|
|
|
+
|
|
|
+ext/arm32-neon-salsa2012-asm/salsa2012.o:
|
|
|
+ $(CC) $(CFLAGS) -c ext/arm32-neon-salsa2012-asm/salsa2012.s -o ext/arm32-neon-salsa2012-asm/salsa2012.o
|
|
|
+
|
|
|
one: $(OBJS) service/OneService.o one.o osdep/LinuxEthernetTap.o
|
|
|
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-one $(OBJS) service/OneService.o one.o osdep/LinuxEthernetTap.o $(LDLIBS)
|
|
|
$(STRIP) zerotier-one
|