This is an automated email from the ASF dual-hosted git repository. aguettouche pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 48da64f9c299d8694118b52696625f2410c96c1c Author: YAMAMOTO Takashi <yamam...@midokura.com> AuthorDate: Fri Apr 3 21:19:15 2020 +0900 Redo "Fix make target dependencies" Change-Id: I7180145d90913fd3acc94487b9f7b9753dcdc8da Signed-off-by: liuhaitao <liuhai...@xiaomi.com> --- tools/LibTargets.mk | 69 +++++++++++++++++++++++++++++++++-------------------- tools/Makefile.unix | 16 +++++-------- tools/Makefile.win | 16 +++++-------- 3 files changed, 55 insertions(+), 46 deletions(-) diff --git a/tools/LibTargets.mk b/tools/LibTargets.mk index c6f281c..39c8399 100644 --- a/tools/LibTargets.mk +++ b/tools/LibTargets.mk @@ -40,109 +40,109 @@ # # Possible kernel-mode builds -libs$(DELIM)libc$(DELIM)libkc$(LIBEXT): context +libs$(DELIM)libc$(DELIM)libkc$(LIBEXT): pass2dep $(Q) $(MAKE) -C libs$(DELIM)libc TOPDIR="$(TOPDIR)" libkc$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libkc$(LIBEXT): libs$(DELIM)libc$(DELIM)libkc$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -libs$(DELIM)libnx$(DELIM)libknx$(LIBEXT): context +libs$(DELIM)libnx$(DELIM)libknx$(LIBEXT): pass2dep $(Q) $(MAKE) -C libs$(DELIM)libnx TOPDIR="$(TOPDIR)" libknx$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libknx$(LIBEXT): libs$(DELIM)libnx$(DELIM)libknx$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -mm$(DELIM)libkmm$(LIBEXT): context +mm$(DELIM)libkmm$(LIBEXT): pass2dep $(Q) $(MAKE) -C mm TOPDIR="$(TOPDIR)" libkmm$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libkmm$(LIBEXT): mm$(DELIM)libkmm$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -$(ARCH_SRC)$(DELIM)libkarch$(LIBEXT): context +$(ARCH_SRC)$(DELIM)libkarch$(LIBEXT): pass2dep $(Q) $(MAKE) -C $(ARCH_SRC) TOPDIR="$(TOPDIR)" libkarch$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libkarch$(LIBEXT): $(ARCH_SRC)$(DELIM)libkarch$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -pass1$(DELIM)libpass1$(LIBEXT): context +pass1$(DELIM)libpass1$(LIBEXT): pass2dep $(Q) $(MAKE) -C pass1 TOPDIR="$(TOPDIR)" libpass1$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libpass1$(LIBEXT): pass1$(DELIM)libpass1$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -sched$(DELIM)libsched$(LIBEXT): context +sched$(DELIM)libsched$(LIBEXT): pass2dep $(Q) $(MAKE) -C sched TOPDIR="$(TOPDIR)" libsched$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libsched$(LIBEXT): sched$(DELIM)libsched$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -net$(DELIM)libnet$(LIBEXT): context +net$(DELIM)libnet$(LIBEXT): pass2dep $(Q) $(MAKE) -C net TOPDIR="$(TOPDIR)" libnet$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libnet$(LIBEXT): net$(DELIM)libnet$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -boards$(DELIM)libboards$(LIBEXT): context +boards$(DELIM)libboards$(LIBEXT): pass2dep $(Q) $(MAKE) -C boards TOPDIR="$(TOPDIR)" libboards$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libboards$(LIBEXT): boards$(DELIM)libboards$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -crypto$(DELIM)libcrypto$(LIBEXT): context +crypto$(DELIM)libcrypto$(LIBEXT): pass2dep $(Q) $(MAKE) -C crypto TOPDIR="$(TOPDIR)" libcrypto$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libcrypto$(LIBEXT): crypto$(DELIM)libcrypto$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -fs$(DELIM)libfs$(LIBEXT): context +fs$(DELIM)libfs$(LIBEXT): pass2dep $(Q) $(MAKE) -C fs TOPDIR="$(TOPDIR)" libfs$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libfs$(LIBEXT): fs$(DELIM)libfs$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -drivers$(DELIM)libdrivers$(LIBEXT): context +drivers$(DELIM)libdrivers$(LIBEXT): pass2dep $(Q) $(MAKE) -C drivers TOPDIR="$(TOPDIR)" libdrivers$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libdrivers$(LIBEXT): drivers$(DELIM)libdrivers$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -binfmt$(DELIM)libbinfmt$(LIBEXT): context +binfmt$(DELIM)libbinfmt$(LIBEXT): pass2dep $(Q) $(MAKE) -C binfmt TOPDIR="$(TOPDIR)" libbinfmt$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libbinfmt$(LIBEXT): binfmt$(DELIM)libbinfmt$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -graphics$(DELIM)libgraphics$(LIBEXT): context +graphics$(DELIM)libgraphics$(LIBEXT): pass2dep $(Q) $(MAKE) -C graphics TOPDIR="$(TOPDIR)" libgraphics$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libgraphics$(LIBEXT): graphics$(DELIM)libgraphics$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -audio$(DELIM)libaudio$(LIBEXT): context +audio$(DELIM)libaudio$(LIBEXT): pass2dep $(Q) $(MAKE) -C audio TOPDIR="$(TOPDIR)" libaudio$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libaudio$(LIBEXT): audio$(DELIM)libaudio$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -video$(DELIM)libvideo$(LIBEXT): context +video$(DELIM)libvideo$(LIBEXT): pass2dep $(Q) $(MAKE) -C video TOPDIR="$(TOPDIR)" libvideo$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libvideo$(LIBEXT): video$(DELIM)libvideo$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -wireless$(DELIM)libwireless$(LIBEXT): context +wireless$(DELIM)libwireless$(LIBEXT): pass2dep $(Q) $(MAKE) -C wireless TOPDIR="$(TOPDIR)" libwireless$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libwireless$(LIBEXT): wireless$(DELIM)libwireless$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -openamp$(DELIM)libopenamp$(LIBEXT): context +openamp$(DELIM)libopenamp$(LIBEXT): pass2dep $(Q) $(MAKE) -C openamp TOPDIR="$(TOPDIR)" libopenamp$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libopenamp$(LIBEXT): openamp$(DELIM)libopenamp$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -syscall$(DELIM)libstubs$(LIBEXT): context +syscall$(DELIM)libstubs$(LIBEXT): pass2dep $(Q) $(MAKE) -C syscall TOPDIR="$(TOPDIR)" libstubs$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" staging$(DELIM)libstubs$(LIBEXT): syscall$(DELIM)libstubs$(LIBEXT) @@ -150,10 +150,11 @@ staging$(DELIM)libstubs$(LIBEXT): syscall$(DELIM)libstubs$(LIBEXT) # Special case -$(ARCH_SRC)$(DELIM)libarch$(LIBEXT): context ifeq ($(CONFIG_BUILD_FLAT),y) +$(ARCH_SRC)$(DELIM)libarch$(LIBEXT): pass2dep $(Q) $(MAKE) -C $(ARCH_SRC) TOPDIR="$(TOPDIR)" libarch$(LIBEXT) EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" else +$(ARCH_SRC)$(DELIM)libarch$(LIBEXT): pass1dep $(Q) $(MAKE) -C $(ARCH_SRC) TOPDIR="$(TOPDIR)" libarch$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)" endif @@ -162,43 +163,59 @@ staging$(DELIM)libarch$(LIBEXT): $(ARCH_SRC)$(DELIM)libarch$(LIBEXT) # Possible user-mode builds -libs$(DELIM)libc$(DELIM)libc$(LIBEXT): context +ifeq ($(CONFIG_BUILD_FLAT),y) +libs$(DELIM)libc$(DELIM)libc$(LIBEXT): pass2dep +else +libs$(DELIM)libc$(DELIM)libc$(LIBEXT): pass1dep +endif $(Q) $(MAKE) -C libs$(DELIM)libc TOPDIR="$(TOPDIR)" libc$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)" staging$(DELIM)libc$(LIBEXT): libs$(DELIM)libc$(DELIM)libc$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -libs$(DELIM)libnx$(DELIM)libnx$(LIBEXT): context +ifeq ($(CONFIG_BUILD_FLAT),y) +libs$(DELIM)libnx$(DELIM)libnx$(LIBEXT): pass2dep +else +libs$(DELIM)libnx$(DELIM)libnx$(LIBEXT): pass1dep +endif $(Q) $(MAKE) -C libs$(DELIM)libnx TOPDIR="$(TOPDIR)" libnx$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)" staging$(DELIM)libnx$(LIBEXT): libs$(DELIM)libnx$(DELIM)libnx$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -mm$(DELIM)libmm$(LIBEXT): context +ifeq ($(CONFIG_BUILD_FLAT),y) +mm$(DELIM)libmm$(LIBEXT): pass2dep +else +mm$(DELIM)libmm$(LIBEXT): pass1dep +endif $(Q) $(MAKE) -C mm TOPDIR="$(TOPDIR)" libmm$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)" staging$(DELIM)libmm$(LIBEXT): mm$(DELIM)libmm$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -libs$(DELIM)libxx$(DELIM)libxx$(LIBEXT): context +libs$(DELIM)libxx$(DELIM)libxx$(LIBEXT): pass1dep $(Q) $(MAKE) -C libs$(DELIM)libxx TOPDIR="$(TOPDIR)" libxx$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)" staging$(DELIM)libxx$(LIBEXT): libs$(DELIM)libxx$(DELIM)libxx$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -libs$(DELIM)libdsp$(DELIM)libdsp$(LIBEXT): context +libs$(DELIM)libdsp$(DELIM)libdsp$(LIBEXT): pass2dep $(Q) $(MAKE) -C libs$(DELIM)libdsp TOPDIR="$(TOPDIR)" libdsp$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)" staging$(DELIM)libdsp$(LIBEXT): libs$(DELIM)libdsp$(DELIM)libdsp$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -$(APPDIR)$(DELIM)libapps$(LIBEXT): context +ifeq ($(CONFIG_BUILD_FLAT),y) +$(APPDIR)$(DELIM)libapps$(LIBEXT): pass2dep +else +$(APPDIR)$(DELIM)libapps$(LIBEXT): pass1dep +endif $(Q) $(MAKE) -C $(APPDIR) TOPDIR="$(TOPDIR)" EXTRAFLAGS="$(EXTRAFLAGS)" staging$(DELIM)libapps$(LIBEXT): $(APPDIR)$(DELIM)libapps$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) -syscall$(DELIM)libproxies$(LIBEXT): context +syscall$(DELIM)libproxies$(LIBEXT): pass1dep $(Q) $(MAKE) -C syscall TOPDIR="$(TOPDIR)" libproxies$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)" staging$(DELIM)libproxies$(LIBEXT): syscall$(DELIM)libproxies$(LIBEXT) diff --git a/tools/Makefile.unix b/tools/Makefile.unix index 8f71e71..ea30e05 100644 --- a/tools/Makefile.unix +++ b/tools/Makefile.unix @@ -167,8 +167,8 @@ BIN = $(NUTTXNAME)$(EXEEXT) all: $(BIN) .PHONY: dirlinks context clean_context check_context config oldconfig menuconfig nconfig qconfig gconfig export subdir_clean clean subdir_distclean distclean apps_clean apps_distclean -.PHONY: pass1 pass1deps pass1dep -.PHONY: pass2 pass2deps pass2dep +.PHONY: pass1 pass1dep +.PHONY: pass2 pass2dep # Target used to copy include/nuttx/lib/math.h. If CONFIG_ARCH_MATH_H is # defined, then there is an architecture specific math.h header file @@ -398,9 +398,7 @@ include tools/LibTargets.mk # is an archive. Exactly what is performed during pass1 or what it generates # is unknown to this makefile unless CONFIG_PASS1_OBJECT is defined. -pass1deps: pass1dep $(USERLIBS) - -pass1: pass1deps +pass1: $(USERLIBS) ifeq ($(CONFIG_BUILD_2PASS),y) $(Q) if [ -z "$(CONFIG_PASS1_BUILDIR)" ]; then \ echo "ERROR: CONFIG_PASS1_BUILDIR not defined"; \ @@ -417,9 +415,7 @@ ifeq ($(CONFIG_BUILD_2PASS),y) $(Q) $(MAKE) -C $(CONFIG_PASS1_BUILDIR) TOPDIR="$(TOPDIR)" LINKLIBS="$(LINKLIBS)" USERLIBS="$(USERLIBS)" "$(CONFIG_PASS1_TARGET)" endif -pass2deps: pass2dep $(NUTTXLIBS) - -pass2: pass2deps +pass2: $(NUTTXLIBS) $(Q) $(MAKE) -C $(ARCH_SRC) TOPDIR="$(TOPDIR)" EXTRA_OBJS="$(EXTRA_OBJS)" LINKLIBS="$(LINKLIBS)" EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" $(BIN) $(Q) if [ -w /tftpboot ] ; then \ cp -f $(BIN) /tftpboot/$(BIN).${CONFIG_ARCH}; \ @@ -454,7 +450,7 @@ endif # pass1 dependencies and pass1 first, then build pass2 dependencies and pass2. # in that case, execute 'make pass1 pass2' from the command line. -$(BIN): pass1deps pass2deps pass1 pass2 +$(BIN): pass1 pass2 # download # @@ -551,7 +547,7 @@ savedefconfig: dirlinks apps_preconfig # in tools/mkexport.sh only supports GCC and, for example, explicitly assumes # that the archiver is 'ar' -export: pass2deps +export: $(NUTTXLIBS) $(Q) MAKE=${MAKE} $(MKEXPORT) $(MKEXPORT_ARGS) -l "$(EXPORTLIBS)" # General housekeeping targets: dependencies, cleaning, etc. diff --git a/tools/Makefile.win b/tools/Makefile.win index 92c1570..46eb557 100644 --- a/tools/Makefile.win +++ b/tools/Makefile.win @@ -156,8 +156,8 @@ BIN = $(NUTTXNAME)$(EXEEXT) all: $(BIN) .PHONY: dirlinks context clean_context check_context configenv config oldconfig menuconfig nconfig export subdir_clean clean subdir_distclean distclean apps_clean apps_distclean -.PHONY: pass1 pass1deps pass1dep -.PHONY: pass2 pass2deps pass2dep +.PHONY: pass1 pass1dep +.PHONY: pass2 pass2dep # Target used to copy include\nuttx\math.h. If CONFIG_ARCH_MATH_H is # defined, then there is an architecture specific math.h header file @@ -372,9 +372,7 @@ include tools/LibTargets.mk # is an archive. Exactly what is performed during pass1 or what it generates # is unknown to this makefile unless CONFIG_PASS1_OBJECT is defined. -pass1deps: pass1dep $(USERLIBS) - -pass1: pass1deps +pass1: $(USERLIBS) ifeq ($(CONFIG_BUILD_2PASS),y) $(Q) if [ -z "$(CONFIG_PASS1_BUILDIR)" ]; then \ echo "ERROR: CONFIG_PASS1_BUILDIR not defined"; \ @@ -391,9 +389,7 @@ ifeq ($(CONFIG_BUILD_2PASS),y) $(Q) $(MAKE) -C $(CONFIG_PASS1_BUILDIR) TOPDIR="$(TOPDIR)" LINKLIBS="$(LINKLIBS)" USERLIBS="$(USERLIBS)" "$(CONFIG_PASS1_TARGET)" endif -pass2deps: pass2dep $(NUTTXLIBS) - -pass2: pass2deps +pass2: $(NUTTXLIBS) $(Q) $(MAKE) -C $(ARCH_SRC) TOPDIR="$(TOPDIR)" EXTRA_OBJS="$(EXTRA_OBJS)" LINKLIBS="$(LINKLIBS)" EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" $(BIN) ifeq ($(CONFIG_INTELHEX_BINARY),y) @echo "CP: $(NUTTXNAME).hex" @@ -417,7 +413,7 @@ endif # pass1 dependencies and pass1 first, then build pass2 dependencies and pass2. # in that case, execute 'make pass1 pass2' from the command line. -$(BIN): pass1deps pass2deps pass1 pass2 +$(BIN): pass1 pass2 # download # @@ -500,7 +496,7 @@ savedefconfig: dirlinks apps_preconfig # in tools\mkexport.sh only supports GCC and, for example, explicitly assumes # that the archiver is 'ar' -export: pass2deps +export: ${NUTTXLIBS} $(Q) $(MKEXPORT) $(MKEXPORT_ARGS) -l "$(EXPORTLIBS)" # General housekeeping targets: dependencies, cleaning, etc.