2
0

make-bsd.mk 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. INCLUDES=
  2. DEFS=
  3. LIBS=
  4. include objects.mk
  5. OBJS+=osdep/BSDEthernetTap.o ext/http-parser/http_parser.o
  6. # Build with ZT_ENABLE_CLUSTER=1 to build with cluster support
  7. ifeq ($(ZT_ENABLE_CLUSTER),1)
  8. DEFS+=-DZT_ENABLE_CLUSTER
  9. endif
  10. # "make debug" is a shortcut for this
  11. ifeq ($(ZT_DEBUG),1)
  12. DEFS+=-DZT_TRACE
  13. CFLAGS+=-Wall -g -pthread $(INCLUDES) $(DEFS)
  14. LDFLAGS+=
  15. STRIP=echo
  16. # The following line enables optimization for the crypto code, since
  17. # C25519 in particular is almost UNUSABLE in heavy testing without it.
  18. node/Salsa20.o node/SHA512.o node/C25519.o node/Poly1305.o: CFLAGS = -Wall -O2 -g -pthread $(INCLUDES) $(DEFS)
  19. else
  20. CFLAGS?=-O3 -fstack-protector
  21. CFLAGS+=-Wall -fPIE -fvisibility=hidden -fstack-protector -pthread $(INCLUDES) -DNDEBUG $(DEFS)
  22. LDFLAGS+=-pie -Wl,-z,relro,-z,now
  23. STRIP=strip --strip-all
  24. endif
  25. # Determine system build architecture from compiler target
  26. CC_MACH=$(shell $(CC) -dumpmachine | cut -d '-' -f 1)
  27. ZT_ARCHITECTURE=0
  28. ifeq ($(CC_MACH),x86_64)
  29. ZT_ARCHITECTURE=2
  30. endif
  31. ifeq ($(CC_MACH),amd64)
  32. ZT_ARCHITECTURE=2
  33. endif
  34. ifeq ($(CC_MACH),i386)
  35. ZT_ARCHITECTURE=1
  36. endif
  37. ifeq ($(CC_MACH),i686)
  38. ZT_ARCHITECTURE=1
  39. endif
  40. ifeq ($(CC_MACH),arm)
  41. ZT_ARCHITECTURE=3
  42. endif
  43. ifeq ($(CC_MACH),arm64)
  44. ZT_ARCHITECTURE=4
  45. endif
  46. ifeq ($(CC_MACH),aarch64)
  47. ZT_ARCHITECTURE=4
  48. endif
  49. DEFS+=-DZT_BUILD_PLATFORM=$(ZT_BUILD_PLATFORM) -DZT_BUILD_ARCHITECTURE=$(ZT_ARCHITECTURE) -DZT_SOFTWARE_UPDATE_DEFAULT="\"disable\""
  50. CXXFLAGS+=$(CFLAGS) -fno-rtti -std=c++11 -D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_MATH -D_GLIBCXX_USE_C99_MATH_TR1
  51. all: one
  52. one: $(OBJS) service/OneService.o one.o
  53. $(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-one $(OBJS) service/OneService.o one.o $(LIBS)
  54. $(STRIP) zerotier-one
  55. ln -sf zerotier-one zerotier-idtool
  56. ln -sf zerotier-one zerotier-cli
  57. selftest: $(OBJS) selftest.o
  58. $(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-selftest selftest.o $(OBJS) $(LIBS)
  59. $(STRIP) zerotier-selftest
  60. clean:
  61. 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-*
  62. debug: FORCE
  63. make -j 4 ZT_DEBUG=1
  64. install: one
  65. rm -f /usr/local/sbin/zerotier-one
  66. cp zerotier-one /usr/local/sbin
  67. ln -sf /usr/local/sbin/zerotier-one /usr/local/sbin/zerotier-cli
  68. ln -sf /usr/local/sbin/zerotier-one /usr/local/bin/zerotier-idtool
  69. uninstall: FORCE
  70. rm -rf /usr/local/sbin/zerotier-one /usr/local/sbin/zerotier-cli /usr/local/bin/zerotier-idtool /var/db/zerotier-one/zerotier-one.port /var/db/zerotier-one/zerotier-one.pid /var/db/zerotier-one/iddb.d
  71. FORCE: