diff --git a/make-linux.mk b/make-linux.mk index 810884101..685b3e744 100644 --- a/make-linux.mk +++ b/make-linux.mk @@ -119,6 +119,9 @@ ifeq ($(CC_MACH),x86_64) override CFLAGS+=-msse -msse2 override CXXFLAGS+=-msse -msse2 ZT_SSO_SUPPORTED=1 + ifeq ($(ZT_CONTROLLER),1) + EXT_ARCH=amd64 + endif endif ifeq ($(CC_MACH),amd64) ZT_ARCHITECTURE=2 @@ -127,6 +130,9 @@ ifeq ($(CC_MACH),amd64) override CFLAGS+=-msse -msse2 override CXXFLAGS+=-msse -msse2 ZT_SSO_SUPPORTED=1 + ifeq ($(ZT_CONTROLLER),1) + EXT_ARCH=amd64 + endif endif ifeq ($(CC_MACH),powerpc64le) ZT_ARCHITECTURE=8 @@ -237,6 +243,9 @@ ifeq ($(CC_MACH),aarch64) ZT_SSO_SUPPORTED=1 ZT_USE_X64_ASM_ED25519=0 override DEFS+=-DZT_NO_TYPE_PUNNING -DZT_ARCH_ARM_HAS_NEON -march=armv8-a+crypto -mtune=generic -mstrict-align + ifeq ($(ZT_CONTROLLER),1) + EXT_ARCH=arm64 + endif endif ifeq ($(CC_MACH),mipsel) ZT_ARCHITECTURE=5 @@ -312,9 +321,9 @@ endif ifeq ($(ZT_CONTROLLER),1) override CXXFLAGS+=-Wall -Wno-deprecated -std=c++17 -pthread $(INCLUDES) -DNDEBUG $(DEFS) - override LDLIBS+=-Lext/libpqxx-7.7.3/install/ubuntu22.04/lib -lpqxx -lpq ext/hiredis-1.0.2/lib/ubuntu22.04/libhiredis.a ext/redis-plus-plus-1.3.3/install/ubuntu22.04/lib/libredis++.a -lssl -lcrypto + override LDLIBS+=-Lext/libpqxx-7.7.3/install/ubuntu22.04/$(EXT_ARCH)/lib -lpqxx -lpq ext/hiredis-1.0.2/lib/ubuntu22.04/$(EXT_ARCH)/libhiredis.a ext/redis-plus-plus-1.3.3/install/ubuntu22.04/$(EXT_ARCH)/lib/libredis++.a -lssl -lcrypto override DEFS+=-DZT_CONTROLLER_USE_LIBPQ -DZT_NO_PEER_METRICS - override INCLUDES+=-I/usr/include/postgresql -Iext/libpqxx-7.7.3/install/ubuntu22.04/include -Iext/hiredis-1.0.2/include/ -Iext/redis-plus-plus-1.3.3/install/ubuntu22.04/include/sw/ + override INCLUDES+=-I/usr/include/postgresql -Iext/libpqxx-7.7.3/install/ubuntu22.04/$(EXT_ARCH)/include -Iext/hiredis-1.0.2/include/ -Iext/redis-plus-plus-1.3.3/install/ubuntu22.04/$(EXT_ARCH)/include/sw/ endif # ARM32 hell -- use conservative CFLAGS @@ -399,11 +408,19 @@ official: FORCE docker: FORCE docker build --no-cache -f ext/installfiles/linux/zerotier-containerized/Dockerfile -t zerotier-containerized . +_buildx: + @echo "docker buildx create" + # docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker run --privileged --rm tonistiigi/binfmt --install all + @echo docker buildx create --name multiarch --driver docker-container --use + @echo docker buildx inspect --bootstrap + central-controller: FORCE make -j4 ZT_CONTROLLER=1 one -central-controller-docker: FORCE - docker build --no-cache -t registry.zerotier.com/zerotier-central/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=`git name-rev --name-only HEAD` . +central-controller-docker: _buildx FORCE + docker buildx build --platform linux/amd64,linux/arm64 --no-cache -t us-central1-docker.pkg.dev/zerotier-central/zerotier/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=`git name-rev --name-only HEAD` . --push + @echo Image: us-central1-docker.pkg.dev/zerotier-central/zerotier/ztcentral-controller:${TIMESTAMP} debug: FORCE make ZT_DEBUG=1 one diff --git a/make-mac.mk b/make-mac.mk index 8a96f6b73..738e3149c 100644 --- a/make-mac.mk +++ b/make-mac.mk @@ -176,9 +176,17 @@ official: FORCE make ZT_OFFICIAL_RELEASE=1 -j 8 one make ZT_OFFICIAL_RELEASE=1 mac-dist-pkg -central-controller-docker: FORCE - docker buildx build --platform linux/arm64,linux/amd64 --no-cache -t us-central1-docker.pkg.dev/zerotier-central/zerotier/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=$(shell git name-rev --name-only HEAD) . +_buildx: + @echo "docker buildx create" + # docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker run --privileged --rm tonistiigi/binfmt --install all + @echo docker buildx create --name multiarch --driver docker-container --use + @echo docker buildx inspect --bootstrap +central-controller-docker: _buildx FORCE + docker buildx build --platform linux/arm64,linux/amd64 --no-cache -t us-central1-docker.pkg.dev/zerotier-central/zerotier/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=$(shell git name-rev --name-only HEAD) . --push + @echo Image: us-central1-docker.pkg.dev/zerotier-central/zerotier/ztcentral-controller:${TIMESTAMP} + clean: rm -rf MacEthernetTapAgent *.dSYM build-* *.a *.pkg *.dmg *.o node/*.o controller/*.o service/*.o osdep/*.o ext/http-parser/*.o $(CORE_OBJS) $(ONE_OBJS) zerotier-one zerotier-idtool zerotier-selftest zerotier-cli zerotier doc/node_modules zt1_update_$(ZT_BUILD_PLATFORM)_$(ZT_BUILD_ARCHITECTURE)_* zeroidc/target/