| # Licensed to 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. Apache Software Foundation (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. |
| # |
| |
| ##@ General |
| |
| # The help target prints out all targets with their descriptions organized |
| # beneath their categories. The categories are represented by '##@' and the |
| # target descriptions by '##'. The awk commands is responsible for reading the |
| # entire set of makefiles included in this invocation, looking for lines of the |
| # file as xyz: ## something, and then pretty-format the target and help. Then, |
| # if there's a line with ##@ something, that gets pretty-printed as a category. |
| # More info on the usage of ANSI control characters for terminal formatting: |
| # https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters |
| # More info on the awk command: |
| # http://linuxcommand.org/lc3_adv_awk.php |
| |
| .PHONY: help |
| help: ## Display this help. |
| @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) |
| |
| |
| ##@ License targets |
| |
| LICENSEEYE = $(tool_bin)/license-eye |
| .PHONY: licenseeye |
| licenseeye: ## Download skywalking-eye locally if necessary. |
| $(call go-install-tool,$(LICENSEEYE),github.com/apache/skywalking-eyes/cmd/license-eye@f461a46e74e5fa22e9f9599a355ab4f0ac265469) |
| |
| .PHONY: license-check |
| license-check: licenseeye ## Check license header |
| $(LICENSEEYE) header check |
| |
| .PHONY: license-fix |
| license-fix: licenseeye ## Fix license header issues |
| $(LICENSEEYE) header fix |
| |
| # go-get-tool will 'go get' any package $2 and install it to $1. |
| define go-get-tool |
| @[ -f $(1) ] || { \ |
| set -e ;\ |
| TMP_DIR=$$(mktemp -d) ;\ |
| cd $$TMP_DIR ;\ |
| go mod init tmp ;\ |
| echo "Downloading $(2)" ;\ |
| GOBIN=$(tool_bin) go get $(2) ;\ |
| rm -rf $$TMP_DIR ;\ |
| } |
| endef |
| |
| # go-install-tool will 'go install' any package $2 and install it to $1. |
| define go-install-tool |
| @[ -f $(1) ] || { \ |
| set -e ;\ |
| echo "Downloading $(2)" ;\ |
| GOBIN=$(tool_bin) go install $(2) ;\ |
| } |
| endef |