Makefile.include: fix missing target for libraries

Unittests add libraries in 'BASELIBS' which do not have any rules to be built as
they are built by 'application.inc.mk', packages and the DIRS variable.
So make complains about missing target for the unittests archives.

The fix tells these files are generated when building '$(APPLICATION_MODULE).a'.

The bug was introduced by #8844

Fixes #8910
This commit is contained in:
Gaëtan Harter 2018-04-10 16:17:19 +02:00
parent 635e72db23
commit 94214cdcae

View File

@ -352,11 +352,14 @@ endif # RIOTNOLINK
$(ELFFILE): $(BASELIBS) $(ELFFILE): $(BASELIBS)
$(Q)$(_LINK) -o $@ $(Q)$(_LINK) -o $@
# All modules are built by application.inc.mk makefile
$(BINDIR)/$(APPLICATION_MODULE).a: $(RIOTBUILD_CONFIG_HEADER_C) $(USEPKG:%=$(BINDIR)/%.a) $(APPDEPS) $(BINDIR)/$(APPLICATION_MODULE).a: $(RIOTBUILD_CONFIG_HEADER_C) $(USEPKG:%=$(BINDIR)/%.a) $(APPDEPS)
$(Q)DIRS="$(DIRS)" "$(MAKE)" -C $(APPDIR) -f $(RIOTMAKE)/application.inc.mk $(Q)DIRS="$(DIRS)" "$(MAKE)" -C $(APPDIR) -f $(RIOTMAKE)/application.inc.mk
$(BINDIR)/$(APPLICATION_MODULE).a: FORCE $(BINDIR)/$(APPLICATION_MODULE).a: FORCE
# Other modules are built by application.inc.mk and packages building
_SUBMAKE_LIBS = $(filter-out $(BINDIR)/$(APPLICATION_MODULE).a $(USEPKG:%=$(BINDIR)/%.a) $(APPDEPS), $(BASELIBS))
$(_SUBMAKE_LIBS): $(BINDIR)/$(APPLICATION_MODULE).a $(USEPKG:%=$(BINDIR)/%.a)
# 'print-size' triggers a rebuild. Use 'info-buildsize' if you do not need to rebuild. # 'print-size' triggers a rebuild. Use 'info-buildsize' if you do not need to rebuild.
print-size: $(ELFFILE) print-size: $(ELFFILE)
$(Q)$(SIZE) $< $(Q)$(SIZE) $<