Makefile raw

   1  #
   2  # SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com>
   3  # SPDX-License-Identifier: Apache-2.0
   4  #
   5  
   6  USER_ID      = $(shell id -u)
   7  HAS_JEMALLOC = $(shell test -f /usr/local/lib/libjemalloc.a && echo "jemalloc")
   8  JEMALLOC_URL = "https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.tar.bz2"
   9  
  10  
  11  .PHONY: all badger test jemalloc dependency
  12  
  13  badger: jemalloc
  14  	@echo "Compiling Badger binary..."
  15  	@$(MAKE) -C badger badger
  16  	@echo "Badger binary located in badger directory."
  17  
  18  test: jemalloc
  19  	@echo "Running Badger tests..."
  20  	@./test.sh
  21  
  22  jemalloc:
  23  	@if [ -z "$(HAS_JEMALLOC)" ] ; then \
  24  		mkdir -p /tmp/jemalloc-temp && cd /tmp/jemalloc-temp ; \
  25  		echo "Downloading jemalloc..." ; \
  26  		curl -s -L ${JEMALLOC_URL} -o jemalloc.tar.bz2 ; \
  27  		tar xjf ./jemalloc.tar.bz2 ; \
  28  		cd jemalloc-5.3.0 ; \
  29  		./configure --with-jemalloc-prefix='je_' --with-malloc-conf='background_thread:true,metadata_thp:auto'; \
  30  		make ; \
  31  		if [ "$(USER_ID)" -eq "0" ]; then \
  32  			make install ; \
  33  		else \
  34  			echo "==== Need sudo access to install jemalloc" ; \
  35  			sudo make install ; \
  36  		fi \
  37  	fi
  38  
  39  dependency:
  40  	@echo "Installing dependencies..."
  41  	@sudo apt-get update
  42  	@sudo apt-get -y install \
  43      	ca-certificates \
  44      	curl \
  45      	gnupg \
  46      	lsb-release \
  47      	build-essential \
  48      	protobuf-compiler \
  49