The clean target now doesn't remove meta files which enforce a new pull if
absent. distclean is the new clean.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit makes it possible to successfully run "make all" against ytools'
again, with TARGET_TUPLE set to i686-ms-w64-mingw. Lots of minor and major
tweaks here and there.
The biggest diff is a move of the architecture-related definitions into
platform.mk. The are needed pretty early on, so that seems reasonable.
Making this work again is part of the larger effort to support cross
buildchains in a more concise way, i.e. without so many if ($(TARGET),mingw))
all over the place. TARGET's relevance should dwindle, until it's finally taken
over by the TARGET_XXX variables extracted from TARGET_TUPLE or TARGET_TRIPLET.
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
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 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>
Add support for GNUmakefile, where originally only Makefile was supported.
Not done everywhere, as some of the code involving makefiles is dead
anyway.
Signed-off-by: Jan Lindemann <jan@janware.com>