From 72f9cfc8f05e744befca63b9cc2a1b10c009621d Mon Sep 17 00:00:00 2001
From: guillep2k <18600385+guillep2k@users.noreply.github.com>
Date: Sat, 1 Feb 2020 17:15:32 -0300
Subject: [PATCH] Use a file as make evidence for fomantic instead of a
 directory (#10032)

* Use evidence file as dependency instead of dir

* fix eol

* Update .gitignore

Co-Authored-By: silverwind <me@silverwind.io>

* Use FOMANTIC_SOURCES to establish dependencies as per @silverwind

Co-authored-by: silverwind <me@silverwind.io>
---
 .gitignore |  3 +++
 Makefile   | 12 ++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/.gitignore b/.gitignore
index 903e226ca9..0a1d2e3b23 100644
--- a/.gitignore
+++ b/.gitignore
@@ -83,3 +83,6 @@ prime/
 *.snap-build
 *_source.tar.bz2
 .DS_Store
+
+# Make evidence files
+/.make_evidence
diff --git a/Makefile b/Makefile
index 360939321b..688114fb3f 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,7 @@ GOFLAGS := -v
 EXTRA_GOFLAGS ?=
 
 MAKE_VERSION := $(shell $(MAKE) -v | head -n 1)
+MAKE_EVIDENCE_DIR := .make_evidence
 
 ifneq ($(RACE_ENABLED),)
 	GOTESTFLAGS ?= -race
@@ -58,7 +59,10 @@ BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/tem
 BINDATA_HASH := $(addsuffix .hash,$(BINDATA_DEST))
 
 WEBPACK_DEST_DIRS := public/js public/css
+
+FOMANTIC_SOURCES ?= $(shell find web_src/fomantic -type f)
 FOMANTIC_DEST_DIR := public/fomantic
+FOMANTIC_EVIDENCE := $(MAKE_EVIDENCE_DIR)/fomantic
 
 TAGS ?=
 
@@ -139,7 +143,7 @@ node-check:
 
 .PHONY: clean-all
 clean-all: clean
-	rm -rf $(WEBPACK_DEST_DIRS) $(FOMANTIC_DEST_DIR)
+	rm -rf $(WEBPACK_DEST_DIRS) $(FOMANTIC_DEST_DIR) $(FOMANTIC_EVIDENCE)
 
 .PHONY: clean
 clean:
@@ -498,13 +502,13 @@ css:
 	$(MAKE) webpack
 
 .PHONY: fomantic
-fomantic: node-check $(FOMANTIC_DEST_DIR)
+fomantic: node-check $(FOMANTIC_EVIDENCE)
 
-$(FOMANTIC_DEST_DIR): semantic.json web_src/fomantic/theme.config.less | node_modules
+$(FOMANTIC_EVIDENCE): semantic.json $(FOMANTIC_SOURCES) | node_modules
 	cp web_src/fomantic/theme.config.less node_modules/fomantic-ui/src/theme.config
 	cp web_src/fomantic/_site/globals/* node_modules/fomantic-ui/src/_site/globals/
 	npx gulp -f node_modules/fomantic-ui/gulpfile.js build
-	@touch $(FOMANTIC_DEST_DIR)
+	@mkdir -p $(MAKE_EVIDENCE_DIR) && touch $(FOMANTIC_EVIDENCE)
 
 .PHONY: webpack
 webpack: node-check $(WEBPACK_DEST)