Pass DBG=1 to `make` to build for debug

This commit is contained in:
Tim Hockin 2022-08-12 21:43:46 -07:00
parent bc865d0329
commit 78ee13c54f
2 changed files with 20 additions and 2 deletions

View File

@ -24,6 +24,9 @@ VERSION ?= $(shell git describe --tags --always --dirty)
# This version-strategy uses a manual value to set the version string # This version-strategy uses a manual value to set the version string
#VERSION ?= 1.2.3 #VERSION ?= 1.2.3
# Set this to 1 to build a debugger-friendly binary.
DBG ?=
# These are passed to docker when building and testing. # These are passed to docker when building and testing.
HTTP_PROXY ?= HTTP_PROXY ?=
HTTPS_PROXY ?= HTTPS_PROXY ?=
@ -129,6 +132,7 @@ $(OUTBIN): .go/$(OUTBIN).stamp
ARCH=$(ARCH) \ ARCH=$(ARCH) \
OS=$(OS) \ OS=$(OS) \
VERSION=$(VERSION) \ VERSION=$(VERSION) \
BUILD_DEBUG=$(DBG) \
./build/build.sh \ ./build/build.sh \
" "
if ! cmp -s .go/$(OUTBIN) $(OUTBIN); then \ if ! cmp -s .go/$(OUTBIN) $(OUTBIN); then \

View File

@ -34,9 +34,23 @@ fi
export CGO_ENABLED=0 export CGO_ENABLED=0
export GOARCH="${ARCH}" export GOARCH="${ARCH}"
export GOOS="${OS}" export GOOS="${OS}"
export GOFLAGS="-mod=vendor"
if [[ "${BUILD_DEBUG:-}" == 1 ]]; then
# Debugging - disable optimizations and inlining
gogcflags="all=-N -l"
goasmflags=""
goldflags=""
else
# Not debugging - trim paths, disable symbols and DWARF.
goasmflags="all=-trimpath=$(pwd)"
gogcflags="all=-trimpath=$(pwd)"
goldflags="-s -w"
fi
always_ldflags="-X $(go list -m)/pkg/version.VERSION=${VERSION}"
go install \ go install \
-installsuffix "static" \ -installsuffix "static" \
-ldflags "-X $(go list -m)/pkg/version.VERSION=${VERSION}" \ -gcflags="${gogcflags}" \
-asmflags="${goasmflags}" \
-ldflags="${always_ldflags} ${goldflags}" \
./... ./...