summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2020-02-11 20:42:03 +0100
committerGitHub <noreply@github.com>2020-02-11 20:42:03 +0100
commitd9c79986eae0a4b4ccadc39c89e84c6fe3730392 (patch)
tree4c01e4dc56e6d498ef7ba088c138d3581d94e138 /Makefile
parentbfd62b6f0188fe2488dbaf5d8250ef37cd0a14e5 (diff)
downloadgitea-d9c79986eae0a4b4ccadc39c89e84c6fe3730392.tar.gz
gitea-d9c79986eae0a4b4ccadc39c89e84c6fe3730392.zip
add TAGS variable prereq on make targets that use it (#10219)
Write out TAGS to .make_evidence/tags and compare it to the previous invocation. If they differ, insert the evidence file into the prereqs of targets that use TAGS. I made it .PHONY so it always builds. I did not include the prereq on release tasks, asssuming the will always do a clean build. Fixes: https://github.com/go-gitea/gitea/issues/10196 Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile16
1 files changed, 13 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 9f2e5b3828..1d2921e4bb 100644
--- a/Makefile
+++ b/Makefile
@@ -70,6 +70,7 @@ FOMANTIC_DEST_DIR := public/fomantic
FOMANTIC_EVIDENCE := $(MAKE_EVIDENCE_DIR)/fomantic
TAGS ?=
+TAGS_EVIDENCE := $(MAKE_EVIDENCE_DIR)/tags
TMPDIR := $(shell mktemp -d 2>/dev/null || mktemp -d -t 'gitea-temp')
@@ -168,8 +169,17 @@ fmt:
vet:
$(GO) vet $(PACKAGES)
+.PHONY: $(TAGS_EVIDENCE)
+$(TAGS_EVIDENCE):
+ @mkdir -p $(MAKE_EVIDENCE_DIR)
+ @echo "$(TAGS)" > $(TAGS_EVIDENCE)
+
+ifneq "$(TAGS)" "$(shell cat $(TAGS_EVIDENCE) 2>/dev/null)"
+TAGS_PREREQ := $(TAGS_EVIDENCE)
+endif
+
.PHONY: generate
-generate: fomantic webpack
+generate: fomantic webpack $(TAGS_PREREQ)
GO111MODULE=on $(GO) generate -mod=vendor -tags '$(TAGS)' $(PACKAGES)
.PHONY: generate-swagger
@@ -425,14 +435,14 @@ migrations.sqlite.test: $(GO_SOURCES)
.PHONY: check
check: test
-.PHONY: install
+.PHONY: install $(TAGS_PREREQ)
install: $(wildcard *.go)
$(GO) install -v -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)'
.PHONY: build
build: go-check generate $(EXECUTABLE)
-$(EXECUTABLE): $(GO_SOURCES)
+$(EXECUTABLE): $(GO_SOURCES) $(TAGS_PREREQ)
GO111MODULE=on $(GO) build -mod=vendor $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@
.PHONY: release