mirror of
https://github.com/luxfi/zapdb.git
synced 2026-07-26 22:46:36 +00:00
49 lines
1.3 KiB
Makefile
49 lines
1.3 KiB
Makefile
#
|
|
# 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_URL = "https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.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 -s -L ${JEMALLOC_URL} -o jemalloc.tar.bz2 ; \
|
|
tar xjf ./jemalloc.tar.bz2 ; \
|
|
cd jemalloc-5.3.0 ; \
|
|
./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 \
|