diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ba83eb4f..337b368ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,6 +104,11 @@ else(WIN32) $<$:-fPIE> $<$:-g> ) + option(BUILD_32BIT "Force building as 32-bit binary") + if(BUILD_32BIT) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags") + endif(BUILD_32BIT) endif(APPLE) endif(WIN32) diff --git a/Jenkinsfile b/Jenkinsfile index 980286f2b..25b508125 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -282,9 +282,14 @@ def buildDebianNative() { } def runtime = docker.image("ztbuild/${distro}-${arch}:latest") runtime.inside { + def cmakeFlags = "" + if (arch == "i386") { + cmakeFlags = 'CMAKE_ARGS="-DBUILD_32BIT=1"' + } + sh 'whoami' dir("build") { - sh 'make -j4' + sh "${cmakeFlags} make -j4" } // sh "mkdir -p ${distro}" // sh "mv *.deb ${distro}" diff --git a/Makefile b/Makefile index 6acaa2fc5..a42fd5b59 100644 --- a/Makefile +++ b/Makefile @@ -7,19 +7,19 @@ all: setup cd ${BUILDDIR} && $(MAKE) -j$(shell getconf _NPROCESSORS_ONLN) setup: - mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Release + mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Release ${CMAKE_ARGS} setup-debug: - mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug + mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug ${CMAKE_ARGS} debug: - mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug && $(MAKE) + mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug ${CMAKE_ARGS} && $(MAKE) central-controller: - mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_CENTRAL_CONTROLLER=1 && $(MAKE) -j4 + mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_CENTRAL_CONTROLLER=1 ${CMAKE_ARGS} && $(MAKE) -j4 central-controller-debug: - mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_CENTRAL_CONTROLLER=1 && $(MAKE) -j4 + mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_CENTRAL_CONTROLLER=1 ${CMAKE_ARGS} && $(MAKE) -j4 central-controller-docker: docker build -t registry.zerotier.com/zerotier-central/ztcentral-controller:${TIMESTAMP} -f controller/central-docker/Dockerfile .