From 1aa100dc7d79eb8d356e12356e284d7c080fe934 Mon Sep 17 00:00:00 2001 From: Harvey Tindall Date: Wed, 28 Aug 2024 15:24:43 +0100 Subject: [PATCH] build: dont go build when INTERNAL=off and no changes all build steps (apart from swagger, which generates go code) are stored in BUILDDEPS, which is now a dependency of all. if INTERNAL=on, BUILDDEPS is added to GO_TARGET, so the executable is rebuilt with new content. Used the .DEFAULT_GOAL feature so I could move all: to the bottom, where I think it belongs. --- Makefile | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 81ca24d..6f96c19 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ .PHONY: configuration email typescript swagger copy compile compress inline-css variants-html install clean npm config-description config-default precompile - -all: compile +.DEFAULT_GOAL := all GOESBUILD ?= off ifeq ($(GOESBUILD), on) @@ -35,9 +34,11 @@ TAGS := -tags " ifeq ($(INTERNAL), on) DATA := data + COMPDEPS := $(BUILDDEPS) else DATA := build/data TAGS := $(TAGS) external + COMPDEPS := endif ifeq ($(TRAY), on) @@ -206,21 +207,27 @@ $(COPY_TARGET): $(INLINE_TARGET) $(STATIC_SRC) $(LANG_SRC) cp -r lang $(DATA)/ cp LICENSE $(DATA)/ -precompile: $(DATA) $(CONFIG_DEFAULT) $(EMAIL_TARGET) $(COPY_TARGET) $(SWAGGER_TARGET) +BUILDDEPS := $(DATA) $(CONFIG_DEFAULT) $(EMAIL_TARGET) $(COPY_TARGET) $(SWAGGER_TARGET) +precompile: $(BUILDDEPS) + +COMPDEPS = +ifeq ($(INTERNAL), on) + COMPDEPS = $(BUILDDEPS) +endif GO_SRC = $(shell find ./ -name "*.go") -GO_TARGET = build/jfa-go -$(GO_TARGET): $(DATA) $(CONFIG_DEFAULT) $(EMAIL_TARGET) $(COPY_TARGET) $(SWAGGER_TARGET) $(GO_SRC) go.mod go.sum +GO_TARGET = build/jfa-go +$(GO_TARGET): $(COMPDEPS) $(SWAGGER_TARGET) $(GO_SRC) go.mod go.sum $(info Downloading deps) $(GOBINARY) mod download $(info Building) mkdir -p build $(GOBINARY) build $(RACEDETECTOR) -ldflags="$(LDFLAGS)" $(TAGS) -o $(GO_TARGET) -compile: $(GO_TARGET) +all: $(BUILDDEPS) $(GO_TARGET) compress: - upx --lzma build/jfa-go + upx --lzma $(GO_TARGET) install: cp -r build $(DESTDIR)/jfa-go