mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
Further improve build time: Try to avoid calling projects.py
This commit tries to remove the necessity to call projects.py from $(TOPDIR) to speed up recursive builds over all projects yet again. This is a major undertaking. There are two variables which are filled py projects.py in $(TOPDIR): PREREQ and PREREQ_DIRS. Sadly, the latter is a path relative to $(TOPDIR)/make, so this is kind of pointless. Unless the cache is maintained in $(TOPDIR), a thing I tried to avoid. So this commit is only able to cache $(PREREQ), not $(PREREQ_DIRS), which still is a hassle. Introduced defs-dirs.mk for that, to make it accessible to make.mk, and modified all the other parts of the machinery, too. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
9e245c986e
commit
3dd55cf067
5 changed files with 49 additions and 30 deletions
|
|
@ -1,13 +1,15 @@
|
|||
# ----- define these variables
|
||||
# CACHED_FILES = $(TOPDIR)/VERSION
|
||||
# CACHED_VARS = VERSION
|
||||
.PHONY: cache
|
||||
|
||||
CACHE_FILE_MK ?= .cache.mk
|
||||
|
||||
# if not checked against MAKECMDGOALS, a standard rule kicks in from rules.mk,
|
||||
# and $(CACHE_FILE_MK) is remade with the clean target
|
||||
ifeq ($(findstring clean,$(MAKECMDGOALS)),)
|
||||
all: $(CACHE_FILE_MK)
|
||||
all: cache
|
||||
ifneq ($(foreach g,all cache,$(findstring $(g),$(MAKECMDGOALS))),)
|
||||
cache: $(CACHE_FILE_MK)
|
||||
$(CACHE_FILE_MK): $(CACHED_FILES) $(MODDIR)/make/cache.mk
|
||||
ifeq ($(wildcard $(CACHE_FILE_MK)),)
|
||||
@echo $(foreach v,$(CACHED_VARS),$v := $(value $(v))EOL) | $(SED) 's/EOL */\n/g;' | $(GREP) . | tee $@.tmp
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue