1
0
Fork 0
forked from lthn/blockchain
blockchain/Makefile

49 lines
1.1 KiB
Makefile
Raw Normal View History

# Define CMake generator
system := $(shell uname)
ifneq (, $(findstring MINGW, $(system)))
cmake_gen = -G 'MSYS Makefiles'
endif
2018-12-27 18:50:45 +03:00
cmake = cmake $(cmake_gen)
2018-12-27 18:50:45 +03:00
cmake_debug = $(cmake) -D CMAKE_BUILD_TYPE=Debug
cmake_release = $(cmake) -D CMAKE_BUILD_TYPE=Release
cmake_tests = $(cmake) -D BUILD_TESTS=ON
2018-12-27 18:50:45 +03:00
# Helper macro
define CMAKE
mkdir -p $1 && cd $1 && $2 ../../
endef
2018-12-27 18:50:45 +03:00
build = build
dir_debug = $(build)/debug
dir_release = $(build)/release
2018-12-27 18:50:45 +03:00
all: release
2018-12-27 18:50:45 +03:00
release:
$(eval command += $(cmake_release))
$(call CMAKE,$(dir_release),$(command)) && $(MAKE)
2018-12-27 18:50:45 +03:00
test-release:
$(eval command += $(cmake_release) $(cmake_tests))
$(call CMAKE,$(dir_release),$(command)) && $(MAKE) && $(MAKE) test
2018-12-27 18:50:45 +03:00
test: test-release
debug:
$(eval command += $(cmake_debug))
$(call CMAKE,$(dir_debug),$(command)) && $(MAKE)
test-debug:
$(eval command += $(cmake_debug) $(cmake_tests))
$(call CMAKE,$(dir_debug),$(command)) && $(MAKE) && $(MAKE) test
2018-12-27 18:50:45 +03:00
clean:
rm -rf build
tags:
ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ src contrib tests/gtest
.PHONY: all release test-release test all-debug debug test-debug clean tags