7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
262be57741 |
|||
| 741a3b6db2 | |||
| f05e1ee0e3 | |||
| 92726d14a4 | |||
| b2d6e6f554 | |||
| 3dd55cf067 | |||
| 9e245c986e |
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
262be57741 |
cache.mk: Don't overwrite defined variables
Check with ifndef if a variable is defined before hard defining it in cache.mk. This gives more flexibility when overriding variables with local.mk. Signed-off-by: Jan Lindemann <jan@janware.com> |
|||
| 741a3b6db2 |
make: Install cache-projects.mk
.cache-projects.mk is not installed / packaged, which makes builds against an installed jw-pkg considerably slower. Change that, at the risk of making the installed jw-pkg-devel less versatile. This commit installs a cache file cache-projects.mk, renamed from .cache-projects.mk, because there's no justification for hiding an installed makefile. At least I can't think of one. Signed-off-by: Jan Lindemann <jan@janware.com> |
|||
| f05e1ee0e3 |
make/[Makefile|*.mk): Improve variable caching
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> |
|||
| 92726d14a4 |
cache.mk: Replace $(RM) by rm
$(RM) is a cached variable, so it's not a good idea to use it in cache.mk to get to a clean state Signed-off-by: Jan Lindemann <jan@janware.com> |
|||
| b2d6e6f554 |
Everywhere: Rename MODDIR -> JWBDIR
Rename the omnipresent MODDIR variable to JWBDIR, since that's more to the point. Signed-off-by: Jan Lindemann <jan@janware.com> |
|||
| 3dd55cf067 |
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> |
|||
| 9e245c986e |
make: Further improve build time
This commit sees several improvements to the build performance: - Introduce cache.mk, which creates makefiles caching often used variables, per tree and per project. - Define more variables with := enclosed in condistions, instead of defining them with ?=, because the RHS of ?= is expanded deferredly. - Add more definitions for executables. - Move some more specialized definitions out into specialized makefiles, notably htdocs.mk and tmpl.mk Signed-off-by: Jan Lindemann <jan@janware.com> |