# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # VERSION ?= latest OUT_DIR = bin BINARY = swctl OS = $(shell uname) GO = go GO_PATH = $$($(GO) env GOPATH) GO_BUILD = $(GO) build GO_GET = $(GO) get GO_CLEAN = $(GO) clean GO_TEST = $(GO) test GO_LINT = $(GO_PATH)/bin/golangci-lint GO_LICENSER = $(GO_PATH)/bin/go-licenser GO_BUILD_FLAGS = -v PLATFORMS := windows linux darwin os = $(word 1, $@) ARCH = amd64 SHELL = /bin/bash all: clean deps lint test license build deps: $(GO_GET) -v -t -d ./... .PHONY: $(PLATFORMS) $(PLATFORMS): mkdir -p $(OUT_DIR) GOOS=$(os) GOARCH=$(ARCH) $(GO_BUILD) $(GO_BUILD_FLAGS) -o $(OUT_DIR)/$(BINARY)-$(VERSION)-$(os)-$(ARCH) swctl/main.go .PHONY: lint lint: $(GO_LINT) version || curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GO_PATH)/bin v1.21.0 $(GO_LINT) run -v ./... .PHONE: test test: clean lint $(GO_TEST) ./... -coverprofile=coverage.txt -covermode=atomic .PHONY: build build: deps windows linux darwin .PHONY: license license: clean $(GO_LICENSER) -version || GO111MODULE=off $(GO_GET) -u github.com/elastic/go-licenser $(GO_LICENSER) -d -licensor='Apache Software Foundation (ASF)' . .PHONY: verify verify: clean lint test license .PHONY: fix fix: $(GO_LINT) run -v --fix ./... $(GO_LICENSER) -licensor='Apache Software Foundation (ASF)' . .PHONY: coverage coverage: test bash <(curl -s https://codecov.io/bash) -t a5af28a3-92a2-4b35-9a77-54ad99b1ae00 .PHONY: clean clean: $(GO_CLEAN) ./... -rm -rf ./bin -rm -rf coverage.txt