mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-03 23:47:27 +00:00 
			
		
		
		
	
		
			
	
	
		
			105 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			105 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/make -f
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PACKAGES_SIMTEST=$(shell go list ./... | grep '/simulation')
							 | 
						||
| 
								 | 
							
								VERSION := 0.34.7
							 | 
						||
| 
								 | 
							
								COMMIT := $(shell git log -1 --format='%H')
							 | 
						||
| 
								 | 
							
								LEDGER_ENABLED ?= true
							 | 
						||
| 
								 | 
							
								SDK_PACK := $(shell go list -m github.com/cosmos/cosmos-sdk | sed  's/ /\@/g')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export GO111MODULE = on
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# process build tags
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								build_tags = netgo
							 | 
						||
| 
								 | 
							
								ifeq ($(LEDGER_ENABLED),true)
							 | 
						||
| 
								 | 
							
								  ifeq ($(OS),Windows_NT)
							 | 
						||
| 
								 | 
							
								    GCCEXE = $(shell where gcc.exe 2> NUL)
							 | 
						||
| 
								 | 
							
								    ifeq ($(GCCEXE),)
							 | 
						||
| 
								 | 
							
								      $(error gcc.exe not installed for ledger support, please install or set LEDGER_ENABLED=false)
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      build_tags += ledger
							 | 
						||
| 
								 | 
							
								    endif
							 | 
						||
| 
								 | 
							
								  else
							 | 
						||
| 
								 | 
							
								    UNAME_S = $(shell uname -s)
							 | 
						||
| 
								 | 
							
								    ifeq ($(UNAME_S),OpenBSD)
							 | 
						||
| 
								 | 
							
								      $(warning OpenBSD detected, disabling ledger support (https://github.com/cosmos/cosmos-sdk/issues/1988))
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      GCC = $(shell command -v gcc 2> /dev/null)
							 | 
						||
| 
								 | 
							
								      ifeq ($(GCC),)
							 | 
						||
| 
								 | 
							
								        $(error gcc not installed for ledger support, please install or set LEDGER_ENABLED=false)
							 | 
						||
| 
								 | 
							
								      else
							 | 
						||
| 
								 | 
							
								        build_tags += ledger
							 | 
						||
| 
								 | 
							
								      endif
							 | 
						||
| 
								 | 
							
								    endif
							 | 
						||
| 
								 | 
							
								  endif
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ifeq ($(WITH_CLEVELDB),yes)
							 | 
						||
| 
								 | 
							
								  build_tags += gcc
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								build_tags += $(BUILD_TAGS)
							 | 
						||
| 
								 | 
							
								build_tags := $(strip $(build_tags))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								whitespace :=
							 | 
						||
| 
								 | 
							
								whitespace += $(whitespace)
							 | 
						||
| 
								 | 
							
								comma := ,
							 | 
						||
| 
								 | 
							
								build_tags_comma_sep := $(subst $(whitespace),$(comma),$(build_tags))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# process linker flags
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=kava \
							 | 
						||
| 
								 | 
							
										  -X github.com/cosmos/cosmos-sdk/version.ServerName=kvd \
							 | 
						||
| 
								 | 
							
										  -X github.com/cosmos/cosmos-sdk/version.ClientName=kvcli \
							 | 
						||
| 
								 | 
							
										  -X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \
							 | 
						||
| 
								 | 
							
										  -X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT) \
							 | 
						||
| 
								 | 
							
										  -X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep)"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ifeq ($(WITH_CLEVELDB),yes)
							 | 
						||
| 
								 | 
							
								  ldflags += -X github.com/cosmos/cosmos-sdk/types.DBBackend=cleveldb
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								ldflags += $(LDFLAGS)
							 | 
						||
| 
								 | 
							
								ldflags := $(strip $(ldflags))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BUILD_FLAGS := -tags "$(build_tags)" -ldflags '$(ldflags)'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								all: install lint check
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								build: go.sum
							 | 
						||
| 
								 | 
							
								ifeq ($(OS),Windows_NT)
							 | 
						||
| 
								 | 
							
									go build -mod=readonly $(BUILD_FLAGS) -o build/kvd.exe ./cmd/kvd
							 | 
						||
| 
								 | 
							
									go build -mod=readonly $(BUILD_FLAGS) -o build/kvcli.exe ./cmd/kvcli
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
									go build -mod=readonly $(BUILD_FLAGS) -o build/kvd ./cmd/kvd
							 | 
						||
| 
								 | 
							
									go build -mod=readonly $(BUILD_FLAGS) -o build/kvcli ./cmd/kvcli
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								build-linux: go.sum
							 | 
						||
| 
								 | 
							
									LEDGER_ENABLED=false GOOS=linux GOARCH=amd64 $(MAKE) build
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								install: go.sum check-ledger
							 | 
						||
| 
								 | 
							
									go install -mod=readonly $(BUILD_FLAGS) ./cmd/kvd
							 | 
						||
| 
								 | 
							
									go install -mod=readonly $(BUILD_FLAGS) ./cmd/kvcli
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								########################################
							 | 
						||
| 
								 | 
							
								### Tools & dependencies
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								go-mod-cache: go.sum
							 | 
						||
| 
								 | 
							
									@echo "--> Download go modules to local cache"
							 | 
						||
| 
								 | 
							
									@go mod download
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								go.sum: go.mod
							 | 
						||
| 
								 | 
							
									@echo "--> Ensure dependencies have not been modified"
							 | 
						||
| 
								 | 
							
									@go mod verify
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								draw-deps:
							 | 
						||
| 
								 | 
							
									@# requires brew install graphviz or apt-get install graphviz
							 | 
						||
| 
								 | 
							
									go get github.com/RobotsAndPencils/goviz
							 | 
						||
| 
								 | 
							
									@goviz -i ./cmd/gaiad -d 2 | dot -Tpng -o dependency-graph.png
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								clean:
							 | 
						||
| 
								 | 
							
									rm -rf build/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.PHONY: all build-linux install \
							 | 
						||
| 
								 | 
							
									go-mod-cache draw-deps clean build \
							 | 
						||
| 
								 | 
							
									check-ledger
							 |