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

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

commit 52222cb020c70f14b2ff766c96da87c3c4bfd32c
Author: YAMAMOTO Takashi <[email protected]>
AuthorDate: Fri Feb 21 14:08:51 2020 +0900

    Avoid calling ARCHIVE in multiple places
    
    Because it isn't safe to run multiple instances to libapps.a
    concurrently.
---
 Application.mk | 12 ++++++------
 Directory.mk   |  3 +++
 Makefile       | 19 +++++++++++++++++--
 3 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/Application.mk b/Application.mk
index 25af192..5110506 100644
--- a/Application.mk
+++ b/Application.mk
@@ -129,12 +129,6 @@ $(CXXOBJS): %$(SUFFIX)$(OBJEXT): %$(CXXEXT)
                $(call ELFCOMPILEXX, $<, $@), $(call COMPILEXX, $<, $@))
 
 .built: $(OBJS)
-ifeq ($(WINTOOL),y)
-       $(call ARCHIVE, "${shell cygpath -w $(BIN)}", $(OBJS))
-else
-       $(call ARCHIVE, $(BIN), $(OBJS))
-endif
-       $(Q) touch $@
 
 ifeq ($(BUILD_MODULE),y)
 
@@ -163,6 +157,9 @@ endif
 
 install:: $(PROGLIST)
 
+show-objs:
+       @echo ""
+
 else
 
 MAINNAME := $(addsuffix _main,$(PROGNAME))
@@ -185,6 +182,9 @@ endif
 
 install::
 
+show-objs:
+       @echo $(addprefix $(CWD)$(DELIM),$(OBJS))
+
 endif # BUILD_MODULE
 
 preconfig::
diff --git a/Directory.mk b/Directory.mk
index 31cf4f2..74b9a93 100644
--- a/Directory.mk
+++ b/Directory.mk
@@ -54,6 +54,7 @@ $(foreach SDIR, $(SUBDIRS), $(eval $(call 
SDIR_template,$(SDIR),context)))
 $(foreach SDIR, $(SUBDIRS), $(eval $(call SDIR_template,$(SDIR),depend)))
 $(foreach SDIR, $(SUBDIRS), $(eval $(call SDIR_template,$(SDIR),clean)))
 $(foreach SDIR, $(SUBDIRS), $(eval $(call SDIR_template,$(SDIR),distclean)))
+$(foreach SDIR, $(SUBDIRS), $(eval $(call SDIR_template,$(SDIR),show-objs)))
 
 nothing:
 
@@ -75,4 +76,6 @@ ifneq ($(MENUDESC),)
        $(call DELFILE, Kconfig)
 endif
 
+show-objs: $(foreach SDIR, $(SUBDIRS), $(SDIR)_show-objs)
+
 -include Make.dep
diff --git a/Makefile b/Makefile
index e0ad31f..53b6fa5 100644
--- a/Makefile
+++ b/Makefile
@@ -55,6 +55,8 @@ endif
 SYMTABSRC = symtab_apps.c
 SYMTABOBJ = $(SYMTABSRC:.c=$(OBJEXT))
 
+APPOBJS = $(shell $(MAKE) show-objs TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)")
+
 # Build targets
 
 all: $(BIN)
@@ -66,6 +68,11 @@ define MAKE_template
 
 endef
 
+define MAKE_template_quiet
+       @ $(MAKE) -C $(1) $(2) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" V=0 Q=@
+
+endef
+
 define SDIR_template
 $(1)_$(2):
        +$(Q) $(MAKE) -C $(1) $(2) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"
@@ -105,6 +112,11 @@ else
 ifeq ($(CONFIG_BUILD_LOADABLE),)
 
 $(BIN): $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_all)
+ifeq ($(WINTOOL),y)
+       $(call ARCHIVE, "${shell cygpath -w $(BIN)}", $(APPOBJS))
+else
+       $(call ARCHIVE, $(BIN), $(APPOBJS))
+endif
 
 else
 
@@ -117,9 +129,9 @@ $(SYMTABOBJ): %$(OBJEXT): %.c
 
 $(BIN): $(SYMTABOBJ)
 ifeq ($(WINTOOL),y)
-       $(call ARCHIVE, "${shell cygpath -w $(BIN)}", $^)
+       $(call ARCHIVE, "${shell cygpath -w $(BIN)}", $(APPOBJS) $(SYMTABOBJ))
 else
-       $(call ARCHIVE, $(BIN), $^)
+       $(call ARCHIVE, $(BIN), $(APPOBJS) $(SYMTABOBJ))
 endif
 
 endif # !CONFIG_BUILD_LOADABLE
@@ -155,6 +167,9 @@ Kconfig:
 
 preconfig: Kconfig
 
+show-objs:
+       $(foreach SDIR, $(CONFIGURED_APPS), $(call 
MAKE_template_quiet,$(SDIR),show-objs))
+
 export:
 ifneq ($(EXPORTDIR),)
 ifneq ($(BUILTIN_REGISTRY),)

Reply via email to