This commit aims at improving speed by using better caching.
- Makefile, cache.mk: Split .cache.mk up
To allow caching of runtime path variables which are project-specific, split .cache.mk up in .cache-project.mk and .cache-projects.mk- ldlibpath.mk: Cache ldlibpath, exepath and pythonpath
Place the output of $(call proj_query ldlibpath), $(call proj_query, exepath) and $(call proj_query pythonpath) in JW_PKG_LD_LIBRARY_PATH, JW_PKG_EXE_PATH, and JW_PKG_PYTHON_PATH respectively, and cache the variables in make/.project-cache.mk.- cache.mk: Use = instead of :=
Recursively expanded variables are nearly as fast as := variables if the assigned value is a fixed string. And sometimes it's not, rightly so, because variables get assigned below, as with JW_PKG_XXX for instance.- cache.mk: Use $(TOPDIR) as variable values
Replace absolute references to project's topdir by $(TOPDIR) with sed. As soon as the project queries produce absolute paths, they will be transformed into relative paths which allow the code base to be moved to a different location and still remain functional without a rebuild.Signed-off-by: Jan Lindemann <jan@janware.com>
23 lines
558 B
Makefile
23 lines
558 B
Makefile
TOPDIR = ..
|
|
CACHED_FILES := defs.mk projects.mk platform.mk Makefile
|
|
|
|
include $(TOPDIR)/make/proj.mk
|
|
include $(JWBDIR)/make/make.mk
|
|
|
|
ifneq ($(MAKECMDGOALS),install-links)
|
|
ifneq ($(MAKECMDGOALS),do-install-links)
|
|
include $(JWBDIR)/make/dirs.mk
|
|
endif
|
|
endif
|
|
|
|
include $(JWBDIR)/make/dev-utils.mk
|
|
|
|
all: cache-projects
|
|
clean: clean-cache-projects
|
|
|
|
ifeq ($(TARGET),mingw)
|
|
install: $(INSTALL_MAKEDIR)/winres.rc.tmpl
|
|
endif
|
|
|
|
grep-vars:
|
|
@sed '/^ *[A-Z]/!d; s/^[ ]*//g; s/[=+?:].*//g; s/[ ]*//g' *.mk | sort -u
|