Commit graph

2,061 commits

Author SHA1 Message Date
82eb80979d bin, make, scripts: Re-add files necessary for packaging jw-build
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>
2025-11-14 11:22:50 +01:00
bc883deed4 Everywhere: Remove everything non-essential for "make clean all"
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>
2025-11-14 15:02:56 +01:00
cb714d83ad py-devs.mk: Don't ?= PYTHONPATH
For performance's sake, don't ?= define PYTHONPATH, but := it, like
so:

  ifeq ($(origin PYTHONPATH),undefined)
    PYTHONPATH := $(call proj_query, pythonpath $(PROJECT) $(PY_PREREQ_RUN))
  endif

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-13 15:20:54 +01:00
cea804eac4 projects-dir.mk: Remove Makefile from CVS/Entries
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>
2025-11-11 16:58:22 +01:00
c9ddeef8b4 projects-dir-minimal.mk: Don't clone jw-dev branch
Use the default branch to clone projects-dir-minimal.mk during
initialiazation of the build tree.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-07 12:27:16 +01:00
9147a78f2e projects-dir.mk: Don't hardcode Makefile name
"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>
2025-11-06 16:51:10 +01:00
51c1a1508d projects-dir.mk: Support JWBDIR_NAME and JWBDIR_SEARCH_PATH
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>
2025-11-05 12:49:29 +01:00
df4a295d79 Add git-projects-dir-[include|minimal].mk
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>
2025-11-03 22:28:08 +01:00
ec856711d2 conf.mk: Fix: Packages own /usr/lib/tmpfiles.d
/usr/lib/tmpfiles.d is provided by the OS, don't include it in the package.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-06 07:24:32 +00:00
64bc96624e htdocs.mk: Support HTML_STOPDIR_NAME
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>
2025-09-21 11:43:45 +00:00
336d1a5133 make: Add definitions and rules for *.tmpfiles
Add support for *.tmpfiles. xxx.tmpfiles gets installed by conf.mk as
/usr/lib/tmpfiles.d/xxx.conf.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-09-14 13:29:04 +00:00
a907a5640f py-defs.mk: Support PY_INSTALL[_XXX]
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>
2025-07-16 16:21:35 +00:00
3d4ecbc508 gettext.mk: Remove $(GETTEXT_PROJECT_POT): $(GETTEXT_INPUT_FILES) dependency
$(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>
2025-06-04 02:23:24 +00:00
3aff3b4559 defs.mk: Add target echo-targets
echo-targets prints a list of targets provided by the invoked Makefile.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-05-30 07:19:55 +00:00
bf94282ab5 svg.mk: Unset DISPLAY in inkscape invocation
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>
2025-05-11 10:58:31 +00:00
ccc8725dff gettext.mk: Use pattern rule %.po: %pot
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>
2025-02-22 12:40:45 +00:00
60ef137bc3 projects.mk, py-defs.mk, py-version.mk: Add py-version.mk
This commit adds py-version.mk, eliminating redundancy between projects.mk and
py-defs.mk in setting up the Python version early.
2025-02-22 09:04:17 +00:00
e53032ab9c gettext.mk: Support GETTEXT_INPUT_EXTS
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>
2025-02-22 08:41:13 +00:00
e20cb706a5 project.conf: Change OS dependency python -> python3
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-02-21 06:09:26 +00:00
39a558d3a1 gettext.mk: Try to re-organize workflow
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>
2025-02-17 17:13:09 +00:00
a64cd918dd py-run.mk: Add dummy test target
Directories with py-run.mk error out on the test target, so add
a no-op test target.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-02-17 17:06:29 +00:00
a0b8deec21 htdocs.mk: Lint php files via prettier if it's installed
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-02-17 17:06:28 +00:00
77b2c49e28 conf.mk: Add dummy test target
Directories with conf.mk error out on the test target, so add
a no-op test target.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-02-17 17:06:26 +00:00
57e63b2582 gettext.mk: Create a LC_MESSAGES link to .
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>
2025-01-30 09:24:43 +00:00
07d9eeea42 py-mod.mk: Support PY_INIT_FILTER
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-27 15:00:40 +00:00
eb22977054 htdocs.mk: Run linters prettier and php -l with all target
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-16 08:17:25 +00:00
b181f76343 py-run.mk: Fix argument list (use $@ instead of $*)
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-15 19:32:23 +00:00
de893a0fe5 py-mod.mk: Fix bogus # export match in commented line
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-22 14:06:09 +00:00
90ce1b5196 py-mod.mk: Fix bogus # export match on class {variable}
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-18 17:14:23 +00:00
6fb6f1608f subdirs.mk: Don't use undefined $(FIND)
subdirs.mk uses $(FIND), which is defined in defs.mk, include that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-11 10:12:35 +00:00
49f4b42d0c doxygen.mk: Fix broken doxygen HTML generation invocation
doxygen needs to be called as

  doxygen -w html header-file footer-file stylesheet config-file

The invocation contains the logo, though, which has no business there.
Fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-11 10:12:34 +00:00
349f1d2602 Makefile: Add target text-files-list-0
text-files-list-0 returns a zero-delimited list of text files for further
processing, which allows to correctly handle spaces in file names

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-09 08:31:32 +00:00
c575537456 defs.mk / rules.mk: Add support for PACKAGE_INSTALL_DIR
PACKAGE_INSTALL_DIR, true by default, can be used to turn off
target dir creation from a directory to avoid duplication from
other packages

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-06 14:35:59 +00:00
86ec95f6dc defs.mk / rules.mk: Add .target file support to LOCAL_SYSTEMD
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 12:28:15 +00:00
4e405a5d1a py-mod.mk: Add support to # extract variables
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 12:27:39 +00:00
e446df30e5 make/rpmdist.mk: Add target echo-pkg
Add echo-pkg target to debug packaging related variables.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 12:26:34 +00:00
f9193c989d py-run.mk: Add target run.sh
Allow creation of a run.sh script, to be used from outside the make context.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 12:26:33 +00:00
2989cc87c8 Makefile: JWB_SCRIPT_DIR: Add support for /opt/jw-build/bin
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-07-16 15:21:15 +00:00
90aeeaab10 rpmdist.mk: Pass absolute path to sudo rpm -U
The idea is to make passwordless RPM package installation via sudo a little
safer.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-07-16 11:02:54 +00:00
a1bf4d9562 make: Remove variables referencing other janware-projects
jw-build is meant as a generic set of tools for building other projects, so
references to projects being built by jw-build introduce a circular dependency.
Remove those references from defs.mk and rules.mk.

Variables removed by this commit:

	BTOOLS_DIR
	FEEDFSD_DIR
	FEEDFS_DIR
	FEEDFS_GUI_DIR
	FEEDFS_OBJECTS_DIR
	FEEDFS_UTILS_DIR
	FEEDFS_WT_DIR
	JUX_SHARED_DIR
	SITE_DIR
	VALDI_DIR
	XCHANGE_DIR

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-07-16 10:41:20 +00:00
a343cf7806 pkg-install-%-deps: Protect projects from shell with quotes
Project names passed to the package manager can contain characters
not well digested by the shell. Don't let it.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-30 17:01:18 +00:00
19bc4037c0 Makefile: Make list-files consider build dependencies, too
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-25 17:35:35 +00:00
9a5bc11cd0 py-defs.mk: Fix: mypy finds modules unter multiple paths
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-04 08:56:19 +00:00
391a735972 swig.mk: Follow changes swig 4.0 -> 4.2
- There's no -php8 option in swig, so stay with -php7, which
    supports "8 and above" according to the documentation

  - No <module>.php stub is generated anylonger, so don't try to
    install it

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-04-30 08:00:37 +00:00
39d3a9e888 decompress.mk, defs-cpp.mk: Add make/decompress.mk
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-04-21 11:05:55 +00:00
2187d1b089 topdir.mk: Fix missing JANWARE_USER for git.janware.com login
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-01-12 14:36:38 +00:00
40ac901eb6 py-run.mk: Add test.py to EXE search path
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-01-12 14:35:39 +00:00
015072ca19 upload-defs.mk: Add support for UPLOAD_PROTOCOL
UPLOAD_PROTOCOL is a variable which can be defined by the including Makefile to
tweak the protocol an upload is done over

Signed-off-by: Jan Lindemann <jan@janware.com>
2023-12-18 13:00:43 +00:00
ae1a4dd242 svg.mk: Inkscape --export-pdf is not supported anylonger
inkscape --export-pdf is not supported anylonger, replace that with --export-filename.

Signed-off-by: Jan Lindemann <jan@janware.com>
2023-12-18 13:00:42 +00:00
069b82b3cd defs.mk: Beautify INSTALLED_RSYSLOG variable
INSTALLED_RSYSLOG contained duplicates, fix that

Signed-off-by: Jan Lindemann <jan@janware.com>
2023-12-18 13:00:40 +00:00