blob: bdda72fbf3e972ca78d1db332ea174a00b799e47 [file] [edit]
#
# SPDX-FileCopyrightText: © 2017-2025 Istari Digital, Inc.
# SPDX-License-Identifier: Apache-2.0
#
USER_ID := $(shell id -u)
HAS_JEMALLOC := $(shell test -f /usr/local/lib/libjemalloc.a && echo jemalloc)
JEMALLOC_VER := 5.3.1
JEMALLOC_URL := https://github.com/jemalloc/jemalloc/releases/download/$(JEMALLOC_VER)/jemalloc-$(JEMALLOC_VER).tar.bz2
.PHONY: all badger test jemalloc dependency
badger: jemalloc
@echo "Compiling Badger binary..."
@$(MAKE) -C badger badger
@echo "Badger binary located in badger directory."
test: jemalloc
@echo "Running Badger tests..."
@./test.sh
jemalloc:
@if [ -z "$(HAS_JEMALLOC)" ]; then \
mkdir -p /tmp/jemalloc-temp && cd /tmp/jemalloc-temp; \
echo "Downloading jemalloc..."; \
curl -fsSL "$(JEMALLOC_URL)" -o jemalloc.tar.bz2; \
tar xjf jemalloc.tar.bz2; \
cd jemalloc-$(JEMALLOC_VER); \
./configure --with-jemalloc-prefix=je_ --with-malloc-conf=background_thread:true,metadata_thp:auto; \
$(MAKE); \
if [ "$(USER_ID)" -eq 0 ]; then \
$(MAKE) install; \
else \
echo "==== Need sudo access to install jemalloc"; \
sudo $(MAKE) install; \
fi; \
fi
dependency:
@echo "Installing dependencies..."
@sudo apt-get update
@sudo apt-get -y install \
ca-certificates \
curl \
gnupg \
lsb-release \
build-essential \
protobuf-compiler