From 1f9f81da70ba9695aa9711807bbdc83758bf693e Mon Sep 17 00:00:00 2001 From: mmetc <92726601+mmetc@users.noreply.github.com> Date: Thu, 25 May 2023 10:32:05 +0200 Subject: [PATCH] makefiles: de-duplicate, simplify and remove unused code (#2222) --- Makefile | 75 +++++++++++++-------------- cmd/crowdsec-cli/Makefile | 2 - cmd/crowdsec/Makefile | 2 - mk/platform.mk | 5 ++ mk/platform/unix_common.mk | 3 -- mk/platform/windows.mk | 5 -- plugins/notifications/dummy/Makefile | 3 -- plugins/notifications/email/Makefile | 3 -- plugins/notifications/http/Makefile | 3 -- plugins/notifications/slack/Makefile | 3 -- plugins/notifications/splunk/Makefile | 3 -- 11 files changed, 42 insertions(+), 65 deletions(-) diff --git a/Makefile b/Makefile index 6cbb97109..334e738c8 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,24 @@ include mk/platform.mk +BUILD_CODENAME ?= alphaga + CROWDSEC_FOLDER = ./cmd/crowdsec CSCLI_FOLDER = ./cmd/crowdsec-cli/ -HTTP_PLUGIN_FOLDER = ./plugins/notifications/http -SLACK_PLUGIN_FOLDER = ./plugins/notifications/slack -SPLUNK_PLUGIN_FOLDER = ./plugins/notifications/splunk -EMAIL_PLUGIN_FOLDER = ./plugins/notifications/email -DUMMY_PLUGIN_FOLDER = ./plugins/notifications/dummy +HTTP_PLUGIN_FOLDER = plugins/notifications/http +SLACK_PLUGIN_FOLDER = plugins/notifications/slack +SPLUNK_PLUGIN_FOLDER = plugins/notifications/splunk +EMAIL_PLUGIN_FOLDER = plugins/notifications/email +DUMMY_PLUGIN_FOLDER = plugins/notifications/dummy HTTP_PLUGIN_BIN = notification-http$(EXT) SLACK_PLUGIN_BIN = notification-slack$(EXT) SPLUNK_PLUGIN_BIN = notification-splunk$(EXT) EMAIL_PLUGIN_BIN = notification-email$(EXT) -DUMMY_PLUGIN_BIN= notification-dummy$(EXT) - -HTTP_PLUGIN_CONFIG = http.yaml -SLACK_PLUGIN_CONFIG = slack.yaml -SPLUNK_PLUGIN_CONFIG = splunk.yaml -EMAIL_PLUGIN_CONFIG = email.yaml +DUMMY_PLUGIN_BIN = notification-dummy$(EXT) CROWDSEC_BIN = crowdsec$(EXT) CSCLI_BIN = cscli$(EXT) -BUILD_CMD = build GO_MODULE_NAME = github.com/crowdsecurity/crowdsec @@ -54,6 +50,9 @@ GOTEST = $(GOCMD) test RELDIR = crowdsec-$(BUILD_VERSION) +# flags for sub-makefiles +MAKE_FLAGS = --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + .PHONY: build build: goversion crowdsec cscli plugins @@ -65,39 +64,39 @@ plugins: http-plugin slack-plugin splunk-plugin email-plugin dummy-plugin .PHONY: clean clean: testclean - @$(MAKE) -C $(CROWDSEC_FOLDER) clean --no-print-directory RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" - @$(MAKE) -C $(CSCLI_FOLDER) clean --no-print-directory RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + @$(MAKE) -C $(CROWDSEC_FOLDER) clean $(MAKE_FLAGS) + @$(MAKE) -C $(CSCLI_FOLDER) clean $(MAKE_FLAGS) @$(RM) $(CROWDSEC_BIN) $(WIN_IGNORE_ERR) @$(RM) $(CSCLI_BIN) $(WIN_IGNORE_ERR) @$(RM) *.log $(WIN_IGNORE_ERR) @$(RM) crowdsec-release.tgz $(WIN_IGNORE_ERR) - @$(RM) $(HTTP_PLUGIN_FOLDER)/$(HTTP_PLUGIN_BIN) $(WIN_IGNORE_ERR) - @$(RM) $(SLACK_PLUGIN_FOLDER)/$(SLACK_PLUGIN_BIN) $(WIN_IGNORE_ERR) - @$(RM) $(SPLUNK_PLUGIN_FOLDER)/$(SPLUNK_PLUGIN_BIN) $(WIN_IGNORE_ERR) - @$(RM) $(EMAIL_PLUGIN_FOLDER)/$(EMAIL_PLUGIN_BIN) $(WIN_IGNORE_ERR) - @$(RM) $(DUMMY_PLUGIN_FOLDER)/$(DUMMY_PLUGIN_BIN) $(WIN_IGNORE_ERR) + @$(RM) ./$(HTTP_PLUGIN_FOLDER)/$(HTTP_PLUGIN_BIN) $(WIN_IGNORE_ERR) + @$(RM) ./$(SLACK_PLUGIN_FOLDER)/$(SLACK_PLUGIN_BIN) $(WIN_IGNORE_ERR) + @$(RM) ./$(SPLUNK_PLUGIN_FOLDER)/$(SPLUNK_PLUGIN_BIN) $(WIN_IGNORE_ERR) + @$(RM) ./$(EMAIL_PLUGIN_FOLDER)/$(EMAIL_PLUGIN_BIN) $(WIN_IGNORE_ERR) + @$(RM) ./$(DUMMY_PLUGIN_FOLDER)/$(DUMMY_PLUGIN_BIN) $(WIN_IGNORE_ERR) cscli: goversion - @$(MAKE) -C $(CSCLI_FOLDER) build --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + @$(MAKE) -C $(CSCLI_FOLDER) build $(MAKE_FLAGS) crowdsec: goversion - @$(MAKE) -C $(CROWDSEC_FOLDER) build --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + @$(MAKE) -C $(CROWDSEC_FOLDER) build $(MAKE_FLAGS) http-plugin: goversion - @$(MAKE) -C $(HTTP_PLUGIN_FOLDER) build --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + @$(MAKE) -C ./$(HTTP_PLUGIN_FOLDER) build $(MAKE_FLAGS) slack-plugin: goversion - @$(MAKE) -C $(SLACK_PLUGIN_FOLDER) build --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + @$(MAKE) -C ./$(SLACK_PLUGIN_FOLDER) build $(MAKE_FLAGS) splunk-plugin: goversion - @$(MAKE) -C $(SPLUNK_PLUGIN_FOLDER) build --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + @$(MAKE) -C ./$(SPLUNK_PLUGIN_FOLDER) build $(MAKE_FLAGS) email-plugin: goversion - @$(MAKE) -C $(EMAIL_PLUGIN_FOLDER) build --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + @$(MAKE) -C ./$(EMAIL_PLUGIN_FOLDER) build $(MAKE_FLAGS) dummy-plugin: goversion - $(MAKE) -C $(DUMMY_PLUGIN_FOLDER) build --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)" + $(MAKE) -C ./$(DUMMY_PLUGIN_FOLDER) build $(MAKE_FLAGS) .PHONY: testclean testclean: bats-clean @@ -134,23 +133,23 @@ package-common: @echo "Building Release to dir $(RELDIR)" @$(MKDIR) $(RELDIR)/cmd/crowdsec @$(MKDIR) $(RELDIR)/cmd/crowdsec-cli - @$(MKDIR) $(RELDIR)/$(subst ./,,$(HTTP_PLUGIN_FOLDER)) - @$(MKDIR) $(RELDIR)/$(subst ./,,$(SLACK_PLUGIN_FOLDER)) - @$(MKDIR) $(RELDIR)/$(subst ./,,$(SPLUNK_PLUGIN_FOLDER)) - @$(MKDIR) $(RELDIR)/$(subst ./,,$(EMAIL_PLUGIN_FOLDER)) + @$(MKDIR) $(RELDIR)/$(HTTP_PLUGIN_FOLDER) + @$(MKDIR) $(RELDIR)/$(SLACK_PLUGIN_FOLDER) + @$(MKDIR) $(RELDIR)/$(SPLUNK_PLUGIN_FOLDER) + @$(MKDIR) $(RELDIR)/$(EMAIL_PLUGIN_FOLDER) @$(CP) $(CROWDSEC_FOLDER)/$(CROWDSEC_BIN) $(RELDIR)/cmd/crowdsec @$(CP) $(CSCLI_FOLDER)/$(CSCLI_BIN) $(RELDIR)/cmd/crowdsec-cli - @$(CP) $(HTTP_PLUGIN_FOLDER)/$(HTTP_PLUGIN_BIN) $(RELDIR)/$(subst ./,,$(HTTP_PLUGIN_FOLDER)) - @$(CP) $(SLACK_PLUGIN_FOLDER)/$(SLACK_PLUGIN_BIN) $(RELDIR)/$(subst ./,,$(SLACK_PLUGIN_FOLDER)) - @$(CP) $(SPLUNK_PLUGIN_FOLDER)/$(SPLUNK_PLUGIN_BIN) $(RELDIR)/$(subst ./,,$(SPLUNK_PLUGIN_FOLDER)) - @$(CP) $(EMAIL_PLUGIN_FOLDER)/$(EMAIL_PLUGIN_BIN) $(RELDIR)/$(subst ./,,$(EMAIL_PLUGIN_FOLDER)) + @$(CP) ./$(HTTP_PLUGIN_FOLDER)/$(HTTP_PLUGIN_BIN) $(RELDIR)/$(HTTP_PLUGIN_FOLDER) + @$(CP) ./$(SLACK_PLUGIN_FOLDER)/$(SLACK_PLUGIN_BIN) $(RELDIR)/$(SLACK_PLUGIN_FOLDER) + @$(CP) ./$(SPLUNK_PLUGIN_FOLDER)/$(SPLUNK_PLUGIN_BIN) $(RELDIR)/$(SPLUNK_PLUGIN_FOLDER) + @$(CP) ./$(EMAIL_PLUGIN_FOLDER)/$(EMAIL_PLUGIN_BIN) $(RELDIR)/$(EMAIL_PLUGIN_FOLDER) - @$(CP) $(HTTP_PLUGIN_FOLDER)/$(HTTP_PLUGIN_CONFIG) $(RELDIR)/$(subst ./,,$(HTTP_PLUGIN_FOLDER)) - @$(CP) $(SLACK_PLUGIN_FOLDER)/$(SLACK_PLUGIN_CONFIG) $(RELDIR)/$(subst ./,,$(SLACK_PLUGIN_FOLDER)) - @$(CP) $(SPLUNK_PLUGIN_FOLDER)/$(SPLUNK_PLUGIN_CONFIG) $(RELDIR)/$(subst ./,,$(SPLUNK_PLUGIN_FOLDER)) - @$(CP) $(EMAIL_PLUGIN_FOLDER)/$(EMAIL_PLUGIN_CONFIG) $(RELDIR)/$(subst ./,,$(EMAIL_PLUGIN_FOLDER)) + @$(CP) ./$(HTTP_PLUGIN_FOLDER)/http.yaml $(RELDIR)/$(HTTP_PLUGIN_FOLDER) + @$(CP) ./$(SLACK_PLUGIN_FOLDER)/slack.yaml $(RELDIR)/$(SLACK_PLUGIN_FOLDER) + @$(CP) ./$(SPLUNK_PLUGIN_FOLDER)/splunk.yaml $(RELDIR)/$(SPLUNK_PLUGIN_FOLDER) + @$(CP) ./$(EMAIL_PLUGIN_FOLDER)/email.yaml $(RELDIR)/$(EMAIL_PLUGIN_FOLDER) @$(CPR) ./config $(RELDIR) @$(CP) wizard.sh $(RELDIR) diff --git a/cmd/crowdsec-cli/Makefile b/cmd/crowdsec-cli/Makefile index 27ca90ee8..f4d66157f 100644 --- a/cmd/crowdsec-cli/Makefile +++ b/cmd/crowdsec-cli/Makefile @@ -7,9 +7,7 @@ endif # Go parameters GOCMD = go GOBUILD = $(GOCMD) build -GOCLEAN = $(GOCMD) clean GOTEST = $(GOCMD) test -GOGET = $(GOCMD) get BINARY_NAME = cscli$(EXT) PREFIX ?= "/" diff --git a/cmd/crowdsec/Makefile b/cmd/crowdsec/Makefile index f18cd338c..beee418af 100644 --- a/cmd/crowdsec/Makefile +++ b/cmd/crowdsec/Makefile @@ -7,9 +7,7 @@ endif # Go parameters GOCMD = go GOBUILD = $(GOCMD) build -GOCLEAN = $(GOCMD) clean GOTEST = $(GOCMD) test -GOGET = $(GOCMD) get CROWDSEC_BIN = crowdsec$(EXT) # names longer than 15 chars break 'pgrep' diff --git a/mk/platform.mk b/mk/platform.mk index 67c94c07d..9e375de3e 100644 --- a/mk/platform.mk +++ b/mk/platform.mk @@ -1,3 +1,8 @@ + +BUILD_CODENAME ?= alphaga +GOARCH ?= $(shell go env GOARCH) +BUILD_TAG ?= $(shell git rev-parse HEAD) + ifeq ($(OS), Windows_NT) SHELL := pwsh.exe .SHELLFLAGS := -NoProfile -Command diff --git a/mk/platform/unix_common.mk b/mk/platform/unix_common.mk index 23f9d886b..f611693f4 100644 --- a/mk/platform/unix_common.mk +++ b/mk/platform/unix_common.mk @@ -6,12 +6,9 @@ MKDIR=mkdir -p # Go should not be required to run functional tests GOOS ?= $(shell go env GOOS) -GOARCH ?= $(shell go env GOARCH) #Current versioning information from env BUILD_VERSION?=$(shell git describe --tags) -BUILD_CODENAME="alphaga" BUILD_TIMESTAMP=$(shell date +%F"_"%T) -BUILD_TAG?=$(shell git rev-parse HEAD) DEFAULT_CONFIGDIR?=/etc/crowdsec DEFAULT_DATADIR?=/var/lib/crowdsec/data diff --git a/mk/platform/windows.mk b/mk/platform/windows.mk index 33b92b828..e4c5e8a12 100644 --- a/mk/platform/windows.mk +++ b/mk/platform/windows.mk @@ -4,16 +4,11 @@ MAKE=make GOOS=windows PREFIX=$(shell $$env:TEMP) -GOOS ?= $(shell go env GOOS) -GOARCH ?= $(shell go env GOARCH) - #Current versioning information from env #BUILD_VERSION?=$(shell (Invoke-WebRequest -UseBasicParsing -Uri https://api.github.com/repos/crowdsecurity/crowdsec/releases/latest).Content | jq -r '.tag_name') #hardcode it till i find a workaround BUILD_VERSION?=$(shell git describe --tags $$(git rev-list --tags --max-count=1)) -BUILD_CODENAME?=alphaga BUILD_TIMESTAMP?=$(shell Get-Date -Format "yyyy-MM-dd_HH:mm:ss") -BUILD_TAG?=$(shell git rev-parse HEAD) DEFAULT_CONFIGDIR?=C:\\ProgramData\\CrowdSec\\config DEFAULT_DATADIR?=C:\\ProgramData\\CrowdSec\\data diff --git a/plugins/notifications/dummy/Makefile b/plugins/notifications/dummy/Makefile index e47c2fab0..d7a74e485 100644 --- a/plugins/notifications/dummy/Makefile +++ b/plugins/notifications/dummy/Makefile @@ -7,9 +7,6 @@ endif # Go parameters GOCMD = go GOBUILD = $(GOCMD) build -GOCLEAN = $(GOCMD) clean -GOTEST = $(GOCMD) test -GOGET = $(GOCMD) get BINARY_NAME = notification-dummy$(EXT) diff --git a/plugins/notifications/email/Makefile b/plugins/notifications/email/Makefile index e80b4a70c..a58f5bc01 100644 --- a/plugins/notifications/email/Makefile +++ b/plugins/notifications/email/Makefile @@ -7,9 +7,6 @@ endif # Go parameters GOCMD = go GOBUILD = $(GOCMD) build -GOCLEAN = $(GOCMD) clean -GOTEST = $(GOCMD) test -GOGET = $(GOCMD) get BINARY_NAME = notification-email$(EXT) diff --git a/plugins/notifications/http/Makefile b/plugins/notifications/http/Makefile index 8d0592fd3..2845d858d 100644 --- a/plugins/notifications/http/Makefile +++ b/plugins/notifications/http/Makefile @@ -7,9 +7,6 @@ endif # Go parameters GOCMD = go GOBUILD = $(GOCMD) build -GOCLEAN = $(GOCMD) clean -GOTEST = $(GOCMD) test -GOGET = $(GOCMD) get BINARY_NAME = notification-http$(EXT) diff --git a/plugins/notifications/slack/Makefile b/plugins/notifications/slack/Makefile index 406b6872a..ca6aa94db 100644 --- a/plugins/notifications/slack/Makefile +++ b/plugins/notifications/slack/Makefile @@ -7,9 +7,6 @@ endif # Go parameters GOCMD = go GOBUILD = $(GOCMD) build -GOCLEAN = $(GOCMD) clean -GOTEST = $(GOCMD) test -GOGET = $(GOCMD) get BINARY_NAME = notification-slack$(EXT) diff --git a/plugins/notifications/splunk/Makefile b/plugins/notifications/splunk/Makefile index 6a24b5c32..a318cc8dd 100644 --- a/plugins/notifications/splunk/Makefile +++ b/plugins/notifications/splunk/Makefile @@ -7,9 +7,6 @@ endif # Go parameters GOCMD = go GOBUILD = $(GOCMD) build -GOCLEAN = $(GOCMD) clean -GOTEST = $(GOCMD) test -GOGET = $(GOCMD) get BINARY_NAME = notification-splunk$(EXT)