@@ -49,56 +49,47 @@ export MCU_MODS := cp cp_minimal
49
49
export NATIVE_MODS := $(MCU_MODS ) mem_stats mem_stress_test
50
50
51
51
# Options
52
- # Valgrind
53
- VALGRIND ?= OFF
52
+ CMAKE_DEFINES: =
53
+ BUILD_NAME: =
54
54
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 )
57
59
endif
58
60
59
61
# 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 )
64
65
endif
65
66
66
67
# 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 )
75
71
endif
76
72
77
73
# LOG
78
- LOG ?= OFF
79
- ifneq ($(LOG),ON)
80
- LOG := OFF
74
+ ifneq ($(LOG),)
75
+ CMAKE_DEFINES: =$(CMAKE_DEFINES ) -DENABLE_LOG=$(LOG )
81
76
endif
82
77
83
78
# 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 )
92
82
endif
93
83
94
- # External build configuration
95
84
# 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
97
88
98
89
# Directories
99
90
export ROOT_DIR := $(shell pwd)
100
91
export 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 )
102
93
export OUT_DIR := $(ROOT_DIR ) /build/bin
103
94
export PREREQUISITES_STATE_DIR := $(ROOT_DIR ) /build/prerequisites
104
95
@@ -220,12 +211,7 @@ define GEN_MAKEFILE_RULE
220
211
.PHONY: $(1 ) /Makefile
221
212
$(1 ) /Makefile: $(1 ) /toolchain.config
222
213
$$(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 ) \
229
215
-DCMAKE_TOOLCHAIN_FILE=`cat toolchain.config` $$(ROOT_DIR ) 2>&1) ,$(1 ) /cmake.log,CMake run)
230
216
endef
231
217
0 commit comments