mirror of
https://github.com/alibaba/higress.git
synced 2026-02-06 23:21:08 +08:00
54 lines
1.7 KiB
Makefile
54 lines
1.7 KiB
Makefile
tools.bindir = tools/bin
|
|
tools.srcdir = tools/src
|
|
|
|
ifeq ($(origin GOOS), undefined)
|
|
GOOS := $(shell go env GOOS)
|
|
endif
|
|
ifeq ($(origin GOARCH), undefined)
|
|
GOARCH := $(shell go env GOARCH)
|
|
endif
|
|
|
|
|
|
# `go get`-able things
|
|
# ====================
|
|
#
|
|
tools/controller-gen = $(tools.bindir)/controller-gen
|
|
tools/golangci-lint = $(tools.bindir)/golangci-lint
|
|
tools/kustomize = $(tools.bindir)/kustomize
|
|
tools/kind = $(tools.bindir)/kind
|
|
tools/setup-envtest = $(tools.bindir)/setup-envtest
|
|
$(tools.bindir)/%: $(tools.srcdir)/%/pin.go $(tools.srcdir)/%/go.mod
|
|
cd $(<D) && GOOS= GOARCH= go build -o $(abspath $@) $$(sed -En 's,^import "(.*)".*,\1,p' pin.go)
|
|
|
|
# `pip install`-able things
|
|
# =========================
|
|
#
|
|
tools/codespell = $(tools.bindir)/codespell
|
|
tools/yamllint = $(tools.bindir)/yamllint
|
|
$(tools.bindir)/%.d/venv: $(tools.srcdir)/%/requirements.txt
|
|
mkdir -p $(@D)
|
|
python3 -m venv $@
|
|
$@/bin/pip3 install -r $< || (rm -rf $@; exit 1)
|
|
$(tools.bindir)/%: $(tools.bindir)/%.d/venv
|
|
ln -sf $*.d/venv/bin/$* $@
|
|
|
|
ifneq ($(GOOS),windows)
|
|
# Shellcheck
|
|
# ==========
|
|
#
|
|
tools/shellcheck = $(tools.bindir)/shellcheck
|
|
SHELLCHECK_VERSION=0.8.0
|
|
SHELLCHECK_ARCH=$(shell uname -m)
|
|
# shellcheck uses the same binary on Intel and Apple Silicon Mac.
|
|
ifeq ($(GOOS),darwin)
|
|
SHELLCHECK_ARCH=x86_64
|
|
endif
|
|
SHELLCHECK_TXZ = https://github.com/koalaman/shellcheck/releases/download/v$(SHELLCHECK_VERSION)/shellcheck-v$(SHELLCHECK_VERSION).$(GOOS).$(SHELLCHECK_ARCH).tar.xz
|
|
tools/bin/$(notdir $(SHELLCHECK_TXZ)):
|
|
mkdir -p $(@D)
|
|
curl -sfL $(SHELLCHECK_TXZ) -o $@
|
|
%/bin/shellcheck: %/bin/$(notdir $(SHELLCHECK_TXZ))
|
|
mkdir -p $(@D)
|
|
tar -C $(@D) -Jxmf $< --strip-components=1 shellcheck-v$(SHELLCHECK_VERSION)/shellcheck
|
|
endif
|