Makefile: In the make import target for kernel build, we must make all objects and populate libapps.a. Application.mk: the PROGIST must be executed unconditionally to support the kernel build.

This commit is contained in:
Gregory Nutt 2018-09-04 12:17:15 -06:00
parent 0d7067936a
commit 3921bbad79
2 changed files with 44 additions and 6 deletions

View File

@ -98,7 +98,7 @@ VPATH += :.
# Targets follow # Targets follow
all:: .built all:: .built
.PHONY: clean preconfig depend distclean .PHONY: .proglist clean preconfig depend distclean
.PRECIOUS: $(APPDIR)/libapps$(LIBEXT) .PRECIOUS: $(APPDIR)/libapps$(LIBEXT)
ifneq ($(CONFIG_BUILD_LOADABLE),y) ifneq ($(CONFIG_BUILD_LOADABLE),y)
@ -186,13 +186,13 @@ endif
PROGLIST := $(addprefix $(PROGPRFX),$(PROGNAME)) PROGLIST := $(addprefix $(PROGPRFX),$(PROGNAME))
PROGOBJ := $(MAINOBJ) PROGOBJ := $(MAINOBJ)
$(PROGLIST): $(MAINOBJ) $(OBJS) .proglist: $(MAINOBJ) $(OBJS)
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $(firstword $(PROGLIST)) $(ARCHCRT0OBJ) $(firstword $(PROGOBJ)) $(LDLIBS) $(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $(firstword $(PROGLIST)) $(ARCHCRT0OBJ) $(firstword $(PROGOBJ)) $(LDLIBS)
$(Q) $(NM) -u $(firstword $(PROGLIST)) $(Q) $(NM) -u $(firstword $(PROGLIST))
$(eval PROGLIST=$(filter-out $(firstword $(PROGLIST)),$(PROGLIST))) $(eval PROGLIST=$(filter-out $(firstword $(PROGLIST)),$(PROGLIST)))
$(eval PROGOBJ=$(filter-out $(firstword $(PROGOBJ)),$(PROGOBJ))) $(eval PROGOBJ=$(filter-out $(firstword $(PROGOBJ)),$(PROGOBJ)))
install:: $(PROGLIST) install:: .proglist
else else
install:: install::

View File

@ -103,9 +103,12 @@ $(foreach SDIR, $(CONFIGURED_APPS), $(eval $(call SDIR_template,$(SDIR),depend))
$(foreach SDIR, $(CLEANDIRS), $(eval $(call SDIR_template,$(SDIR),clean))) $(foreach SDIR, $(CLEANDIRS), $(eval $(call SDIR_template,$(SDIR),clean)))
$(foreach SDIR, $(CLEANDIRS), $(eval $(call SDIR_template,$(SDIR),distclean))) $(foreach SDIR, $(CLEANDIRS), $(eval $(call SDIR_template,$(SDIR),distclean)))
ifeq ($(CONFIG_BUILD_LOADABLE),) ifeq ($(CONFIG_BUILD_KERNEL),y)
$(BIN): $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_all)
else .install: $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_install)
install: $(BIN_DIR) .install
$(SYMTABSRC): $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_all) $(SYMTABSRC): $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_all)
$(Q) $(MAKE) install TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" $(Q) $(MAKE) install TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"
$(Q) $(APPDIR)$(DELIM)tools$(DELIM)mksymtab.sh $(EXE_DIR)$(DELIM)system $(SYMTABSRC) $(Q) $(APPDIR)$(DELIM)tools$(DELIM)mksymtab.sh $(EXE_DIR)$(DELIM)system $(SYMTABSRC)
@ -123,8 +126,41 @@ ifeq ($(WINTOOL),y)
else else
$(call ARCHIVE, $(BIN), $^) $(call ARCHIVE, $(BIN), $^)
endif endif
$(BIN_DIR):
$(Q) mkdir -p $(BIN_DIR)
.import: $(BIN_DIR) $(SYMTABSRC) $(BIN)
import:
$(Q) $(MAKE) .import TOPDIR="$(APPDIR)$(DELIM)import"
else
ifeq ($(CONFIG_BUILD_LOADABLE),)
$(BIN): $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_all)
else
$(SYMTABSRC): $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_all)
$(Q) $(MAKE) install TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"
$(Q) $(APPDIR)$(DELIM)tools$(DELIM)mksymtab.sh $(EXE_DIR)$(DELIM)system $(SYMTABSRC)
$(SYMTABOBJ): %$(OBJEXT): %.c
ifeq ($(WINTOOL),y)
$(call COMPILE, -fno-lto "${shell cygpath -w $<}", "${shell cygpath -w $@}")
else
$(call COMPILE, -fno-lto $<, $@)
endif endif
$(BIN): $(SYMTABOBJ)
ifeq ($(WINTOOL),y)
$(call ARCHIVE, $(BIN), "${shell cygpath -w $^}")
else
$(call ARCHIVE, $(BIN), $^)
endif
endif # !CONFIG_BUILD_KERNEL && CONFIG_BUILD_LOADABLE
.install: $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_install) .install: $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_install)
$(BIN_DIR): $(BIN_DIR):
@ -137,6 +173,8 @@ install: $(BIN_DIR) .install
import: import:
$(Q) $(MAKE) .import TOPDIR="$(APPDIR)$(DELIM)import" $(Q) $(MAKE) .import TOPDIR="$(APPDIR)$(DELIM)import"
endif # CONFIG_BUILD_KERNEL
dirlinks: dirlinks:
$(Q) $(MAKE) -C platform dirlinks TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" BIN_DIR="$(BIN_DIR)" $(Q) $(MAKE) -C platform dirlinks TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" BIN_DIR="$(BIN_DIR)"