tools/Unix.mk:change incdir to a Make target

after the CI environment is upgraded to Ubuntu 22 and GNU make is upgraded to 4.3,
`warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.` warning appears.
this because when executing a shell in Make, the new shell created will not inherit the parallel environment of the parent shell(jobserver).

in our case:
```
$ make olddefconfig

this execute into Unix.mk twice,
because it will call make clean_context in its target

olddefconfig:
	$(Q) $(MAKE) clean_context
```
We replace the shell call with the target of the Makefile

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
This commit is contained in:
xuxin19 2023-12-28 19:22:04 +08:00 committed by Xiang Xiao
parent 087c519dd6
commit 1768e7868b
2 changed files with 16 additions and 14 deletions

View File

@ -24,12 +24,6 @@ ifeq ($(V),)
MAKE := $(MAKE) -s --no-print-directory MAKE := $(MAKE) -s --no-print-directory
endif endif
# Build any necessary tools needed early in the build.
# incdir - Is needed immediately by all Make.defs file.
DUMMY := ${shell $(MAKE) -C tools -f Makefile.host incdir \
INCDIR="$(TOPDIR)/tools/incdir.sh"}
include $(TOPDIR)/Make.defs include $(TOPDIR)/Make.defs
# GIT directory present # GIT directory present
@ -222,6 +216,13 @@ include/setjmp.h: include/nuttx/lib/setjmp.h
$(Q) cp -f include/nuttx/lib/setjmp.h include/setjmp.h $(Q) cp -f include/nuttx/lib/setjmp.h include/setjmp.h
endif endif
# Targets used to generate compiler-specific include paths
# Build this tools needed early in the build
# so we define it as a dependency of `context` target
tools/incdir$(HOSTEXEEXT):
$(Q) $(MAKE) -C tools -f Makefile.host incdir INCDIR="$(TOPDIR)/tools/incdir.sh"
# Targets used to build include/nuttx/version.h. Creation of version.h is # Targets used to build include/nuttx/version.h. Creation of version.h is
# part of the overall NuttX configuration sequence. Notice that the # part of the overall NuttX configuration sequence. Notice that the
# tools/mkversion tool is built and used to create include/nuttx/version.h # tools/mkversion tool is built and used to create include/nuttx/version.h
@ -440,7 +441,7 @@ endif
CONTEXTDIRS_DEPS = $(patsubst %,%/.context,$(CONTEXTDIRS)) CONTEXTDIRS_DEPS = $(patsubst %,%/.context,$(CONTEXTDIRS))
context: include/nuttx/config.h include/nuttx/version.h .dirlinks $(CONTEXTDIRS_DEPS) | staging context: tools/incdir$(HOSTEXEEXT) include/nuttx/config.h include/nuttx/version.h .dirlinks $(CONTEXTDIRS_DEPS) | staging
staging: staging:
$(Q) mkdir -p $@ $(Q) mkdir -p $@

View File

@ -22,12 +22,6 @@ export SHELL=cmd
export TOPDIR := ${shell echo %CD%} export TOPDIR := ${shell echo %CD%}
# Build any necessary tools needed early in the build.
# incdir - Is needed immediately by all Make.defs file.
DUMMY := ${shell $(MAKE) -C tools -f Makefile.host incdir \
INCDIR="$(TOPDIR)\tools\incdir.bat"}
include $(TOPDIR)\Make.defs include $(TOPDIR)\Make.defs
-include $(TOPDIR)\.version -include $(TOPDIR)\.version
@ -210,6 +204,13 @@ else
include\setjmp.h: include\setjmp.h:
endif endif
# Targets used to generate compiler-specific include paths
# Build this tools needed early in the build
# so we define it as a dependency of `context` target
tools\incdir$(HOSTEXEEXT):
$(Q) $(MAKE) -C tools -f Makefile.host incdir INCDIR="$(TOPDIR)\tools\incdir.bat"
# Targets used to build include\nuttx\version.h. Creation of version.h is # Targets used to build include\nuttx\version.h. Creation of version.h is
# part of the overall NuttX configuration sequence. Notice that the # part of the overall NuttX configuration sequence. Notice that the
# tools\mkversion tool is built and used to create include\nuttx\version.h # tools\mkversion tool is built and used to create include\nuttx\version.h
@ -424,7 +425,7 @@ endif
CONTEXTDIRS_DEPS = $(patsubst %,%\.context,$(CONTEXTDIRS)) CONTEXTDIRS_DEPS = $(patsubst %,%\.context,$(CONTEXTDIRS))
context: include\nuttx\config.h include\nuttx\version.h $(CONTEXTDIRS_DEPS) .dirlinks | staging context: tools\incdir$(HOSTEXEEXT) include\nuttx\config.h include\nuttx\version.h $(CONTEXTDIRS_DEPS) .dirlinks | staging
ifeq ($(NEED_MATH_H),y) ifeq ($(NEED_MATH_H),y)
context: include\math.h context: include\math.h