EXECUTABLE=project-ely GO=go MINGW64=x86_64-w64-mingw32-gcc MINGW32=i686-w64-mingw32-gcc MUSL_GCC="${HOME}/musl/bin/musl-gcc -static" GO_BUILD=build -x -v GO_BUILD_DEBUG=${GO_BUILD} -gcflags=all="-N -l" GO_BUILD_RELEASE=${GO_BUILD} -trimpath -ldflags '-s -w' GO_BUILD_RELEASE_STATIC=${GO_BUILD} -trimpath -ldflags '-s -w -linkmode external -extldflags "-static"' all: release dependencies: ${GO} mod tidy prebuild: dependencies debug: prebuild ${GO} ${GO_BUILD_DEBUG} release: prebuild ${GO} ${GO_BUILD_RELEASE} # release_static only works on Alpine, see the Dockerfile release_static: prebuild CGO_ENABLED=1 \ CGO_LDFLAGS="-Wl,-rpath -L${HOME}/pkg/lib -L/usr/lib -L/usr/lib/x86_64-linux-gnu" \ ${GO} ${GO_BUILD_RELEASE_STATIC} lint: linter linter: golangci-lint run clean: rm -f ${EXECUTABLE} rm -f ${EXECUTABLE}-* rm -f output.log rm -f cpu.prof cross_windows: CC=${MINGW64} \ NAME=${EXECUTABLE} \ ./scripts/build-windows-amd64.sh cross_windows_x86: CC=${MINGW32} \ NAME=${EXECUTABLE} \ ./scripts/build-windows-386.sh goimports_everything: find . -name "*.go" -exec goimports -w {} \;