BINARY=CU-HELPER BUILD_DIR=build VERSION=v1.0 DATE=`date +%FT%T%z` GO_VERSION=`go version` LDFLAGS="-s -w -X main.version=${VERSION} -X 'main.date=${DATE}' -X 'main.goVersion=${GO_VERSION}'" .PHONY: build OS_ARCH=darwin:amd64 darwin:arm64 linux:386 linux:amd64 linux:arm linux:arm64 linux:mips:softfloat linux:mipsle:softfloat linux:mips64 linux:mips64le linux:riscv64 freebsd:386 freebsd:amd64 windows:386 windows:amd64 windows:arm64 default: @echo ${BINARY} @echo ${VERSION} @echo ${DATE} @echo ${GO_VERSION} cu-helper: clean @CGO_ENABLED=0 go build -trimpath -ldflags $(LDFLAGS) -o ./build/bin/${BINARY} main.go build: clean app clean: @rm -rf ${BUILD_DIR} app: @$(foreach n, $(OS_ARCH),\ os=$(shell echo "$(n)" | cut -d : -f 1);\ arch=$(shell echo "$(n)" | cut -d : -f 2);\ gomips=$(shell echo "$(n)" | cut -d : -f 3);\ target_suffix=$${os}-$${arch};\ echo "Build $${os}-$${arch}...";\ env CGO_ENABLED=0 GOOS=$${os} GOARCH=$${arch} GOMIPS=$${gomips} go build -trimpath -ldflags $(LDFLAGS) -o ./build/${BINARY}-$${target_suffix} main.go;\ echo "Build $${os}-$${arch} done";\ ) @mv ./build/${BINARY}-windows-386 ./build/${BINARY}-windows-386.exe @mv ./build/${BINARY}-windows-amd64 ./build/${BINARY}-windows-amd64.exe @mv ./build/${BINARY}-windows-arm64 ./build/${BINARY}-windows-arm64.exe