-
Notifications
You must be signed in to change notification settings - Fork 72
/
common.mk
58 lines (48 loc) · 2 KB
/
common.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
ifndef PYTHON
# Default to python3. Some distros like CentOS 8 do not have `python`.
ifeq ($(origin PYTHON), undefined)
PYTHON := $(shell which python3 || which python || echo python3)
endif
export PYTHON
endif
# To setup tmp directory, first recognize some old variables for setting
# test tmp directory or base tmp directory. TEST_TMPDIR is usually read
# by RocksDB tools though Env/FileSystem::GetTestDirectory.
ifeq ($(TEST_TMPDIR),)
TEST_TMPDIR := $(TMPD)
endif
# Avoid setting up the tmp directory when the target isn't a check target or
# on Makefile restarts
ifneq ($(filter %check,$(MAKECMDGOALS)),)
ifeq ($(MAKE_RESTARTS),)
ifeq ($(TEST_TMPDIR),)
ifeq ($(BASE_TMPDIR),)
BASE_TMPDIR :=$(TMPDIR)
endif
ifeq ($(BASE_TMPDIR),)
BASE_TMPDIR :=/tmp
endif
# Use /dev/shm on Linux if it has the sticky bit set (otherwise, /tmp or other
# base dir), and create a randomly-named rocksdb.XXXXXX directory therein.
ifneq ($(shell [ "$$(uname -s)" = "Linux" ] && [ -k /dev/shm ] && echo 1),)
BASE_TMPDIR :=/dev/shm
endif
# Use 6 Xs in the template in order to appease the BusyBox mktemp command,
# which requires the template to end with exactly 6 Xs.
TEST_TMPDIR := $(shell mktemp -d "$(BASE_TMPDIR)/rocksdb.XXXXXX")
endif
# The `export` line below doesn't work in case Make restarts (due to included
# makefiles getting remade), so we need to output the directory we created into
# a temporary config file that will be included by the `include` directive below
# in case of a restart (we don't want to output it into make_config.mk in order
# to avoid having the TEST_TMPDIR implicitly set for test that are run through
# makefiles that include make_config.mk, and because we don't want to change
# make_config.mk on every run)
$(shell printf 'ifeq ($$(TEST_TMPDIR),)\nTEST_TMPDIR:=$(TEST_TMPDIR)\nendif\n' > test_config.mk)
else
# If neither TEST_TMPDIR nor TMPD were specified, try to load TEST_TMPDIR from
# a previous run as saved in test_config.mk (generated by the shell call above)
include test_config.mk
endif
endif
export TEST_TMPDIR