Makefile 1.3 KB

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