From 95d9abcf58cfdd533b8fa2fb8e8142f18a089095 Mon Sep 17 00:00:00 2001 From: yinshengkai Date: Tue, 1 Nov 2022 21:47:53 +0800 Subject: [PATCH] tools: replace DEFINE script to Makefile variable In the past, predefined macros were generated by define.sh scripts Now they are generated by concatenating environment variables In this way, when executing makefile, no shell command will be executed, it will improve the speed of executing makfile Signed-off-by: yinshengkai --- drivers/segger/Make.defs | 4 ++-- drivers/syslog/Make.defs | 2 +- libs/libxx/libcxx.defs | 5 +++-- libs/libxx/libcxxabi.defs | 4 ++-- mm/iob/Make.defs | 2 +- tools/Config.mk | 9 +++++---- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/segger/Make.defs b/drivers/segger/Make.defs index ee0f58fc29..54085a515e 100644 --- a/drivers/segger/Make.defs +++ b/drivers/segger/Make.defs @@ -27,11 +27,11 @@ ifeq ($(CONFIG_SEGGER_RTT),y) CFLAGS += -Wno-shadow -Wno-array-bounds ifneq ($(CONFIG_SEGGER_RTT_SECTION),"") - CFLAGS += ${shell $(DEFINE) "$(CC)" SEGGER_RTT_SECTION=CONFIG_SEGGER_RTT_SECTION} + CFLAGS += ${DEFINE_PREFIX}SEGGER_RTT_SECTION=CONFIG_SEGGER_RTT_SECTION endif ifneq ($(CONFIG_SEGGER_RTT_BUFFER_SECTION),"") - CFLAGS += ${shell $(DEFINE) "$(CC)" SEGGER_RTT_BUFFER_SECTION=CONFIG_SEGGER_RTT_BUFFER_SECTION} + CFLAGS += ${DEFINE_PREFIX}SEGGER_RTT_BUFFER_SECTION=CONFIG_SEGGER_RTT_BUFFER_SECTION endif CFLAGS += ${shell $(INCDIR) "$(CC)" segger$(DELIM)config} diff --git a/drivers/syslog/Make.defs b/drivers/syslog/Make.defs index 9bdc0165c5..2b49d2a6f9 100644 --- a/drivers/syslog/Make.defs +++ b/drivers/syslog/Make.defs @@ -38,7 +38,7 @@ ifeq ($(CONFIG_RAMLOG),y) CSRCS += ramlog.c ifneq ($(CONFIG_RAMLOG_BUFFER_SECTION),"") - CFLAGS += ${shell $(DEFINE) "$(CC)" RAMLOG_BUFFER_SECTION=CONFIG_RAMLOG_BUFFER_SECTION} + CFLAGS += ${DEFINE_PREFIX}RAMLOG_BUFFER_SECTION=CONFIG_RAMLOG_BUFFER_SECTION endif endif diff --git a/libs/libxx/libcxx.defs b/libs/libxx/libcxx.defs index 52f64f9086..f08576cb22 100644 --- a/libs/libxx/libcxx.defs +++ b/libs/libxx/libcxx.defs @@ -50,10 +50,11 @@ ifeq ($(wildcard libcxx/.git),) $(call DELDIR, libcxx) endif -CXXFLAGS += -std=c++17 ${shell $(DEFINE) "$(CC)" _LIBCPP_BUILDING_LIBRARY} +CXXFLAGS += -std=c++17 +CXXFLAGS += ${DEFINE_PREFIX}_LIBCPP_BUILDING_LIBRARY ifeq ($(CONFIG_LIBSUPCXX), y) -CXXFLAGS += ${shell $(DEFINE) "$(CC)" __GLIBCXX__} +CXXFLAGS += ${DEFINE_PREFIX}__GLIBCXX__ endif # Workaround the following warning with "c++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0" diff --git a/libs/libxx/libcxxabi.defs b/libs/libxx/libcxxabi.defs index ba7209bec6..874f5ddd45 100644 --- a/libs/libxx/libcxxabi.defs +++ b/libs/libxx/libcxxabi.defs @@ -40,7 +40,7 @@ context:: libcxxabi endif ifeq ($(CONFIG_LIBCXXABI), y) -CXXFLAGS += ${shell $(DEFINE) "$(CC)" LIBCXX_BUILDING_LIBCXXABI} +CXXFLAGS += ${DEFINE_PREFIX}LIBCXX_BUILDING_LIBCXXABI CXXFLAGS += -I $(TOPDIR)/libs/libxx/libcxxabi/include endif @@ -53,7 +53,7 @@ CPPSRCS += stdlib_exception.cpp stdlib_new_delete.cpp stdlib_stdexcept.cpp stdli CPPSRCS += abort_message.cpp fallback_malloc.cpp private_typeinfo.cpp ifeq ($(CONFIG_CXX_EXCEPTION), y) -CXXFLAGS += ${shell $(DEFINE) "$(CC)" LIBCXXABI_ENABLE_EXCEPTIONS} +CXXFLAGS += ${DEFINE_PREFIX}LIBCXXABI_ENABLE_EXCEPTIONS CPPSRCS += cxa_exception.cpp cxa_personality.cpp else CPPSRCS += cxa_noexception.cpp diff --git a/mm/iob/Make.defs b/mm/iob/Make.defs index 5ecd99cc93..fab7171de0 100644 --- a/mm/iob/Make.defs +++ b/mm/iob/Make.defs @@ -39,7 +39,7 @@ ifeq ($(CONFIG_DEBUG_FEATURES),y) endif ifneq ($(CONFIG_IOB_SECTION),"") - CFLAGS += ${shell $(DEFINE) "$(CC)" IOB_SECTION=CONFIG_IOB_SECTION} + CFLAGS += ${DEFINE_PREFIX}IOB_SECTION=CONFIG_IOB_SECTION endif # Include iob build support diff --git a/tools/Config.mk b/tools/Config.mk index c9f7f1d47b..73a0601889 100644 --- a/tools/Config.mk +++ b/tools/Config.mk @@ -106,7 +106,7 @@ endif # This define is passed as EXTRAFLAGS for kernel-mode builds. It is also passed # during PASS1 (but not PASS2) context and depend targets. -KDEFINE ?= ${shell $(DEFINE) "$(CC)" __KERNEL__} +KDEFINE ?= ${DEFINE_PREFIX}__KERNEL__ # DELIM - Path segment delimiter character # @@ -577,11 +577,12 @@ $(1)_$(2): endef -# ARCHxxx means the predefined setting(either toolchain, arch, or system specific) +export DEFINE_PREFIX := $(subst X,,${shell $(DEFINE) "$(CC)" "X"}) -ARCHDEFINES += ${shell $(DEFINE) "$(CC)" __NuttX__} +# ARCHxxx means the predefined setting(either toolchain, arch, or system specific) +ARCHDEFINES += ${DEFINE_PREFIX}__NuttX__ ifeq ($(CONFIG_NDEBUG),y) - ARCHDEFINES += ${shell $(DEFINE) "$(CC)" NDEBUG} + ARCHDEFINES += ${DEFINE_PREFIX}NDEBUG endif # The default C/C++ search path