diff --git a/Makefile b/Makefile index c370d0b..5af857e 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,8 @@ DOCKER := $(shell which docker) DOCKER_BUF := $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace bufbuild/buf:1.0.0-rc8 BUILDDIR ?= $(CURDIR)/build export GO111MODULE = on +ROCKSDB_VERSION = "9.8.4" + # process build tags @@ -49,7 +51,7 @@ ifeq ($(LEDGER_ENABLED),true) endif endif -ifeq (cleveldb,$(findstring cleveldb,$(EXRP_BUILD_OPTIONS))) +ifeq (cleveldb,$(findstring cleveldb,$(COSMOS_BUILD_OPTIONS))) build_tags += gcc cleveldb endif build_tags += $(BUILD_TAGS) @@ -69,13 +71,19 @@ ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=exrp \ -X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep)" \ -X github.com/cometbft/cometbft/version.TMCoreSemVer=$(BFT_VERSION) -ifeq (cleveldb,$(findstring cleveldb,$(EXRP_BUILD_OPTIONS))) +ifeq (cleveldb,$(findstring cleveldb,$(COSMOS_BUILD_OPTIONS))) ldflags += -X github.com/cosmos/cosmos-sdk/types.DBBackend=cleveldb endif +ifeq (rocksdb,$(findstring rocksdb,$(COSMOS_BUILD_OPTIONS))) + CGO_ENABLED=1 + build_tags += rocksdb grocksdb_no_link + VERSION := $(VERSION)-rocksdb + ldflags += -X github.com/cosmos/cosmos-sdk/types.DBBackend=rocksdb +endif ifeq ($(LINK_STATICALLY),true) ldflags += -linkmode=external -extldflags "-Wl,-z,muldefs -static" endif -ifeq (,$(findstring nostrip,$(EXRP_BUILD_OPTIONS))) +ifeq (,$(findstring nostrip,$(COSMOS_BUILD_OPTIONS))) ldflags += -w -s endif ldflags += $(LDFLAGS) @@ -83,7 +91,7 @@ ldflags := $(strip $(ldflags)) BUILD_FLAGS := -tags "$(build_tags)" -ldflags '$(ldflags)' # check for nostrip option -ifeq (,$(findstring nostrip,$(EXRP_BUILD_OPTIONS))) +ifeq (,$(findstring nostrip,$(COSMOS_BUILD_OPTIONS))) BUILD_FLAGS += -trimpath endif @@ -97,6 +105,12 @@ install: go.sum build: go build $(BUILD_FLAGS) -o ./bin/exrpd ./cmd/exrpd +build-rocksdb: + # Make sure to run this command with root permission + CGO_ENABLED=1 CGO_CFLAGS="-I/usr/include" \ + CGO_LDFLAGS="-L/usr/lib -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4 -lzstd -ldl" \ + COSMOS_BUILD_OPTIONS=rocksdb $(MAKE) build + ############################################################################### ### Linting ###