Reordered some variables in defs.mk and defs-cpp.mk for clarity. Most notably
FULL_NAME was moved back into defs.mk, which amounts to a bugfix.
Signed-off-by: Jan Lindemann <jan@janware.com>
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 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>
C++ definitions are numerous, and they shouldn't pollute variable space and
performance outside of directories containing C++ files. This commit pushes
them into a defs-cpp.mk file.
Signed-off-by: Jan Lindemann <jan@janware.com>
Many external commands are called unnecessarily often, because either there's a
GNU Make internal alternative, or because they are invoked from within a
recursively defined variable. This patch adresses that and lessens make
invocation time per directory by factor 3.
Signed-off-by: Jan Lindemann <jan@janware.com>
proj_query based commands run projects.py, which needs $(TOPDIR), which in turn
is undefined, notably for standalone-exe.mk. This commit avoids related
warnings.
Signed-off-by: Jan Lindemann <jan@janware.com>
Shared libraries were detected as executables, which is true in a way, but
still the log-install target shouldn't wrap them into scripts.
Signed-off-by: Jan Lindemann <jan@janware.com>
Order is now: $(LOCAL_CFLAGS) $(PROJECT_CFLAGS) $(COMPLILER_CFLAGS)
which resulted in header files specified in $(LOCAL_CFLAGS) found
after those of $(PROJECT_CFLAGS).
Still not optimal, as this way other general flags, e.g. optimization
flags, override more specialized ones. Maybe use INCLUDES instead.
Signed-off-by: Jan Lindemann <jan@janware.com>
The attempt to have local include directory with HDRDIR_SCOPE_SUFFIX
pointing to the working directory failed the last time around. This
commit tries to fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
Commit 6fc4125 introduced broken installation paths if PROJECT was
auto-detected. It included the version.
Also include *.ini into LOCAL_CFG by default.
Signed-off-by: Jan Lindemann <jan@janware.com>
If ORDERED_SUBDIRS is set, SUBDIRS should by default start with
$(ORDERED_SUBDIRS), and filled up with what $(FIND_SUBDIRS) turns up.
Signed-off-by: Jan Lindemann <jan@janware.com>
The append() shell function was unable to cope with special
characters, notably with () in RPM provides libnnz12.so()(64bit),
this commit fixes that. And introduces some (disabled) debug code
into projects.py.
Signed-off-by: Jan Lindemann <jan@janware.com>
The environment variable OSTYPE contains different values
on Linux: Linux on OpenSUSE and linux-gnu on RHEL / CentOS
Signed-off-by: Jan Lindemann <jan@janware.com>
jw-build can handle its own builds and releases, but fixing that can
be nicer if the development and the test directory are seperate
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>
Ditch the old and mostly dysfunctional contents of srcdist.mk and refill it
with rules to generate a source code tarball containing version control meta
files.
Signed-off-by: Jan Lindemann <jan@janware.com>