From 247c6c74380a9e56527ec0a87965a39142ffc213 Mon Sep 17 00:00:00 2001 From: Robin Jarry Date: Mon, 28 Mar 2022 14:33:17 +0200 Subject: [PATCH] mk: rename ambiguous LDFLAGS variable The LDFLAGS environment variable is usually indented for C the linker flags which are not compatible with go -ldflags. Use a more explicit GO_LDFLAGS variable instead. Allow adding extra flags without overriding the default ones by specifying GO_EXTRA_LDFLAGS. This may break the build on some distros that rely on setting LDFLAGS to change the default shareDir or version. They will have to switch to GO_EXTRA_LDFLAGS. Link: https://salsa.debian.org/go-team/packages/aerc/-/commit/e9ed90beae9f Link: https://src.fedoraproject.org/rpms/aerc/blob/f36/f/aerc.spec#_86 Fixes: e7e22aba60ce ("mk: rebuild if goflags or ldflags have changed") Signed-off-by: Robin Jarry --- Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 4967182..14adf89 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,11 @@ SHAREDIR?=$(PREFIX)/share/aerc MANDIR?=$(PREFIX)/share/man GO?=go GOFLAGS?= -LDFLAGS+=-X main.Version=$(VERSION) -LDFLAGS+=-X git.sr.ht/~rjarry/aerc/config.shareDir=$(SHAREDIR) +# ignore environment variable +GO_LDFLAGS:= +GO_LDFLAGS+=-X main.Version=$(VERSION) +GO_LDFLAGS+=-X git.sr.ht/~rjarry/aerc/config.shareDir=$(SHAREDIR) +GO_LDFLAGS+=$(GO_EXTRA_LDFLAGS) GOSRC!=find * -name '*.go' GOSRC+=go.mod go.sum @@ -31,7 +34,7 @@ DOCS := \ all: aerc $(DOCS) -build_cmd:=$(GO) build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o aerc +build_cmd:=$(GO) build $(GOFLAGS) -ldflags "$(GO_LDFLAGS)" -o aerc # the following command outputs nothing, we only want to execute it once # and force .aerc.d to be regenerated when build_cmd has changed @@ -63,7 +66,7 @@ debug: aerc.debug @echo ' dlv attach $$(pidof aerc.debug)' aerc.debug: $(GOSRC) - $(GO) build $(GOFLAGS) -gcflags=*=-N -gcflags=*=-l -ldflags="$(LDFLAGS)" -o aerc.debug + $(GO) build $(GOFLAGS) -gcflags=*=-N -gcflags=*=-l -ldflags="$(GO_LDFLAGS)" -o aerc.debug .1.scd.1: scdoc < $< > $@