diff options
author | Robin Jarry <robin@jarry.cc> | 2022-02-23 20:27:09 +0100 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-02-27 21:11:31 +0100 |
commit | e7e22aba60cec373f48ebe21aa6d4898f31f8c66 (patch) | |
tree | 2da39dc23fa02527bdbfd917e9b309f95ee51cd4 | |
parent | 115dabb6346383c88525586c2ec75d60df6f25d3 (diff) | |
download | aerc-e7e22aba60cec373f48ebe21aa6d4898f31f8c66.tar.gz |
mk: rebuild if goflags or ldflags have changed
Running make with different values for GOFLAGS or VERSION does not cause
aerc to be rebuilt whereas it should.
Write the go build command line into a file and force aerc to be rebuilt
if the command line has changed.
Use the BSD make compatible != operator to run the command. This
operator is also available in GNU make since version 4.0.
Link: https://git.savannah.gnu.org/cgit/make.git/commit/?id=b34438bee83ee
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Koni Marti <koni.marti@gmail.com>
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 15 |
2 files changed, 14 insertions, 2 deletions
@@ -2,6 +2,7 @@ /aerc2 /aerc /aerc.debug +/.aerc.d log raw.log *.1 @@ -30,8 +30,19 @@ DOCS := \ all: aerc $(DOCS) -aerc: $(GOSRC) - $(GO) build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o $@ +build_cmd:=$(GO) build $(GOFLAGS) -ldflags "$(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 +_!=echo '$(build_cmd)' > .aerc.tmp; \ + cmp -s .aerc.d .aerc.tmp || rm -f .aerc.d; \ + rm -f .aerc.tmp + +.aerc.d: + @echo '$(build_cmd)' > $@ + +aerc: $(GOSRC) .aerc.d + $(build_cmd) .PHONY: fmt fmt: |