github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/Makefile (about)

     1  maDEP := $(shell command -v dep 2> /dev/null)
     2  SUM := $(shell which shasum)
     3  
     4  COMMIT := $(shell git rev-parse HEAD)
     5  CAT := $(if $(filter $(OS),Windows_NT),type,cat)
     6  export GO111MODULE=on
     7  
     8  GithubTop=github.com
     9  
    10  GO_VERSION=1.17
    11  ROCKSDB_VERSION=6.27.3
    12  IGNORE_CHECK_GO=false
    13  install_rocksdb_version:=$(ROCKSDB_VERSION)
    14  
    15  
    16  Version=v1.6.8.6
    17  CosmosSDK=v0.39.2
    18  Tendermint=v0.33.9
    19  Iavl=v0.14.3
    20  Name=fbchain
    21  ServerName=fbchaind
    22  ClientName=fbchaincli
    23  # the height of the 1st block is GenesisHeight+1
    24  GenesisHeight=0
    25  MercuryHeight=1
    26  VenusHeight=1
    27  Venus1Height=1
    28  Venus2Height=1
    29  Venus3Height=1
    30  Venus4Height=0 #ibcV4
    31  Venus5Height=0 #new proposal
    32  EarthHeight=0 #support wasm
    33  MarsHeight=0 #support ibc
    34  JupiterHeight=100 #chainId change
    35  CometHeight=200 #Block reward changes height
    36  
    37  LINK_STATICALLY = false
    38  cgo_flags=
    39  
    40  ifeq ($(IGNORE_CHECK_GO),true)
    41      GO_VERSION=0
    42  endif
    43  
    44  # process linker flags
    45  ifeq ($(VERSION),)
    46      VERSION = $(COMMIT)
    47  endif
    48  
    49  ifeq ($(MAKECMDGOALS),mainnet)
    50  	GenesisHeight=0
    51  	MercuryHeight=1
    52  	VenusHeight=1
    53  	Venus1Height=11076419
    54  	Venus2Height=11076419
    55  	Venus3Height=11076419
    56  	Venus4Height=0
    57  	Venus5Height=11076419
    58  	EarthHeight=0 #support wasm
    59  	MarsHeight=0 #support ibc
    60  	JupiterHeight=11076419 #chainId change 2023-03-18 00:00:00 11076419
    61  	CometHeight=16913500 #Block reward changes height 2023-11-30 13:30:00 16913500
    62  
    63      WITH_ROCKSDB=true
    64  else ifeq ($(MAKECMDGOALS),testnet)
    65  	GenesisHeight=10742449
    66  	MercuryHeight=1
    67  	VenusHeight=1
    68  	Venus1Height=10752449
    69  	Venus2Height=10752449
    70  	Venus3Height=10752449
    71  	Venus4Height=10752449 #ibc40 fork height
    72  	Venus5Height=10752449
    73  
    74  	EarthHeight=1 #support wasm
    75  	MarsHeight=0 #support ibc
    76  	JupiterHeight=10752449
    77  	CometHeight=16913000 #Block reward changes height 2023-11-30 13:30:00 16913500
    78  
    79      WITH_ROCKSDB=true
    80  endif
    81  
    82  build_tags = netgo
    83  
    84  ifeq ($(WITH_ROCKSDB),true)
    85    CGO_ENABLED=1
    86    build_tags += rocksdb
    87    ifeq ($(LINK_STATICALLY),true)
    88        cgo_flags += CGO_CFLAGS="-I/usr/include/rocksdb"
    89        cgo_flags += CGO_LDFLAGS="-L/usr/lib -lrocksdb -lstdc++ -lm  -lsnappy -llz4"
    90    endif
    91  else
    92    ROCKSDB_VERSION=0
    93  endif
    94  
    95  ifeq ($(LINK_STATICALLY),true)
    96  	build_tags += muslc
    97  endif
    98  
    99  build_tags += $(BUILD_TAGS)
   100  build_tags := $(strip $(build_tags))
   101  
   102  ldflags = -X $(GithubTop)/fibonacci-chain/fbc/libs/cosmos-sdk/version.Version=$(Version) \
   103  	-X $(GithubTop)/fibonacci-chain/fbc/libs/cosmos-sdk/version.Name=$(Name) \
   104    -X $(GithubTop)/fibonacci-chain/fbc/libs/cosmos-sdk/version.ServerName=$(ServerName) \
   105    -X $(GithubTop)/fibonacci-chain/fbc/libs/cosmos-sdk/version.ClientName=$(ClientName) \
   106    -X $(GithubTop)/fibonacci-chain/fbc/libs/cosmos-sdk/version.Commit=$(COMMIT) \
   107    -X $(GithubTop)/fibonacci-chain/fbc/libs/cosmos-sdk/version.CosmosSDK=$(CosmosSDK) \
   108    -X $(GithubTop)/fibonacci-chain/fbc/libs/cosmos-sdk/version.Tendermint=$(Tendermint) \
   109    -X "$(GithubTop)/fibonacci-chain/fbc/libs/cosmos-sdk/version.BuildTags=$(build_tags)" \
   110    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_GENESIS_HEIGHT=$(GenesisHeight) \
   111    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_MERCURY_HEIGHT=$(MercuryHeight) \
   112    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_VENUS_HEIGHT=$(VenusHeight) \
   113    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_VENUS1_HEIGHT=$(Venus1Height) \
   114    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_VENUS2_HEIGHT=$(Venus2Height) \
   115    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_VENUS3_HEIGHT=$(Venus3Height) \
   116    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_VENUS4_HEIGHT=$(Venus4Height) \
   117    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_VENUS5_HEIGHT=$(Venus5Height) \
   118    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_EARTH_HEIGHT=$(EarthHeight) \
   119    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_MARS_HEIGHT=$(MarsHeight) \
   120    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_Jupiter_HEIGHT=$(JupiterHeight) \
   121    -X $(GithubTop)/fibonacci-chain/fbc/libs/tendermint/types.MILESTONE_Comet_HEIGHT=$(CometHeight)
   122  
   123  ifeq ($(WITH_ROCKSDB),true)
   124    ldflags += -X github.com/fibonacci-chain/fbc/libs/tendermint/types.DBBackend=rocksdb
   125  endif
   126  
   127  ifeq ($(MAKECMDGOALS),testnet)
   128    ldflags += -X github.com/fibonacci-chain/fbc/libs/cosmos-sdk/server.ChainID=fbc-3021
   129  endif
   130  
   131  ifeq ($(LINK_STATICALLY),true)
   132  	ldflags += -linkmode=external -extldflags "-Wl,-z,muldefs -static"
   133  endif
   134  
   135  ifeq ($(OKCMALLOC),tcmalloc)
   136    ldflags += -extldflags "-ltcmalloc_minimal"
   137  endif
   138  
   139  ifeq ($(OKCMALLOC),jemalloc)
   140    ldflags += -extldflags "-ljemalloc"
   141  endif
   142  
   143  BUILD_FLAGS := -ldflags '$(ldflags)'
   144  
   145  ifeq ($(DEBUG),true)
   146  	BUILD_FLAGS += -gcflags "all=-N -l"
   147  endif
   148  
   149  all: install
   150  
   151  install: fbc
   152  
   153  fbc: check_version
   154  	$(cgo_flags) go install -v $(BUILD_FLAGS) -tags "$(build_tags)" ./cmd/fbchaind
   155  	$(cgo_flags) go install -v $(BUILD_FLAGS) -tags "$(build_tags)" ./cmd/fbchaincli
   156  
   157  check_version:
   158  	@sh $(shell pwd)/dev/check-version.sh $(GO_VERSION) $(ROCKSDB_VERSION)
   159  
   160  mainnet: fbc
   161  
   162  testnet: fbc
   163  
   164  test-unit:
   165  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./app/...
   166  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/backend/...
   167  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/common/...
   168  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/dex/...
   169  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/distribution/...
   170  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/genutil/...
   171  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/gov/...
   172  #	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/order/...
   173  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/params/...
   174  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/staking/...
   175  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/token/...
   176  	@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./x/upgrade/...
   177  
   178  get_vendor_deps:
   179  	@echo "--> Generating vendor directory via dep ensure"
   180  	@rm -rf .vendor-new
   181  	@dep ensure -v -vendor-only
   182  
   183  update_vendor_deps:
   184  	@echo "--> Running dep ensure"
   185  	@rm -rf .vendor-new
   186  	@dep ensure -v -update
   187  
   188  go-mod-cache: go.sum
   189  	@echo "--> Download go modules to local cache"
   190  	@go mod download
   191  .PHONY: go-mod-cache
   192  
   193  go.sum: go.mod
   194  	@echo "--> Ensure dependencies have not been modified"
   195  	@go mod verify
   196  	@go mod tidy
   197  
   198  cli:
   199  	go install -v $(BUILD_FLAGS) -tags "$(build_tags)" ./cmd/fbchaincli
   200  
   201  server:
   202  	go install -v $(BUILD_FLAGS) -tags "$(build_tags)" ./cmd/fbchaind
   203  
   204  format:
   205  	find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./client/lcd/statik/statik.go" | xargs gofmt -w -s
   206  
   207  build:
   208  ifeq ($(OS),Windows_NT)
   209  	go build $(BUILD_FLAGS) -tags "$(build_tags)" -o build/fbchaind.exe ./cmd/fbchaind
   210  	go build $(BUILD_FLAGS) -tags "$(build_tags)" -o build/fbchaincli.exe ./cmd/fbchaincli
   211  else
   212  	go build $(BUILD_FLAGS) -tags "$(build_tags)" -o build/fbchaind ./cmd/fbchaind
   213  	go build $(BUILD_FLAGS) -tags "$(build_tags)" -o build/fbchaincli ./cmd/fbchaincli
   214  endif
   215  
   216  
   217  test:
   218  	go list ./app/... |xargs go test -count=1
   219  	go list ./x/... |xargs go test -count=1
   220  	go list ./libs/cosmos-sdk/... |xargs go test -count=1 -tags='norace ledger test_ledger_mock'
   221  	go list ./libs/tendermint/... |xargs go test -count=1
   222  	go list ./libs/tm-db/... |xargs go test -count=1
   223  	go list ./libs/iavl/... |xargs go test -count=1
   224  	go list ./libs/ibc-go/... |xargs go test -count=1
   225  
   226  testapp:
   227  	go list ./app/... |xargs go test -count=1
   228  
   229  testx:
   230  	go list ./x/... |xargs go test -count=1
   231  
   232  testcm:
   233  	go list ./libs/cosmos-sdk/... |xargs go test -count=1 -tags='norace ledger test_ledger_mock'
   234  
   235  testtm:
   236  	go list ./libs/tendermint/... |xargs go test -count=1 -tags='norace ledger test_ledger_mock'
   237  
   238  testibc:
   239  	go list ./libs/ibc-go/... |xargs go test -count=1 -tags='norace ledger test_ledger_mock'
   240  
   241  
   242  build-linux:
   243  	LEDGER_ENABLED=false GOOS=linux GOARCH=amd64 $(MAKE) build
   244  
   245  build-docker-fb chainnode:
   246  	$(MAKE) -C networks/local
   247  
   248  # Run a 4-node testnet locally
   249  localnet-start: localnet-stop
   250  	@if ! [ -f build/node0/fbchaind/config/genesis.json ]; then docker run --rm -v $(CURDIR)/build:/fbchaind:Z fbc/node testnet --v 4 -o . --starting-ip-address 192.168.10.2 --keyring-backend=test ; fi
   251  	docker-compose up -d
   252  
   253  # Stop testnet
   254  localnet-stop:
   255  	docker-compose down
   256  
   257  rocksdb:
   258  	@echo "Installing rocksdb..."
   259  	@bash ./libs/rocksdb/install.sh --version v$(install_rocksdb_version)
   260  .PHONY: rocksdb
   261  
   262  .PHONY: build
   263  
   264  tcmalloc:
   265  	@echo "Installing tcmalloc..."
   266  	@bash ./libs/malloc/tcinstall.sh
   267  
   268  jemalloc:
   269  	@echo "Installing jemalloc..."
   270  	@bash ./libs/malloc/jeinstall.sh