diff options
author | Robin Jarry <robin@jarry.cc> | 2023-03-03 00:26:05 +0100 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-03-03 21:42:50 +0100 |
commit | d5e47e300a42ed64c17e4b391b77234e22c9f915 (patch) | |
tree | 2d54528dbceafbe404c2784ce2978165fb971d44 | |
parent | b63c93563c622e70cda7006c1816dc6b59e75844 (diff) | |
download | aerc-d5e47e300a42ed64c17e4b391b77234e22c9f915.tar.gz |
mk: detect if notmuch headers & libs are available
Detect if notmuch is available by trying to compile a minimal go program
that uses the notmuch.h header and links to libnotmuch.so.
If that succeeds, set the default GOFLAGS value to -tags=notmuch.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Inwit <inwit@sindominio.net>
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | README.md | 19 | ||||
-rwxr-xr-x | contrib/check-notmuch.sh | 20 |
3 files changed, 39 insertions, 3 deletions
@@ -10,7 +10,8 @@ SHAREDIR?=$(PREFIX)/share/aerc LIBEXECDIR?=$(PREFIX)/libexec/aerc MANDIR?=$(PREFIX)/share/man GO?=go -GOFLAGS?= +default_goflags!=GO=$(GO) contrib/check-notmuch.sh 2>/dev/null && echo -tags=notmuch +GOFLAGS?=$(default_goflags) BUILD_OPTS?=-trimpath flags!=echo -- $(GOFLAGS) | base64 | tr -d '\n' # ignore environment variable @@ -77,9 +77,24 @@ Then compile aerc: aerc optionally supports notmuch. To enable it, you need to have a recent version of [notmuch](https://notmuchmail.org/#index7h2), including the header -files (notmuch.h). Then compile aerc with the necessary build tags: +files (notmuch.h). The `notmuch` build tag should be automatically added. - $ GOFLAGS=-tags=notmuch make + $ make + GOFLAGS have changed, recompiling + go build -trimpath -tags=notmuch -ldflags "-X ... + ^^^^^^^^^^^^^ + ... + +If it is not, you can force it before building: + + $ export GOFLAGS=-tags=notmuch + $ make + +If you have notmuch headers available but do not want to build notmuch support +in aerc, force GOFLAGS to an empty value: + + $ export GOFLAGS= + $ make To install aerc locally: diff --git a/contrib/check-notmuch.sh b/contrib/check-notmuch.sh new file mode 100755 index 00000000..6b5beb62 --- /dev/null +++ b/contrib/check-notmuch.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +set -e + +tmp=$(mktemp -d) +trap "rm -rf $tmp" EXIT + +cat > $tmp/src.go <<EOF +package main + +// #cgo LDFLAGS: -lnotmuch +// #include <notmuch.h> +import "C" + +func main() { + C.notmuch_status_to_string(C.NOTMUCH_STATUS_SUCCESS) +} +EOF + +${GO:-go} build -o $tmp/out $tmp/src.go |