Pass --create-remote-user-repos to pgit.sh clone in case JANWARE_USER
is defined, restoring the original behaviour.
Signed-off-by: Jan Lindemann <jan@janware.com>
jw-pkg is related to, but strictly speaking not indispensible for building and
packaging software. So, in the attempt have a minimal jw-build, move jw-pkg to
jw-base, and fix all packages that use it.
Signed-off-by: Jan Lindemann <jan@janware.com>
Make list-files target ignore errors. This catches errors from
git ls-files | xargs realpath if git ls-files lists dead symbolic
links, as in my-project/blah/dev/fd -> ./proc/self/fd.
Implemented by passing -q (quiet) to realpath, not sure what else
this suppresses.
Signed-off-by: Jan Lindemann <jan@janware.com>
After initially cloning jw-build and including
projects-dir-minimal.mk, new targets are not considered, so run make
again.
Signed-off-by: Jan Lindemann <jan@janware.com>
Implement the functionality of create-pkg-config.sh in a Python
module CmdCreatePkgConfig.py. This allows to remove
create-pkg-config.sh and jw-build-functions.sh.
Note that the translation was done pretty literally to play it safe.
More code can and should be removed by taking advantage of the fact
that jw-projects.py knows more about the project than the shell
scripts.
Signed-off-by: Jan Lindemann <jan@janware.com>
Move nearly all of projects.py into src/python/jw/build/App.py. The
plan is to split the script into parts and import them.
Signed-off-by: Jan Lindemann <jan@janware.com>
The link to the projects dir toplevel Makefile is not created if a
jw-build directory already exists for some reason, fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
Re-add everthing needed for building and packaging ytools. This is a
big commit, 2002 lines of code. It mostly consists of C/C++ machinery,
plus some documentation-related stuff.
Signed-off-by: Jan Lindemann <jan@janware.com>
Re-add everything necessary for building and packaging jw-python.
ldlibpath.mk is not strictly necessary, but might be with other
Python packages backed by compiled C-code, so leave it in.
Signed-off-by: Jan Lindemann <jan@janware.com>
Re-add everything necessary for recursively building all repos in
a directory, e.g. as a build controlled by janware.com/Makefile or
any other installation.
This adds 489 lines of code which can (and should) be massively
reduced, notably removing code supporting CVS.
Signed-off-by: Jan Lindemann <jan@janware.com>
Re-add all files necessary to package jw-build itself, i.e.
sucessfully run make pkg-rebuild-reinstall. This adds 1892 lines of
code.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit removes everything not strictly necessary for running
"make clean all" inside jw-build.
packaging jw-devtest. This cuts the repo down from 24077 to 4725
lines of code.
The idea is to
1) Further remove bloat from the remaining bits
2) Re-add what's necessary to build and package other essential repos.
The decision should be based on whether or not jw-build can also be
useful in a non-janware context.
Signed-off-by: Jan Lindemann <jan@janware.com>
The projects toplevel Makefile is not maintained in CVS anylonger but
in Git, so don't update it from CVS any longer.
Signed-off-by: Jan Lindemann <jan@janware.com>
"Makefile" is used in dependency checks within projects-dir.mk. Since
it might be included from projects-dir-minimal.mk, which also works
with "GNUmakefile", make this fallback of a predefinable variable,
PROJECTS_MAKEFILE_NAME.
Signed-off-by: Jan Lindemann <jan@janware.com>
Adapt projects makefile to match the mechanism all proj.mk's are
supposed to find their JWBDIR. Namely make JWBDIR_NAME a
conditionally assigned variable to allow for some testing of
alternative jw-build trees.
Signed-off-by: Jan Lindemann <jan@janware.com>
In the attempt to move both jw-build and the janware toplevel
Makefile from CVS to Git, add two new makefile snippets to make/*.mk:
- projects-dir-minimal.mk
A new toplevel-Makefile for building all projects in one go. It
should be suitable to be downloaded from janware.com/Makefile and
then be used to bootstrap all repos hosted on janware.com, that a
user has access to, just like the current toplevel Makefile is.
It is as small as possible: Little code means few assumptions on
what the world outside of it looks like, notably jw-build. This
is desirable, because it lives outside of version control, albeit
for a short while, and as long as it does, there's no mechanism
in place to keep it current.
That said, on first use, it replaces itself with a symbolic link
into jw-build and is then version controlled with jw-build.
- projects-dir-include.mk
This is essentially the existing projects-dir.mk /
toplevel-Makefile, which it includes. It's meant as a place for
adaptations to the next-generation implementation. This might
prove handy to have while both implementations coexist during the
transition phase.
Signed-off-by: Jan Lindemann <jan@janware.com>
htdocs.mk's install relies on source code having its HTML contents installed in
a subdir called "htdocs". Make that choice a variable named
"HTML_STOPDIR_NAME".
Signed-off-by: Jan Lindemann <jan@janware.com>
Support the Makefile variables PY_INSTALL, PY_INSTALL_REG, PY_INSTALL_PYC, all
defaulting to true. They can be set to false to stop installation of whatever
file type is undesired in the target. A common use case for this are
__init__.cpython-313.pyc, provided by a package the installing package depends
on. The prerequisite package might already provide these files for common
directories.
Signed-off-by: Jan Lindemann <jan@janware.com>
$(GETTEXT_PROJECT_POT) is always generated if $(GETTEXT_INPUT_FILES) are newer
than it. Having this happen automatically is not useful, since it can break
manually edited and version controlled $(GETTEXT_PROJECT_POT).
Signed-off-by: Jan Lindemann <jan@janware.com>
It appears that inkscape, if invoked from the command line, fires up a splash
screen if it has enough time to do so. This leads to strange flickering during
the build process. Unset DISPLAY in the attempt to keep that from happening.
Signed-off-by: Jan Lindemann <jan@janware.com>
Currently, there's a $(GETTEXT_PROJECT_PO): $(GETTEXT_POT) rule, but since
updates to the workflow now considers, allows and mandates one or multiple
*.pot files as the authoritative source for translations, make this a pattern
rule rather than only valid for $(GETTEXT_POT).
Signed-off-by: Jan Lindemann <jan@janware.com>
GETTEXT_INPUT_EXTS takes a whitespace separated list of extensions which are
subsequently passed to find -name to locate source files which are meant to be
run through xgettext.
The first argument to find, translateme, is not really meant to exist, it's
just there to allow adding multiple extensions preceded by -o in a $(foreach)
loop.
Signed-off-by: Jan Lindemann <jan@janware.com>
Try to make the workflow a little more versatile. As of this commit,
.pot files are assumed to preexist, save $(GETTEXT_PROJECT_POT),
which can be generated from source, and should be committed, too.
Signed-off-by: Jan Lindemann <jan@janware.com>
A directory with gettext.mk in it, provided it has a locale name, makes the
parent directory to a working localedir, which can be used from within the
janware source tree, so add it with the all target and remove it with clean.
Signed-off-by: Jan Lindemann <jan@janware.com>