mirror of
https://github.com/luxfi/zapdb.git
synced 2026-07-27 06:54:45 +00:00
Cherry picks: #1692 , #1790, #1701, #1724, #1702 , #1766 , part of #1808, #1853 , update ChangeLog
60 lines
1.8 KiB
Makefile
60 lines
1.8 KiB
Makefile
#
|
|
# Copyright 2022 Dgraph Labs, Inc. and Contributors
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
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.2.1/jemalloc-5.2.1.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.2.1 ; \
|
|
./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 \
|