blob: 6d44f3ac81cf580648562e1900caa721fe4e0f3e [file] [log] [blame]
NB_OF_PROCESS ?= $(shell nproc --all)
################
# build with ninja when doable
################
ifneq ($(shell which ninja | grep -v "not found"),)
BUILDER := ninja
CMAKE_GEN_ARGS := -GNinja
else
BUILDER := make -j$(NB_OF_PROCESS)
CMAKE_GEN_ARGS := -G'Unix Makefiles'
endif
CMAKE_ARGS := -DVPR_IPO_BUILD=off
#Default build type
# Possible values:
# release
# debug
BUILD_TYPE ?= release
MAKEFLAGS := -s
BUILD_DIR=../build
.PHONY: help build debug test large_test
help:
@echo -e "\n\
The Following options are available\n\n\
build build using the VTR_ROOT makefile \n\
debug build using the VTR_ROOT makefile with debug flags and extra warning flags for ODIN only\n\
clean remove the build file for ODIN only\n\
test run the complete battery of test before commiting changes or to assert functionality\n\
large_test run the complete battery of test before merging changes\n\
"
init:
mkdir -p $(BUILD_DIR)
build: clean init
cd $(BUILD_DIR);\
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) .. &&\
$(BUILDER)
debug: clean init
cd $(BUILD_DIR);\
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) -DODIN_DEBUG=on .. &&\
$(BUILDER)
clean:
$(RM) -Rf $(BUILD_DIR)/CMakeCache.txt
$(RM) -Rf $(BUILD_DIR)/ODIN_II
test:
./verify_odin.sh --test pre_commit --nb_of_process $(NB_OF_PROCESS) --limit_ressource
large_test:
./verify_odin.sh --test pre_merge --nb_of_process $(NB_OF_PROCESS) --limit_ressource