You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/11/03 12:00:01 UTC

[incubator-nuttx] 01/02: tools: replace DEFINE script to Makefile variable

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 95d9abcf58cfdd533b8fa2fb8e8142f18a089095
Author: yinshengkai <yi...@xiaomi.com>
AuthorDate: Tue Nov 1 21:47:53 2022 +0800

    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 <yi...@xiaomi.com>
---
 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