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 2020/09/19 15:05:58 UTC

[incubator-nuttx-apps] branch master updated: application.mk: fix multi MAINSRC match suffix in single Makefile

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-apps.git


The following commit(s) were added to refs/heads/master by this push:
     new d635fcb  application.mk: fix multi MAINSRC match suffix in single Makefile
d635fcb is described below

commit d635fcb2d88943257056dc38e3f4db15278d400e
Author: dongjiuzhu <do...@xiaomi.com>
AuthorDate: Thu Aug 13 17:51:00 2020 +0800

    application.mk: fix multi MAINSRC match suffix in single Makefile
    
    Change-Id: I998defe7208e4f3a9ae6aede33c54297ee27bd5f
    Signed-off-by: dongjiuzhu <do...@xiaomi.com>
---
 Application.mk | 33 ++++++++++++++-------------------
 1 file changed, 14 insertions(+), 19 deletions(-)

diff --git a/Application.mk b/Application.mk
index b3a0a9c..9163b64 100644
--- a/Application.mk
+++ b/Application.mk
@@ -78,17 +78,16 @@ AOBJS += $(CASRCS:.S=$(SUFFIX)$(OBJEXT))
 COBJS = $(CSRCS:.c=$(SUFFIX)$(OBJEXT))
 CXXOBJS = $(CXXSRCS:$(CXXEXT)=$(SUFFIX)$(OBJEXT))
 
-ifeq ($(suffix $(MAINSRC)),$(CXXEXT))
-  MAINOBJ = $(MAINSRC:$(CXXEXT)=$(SUFFIX)$(OBJEXT))
-else
-  MAINOBJ = $(MAINSRC:.c=$(SUFFIX)$(OBJEXT))
-endif
+MAINCXXSRCS = $(filter %$(CXXEXT),$(MAINSRC))
+MAINCSRCS = $(filter %.c,$(MAINSRC))
+MAINCXXOBJ = $(MAINCXXSRCS:$(CXXEXT)=$(SUFFIX)$(OBJEXT))
+MAINCOBJ = $(MAINCSRCS:.c=$(SUFFIX)$(OBJEXT))
 
 SRCS = $(ASRCS) $(CSRCS) $(CXXSRCS) $(MAINSRC)
 OBJS = $(AOBJS) $(COBJS) $(CXXOBJS)
 
 ifneq ($(BUILD_MODULE),y)
-  OBJS += $(MAINOBJ)
+  OBJS += $(MAINCOBJ) $(MAINCXXOBJ)
 endif
 
 DEPPATH += --dep-path .
@@ -144,21 +143,19 @@ endif
 
 ifeq ($(BUILD_MODULE),y)
 
-ifeq ($(suffix $(MAINSRC)),$(CXXEXT))
-$(MAINOBJ): %$(SUFFIX)$(OBJEXT): %$(CXXEXT)
+$(MAINCXXOBJ): %$(SUFFIX)$(OBJEXT): %$(CXXEXT)
 	$(if $(and $(CONFIG_BUILD_LOADABLE),$(CXXELFFLAGS)), \
 		$(call ELFCOMPILEXX, $<, $@), $(call COMPILEXX, $<, $@))
-else
-$(MAINOBJ): %$(SUFFIX)$(OBJEXT): %.c
+
+$(MAINCOBJ): %$(SUFFIX)$(OBJEXT): %.c
 	$(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
 		$(call ELFCOMPILE, $<, $@), $(call COMPILE, $<, $@))
-endif
 
-PROGLIST := $(wordlist 1,$(words $(MAINOBJ)),$(PROGNAME))
+PROGLIST := $(wordlist 1,$(words $(MAINCOBJ) $(MAINCXXOBJ)),$(PROGNAME))
 PROGLIST := $(addprefix $(BINDIR)$(DELIM),$(PROGLIST))
-PROGOBJ := $(MAINOBJ)
+PROGOBJ := $(MAINCOBJ) $(MAINCXXOBJ)
 
-$(PROGLIST): $(MAINOBJ)
+$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ)
 	$(Q) mkdir -p $(BINDIR)
 ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
 	$(call ELFLD,$(firstword $(PROGOBJ)),"${shell cygpath -w $(firstword $(PROGLIST))}")
@@ -178,21 +175,19 @@ else
 
 MAINNAME := $(addsuffix _main,$(PROGNAME))
 
-ifeq ($(suffix $(MAINSRC)),$(CXXEXT))
-$(MAINOBJ): %$(SUFFIX)$(OBJEXT): %$(CXXEXT)
+$(MAINCXXOBJ): %$(SUFFIX)$(OBJEXT): %$(CXXEXT)
 	$(eval $<_CXXFLAGS += ${shell $(DEFINE) "$(CXX)" main=$(firstword $(MAINNAME))})
 	$(eval $<_CXXELFFLAGS += ${shell $(DEFINE) "$(CXX)" main=$(firstword $(MAINNAME))})
 	$(eval MAINNAME=$(filter-out $(firstword $(MAINNAME)),$(MAINNAME)))
 	$(if $(and $(CONFIG_BUILD_LOADABLE),$(CXXELFFLAGS)), \
 		$(call ELFCOMPILEXX, $<, $@), $(call COMPILEXX, $<, $@))
-else
-$(MAINOBJ): %$(SUFFIX)$(OBJEXT): %.c
+
+$(MAINCOBJ): %$(SUFFIX)$(OBJEXT): %.c
 	$(eval $<_CFLAGS += ${shell $(DEFINE) "$(CC)" main=$(firstword $(MAINNAME))})
 	$(eval $<_CELFFLAGS += ${shell $(DEFINE) "$(CC)" main=$(firstword $(MAINNAME))})
 	$(eval MAINNAME=$(filter-out $(firstword $(MAINNAME)),$(MAINNAME)))
 	$(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
 		$(call ELFCOMPILE, $<, $@), $(call COMPILE, $<, $@))
-endif
 
 install::