go.uber.org/yarpc@v1.72.1/etc/make/deps.mk (about) 1 # List of vendored go executables needed for make generate 2 GEN_GO_BIN_DEPS = \ 3 github.com/golang/mock/mockgen \ 4 github.com/golang/protobuf/protoc-gen-go \ 5 github.com/gogo/protobuf/protoc-gen-gogoslick \ 6 github.com/uber/tchannel-go/thrift/thrift-gen \ 7 golang.org/x/tools/cmd/stringer \ 8 go.uber.org/thriftrw \ 9 go.uber.org/tools/update-license 10 11 # List of vendored go executables needed for linting. These are not installed 12 # automatically and must be requested by $(BIN)/$(basename importPath). 13 LINT_DEPS = \ 14 github.com/kisielk/errcheck \ 15 golang.org/x/lint/golint \ 16 honnef.co/go/tools/cmd/staticcheck 17 18 THRIFT_VERSION := 1.0.0-dev 19 PROTOC_VERSION := 3.5.1 20 RAGEL_VERSION := 6.10 21 22 THRIFT_OS := $(UNAME_OS) 23 PROTOC_OS := $(UNAME_OS) 24 RAGEL_OS := $(UNAME_OS) 25 26 THRIFT_ARCH := $(UNAME_ARCH) 27 PROTOC_ARCH := $(UNAME_ARCH) 28 RAGEL_ARCH := $(UNAME_ARCH) 29 30 ifeq ($(UNAME_OS),Darwin) 31 PROTOC_OS := osx 32 else 33 PROTOC_OS = linux 34 endif 35 36 THRIFT_LIB = $(LIB)/thrift-$(THRIFT_VERSION) 37 THRIFT_TAR = $(THRIFT_LIB)/thrift.tar.gz 38 THRIFT = $(BIN)/thrift 39 PROTOC_LIB = $(LIB)/protoc-$(PROTOC_VERSION) 40 PROTOC_ZIP = $(PROTOC_LIB)/protoc.zip 41 PROTOC = $(BIN)/protoc 42 RAGEL_LIB = $(LIB)/ragel-$(RAGEL_VERSION) 43 RAGEL_BIN = $(RAGEL_LIB)/ragel 44 RAGEL = $(BIN)/ragel 45 46 GEN_BINS = $(THRIFT) $(PROTOC) $(RAGEL) 47 48 $(RAGEL_BIN): 49 @mkdir -p $(RAGEL_LIB) 50 curl -L "https://github.com/yarpc/ragel/releases/download/v$(RAGEL_VERSION)/ragel-$(RAGEL_OS)-$(RAGEL_ARCH)" > $(RAGEL_BIN) 51 52 $(RAGEL): $(RAGEL_BIN) 53 @mkdir -p $(BIN) 54 cp $(RAGEL_BIN) $(RAGEL) 55 @chmod +x $(RAGEL) 56 57 $(THRIFT_TAR): 58 @mkdir -p $(THRIFT_LIB) 59 curl -L "https://github.com/uber/tchannel-go/releases/download/thrift-v$(THRIFT_VERSION)/thrift-1-$(THRIFT_OS)-$(THRIFT_ARCH).tar.gz" > $(THRIFT_TAR) 60 61 $(THRIFT): $(THRIFT_TAR) 62 @mkdir -p $(BIN) 63 cd $(THRIFT_LIB); tar xzf $(THRIFT_TAR) 64 cp $(THRIFT_LIB)/thrift-1 $(THRIFT) 65 66 $(PROTOC_ZIP): 67 @mkdir -p $(PROTOC_LIB) 68 curl -L "https://github.com/google/protobuf/releases/download/v$(PROTOC_VERSION)/protoc-$(PROTOC_VERSION)-$(PROTOC_OS)-$(PROTOC_ARCH).zip" > $(PROTOC_ZIP) 69 70 $(PROTOC): $(PROTOC_ZIP) 71 @mkdir -p $(BIN) 72 cd $(PROTOC_LIB); unzip $(PROTOC_ZIP) 73 cp $(PROTOC_LIB)/bin/protoc $(PROTOC) 74 75 define generatedeprule 76 GEN_BINS += $(BIN)/$(shell basename $1) 77 endef 78 79 define deprule 80 ifdef SUPPRESS_DOCKER 81 $(BIN)/$(shell basename $1): go.mod 82 @mkdir -p $(BIN) 83 PATH=$(BIN):$(PATH) ./etc/bin/vendor-build.sh $(BIN) $1 84 else 85 $(BIN)/$(shell basename $1): go.mod 86 @mkdir -p $(BIN) 87 PATH=$(BIN):$(PATH) ./etc/bin/vendor-build.sh $(BIN) $1 88 endif 89 endef 90 91 $(foreach i,$(GEN_GO_BIN_DEPS),$(eval $(call generatedeprule,$(i)))) 92 $(foreach i,$(GEN_GO_BIN_DEPS),$(eval $(call deprule,$(i)))) 93 94 $(foreach i,$(LINT_DEPS),$(eval $(call deprule,$(i)))) 95 96 THRIFTRW = $(BIN)/thriftrw 97 GOLINT = $(BIN)/golint 98 ERRCHECK = $(BIN)/errcheck 99 STATICCHECK = $(BIN)/staticcheck 100 101 .PHONY: predeps 102 predeps: $(THRIFT) $(PROTOC) $(RAGEL) 103 104 .PHONY: deps 105 deps: predeps $(GEN_BINS) ## install all dependencies