@@ -49,56 +49,47 @@ export MCU_MODS := cp cp_minimal
4949export NATIVE_MODS := $(MCU_MODS ) mem_stats mem_stress_test
5050
5151# Options
52- # Valgrind
53- VALGRIND ?= OFF
52+ CMAKE_DEFINES: =
53+ BUILD_NAME: =
5454
55- ifneq ($(VALGRIND),ON)
56- VALGRIND := OFF
55+ # Valgrind
56+ ifneq ($(VALGRIND),)
57+ CMAKE_DEFINES: =$(CMAKE_DEFINES ) -DENABLE_VALGRIND=$(VALGRIND )
58+ BUILD_NAME: =$(BUILD_NAME ) -VALGRIND-$(VALGRIND )
5759 endif
5860
5961 # Valgrind Freya
60- VALGRIND_FREYA ?= OFF
61-
62- ifneq ($(VALGRIND_FREYA),ON)
63- VALGRIND_FREYA := OFF
62+ ifneq ($(VALGRIND_FREYA),)
63+ CMAKE_DEFINES: =$(CMAKE_DEFINES ) -DENABLE_VALGRIND_FREYA=$(VALGRIND_FREYA )
64+ BUILD_NAME: =$(BUILD_NAME ) -VALGRIND_FREYA-$(VALGRIND_FREYA )
6465 endif
6566
6667 # LTO
67- ifeq ($(NATIVE_SYSTEM),darwin)
68- LTO ?= OFF
69- else
70- LTO ?= ON
71- endif
72-
73- ifneq ($(LTO),ON)
74- LTO := OFF
68+ ifneq ($(LTO),)
69+ CMAKE_DEFINES: =$(CMAKE_DEFINES ) -DENABLE_LTO=$(LTO )
70+ BUILD_NAME: =$(BUILD_NAME ) -LTO-$(LTO )
7571 endif
7672
7773 # LOG
78- LOG ?= OFF
79- ifneq ($(LOG),ON)
80- LOG := OFF
74+ ifneq ($(LOG),)
75+ CMAKE_DEFINES: =$(CMAKE_DEFINES ) -DENABLE_LOG=$(LOG )
8176 endif
8277
8378 # All-in-one build
84- ifeq ($(NATIVE_SYSTEM),darwin)
85- ALL_IN_ONE ?= ON
86- else
87- ALL_IN_ONE ?= OFF
88- endif
89-
90- ifneq ($(ALL_IN_ONE),ON)
91- ALL_IN_ONE := OFF
79+ ifneq ($(ALL_IN_ONE),)
80+ CMAKE_DEFINES: =$(CMAKE_DEFINES ) -DENABLE_ALL_IN_ONE=$(ALL_IN_ONE )
81+ BUILD_NAME: =$(BUILD_NAME ) -ALL_IN_ONE-$(ALL_IN_ONE )
9282 endif
9383
94- # External build configuration
9584 # Flag, indicating whether to use compiler's default libc (YES / NO)
96- USE_COMPILER_DEFAULT_LIBC ?= NO
85+ ifneq ($(USE_COMPILER_DEFAULT_LIBC),)
86+ CMAKE_DEFINES: =$(CMAKE_DEFINES ) -DUSE_COMPILER_DEFAULT_LIBC=$(USE_COMPILER_DEFAULT_LIBC )
87+ endif
9788
9889# Directories
9990export ROOT_DIR := $(shell pwd)
10091export BUILD_DIR_PREFIX := $(ROOT_DIR ) /build/obj
101- export BUILD_DIR := $(BUILD_DIR_PREFIX ) -VALGRIND- $( VALGRIND ) -VALGRIND_FREYA- $( VALGRIND_FREYA ) -LTO- $( LTO ) -ALL_IN_ONE- $( ALL_IN_ONE )
92+ export BUILD_DIR := $(BUILD_DIR_PREFIX )$( BUILD_NAME )
10293export OUT_DIR := $(ROOT_DIR ) /build/bin
10394export PREREQUISITES_STATE_DIR := $(ROOT_DIR ) /build/prerequisites
10495
@@ -220,12 +211,7 @@ define GEN_MAKEFILE_RULE
220211.PHONY: $(1 ) /Makefile
221212$(1 ) /Makefile: $(1 ) /toolchain.config
222213 $$(Q ) $$(call SHLOG,(cd $(1 ) && cmake -G $$(BUILD_GENERATOR ) \
223- -DENABLE_VALGRIND=$$(VALGRIND ) \
224- -DENABLE_VALGRIND_FREYA=$$(VALGRIND_FREYA ) \
225- -DENABLE_LOG=$$(LOG ) \
226- -DENABLE_LTO=$$(LTO ) \
227- -DENABLE_ALL_IN_ONE=$$(ALL_IN_ONE ) \
228- -DUSE_COMPILER_DEFAULT_LIBC=$$(USE_COMPILER_DEFAULT_LIBC ) \
214+ $$(CMAKE_DEFINES ) \
229215 -DCMAKE_TOOLCHAIN_FILE=`cat toolchain.config` $$(ROOT_DIR ) 2>&1) ,$(1 ) /cmake.log,CMake run)
230216endef
231217
0 commit comments