From 5f4fa6a3c69889a9805d45f98b992ba3d7a7d5c7 Mon Sep 17 00:00:00 2001 From: Marcus Jaschen Date: Mon, 12 Dec 2016 14:52:57 +0100 Subject: [PATCH 1/2] Declare Makefile targets as `PHONY` By default, targets in Makefiles maps to files. This isn't the case here as the targets are used as simple 'shortcuts'. That kind of target should be declared as "phony", as described in the manual: https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index 82e15af..a746940 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,9 @@ +.PHONY: docker-image +.PHONY: docker-push +.PHONY: docker-destroy +.PHONY: docker-run +.PHONY: archive + JS_FILE = assets/js/all.js CONTAINER = miniflux IMAGE = miniflux/miniflux From 08d270cf5f50f4fade5ceeab2469ad8e9dcd0235 Mon Sep 17 00:00:00 2001 From: Marcus Jaschen Date: Mon, 12 Dec 2016 14:59:01 +0100 Subject: [PATCH 2/2] Refactoring the `js` Makefile target The JavaScript build target was rewritten into a more Make-like form with a real file target and prerequisites. The old target `js` is kept for backwards compatibility and declared as "phony". --- Makefile | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index a746940..ee6f298 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ .PHONY: docker-destroy .PHONY: docker-run .PHONY: archive +.PHONY: js JS_FILE = assets/js/all.js CONTAINER = miniflux @@ -21,11 +22,16 @@ docker-destroy: docker-run: @ docker run --rm --name $(CONTAINER) -P $(IMAGE):$(TAG) -js: - @ rm -f ${JS_FILE} - @ echo "/* AUTO GENERATED FILE, DO NOT MODIFY THIS FILE, USE 'make js' */" > ${JS_FILE} - @ cat assets/js/app.js assets/js/feed.js assets/js/item.js assets/js/event.js assets/js/nav.js >> ${JS_FILE} - @ echo "Miniflux.App.Run();" >> ${JS_FILE} +js: $(JS_FILE) + +$(JS_FILE): assets/js/app.js \ + assets/js/feed.js \ + assets/js/item.js \ + assets/js/event.js \ + assets/js/nav.js + @ echo "/* AUTO GENERATED FILE, DO NOT MODIFY THIS FILE, USE 'make js' */" > $@ + @ cat $^ >> $@ + @ echo "Miniflux.App.Run();" >> $@ # Build a new archive: make archive version=1.2.3 dst=/tmp archive: