mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 03:07:28 +00:00 
			
		
		
		
	chore: allow override of go binary in Makefile (#1660)
* chore: allow override of go binary in Makefile * update build dir make commands with GO_BIN
This commit is contained in:
		
							parent
							
								
									839dc80205
								
							
						
					
					
						commit
						23f0fe0667
					
				
							
								
								
									
										50
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								Makefile
									
									
									
									
									
								
							@ -3,6 +3,8 @@
 | 
			
		||||
################################################################################
 | 
			
		||||
PROJECT_NAME := kava# unique namespace for project
 | 
			
		||||
 | 
			
		||||
GO_BIN ?= go
 | 
			
		||||
 | 
			
		||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
 | 
			
		||||
GIT_COMMIT := $(shell git rev-parse HEAD)
 | 
			
		||||
GIT_COMMIT_SHORT := $(shell git rev-parse --short HEAD)
 | 
			
		||||
@ -26,8 +28,8 @@ VERSION := $(GIT_COMMIT_SHORT)
 | 
			
		||||
VERSION_NUMBER := $(VERSION)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
TENDERMINT_VERSION := $(shell go list -m github.com/tendermint/tendermint | sed 's:.* ::')
 | 
			
		||||
COSMOS_SDK_VERSION := $(shell go list -m github.com/cosmos/cosmos-sdk | sed 's:.* ::')
 | 
			
		||||
TENDERMINT_VERSION := $(shell $(GO_BIN) list -m github.com/tendermint/tendermint | sed 's:.* ::')
 | 
			
		||||
COSMOS_SDK_VERSION := $(shell $(GO_BIN) list -m github.com/cosmos/cosmos-sdk | sed 's:.* ::')
 | 
			
		||||
 | 
			
		||||
.PHONY: print-git-info
 | 
			
		||||
print-git-info:
 | 
			
		||||
@ -186,28 +188,28 @@ all: install
 | 
			
		||||
 | 
			
		||||
build: go.sum
 | 
			
		||||
ifeq ($(OS), Windows_NT)
 | 
			
		||||
	go build -mod=readonly $(BUILD_FLAGS) -o out/$(shell go env GOOS)/kava.exe ./cmd/kava
 | 
			
		||||
	$(GO_BIN) build -mod=readonly $(BUILD_FLAGS) -o out/$(shell $(GO_BIN) env GOOS)/kava.exe ./cmd/kava
 | 
			
		||||
else
 | 
			
		||||
	go build -mod=readonly $(BUILD_FLAGS) -o out/$(shell go env GOOS)/kava ./cmd/kava
 | 
			
		||||
	$(GO_BIN) build -mod=readonly $(BUILD_FLAGS) -o out/$(shell $(GO_BIN) env GOOS)/kava ./cmd/kava
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
build-linux: go.sum
 | 
			
		||||
	LEDGER_ENABLED=false GOOS=linux GOARCH=amd64 $(MAKE) build
 | 
			
		||||
 | 
			
		||||
install: go.sum
 | 
			
		||||
	go install -mod=readonly $(BUILD_FLAGS) ./cmd/kava
 | 
			
		||||
	$(GO_BIN) install -mod=readonly $(BUILD_FLAGS) ./cmd/kava
 | 
			
		||||
 | 
			
		||||
########################################
 | 
			
		||||
### Tools & dependencies
 | 
			
		||||
 | 
			
		||||
go-mod-cache: go.sum
 | 
			
		||||
	@echo "--> Download go modules to local cache"
 | 
			
		||||
	@go mod download
 | 
			
		||||
	@echo "--> Download $(GO_BIN) modules to local cache"
 | 
			
		||||
	@$(GO_BIN) mod download
 | 
			
		||||
PHONY: go-mod-cache
 | 
			
		||||
 | 
			
		||||
go.sum: go.mod
 | 
			
		||||
	@echo "--> Ensuring dependencies have not been modified"
 | 
			
		||||
	@go mod verify
 | 
			
		||||
	@$(GO_BIN) mod verify
 | 
			
		||||
 | 
			
		||||
########################################
 | 
			
		||||
### Linting
 | 
			
		||||
@ -216,14 +218,14 @@ go.sum: go.mod
 | 
			
		||||
# This tool checks local markdown links as well.
 | 
			
		||||
# Set to exclude riot links as they trigger false positives
 | 
			
		||||
link-check:
 | 
			
		||||
	@go get -u github.com/raviqqe/liche@f57a5d1c5be4856454cb26de155a65a4fd856ee3
 | 
			
		||||
	@$(GO_BIN) get -u github.com/raviqqe/liche@f57a5d1c5be4856454cb26de155a65a4fd856ee3
 | 
			
		||||
	liche -r . --exclude "^http://127.*|^https://riot.im/app*|^http://kava-testnet*|^https://testnet-dex*|^https://kava3.data.kava.io*|^https://ipfs.io*|^https://apps.apple.com*|^https://kava.quicksync.io*"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
lint:
 | 
			
		||||
	golangci-lint run
 | 
			
		||||
	find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" | xargs gofmt -d -s
 | 
			
		||||
	go mod verify
 | 
			
		||||
	$(GO_BIN) mod verify
 | 
			
		||||
.PHONY: lint
 | 
			
		||||
 | 
			
		||||
format:
 | 
			
		||||
@ -274,40 +276,40 @@ start:
 | 
			
		||||
# build dependency needed for cli tests
 | 
			
		||||
test-all: build
 | 
			
		||||
	# basic app tests
 | 
			
		||||
	@go test ./app -v
 | 
			
		||||
	@$(GO_BIN) test ./app -v
 | 
			
		||||
	# basic simulation (seed "4" happens to not unbond all validators before reaching 100 blocks)
 | 
			
		||||
	#@go test ./app -run TestFullAppSimulation        -Enabled -Commit -NumBlocks=100 -BlockSize=200 -Seed 4 -v -timeout 24h
 | 
			
		||||
	#@$(GO_BIN) test ./app -run TestFullAppSimulation        -Enabled -Commit -NumBlocks=100 -BlockSize=200 -Seed 4 -v -timeout 24h
 | 
			
		||||
	# other sim tests
 | 
			
		||||
	#@go test ./app -run TestAppImportExport          -Enabled -Commit -NumBlocks=100 -BlockSize=200 -Seed 4 -v -timeout 24h
 | 
			
		||||
	#@go test ./app -run TestAppSimulationAfterImport -Enabled -Commit -NumBlocks=100 -BlockSize=200 -Seed 4 -v -timeout 24h
 | 
			
		||||
	#@$(GO_BIN) test ./app -run TestAppImportExport          -Enabled -Commit -NumBlocks=100 -BlockSize=200 -Seed 4 -v -timeout 24h
 | 
			
		||||
	#@$(GO_BIN) test ./app -run TestAppSimulationAfterImport -Enabled -Commit -NumBlocks=100 -BlockSize=200 -Seed 4 -v -timeout 24h
 | 
			
		||||
	# AppStateDeterminism does not use Seed flag
 | 
			
		||||
	#@go test ./app -run TestAppStateDeterminism      -Enabled -Commit -NumBlocks=100 -BlockSize=200 -Seed 4 -v -timeout 24h
 | 
			
		||||
	#@$(GO_BIN) test ./app -run TestAppStateDeterminism      -Enabled -Commit -NumBlocks=100 -BlockSize=200 -Seed 4 -v -timeout 24h
 | 
			
		||||
 | 
			
		||||
# run module tests and short simulations
 | 
			
		||||
test-basic: test
 | 
			
		||||
	@go test ./app -run TestFullAppSimulation        -Enabled -Commit -NumBlocks=5 -BlockSize=200 -Seed 4 -v -timeout 2m
 | 
			
		||||
	@$(GO_BIN) test ./app -run TestFullAppSimulation        -Enabled -Commit -NumBlocks=5 -BlockSize=200 -Seed 4 -v -timeout 2m
 | 
			
		||||
	# other sim tests
 | 
			
		||||
	@go test ./app -run TestAppImportExport          -Enabled -Commit -NumBlocks=5 -BlockSize=200 -Seed 4 -v -timeout 2m
 | 
			
		||||
	@go test ./app -run TestAppSimulationAfterImport -Enabled -Commit -NumBlocks=5 -BlockSize=200 -Seed 4 -v -timeout 2m
 | 
			
		||||
	@$(GO_BIN) test ./app -run TestAppImportExport          -Enabled -Commit -NumBlocks=5 -BlockSize=200 -Seed 4 -v -timeout 2m
 | 
			
		||||
	@$(GO_BIN) test ./app -run TestAppSimulationAfterImport -Enabled -Commit -NumBlocks=5 -BlockSize=200 -Seed 4 -v -timeout 2m
 | 
			
		||||
	@# AppStateDeterminism does not use Seed flag
 | 
			
		||||
	@go test ./app -run TestAppStateDeterminism      -Enabled -Commit -NumBlocks=5 -BlockSize=200 -Seed 4 -v -timeout 2m
 | 
			
		||||
	@$(GO_BIN) test ./app -run TestAppStateDeterminism      -Enabled -Commit -NumBlocks=5 -BlockSize=200 -Seed 4 -v -timeout 2m
 | 
			
		||||
 | 
			
		||||
# run end-to-end tests (local docker container must be built, see docker-build)
 | 
			
		||||
test-e2e: docker-build
 | 
			
		||||
	go test -failfast -count=1 -v ./tests/e2e/...
 | 
			
		||||
	$(GO_BIN) test -failfast -count=1 -v ./tests/e2e/...
 | 
			
		||||
 | 
			
		||||
test:
 | 
			
		||||
	@go test $$(go list ./... | grep -v 'contrib' | grep -v 'tests/e2e')
 | 
			
		||||
	@$(GO_BIN) test $$($(GO_BIN) list ./... | grep -v 'contrib' | grep -v 'tests/e2e')
 | 
			
		||||
 | 
			
		||||
# Run cli integration tests
 | 
			
		||||
# `-p 4` to use 4 cores, `-tags cli_test` to tell go not to ignore the cli package
 | 
			
		||||
# `-p 4` to use 4 cores, `-tags cli_test` to tell $(GO_BIN) not to ignore the cli package
 | 
			
		||||
# These tests use the `kvd` or `kvcli` binaries in the build dir, or in `$BUILDDIR` if that env var is set.
 | 
			
		||||
test-cli: build
 | 
			
		||||
	@go test ./cli_test -tags cli_test -v -p 4
 | 
			
		||||
	@$(GO_BIN) test ./cli_test -tags cli_test -v -p 4
 | 
			
		||||
 | 
			
		||||
# Run tests for migration cli command
 | 
			
		||||
test-migrate:
 | 
			
		||||
	@go test -v -count=1 ./migrate/...
 | 
			
		||||
	@$(GO_BIN) test -v -count=1 ./migrate/...
 | 
			
		||||
 | 
			
		||||
# Kick start lots of sims on an AWS cluster.
 | 
			
		||||
# This submits an AWS Batch job to run a lot of sims, each within a docker image. Results are uploaded to S3
 | 
			
		||||
 | 
			
		||||
@ -27,10 +27,11 @@ DIRS := $(BUILD_CACHE_DIR) $(BIN_DIR)
 | 
			
		||||
################################################################################
 | 
			
		||||
###                             Tool Versions                                ###
 | 
			
		||||
################################################################################
 | 
			
		||||
GO_BIN ?= go
 | 
			
		||||
PROTOC_VERSION ?= v21.9
 | 
			
		||||
BUF_VERSION ?= v1.9.0
 | 
			
		||||
PROTOC_GEN_GOCOSMOS_VERSION ?= v0.3.1
 | 
			
		||||
PROTOC_GEN_GRPC_GATEWAY_VERSION ?= $(shell go list -m github.com/grpc-ecosystem/grpc-gateway| sed 's:.* ::')
 | 
			
		||||
PROTOC_GEN_GRPC_GATEWAY_VERSION ?= $(shell $(GO_BIN) list -m github.com/grpc-ecosystem/grpc-gateway| sed 's:.* ::')
 | 
			
		||||
PROTOC_GEN_DOC_VERSION ?= v1.5.1
 | 
			
		||||
SWAGGER_COMBINE_VERSION ?= v1.4.0
 | 
			
		||||
 | 
			
		||||
@ -115,7 +116,7 @@ $(PROTOC_GEN_GOCOSMOS_VERSION_FILE):
 | 
			
		||||
	git clone -q https://github.com/regen-network/cosmos-proto.git; \
 | 
			
		||||
	cd cosmos-proto; \
 | 
			
		||||
	git checkout -q $(PROTOC_GEN_GOCOSMOS_VERSION); \
 | 
			
		||||
	GOBIN=$(ROOT_DIR)/$(BIN_DIR) go install ./protoc-gen-gocosmos
 | 
			
		||||
	GOBIN=$(ROOT_DIR)/$(BIN_DIR) $(GO_BIN) install ./protoc-gen-gocosmos
 | 
			
		||||
	@rm -rf $(BUILD_CACHE_DIR)/protoc-gen-gocosmos
 | 
			
		||||
 | 
			
		||||
PROTOC_GEN_GOCOSMOS := $(BIN_DIR)/protoc-gen-gocosmos
 | 
			
		||||
@ -138,8 +139,8 @@ $(PROTOC_GEN_GRPC_GATEWAY_VERSION_FILE):
 | 
			
		||||
	git clone -q https://github.com/grpc-ecosystem/grpc-gateway.git; \
 | 
			
		||||
	cd grpc-gateway; \
 | 
			
		||||
	git checkout -q $(PROTOC_GEN_GRPC_GATEWAY_VERSION); \
 | 
			
		||||
	GOBIN=$(ROOT_DIR)/$(BIN_DIR) go install ./protoc-gen-grpc-gateway; \
 | 
			
		||||
	GOBIN=$(ROOT_DIR)/$(BIN_DIR) go install ./protoc-gen-swagger
 | 
			
		||||
	GOBIN=$(ROOT_DIR)/$(BIN_DIR) $(GO_BIN) install ./protoc-gen-grpc-gateway; \
 | 
			
		||||
	GOBIN=$(ROOT_DIR)/$(BIN_DIR) $(GO_BIN) install ./protoc-gen-swagger
 | 
			
		||||
	@rm -rf $(BUILD_CACHE_DIR)/protoc-gen-grpc-gateway
 | 
			
		||||
 | 
			
		||||
PROTOC_GEN_GRPC_GATEWAY := $(BIN_DIR)/protoc-gen-grpc-gateway
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,5 @@
 | 
			
		||||
RSYNC_BIN ?= rsync
 | 
			
		||||
GO_BIN ?= go
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Versioning for google protobuf dependencies (any, http, etc) and
 | 
			
		||||
@ -13,12 +14,12 @@ PROTOBUF_ANY_DOWNLOAD_URL = https://raw.githubusercontent.com/protocolbuffers/pr
 | 
			
		||||
#
 | 
			
		||||
# Proto dependencies under go.mod
 | 
			
		||||
#
 | 
			
		||||
GOGO_PATH := $(shell go list -m -f '{{.Dir}}' github.com/gogo/protobuf)
 | 
			
		||||
TENDERMINT_PATH := $(shell go list -m -f '{{.Dir}}' github.com/tendermint/tendermint)
 | 
			
		||||
COSMOS_PROTO_PATH := $(shell go list -m -f '{{.Dir}}' github.com/cosmos/cosmos-proto)
 | 
			
		||||
COSMOS_SDK_PATH := $(shell go list -m -f '{{.Dir}}' github.com/cosmos/cosmos-sdk)
 | 
			
		||||
IBC_GO_PATH := $(shell go list -m -f '{{.Dir}}' github.com/cosmos/ibc-go/v6)
 | 
			
		||||
ETHERMINT_PATH := $(shell go list -m -f '{{.Dir}}' github.com/evmos/ethermint)
 | 
			
		||||
GOGO_PATH := $(shell $(GO_BIN) list -m -f '{{.Dir}}' github.com/gogo/protobuf)
 | 
			
		||||
TENDERMINT_PATH := $(shell $(GO_BIN) list -m -f '{{.Dir}}' github.com/tendermint/tendermint)
 | 
			
		||||
COSMOS_PROTO_PATH := $(shell $(GO_BIN) list -m -f '{{.Dir}}' github.com/cosmos/cosmos-proto)
 | 
			
		||||
COSMOS_SDK_PATH := $(shell $(GO_BIN) list -m -f '{{.Dir}}' github.com/cosmos/cosmos-sdk)
 | 
			
		||||
IBC_GO_PATH := $(shell $(GO_BIN) list -m -f '{{.Dir}}' github.com/cosmos/ibc-go/v6)
 | 
			
		||||
ETHERMINT_PATH := $(shell $(GO_BIN) list -m -f '{{.Dir}}' github.com/evmos/ethermint)
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Common target directories
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user