Updated Makefile to account for vendor/ in dist
The previous PR #890 introduced a `Defaults.mk` target for defining default variables for future calls to `make`. This functionality was already present in a different form, but this new "real" target had an unintended side-effect of causing the target to be called automatically at reference, even the optional reference `-include Defaults.mk`. This is undesirable as it causes the generation of defaults even during a `make clean`. This commit resolves these issues and further refactors the Makefile, building on the work in #890, but with additional understanding: * Convert the `Defaults.mk` target to the "phony" `defaults` target, preventing automatic generation * Refactor and split `clean` targets * Update `cleanvendor` to reflect `OFFLINE_BUILD`, similar to the `vendor` target * Move "tools" targets into `Tools.mk` * Add `ARCH` to `Variables.mk` for architecture-specific actions Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
47
Tools.mk
Normal file
47
Tools.mk
Normal file
@@ -0,0 +1,47 @@
|
||||
TOOLS_DIR := .tools
|
||||
TOOLS_BIN := $(TOOLS_DIR)/bin
|
||||
|
||||
GO_TOOLS_BIN := $(addprefix $(TOOLS_BIN)/, $(notdir $(GO_TOOLS)))
|
||||
GO_TOOLS_VENDOR := $(addprefix vendor/, $(GO_TOOLS))
|
||||
GOLANGCI_LINT := $(TOOLS_BIN)/golangci-lint
|
||||
GOLANGCI_LINT_VERSION := v1.53.2
|
||||
PROTOC_GEN_GO := $(TOOLS_BIN)/protoc-gen-go
|
||||
PROTOC_GEN_GO_GRPC := $(TOOLS_BIN)/protoc-gen-go-grpc
|
||||
PROTOC := $(TOOLS_BIN)/protoc
|
||||
PROTOC_GEN_GRPC_GATEWAY := $(TOOLS_BIN)/protoc-gen-grpc-gateway
|
||||
|
||||
ifeq ($(ARCH),aarch64)
|
||||
PROTOC_URL := https://github.com/protocolbuffers/protobuf/releases/download/v24.0/protoc-24.0-linux-aarch_64.zip
|
||||
PROTOC_GEN_GRPC_GATEWAY_URL := https://github.com/grpc-ecosystem/grpc-gateway/releases/download/v2.16.2/protoc-gen-grpc-gateway-v2.16.2-linux-arm64
|
||||
else
|
||||
PROTOC_URL := https://github.com/protocolbuffers/protobuf/releases/download/v24.0/protoc-24.0-linux-x86_64.zip
|
||||
PROTOC_GEN_GRPC_GATEWAY_URL := https://github.com/grpc-ecosystem/grpc-gateway/releases/download/v2.16.2/protoc-gen-grpc-gateway-v2.16.2-linux-x86_64
|
||||
endif
|
||||
|
||||
$(TOOLS_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
.PHONY: tools
|
||||
tools: $(GO_TOOLS_BIN) $(GOLANGCI_LINT) $(PROTOC_GEN_GO) $(PROTOC_GEN_GO_GRPC)
|
||||
|
||||
$(GO_TOOLS_BIN):
|
||||
GOBIN="$(PWD)/$(TOOLS_BIN)" go install -mod=vendor $(GO_TOOLS)
|
||||
|
||||
$(GOLANGCI_LINT):
|
||||
curl -qq -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(TOOLS_BIN) $(GOLANGCI_LINT_VERSION)
|
||||
|
||||
$(PROTOC):
|
||||
cd $(PWD)/$(TOOLS_DIR) && curl -LO $(PROTOC_URL) && unzip protoc-24.0-linux-$(ARCHITECTURE_CPU).zip
|
||||
|
||||
$(PROTOC_GEN_GRPC_GATEWAY):
|
||||
curl -L $(PROTOC_GEN_GRPC_GATEWAY_URL) -o $(PROTOC_GEN_GRPC_GATEWAY)
|
||||
chmod +x $(PROTOC_GEN_GRPC_GATEWAY)
|
||||
|
||||
$(PROTOC_GEN_GO):
|
||||
GOBIN="$(PWD)/$(TOOLS_BIN)" go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
|
||||
|
||||
$(PROTOC_GEN_GO_GRPC):
|
||||
GOBIN="$(PWD)/$(TOOLS_BIN)" go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
|
||||
|
||||
.PHONY: cleantools
|
||||
rm -rf $(TOOLS_DIR)
|
||||
Reference in New Issue
Block a user