0
0
mirror of https://github.com/monero-project/kovri synced 2025-10-06 00:32:51 +02:00

Build: use release/debug defs, add debug target

This commit is contained in:
anonimal
2018-07-25 04:04:32 +00:00
parent 6333929c0e
commit 034e947da5
2 changed files with 27 additions and 26 deletions

View File

@@ -80,7 +80,6 @@ if (NOT WITH_PYTHON AND NOT WITH_SHARED_DEPS)
endif() endif()
# Default build is Debug # Default build is Debug
# TODO(anonimal): currently, there are no other release-specific flags (fix this when we release)
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug) set(CMAKE_BUILD_TYPE Debug)
endif() endif()

View File

@@ -69,10 +69,6 @@ cmake = cmake $(cmake-gen) $(cmake_cotire)
cmake-debug = $(cmake) -D CMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON cmake-debug = $(cmake) -D CMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake-release = $(cmake) -D CMAKE_BUILD_TYPE=Release cmake-release = $(cmake) -D CMAKE_BUILD_TYPE=Release
# TODO(unassigned): cmake-release when we're out of alpha
cmake-kovri = $(cmake-debug)
cmake-kovri-util = -D WITH_KOVRI_UTIL=ON
# Current off-by-default Kovri build options # Current off-by-default Kovri build options
cmake-optimize = -D WITH_OPTIMIZE=ON cmake-optimize = -D WITH_OPTIMIZE=ON
cmake-hardening = -D WITH_HARDENING=ON cmake-hardening = -D WITH_HARDENING=ON
@@ -84,6 +80,7 @@ cmake-shared-deps= -D WITH_SHARED_DEPS=ON
cmake-doxygen = -D WITH_DOXYGEN=ON cmake-doxygen = -D WITH_DOXYGEN=ON
cmake-coverage = -D WITH_COVERAGE=ON cmake-coverage = -D WITH_COVERAGE=ON
cmake-python = -D WITH_PYTHON=ON cmake-python = -D WITH_PYTHON=ON
cmake-kovri-util = -D WITH_KOVRI_UTIL=ON
# Android-specific # Android-specific
cmake-android = -D ANDROID=1 -D KOVRI_DATA_PATH="/data/local/tmp/.kovri" cmake-android = -D ANDROID=1 -D KOVRI_DATA_PATH="/data/local/tmp/.kovri"
@@ -128,14 +125,14 @@ deps:
$(call MAKE_CRYPTOPP, $(MAKE) $(cryptopp-native) static) $(call MAKE_CRYPTOPP, $(MAKE) $(cryptopp-native) static)
shared-deps: shared-deps:
$(eval cmake-kovri += $(cmake-shared-deps)) $(eval cmake-debug += $(cmake-shared-deps))
$(call MAKE_CRYPTOPP, $(MAKE) shared) $(call MAKE_CRYPTOPP, $(MAKE) shared)
release-deps: release-deps:
$(call MAKE_CRYPTOPP, $(MAKE) static) $(call MAKE_CRYPTOPP, $(MAKE) static)
release-static-deps: release-static-deps:
$(eval cmake-kovri += $(cmake-static-deps)) $(eval cmake-release += $(cmake-static-deps))
$(call MAKE_CRYPTOPP, $(MAKE) static) $(call MAKE_CRYPTOPP, $(MAKE) static)
#-----------------------------------# #-----------------------------------#
@@ -143,20 +140,24 @@ release-static-deps:
#-----------------------------------# #-----------------------------------#
dynamic: shared-deps dynamic: shared-deps
$(eval cmake-kovri += $(cmake-native)) $(eval cmake-kovri += $(cmake-debug) $(cmake-native))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
static: deps static: deps
$(eval cmake-kovri += $(cmake-native) $(cmake-static)) $(eval cmake-kovri += $(cmake-debug) $(cmake-native) $(cmake-static))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
debug: deps
$(eval cmake-kovri += $(cmake-debug) $(cmake-native) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
#-----------------------------------# #-----------------------------------#
# For dynamic distribution release # # For dynamic distribution release #
#-----------------------------------# #-----------------------------------#
release: release-deps release: release-deps
# TODO(unassigned): cmake release flags + optimizations/hardening when we're out of alpha # TODO(unassigned): optimizations/hardening when we're out of alpha
$(eval cmake-kovri += $(cmake-kovri-util)) $(eval cmake-kovri += $(cmake-release) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
#--------------------------------------------------------------# #--------------------------------------------------------------#
@@ -164,12 +165,12 @@ release: release-deps
#--------------------------------------------------------------# #--------------------------------------------------------------#
release-static: release-static-deps release-static: release-static-deps
# TODO(unassigned): cmake release flags + optimizations/hardening when we're out of alpha # TODO(unassigned): optimizations/hardening when we're out of alpha
$(eval cmake-kovri += $(cmake-static) $(cmake-kovri-util)) $(eval cmake-kovri += $(cmake-release) $(cmake-static) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
release-static-android: release-static-deps release-static-android: release-static-deps
$(eval cmake-kovri += $(cmake-static) $(cmake-android) $(cmake-kovri-util)) $(eval cmake-kovri += $(cmake-release) $(cmake-static) $(cmake-android) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
#-----------------# #-----------------#
@@ -178,48 +179,48 @@ release-static-android: release-static-deps
# Utility binary # Utility binary
util: deps util: deps
$(eval cmake-kovri += $(cmake-kovri-util)) $(eval $(cmake-kovri) += $(cmake-debug) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# For API/testnet development # For API/testnet development
python: shared-deps python: shared-deps
$(eval cmake-kovri += $(cmake-python)) $(eval cmake-kovri += $(cmake-debug) $(cmake-python))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce optimized, hardened binary # Produce optimized, hardened binary
all-options: deps all-options: deps
$(eval cmake-kovri += $(cmake-optimize) $(cmake-hardening) $(cmake-kovri-util)) $(eval cmake-kovri += $(cmake-release) $(cmake-optimize) $(cmake-hardening) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce optimized, hardened binary. Note: we need (or very much should have) optimizations with hardening # Produce optimized, hardened binary. Note: we need (or very much should have) optimizations with hardening
optimized-hardened: deps optimized-hardened: deps
$(eval cmake-kovri += $(cmake-optimize) $(cmake-hardening)) $(eval cmake-kovri += $(cmake-release) $(cmake-optimize) $(cmake-hardening))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce all unit-tests with optimized hardening # Produce all unit-tests with optimized hardening
optimized-hardened-tests: deps optimized-hardened-tests: deps
$(eval cmake-kovri += $(cmake-optimize) $(cmake-hardening) $(cmake-tests)) $(eval cmake-kovri += $(cmake-release) $(cmake-optimize) $(cmake-hardening) $(cmake-tests))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce build with coverage. Note: leaving out hardening because of need for optimizations # Produce build with coverage. Note: leaving out hardening because of need for optimizations
coverage: deps coverage: deps
$(eval cmake-kovri += $(cmake-coverage) $(cmake-kovri-util)) $(eval cmake-kovri += $(cmake-debug) $(cmake-coverage) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce unit-tests with coverage # Produce unit-tests with coverage
coverage-tests: deps coverage-tests: deps
$(eval cmake-kovri += $(cmake-coverage) $(cmake-tests)) $(eval cmake-kovri += $(cmake-debug) $(cmake-coverage) $(cmake-tests))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce vanilla unit-tests # Produce vanilla unit-tests
tests: deps tests: deps
$(eval cmake-kovri += $(cmake-tests)) $(eval cmake-kovri += $(cmake-debug) $(cmake-tests))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce vanilla fuzzer-tests # Produce vanilla fuzzer-tests
fuzz-tests: deps fuzz-tests: deps
$(call CMAKE_FUZZER) && $(MAKE) $(call CMAKE_FUZZER) && $(MAKE)
$(eval cmake-kovri += $(cmake-fuzz-tests)) $(eval cmake-kovri += $(cmake-debug) $(cmake-fuzz-tests))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target) $(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce Doxygen documentation # Produce Doxygen documentation
@@ -229,7 +230,8 @@ doxygen:
# Produce available CMake build options # Produce available CMake build options
help: help:
$(call CMAKE,$(build),$(cmake-kovri) -LH) # TODO(unassigned): fix (we must actually change directory)
$(call CMAKE,$(build) -LH)
# Clean all build directories and Doxygen output # Clean all build directories and Doxygen output
clean: clean:
@@ -252,4 +254,4 @@ uninstall:
@_install="./pkg/installers/kovri-install.sh"; \ @_install="./pkg/installers/kovri-install.sh"; \
if [ -e $$_install ]; then $$_install -u; else echo "Unable to find $$_install"; exit 1; fi if [ -e $$_install ]; then $$_install -u; else echo "Unable to find $$_install"; exit 1; fi
.PHONY: all deps release-deps release-static-deps dynamic static release release-static release-static-android all-options optimized-hardened optimized-hardened-tests coverage coverage-tests tests doxygen help clean install uninstall .PHONY: all deps release-deps release-static-deps dynamic static debug release release-static release-static-android all-options optimized-hardened optimized-hardened-tests coverage coverage-tests tests doxygen help clean install uninstall