2020-10-27 08:47:25 +00:00
|
|
|
BUILD_TEST_DIR=build
|
2021-12-03 20:11:37 +00:00
|
|
|
BUILD_REL_DIR=build
|
2020-10-27 08:47:25 +00:00
|
|
|
BUILD_TEST_ASAN_DIR=build-asan
|
2021-01-12 10:18:24 +00:00
|
|
|
ODY_DIR=$(PWD)
|
2021-01-14 06:54:16 +00:00
|
|
|
TMP_BIN:=$(ODY_DIR)/tmp
|
2021-01-12 07:06:27 +00:00
|
|
|
|
2021-11-12 11:54:50 +00:00
|
|
|
FMT_BIN:=clang-format-10
|
2021-01-12 07:06:27 +00:00
|
|
|
CMAKE_BIN:=cmake
|
|
|
|
|
2021-01-14 06:54:16 +00:00
|
|
|
SKIP_CLEANUP_DOCKER:=
|
2021-01-12 07:06:27 +00:00
|
|
|
|
2021-12-04 21:15:11 +00:00
|
|
|
CMAKE_FLAGS:=-DCC_FLAGS="-Wextra -Wstrict-aliasing" -DUSE_SCRAM=YES
|
2020-08-08 16:00:31 +00:00
|
|
|
BUILD_TYPE=Release
|
2020-07-26 07:58:15 +00:00
|
|
|
|
2022-01-10 08:47:54 +00:00
|
|
|
DEV_CONF=./config-examples/odyssey-dev.conf
|
2021-01-12 07:06:27 +00:00
|
|
|
COMPILE_CONCURRENCY=8
|
2020-12-28 10:43:31 +00:00
|
|
|
|
2021-05-21 12:51:50 +00:00
|
|
|
.PHONY: clean apply_fmt
|
2021-04-21 13:11:18 +00:00
|
|
|
|
2021-03-05 05:45:22 +00:00
|
|
|
clean:
|
2021-01-14 06:54:16 +00:00
|
|
|
rm -fr $(TMP_BIN)
|
2020-10-27 08:47:25 +00:00
|
|
|
rm -fr $(BUILD_TEST_DIR)
|
|
|
|
rm -fr $(BUILD_TEST_ASAN_DIR)
|
2020-07-26 07:58:15 +00:00
|
|
|
|
2021-01-23 13:49:54 +00:00
|
|
|
local_build: clean
|
2021-01-18 10:11:07 +00:00
|
|
|
$(CMAKE_BIN) -S $(ODY_DIR) -B$(BUILD_TEST_DIR) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) $(CMAKE_FLAGS)
|
2021-01-12 10:18:24 +00:00
|
|
|
make -C$(BUILD_TEST_DIR) -j$(COMPILE_CONCURRENCY)
|
2020-07-26 07:58:15 +00:00
|
|
|
|
2021-02-11 16:52:36 +00:00
|
|
|
local_run:
|
2022-01-10 08:47:54 +00:00
|
|
|
$(BUILD_TEST_DIR)/sources/odyssey $(DEV_CONF)
|
2020-07-26 07:58:15 +00:00
|
|
|
|
2021-12-08 10:54:43 +00:00
|
|
|
console_run:
|
2022-01-10 08:47:54 +00:00
|
|
|
$(BUILD_TEST_DIR)/sources/odyssey $(DEV_CONF) --verbose --console --log_to_stdout
|
2021-12-08 10:54:43 +00:00
|
|
|
|
2021-01-12 07:06:27 +00:00
|
|
|
fmtinit:
|
|
|
|
git submodule init
|
|
|
|
git submodule update
|
|
|
|
|
|
|
|
fmt: fmtinit
|
|
|
|
run-clang-format/run-clang-format.py -r --clang-format-executable $(FMT_BIN) modules sources stress test third_party
|
2020-07-26 07:58:15 +00:00
|
|
|
|
|
|
|
apply_fmt:
|
2021-05-19 12:00:59 +00:00
|
|
|
find ./ -maxdepth 5 -iname '*.h' -o -iname '*.c' | xargs $(FMT_BIN) -i
|
2020-07-26 07:58:15 +00:00
|
|
|
|
2021-04-21 13:11:18 +00:00
|
|
|
build_asan: clean
|
2020-10-27 08:47:25 +00:00
|
|
|
mkdir -p $(BUILD_TEST_ASAN_DIR)
|
2021-01-12 07:06:27 +00:00
|
|
|
cd $(BUILD_TEST_ASAN_DIR) && $(CMAKE_BIN) -DCMAKE_BUILD_TYPE=ASAN $(ODY_DIR) && make -j$(COMPILE_CONCURRENCY)
|
2020-10-27 08:47:25 +00:00
|
|
|
|
2021-04-21 13:11:18 +00:00
|
|
|
copy_asan_bin:
|
|
|
|
cp $(BUILD_TEST_ASAN_DIR)/sources/odyssey ./docker/bin/odyssey-asan
|
|
|
|
|
|
|
|
build_release: clean
|
2021-12-03 20:11:37 +00:00
|
|
|
mkdir -p $(BUILD_REL_DIR)
|
|
|
|
cd $(BUILD_REL_DIR) && $(CMAKE_BIN) -DCMAKE_BUILD_TYPE=Release $(ODY_DIR) $(CMAKE_FLAGS) && make -j$(COMPILE_CONCURRENCY)
|
2021-04-21 13:11:18 +00:00
|
|
|
|
|
|
|
copy_release_bin:
|
|
|
|
cp $(BUILD_TEST_DIR)/sources/odyssey ./docker/bin/
|
|
|
|
|
2021-12-05 15:41:01 +00:00
|
|
|
copy_test_bin:
|
|
|
|
cp $(BUILD_TEST_DIR)/test/odyssey_test ./docker/bin/
|
|
|
|
|
2021-04-21 13:11:18 +00:00
|
|
|
build_dbg: clean
|
|
|
|
mkdir -p $(BUILD_TEST_DIR)
|
2021-12-06 08:58:29 +00:00
|
|
|
cd $(BUILD_TEST_DIR) && $(CMAKE_BIN) -DCMAKE_BUILD_TYPE=Debug -DUSE_SCRAM=YES $(ODY_DIR) && make -j$(COMPILE_CONCURRENCY)
|
2021-04-21 13:11:18 +00:00
|
|
|
|
2021-12-25 21:18:30 +00:00
|
|
|
gdb: build_dbg
|
2022-01-10 08:47:54 +00:00
|
|
|
gdb --args ./build/sources/odyssey $(DEV_CONF) --verbose --console --log_to_stdout
|
2021-12-08 10:54:43 +00:00
|
|
|
|
2021-04-21 13:11:18 +00:00
|
|
|
copy_dbg_bin:
|
|
|
|
cp $(BUILD_TEST_DIR)/sources/odyssey ./docker/bin/odyssey-dbg
|
|
|
|
|
2021-12-05 15:41:01 +00:00
|
|
|
run_test_prep: build_asan copy_asan_bin build_dbg copy_dbg_bin build_release copy_release_bin copy_test_bin
|
2021-04-21 13:11:18 +00:00
|
|
|
|
2021-12-05 15:41:01 +00:00
|
|
|
run_test:
|
2021-04-21 13:11:18 +00:00
|
|
|
# change dir, test would not work with absolute path
|
|
|
|
./cleanup-docker.sh
|
|
|
|
docker-compose -f ./docker-compose-test.yml up --exit-code-from odyssey
|
2020-10-26 07:51:49 +00:00
|
|
|
|
|
|
|
submit-cov:
|
|
|
|
mkdir cov-build && cd cov-build
|
|
|
|
$(COV-BIN-PATH)/cov-build --dir cov-int make -j 4 && tar czvf odyssey.tgz cov-int && curl --form token=$(COV_TOKEN) --form email=$(COV_ISSUER) --form file=@./odyssey.tgz --form version="2" --form description="scalable potgresql connection pooler" https://scan.coverity.com/builds\?project\=yandex%2Fodyssey
|
2020-10-27 08:47:25 +00:00
|
|
|
|
2021-01-14 06:54:16 +00:00
|
|
|
|
|
|
|
BUILD_VERSION:=
|
|
|
|
BUILD_NUM:=
|
|
|
|
|
2020-12-28 10:43:31 +00:00
|
|
|
build-docker-pkg:
|
2021-03-04 18:04:07 +00:00
|
|
|
docker build -f ./docker/dpkg/Dockerfile . --tag odybuild:1.0 && docker run -e VERSION=$(BUILD_VERSION) -e BUILD_NUMBER=$(BUILD_NUM) odybuild:1.0
|
|
|
|
|
2021-12-03 20:11:37 +00:00
|
|
|
prefix = /usr/local
|
|
|
|
|
|
|
|
install:
|
|
|
|
install -D build/sources/odyssey $(DESTDIR)$(prefix)/bin/odyssey
|
|
|
|
|
2021-03-04 18:04:07 +00:00
|
|
|
start-dev-env:
|
|
|
|
docker-compose build dev
|
2021-04-21 13:11:18 +00:00
|
|
|
docker-compose up -d dev
|