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