mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 06:18:40 +08:00
Redo "Fix make target dependencies"
Change-Id: I7180145d90913fd3acc94487b9f7b9753dcdc8da Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
This commit is contained in:
parent
7faf3c0254
commit
48da64f9c2
3 changed files with 55 additions and 46 deletions
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue