From 3921bbad7997353068c64d17533c27b9cd60bd9c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 4 Sep 2018 12:17:15 -0600 Subject: [PATCH] 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. --- Application.mk | 6 +++--- Makefile | 44 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/Application.mk b/Application.mk index 12d59b59f..4ff0dc137 100644 --- a/Application.mk +++ b/Application.mk @@ -98,7 +98,7 @@ VPATH += :. # Targets follow all:: .built -.PHONY: clean preconfig depend distclean +.PHONY: .proglist clean preconfig depend distclean .PRECIOUS: $(APPDIR)/libapps$(LIBEXT) ifneq ($(CONFIG_BUILD_LOADABLE),y) @@ -186,13 +186,13 @@ endif PROGLIST := $(addprefix $(PROGPRFX),$(PROGNAME)) PROGOBJ := $(MAINOBJ) -$(PROGLIST): $(MAINOBJ) $(OBJS) +.proglist: $(MAINOBJ) $(OBJS) $(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $(firstword $(PROGLIST)) $(ARCHCRT0OBJ) $(firstword $(PROGOBJ)) $(LDLIBS) $(Q) $(NM) -u $(firstword $(PROGLIST)) $(eval PROGLIST=$(filter-out $(firstword $(PROGLIST)),$(PROGLIST))) $(eval PROGOBJ=$(filter-out $(firstword $(PROGOBJ)),$(PROGOBJ))) -install:: $(PROGLIST) +install:: .proglist else install:: diff --git a/Makefile b/Makefile index a9955e93b..e9143facc 100644 --- a/Makefile +++ b/Makefile @@ -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),distclean))) -ifeq ($(CONFIG_BUILD_LOADABLE),) -$(BIN): $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_all) -else +ifeq ($(CONFIG_BUILD_KERNEL),y) + +.install: $(foreach SDIR, $(CONFIGURED_APPS), $(SDIR)_install) + +install: $(BIN_DIR) .install + $(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) @@ -123,8 +126,41 @@ ifeq ($(WINTOOL),y) else $(call ARCHIVE, $(BIN), $^) 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 +$(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) $(BIN_DIR): @@ -137,6 +173,8 @@ install: $(BIN_DIR) .install import: $(Q) $(MAKE) .import TOPDIR="$(APPDIR)$(DELIM)import" +endif # CONFIG_BUILD_KERNEL + dirlinks: $(Q) $(MAKE) -C platform dirlinks TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" BIN_DIR="$(BIN_DIR)"