erigon-pulse/Makefile

197 lines
6.3 KiB
Makefile
Raw Normal View History

2020-09-30 09:28:36 +00:00
GOBIN = $(CURDIR)/build/bin
2020-08-21 12:38:11 +00:00
GOBUILD = env GO111MODULE=on go build -trimpath
GOTEST = go test ./... -p 1 --tags 'mdbx'
LATEST_COMMIT ?= $(shell git log -n 1 origin/master --pretty=format:"%H")
ifeq ($(LATEST_COMMIT),)
LATEST_COMMIT := $(shell git log -n 1 HEAD~1 --pretty=format:"%H")
endif
GIT_COMMIT ?= $(shell git rev-list -1 HEAD)
OS = $(shell uname -s)
ARCH = $(shell uname -m)
ifeq ($(OS),Darwin)
PROTOC_OS := osx
endif
ifeq ($(OS),Linux)
PROTOC_OS = linux
endif
2020-10-28 03:18:10 +00:00
all: tg hack tester rpctest state pics rpcdaemon integration db-tools
2020-08-21 12:38:11 +00:00
docker:
docker build -t turbo-geth:latest --build-arg git_commit='${GIT_COMMIT}' .
2020-08-21 12:38:11 +00:00
docker-compose:
docker-compose up
geth:
$(GOBUILD) -o $(GOBIN)/tg -tags "mdbx" -ldflags "-X main.gitCommit=${GIT_COMMIT}" ./cmd/tg
@echo "Done building."
@echo "Run \"$(GOBIN)/tg\" to launch turbo-geth."
tg:
2020-10-28 03:18:10 +00:00
@echo "Building mdbx"
cd ethdb/mdbx/dist/ && make clean && make libmdbx.a && cat config.h
$(GOBUILD) -o $(GOBIN)/tg -tags "mdbx" -ldflags "-X main.gitCommit=${GIT_COMMIT}" ./cmd/tg
@echo "Done building."
@echo "Run \"$(GOBIN)/tg\" to launch turbo-geth."
hack:
$(GOBUILD) -o $(GOBIN)/hack -tags "mdbx" ./cmd/hack
@echo "Done building."
@echo "Run \"$(GOBIN)/hack\" to launch hack."
tester:
2020-10-28 03:18:10 +00:00
$(GOBUILD) -o $(GOBIN)/tester ./cmd/tester
@echo "Done building."
@echo "Run \"$(GOBIN)/tester\" to launch tester."
rpctest:
2020-10-28 03:18:10 +00:00
$(GOBUILD) -o $(GOBIN)/rpctest ./cmd/rpctest
@echo "Done building."
@echo "Run \"$(GOBIN)/rpctest\" to launch rpctest."
state:
2020-10-28 03:18:10 +00:00
$(GOBUILD) -o $(GOBIN)/state ./cmd/state
@echo "Done building."
@echo "Run \"$(GOBIN)/state\" to launch state."
2020-02-09 10:31:52 +00:00
restapi:
2020-10-28 03:18:10 +00:00
$(GOBUILD) -o $(GOBIN)/restapi ./cmd/restapi
2020-02-09 10:31:52 +00:00
@echo "Done building."
@echo "Run \"$(GOBIN)/restapi\" to launch restapi."
run-web-ui:
@echo 'Web: Turbo-Geth Debug Utility is launching...'
@cd debug-web-ui && yarn start
2020-10-28 03:18:10 +00:00
pics:
2020-10-28 03:18:10 +00:00
$(GOBUILD) -o $(GOBIN)/pics ./cmd/pics
@echo "Done building."
@echo "Run \"$(GOBIN)/pics\" to launch pics."
rpcdaemon:
2020-11-09 08:52:18 +00:00
$(GOBUILD) -o $(GOBIN)/rpcdaemon -ldflags "-X commands.gitCommit=${GIT_COMMIT}" ./cmd/rpcdaemon
@echo "Done building."
@echo "Run \"$(GOBIN)/rpcdaemon\" to launch rpcdaemon."
integration:
2020-10-28 03:18:10 +00:00
$(GOBUILD) -o $(GOBIN)/integration ./cmd/integration
@echo "Done building."
@echo "Run \"$(GOBIN)/integration\" to launch integration tests."
headers:
2020-10-28 03:18:10 +00:00
$(GOBUILD) -o $(GOBIN)/headers ./cmd/headers
@echo "Done building."
@echo "Run \"$(GOBIN)/integration\" to run headers download PoC."
2020-10-28 03:18:10 +00:00
db-tools:
2020-11-03 07:19:57 +00:00
go mod vendor; cd vendor/github.com/ledgerwatch/lmdb-go/dist; make clean mdb_stat mdb_copy mdb_dump mdb_load; cp mdb_stat $(GOBIN); cp mdb_copy $(GOBIN); cp mdb_dump $(GOBIN); cp mdb_load $(GOBIN); cd ../../../../..; rm -rf vendor
$(GOBUILD) -o $(GOBIN)/lmdbgo_copy github.com/ledgerwatch/lmdb-go/cmd/lmdb_copy
$(GOBUILD) -o $(GOBIN)/lmdbgo_stat github.com/ledgerwatch/lmdb-go/cmd/lmdb_stat
2020-10-28 03:18:10 +00:00
cd ethdb/mdbx/dist/ && make tools
cp ethdb/mdbx/dist/mdbx_chk $(GOBIN)
2020-10-28 03:18:10 +00:00
cp ethdb/mdbx/dist/mdbx_copy $(GOBIN)
cp ethdb/mdbx/dist/mdbx_dump $(GOBIN)
cp ethdb/mdbx/dist/mdbx_load $(GOBIN)
cp ethdb/mdbx/dist/mdbx_stat $(GOBIN)
2020-10-08 07:11:36 +00:00
@echo "Run \"$(GOBIN)/lmdb_stat -h\" to get info about lmdb file."
2020-10-28 03:18:10 +00:00
ethdb/mdbx/dist/libmdbx.a:
echo "Building mdbx"
cd ethdb/mdbx/dist/ && make libmdbx.a && cat config.h
test: ethdb/mdbx/dist/libmdbx.a
2020-08-21 12:38:11 +00:00
$(GOTEST)
test-lmdb:
2020-08-21 12:38:11 +00:00
TEST_DB=lmdb $(GOTEST)
test-mdbx: ethdb/mdbx/dist/libmdbx.a
TEST_DB=mdbx $(GOTEST_MDBX)
lint: lintci
lintci: ethdb/mdbx/dist/libmdbx.a
@echo "--> Running linter for code diff versus commit $(LATEST_COMMIT)"
@./build/bin/golangci-lint run \
--new-from-rev=$(LATEST_COMMIT) \
--build-tags="mdbx" \
--config ./.golangci/step1.yml \
--exclude "which can be annoying to use"
@./build/bin/golangci-lint run \
--new-from-rev=$(LATEST_COMMIT) \
--build-tags="mdbx" \
--config ./.golangci/step2.yml
@./build/bin/golangci-lint run \
--new-from-rev=$(LATEST_COMMIT) \
--build-tags="mdbx" \
--config ./.golangci/step3.yml
@./build/bin/golangci-lint run \
--new-from-rev=$(LATEST_COMMIT) \
--build-tags="mdbx" \
--config ./.golangci/step4.yml
lintci-deps:
2019-11-06 12:34:35 +00:00
rm -f ./build/bin/golangci-lint
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b ./build/bin v1.29.0
clean:
env GO111MODULE=on go clean -cache
2020-10-28 03:18:10 +00:00
rm -fr build/*
rm -f semantics/z3/build/libz3.a
cd ethdb/mdbx/dist/ && make clean
2017-02-26 22:52:10 +00:00
# The devtools target installs tools required for 'go generate'.
# You need to put $GOBIN (or $GOPATH/bin) in your PATH to use 'go generate'.
devtools:
2020-10-02 03:56:13 +00:00
# Notice! If you adding new binary - add it also to cmd/hack/binary-deps/main.go file
$(GOBUILD) -o $(GOBIN)/stringer golang.org/x/tools/cmd/stringer
$(GOBUILD) -o $(GOBIN)/go-bindata github.com/kevinburke/go-bindata/go-bindata
$(GOBUILD) -o $(GOBIN)/gencodec github.com/fjl/gencodec
$(GOBUILD) -o $(GOBIN)/codecgen github.com/ugorji/go/codec/codecgen
$(GOBUILD) -o $(GOBIN)/abigen ./cmd/abigen
PATH=$(GOBIN):$(PATH) go generate ./common
PATH=$(GOBIN):$(PATH) go generate ./core/types
PATH=$(GOBIN):$(PATH) go generate ./ethdb/typedbucket
@type "npm" 2> /dev/null || echo 'Please install node.js and npm'
@type "solc" 2> /dev/null || echo 'Please install solc'
@type "protoc" 2> /dev/null || echo 'Please install protoc'
2017-02-26 22:52:10 +00:00
bindings:
2020-10-02 03:56:13 +00:00
PATH=$(GOBIN):$(PATH) go generate ./tests/contracts/
PATH=$(GOBIN):$(PATH) go generate ./cmd/tester/contracts/
PATH=$(GOBIN):$(PATH) go generate ./core/state/contracts/
grpc:
# See also: ./cmd/hack/binary-deps/main.go
rm -f ./build/bin/protoc*
rm -rf ./build/include*
$(eval PROTOC_TMP := $(shell mktemp -d))
cd $(PROTOC_TMP); curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protoc-3.13.0-$(PROTOC_OS)-$(ARCH).zip -o protoc.zip
cd $(PROTOC_TMP); unzip protoc.zip && mv bin/protoc $(GOBIN) && mv include $(GOBIN)/..
$(GOBUILD) -o $(GOBIN)/protoc-gen-go google.golang.org/protobuf/cmd/protoc-gen-go # generates proto messages
$(GOBUILD) -o $(GOBIN)/protoc-gen-go-grpc google.golang.org/grpc/cmd/protoc-gen-go-grpc # generates grpc services
2020-10-02 03:56:13 +00:00
PATH=$(GOBIN):$(PATH) go generate ./ethdb
PATH=$(GOBIN):$(PATH) go generate ./cmd/headers
PATH=$(GOBIN):$(PATH) go generate ./turbo/shards
simulator-genesis:
go run ./cmd/tester genesis > ./cmd/tester/simulator_genesis.json
2020-04-29 10:51:07 +00:00
prometheus:
2020-08-01 15:05:48 +00:00
docker-compose up prometheus grafana
escape:
2020-06-15 16:39:34 +00:00
cd $(path) && go test -gcflags "-m -m" -run none -bench=BenchmarkJumpdest* -benchmem -memprofile mem.out