APPVERSION := $(shell cat ./VERSION) GOVERSION := $(shell go version | awk '{print $$3}') GITCOMMIT := $(shell git log -1 --oneline | awk '{print $$1}') OS := $(shell uname -s | tr [A-Z] [a-z]) ARCH := $(shell uname -m | tr [A-Z] [a-z]) LDFLAGS = -X main.AppVersion=${APPVERSION} -X main.GoVersion=${GOVERSION} -X main.GitCommit=${GITCOMMIT} DOCKER_IMAGE = golang:1.24-trixie .PHONY: clean clean_for_releases test build: cd src \ && go build -ldflags "${LDFLAGS}" -o ../bin/collerd cmd/collerd/main.go \ && go build -ldflags "${LDFLAGS}" -o ../bin/copier cmd/copier/main.go \ && go build -ldflags "${LDFLAGS}" -o ../bin/coller cmd/coller/main.go build_linux_amd64: cd src \ && GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o ../bin/collerd-linux-amd64 cmd/collerd/main.go \ && GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o ../bin/coller-linux-amd64 cmd/coller/main.go \ && GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o ../bin/copier-linux-amd64 cmd/copier/main.go build_darwin_arm64: cd src \ && GOOS=darwin GOARCH=arm64 go build -ldflags "${LDFLAGS}" -o ../bin/collerd-darwin-arm64 cmd/collerd/main.go \ && GOOS=darwin GOARCH=arm64 go build -ldflags "${LDFLAGS}" -o ../bin/coller-darwin-arm64 cmd/coller/main.go \ && GOOS=darwin GOARCH=arm64 go build -ldflags "${LDFLAGS}" -o ../bin/copier-darwin-arm64 cmd/copier/main.go create_release: mkdir -p releases/${APPVERSION} \ && cp -p bin/collerd-linux-amd64 releases/${APPVERSION}/collerd-linux-amd64 \ && cp -p bin/coller-linux-amd64 releases/${APPVERSION}/coller-linux-amd64 \ && cp -p bin/copier-linux-amd64 releases/${APPVERSION}/copier-linux-amd64 \ && cp -p bin/collerd-darwin-arm64 releases/${APPVERSION}/collerd-darwin-arm64 \ && cp -p bin/coller-darwin-arm64 releases/${APPVERSION}/coller-darwin-arm64 \ && cp -p bin/copier-darwin-arm64 releases/${APPVERSION}/copier-darwin-arm64 checksum: cd releases/${APPVERSION} \ && sha256sum collerd-* coller-* copier-* > checksums.txt releases: build_linux_amd64 build_darwin_arm64 create_release checksum releases_with_docker: docker run -it -v $(shell pwd):/mnt -w /mnt -e "UID=$(shell id -u)" -e "GID=$(shell id -g)" ${DOCKER_IMAGE} ./docker/build.sh dependencies: npm install test: cd src \ && go test internal/*.go \ && go test server/*.go clean: rm -rf bin releases