Define Q ?= @, and replace @<command> in recipes by $(Q)<command>.
Meant to be overridden from the environment for debugging as in
Q= make
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
Change $(check_scm_sync) from "make git pull" to "make
git-pull-maintainer", which most notably should delegate devops
builds to the maintainer defined in project.conf.
Signed-off-by: Jan Lindemann <jan@janware.com>
PACKAGE_VCS_FILES defaults to false. Defining it to true before
including rpmdist.mk includes the version-control metadata files in
the source packages.
Signed-off-by: Jan Lindemann <jan@janware.com>
echo-requires doesn\'t work because all non-pkg-% targets are disabled
in rpmdist.mk, so rename it to pkg-requires. Also add support for build
deps.
Signed-off-by: Jan Lindemann <jan@janware.com>
make rpm-build sometimes fails because RPM_VERSION is taken from .cache.mk. Not
sure if this commit always resolves that entirely, but it mitigates the
problem.
Signed-off-by: Jan Lindemann <jan@janware.com>
wd-upload doesn\'t work at all, because it clashed with rpmdist.mk defining
stuff used by the upload-*.mk files. The RPM-side of things is left untested.
Signed-off-by: Jan Lindemann <jan@janware.com>
Remove /inst-source from RPM installation sources, following
that same action within all repositories and mirrors
Signed-off-by: Jan Lindemann <jan@janware.com>
Generating the $(TOPDIR)/HASH file produced a warning for every
package file containing a whitespace character. Hopefully, this
build fixes the problem, by working on zero-delimited lists
of file names
Signed-off-by: Jan Lindemann <jan@janware.com>
This target runs ssh -l root $(TARGET_HOST), with TARGET_HOST typically defined in
$(MODDIR)/make/local.mk. Seems a bit out-of-place, everything, but anyway.
Signed-off-by: Jan Lindemann <jan@janware.com>
Since the packaging machinery is pretty complicated, the information about
conflicting packages had to be passed through many APIs. The last commit
contained a patch which is left in the tree to have it in one file, it actually
is identical to this commit's diff, though. Git would save me that quirk.
Signed-off-by: Jan Lindemann <jan@janware.com>
Introduce --dont-expand-version-macros into projects.py, and use it
to postpone version expansion into pkg.sh.
Signed-off-by: Jan Lindemann <jan@janware.com>
Add --dont-strip-revision option to projects.py pkg-requires
Sadly, Debian dpkg doesn't install a package with dependency
somepkg = 1.2.3, if somepkg-1.2.3-10 is installed. To work
around this, VERSION in project.conf files is now always
interpreted as VERSION-REVISION
Signed-off-by: Jan Lindemann <jan@janware.com>
Move the necessary definitions into rpmdist.mk and disable the rest
in upload-defs-rpm.mk. Can be removed as soon as the stuff is tested
to work well.
Signed-off-by: Jan Lindemann <jan@janware.com>