aboutsummaryrefslogtreecommitdiffstats
path: root/GNUmakefile
Commit message (Collapse)AuthorAgeFilesLines
* lint,validate: fix for openbsdRobin Jarry2023-12-141-5/+4
| | | | | | | | | | | | | | - Remove GNU specific stuff (ln -v, mktemp --tempdir, grep --color) - Remove GCC specific flags in sendemail-validate (-Warith-conversion) - Add -std=c99 and -Wpedantic and fix the reported warnings. - Explicitly call gmake everywhere. - Run our custom analyzer standalone. Golangci lint plugins are not supported on OpenBSD. Indirect dependency to golang.org/x/mod is required somehow... Reported-by: Johannes Thyssen Tishman <johannes@thyssentishman.com> Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Johannes Thyssen Tishman <johannes@thyssentishman.com>
* release.sh: update version in GNUMakefileRobin Jarry2023-10-111-1/+1
| | | | | | | | | | | | The version is no longer present in Makefile which has been preserved for explicit error reporting with non-GNU make versions. Update the version in GNUMakefile instead. Fixes: d725defa07b5 ("mk: deprecate BSD make in favor of GNU make") Reported-by: Anton Mosich <anton@mosich.at> Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* mk: remove trimpath flag from debug buildMoritz Poldrack2023-10-111-1/+1
| | | | | | | | | | When inspecting core dumps, it is usually advantageous to get the context of the code. If -trimpath is passed, delve can not find the file associated with a certain PC, and only prints: Command failed: open git.sr.ht/~rjarry/aerc/app/aerc.go: no such file or directory Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* contrib: add script to check man pages consistencyRobin Jarry2023-09-191-0/+1
| | | | | | | | | | | | | | | Add a new shell script to check that all commands are documented in man pages and that the man pages do not contain non-existent commands. Also check that all explicitly parsed options with ini reflection are documented as well. It is not possible to check if the man pages do reference non-existent options since some of the options are parsed lazily in workers and some of them are also declared with placeholders (e.g. *column-<name>*). Run the script in the lint target. Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
* mk: evaluate variables with $(shell)Robin Jarry2023-08-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we use GNU make, instead of deferred evaluation when running the target commands, use $(shell) to evaluate commands when parsing the makefile and print prettier build commands. Before: go build -trimpath `contrib/goflags.sh` -ldflags \ "-X main.Version=`git describe --long --abbrev=12 --tags --dirty 2>/dev/null || echo 0.15.2` \ -X main.Flags=$(echo -- `contrib/goflags.sh` | base64 | tr -d '\r\n') \ -X git.sr.ht/~rjarry/aerc/config.shareDir=/usr/local/share/aerc \ -X git.sr.ht/~rjarry/aerc/config.libexecDir=/usr/local/libexec/aerc" \ -o aerc After: go build -trimpath -tags=notmuch -ldflags \ "-X main.Version=0.15.2-174-gf25e038dacd7-dirty \ -X main.Flags=LS0gLXRhZ3M9bm90bXVjaAo= \ -X git.sr.ht/~rjarry/aerc/config.shareDir=/usr/local/share/aerc \ -X git.sr.ht/~rjarry/aerc/config.libexecDir=/usr/local/libexec/aerc" \ -o aerc Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* mk: fix typosRobin Jarry2023-08-241-2/+2
| | | | | | | | Nothing serious but let's cleanup our mess. Fixes: d725defa07b5 ("mk: deprecate BSD make in favor of GNU make") Signed-off-by: Robin Jarry <robin@jarry.cc> Reviewed-by: Karel Balej <balejk@matfyz.cz>
* contributing: add guidelines for including changelogsRobin Jarry2023-08-241-0/+3
| | | | | | | | | | Recently there were several contributors that included their changelog in the commit message and/or didn't include a changelog at all. Add comprehensive guidelines to help people figuring the email-based review workflow. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* mk: deprecate BSD make in favor of GNU makeRobin Jarry2023-08-111-0/+199
Being portable between BSD and GNU make is a nightmare. It restricts features to a very minimal surface and in turn requires a lot of code duplication and manual updating of file lists. Worse, aerc's makefile relies on the shell assignment operator (!=) which has been supported by BSD make 2.2 since 1997 but GNU make 4.0 since 2013. Unfortunately, MacOS runs GNU make 3.8 which does not have that feature. Reducing the feature set even more. Stop that nonsense and remove BSD make compatibility. The majority of aerc's users either run a GNU Linux distribution or MacOS. For those who run any *BSD variant, it is easy for them to install GNU make (gmake) if they don't have it installed already. Use GNU make constructs to generate build and install rules dynamically based on source files discovery. GNU make will use "GNUmakefile" in priority over "Makefile" if possible. Leverage this to display an explicit message when other flavours of make are used. Leave a "Makefile" with a .DEFAULT: target and rename the actual file to "GNUmakefile". Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>