aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile227
1 files changed, 7 insertions, 220 deletions
diff --git a/Makefile b/Makefile
index acd8a728..ebbfb428 100644
--- a/Makefile
+++ b/Makefile
@@ -1,220 +1,7 @@
-.POSIX:
-.SUFFIXES:
-.SUFFIXES: .1 .5 .7 .1.scd .5.scd .7.scd
-
-VERSION?=`git describe --long --abbrev=12 --tags --dirty 2>/dev/null || echo 0.15.2`
-VPATH=doc
-PREFIX?=/usr/local
-BINDIR?=$(PREFIX)/bin
-SHAREDIR?=$(PREFIX)/share/aerc
-LIBEXECDIR?=$(PREFIX)/libexec/aerc
-MANDIR?=$(PREFIX)/share/man
-GO?=go
-GOFLAGS?=`contrib/goflags.sh`
-BUILD_OPTS?=-trimpath
-# ignore environment variable
-GO_LDFLAGS:=
-GO_LDFLAGS+=-X main.Version=$(VERSION)
-GO_LDFLAGS+=-X main.Flags=$$(echo -- $(GOFLAGS) | base64 | tr -d '\r\n')
-GO_LDFLAGS+=-X git.sr.ht/~rjarry/aerc/config.shareDir=$(SHAREDIR)
-GO_LDFLAGS+=-X git.sr.ht/~rjarry/aerc/config.libexecDir=$(LIBEXECDIR)
-GO_LDFLAGS+=$(GO_EXTRA_LDFLAGS)
-
-GOSRC!=find * -type f -name '*.go'
-GOSRC+=go.mod go.sum
-
-DOCS := \
- aerc.1 \
- aerc-search.1 \
- aerc-accounts.5 \
- aerc-binds.5 \
- aerc-config.5 \
- aerc-imap.5 \
- aerc-jmap.5 \
- aerc-maildir.5 \
- aerc-sendmail.5 \
- aerc-notmuch.5 \
- aerc-smtp.5 \
- aerc-tutorial.7 \
- aerc-templates.7 \
- aerc-stylesets.7 \
- carddav-query.1
-
-all: aerc wrap colorize $(DOCS)
-
-aerc: $(GOSRC)
- $(GO) build $(BUILD_OPTS) $(GOFLAGS) -ldflags "$(GO_LDFLAGS)" -o aerc
-
-CC?=cc
-CFLAGS?=-O2 -g
-
-wrap: filters/wrap.c
- $(CC) $(CFLAGS) $(LDFLAGS) -o wrap filters/wrap.c
-
-colorize: filters/colorize.c
- $(CC) $(CFLAGS) $(LDFLAGS) -o colorize filters/colorize.c
-
-.PHONY: dev
-dev:
- $(MAKE) aerc BUILD_OPTS="-trimpath -race"
- GORACE="log_path=race.log strip_path_prefix=git.sr.ht/~rjarry/aerc/" ./aerc
-
-gofumpt_tag = v0.5.0
-
-.PHONY: fmt
-fmt:
- $(GO) run mvdan.cc/gofumpt@$(gofumpt_tag) -w .
-
-linters.so: contrib/linters.go
- $(GO) build -buildmode=plugin -o linters.so contrib/linters.go
-
-.PHONY: lint
-lint: linters.so
- @contrib/check-whitespace `git ls-files ':!:filters/vectors'` && \
- echo white space ok.
- @$(GO) run mvdan.cc/gofumpt@$(gofumpt_tag) -d . | grep ^ \
- && echo The above files need to be formatted, please run make fmt && exit 1 \
- || echo all files formatted.
- $(GO) run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.2 run \
- $$(echo $(GOFLAGS) | sed s/-tags=/--build-tags=/)
-
-.PHONY: vulncheck
-vulncheck:
- $(GO) run golang.org/x/vuln/cmd/govulncheck@latest ./...
-
-.PHONY: tests
-tests: wrap colorize
- $(GO) test $(GOFLAGS) ./...
- filters/test.sh
-
-.PHONY: debug
-debug: aerc.debug
- @echo 'Run `./aerc.debug` and use this command in another terminal to attach a debugger:'
- @echo ' dlv attach $$(pidof aerc.debug)'
-
-aerc.debug: $(GOSRC)
- $(GO) build $(GOFLAGS) -gcflags=*=-N -gcflags=*=-l -ldflags="$(GO_LDFLAGS)" -o aerc.debug
-
-.1.scd.1:
- scdoc < $< > $@
-
-.5.scd.5:
- scdoc < $< > $@
-
-.7.scd.7:
- scdoc < $< > $@
-
-doc: $(DOCS)
-
-# Exists in GNUMake but not in NetBSD make and others.
-RM?=rm -f
-
-clean:
- $(RM) $(DOCS) aerc wrap colorize
-
-install: $(DOCS) aerc wrap colorize
- @# `install -D` is not supported on all platforms (macos install(1)
- @# dates back to the middle ages and does not have this flag).
- @# The folders must be created manually first.
- mkdir -m755 -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1 $(DESTDIR)$(MANDIR)/man5 $(DESTDIR)$(MANDIR)/man7 \
- $(DESTDIR)$(SHAREDIR)/templates $(DESTDIR)$(SHAREDIR)/stylesets \
- $(DESTDIR)$(PREFIX)/share/applications $(DESTDIR)$(LIBEXECDIR)/filters
- install -m755 aerc $(DESTDIR)$(BINDIR)/aerc
- install -m755 contrib/carddav-query $(DESTDIR)$(BINDIR)/carddav-query
- install -m644 aerc.1 $(DESTDIR)$(MANDIR)/man1/aerc.1
- install -m644 carddav-query.1 $(DESTDIR)$(MANDIR)/man1/carddav-query.1
- install -m644 aerc-search.1 $(DESTDIR)$(MANDIR)/man1/aerc-search.1
- install -m644 aerc-accounts.5 $(DESTDIR)$(MANDIR)/man5/aerc-accounts.5
- install -m644 aerc-binds.5 $(DESTDIR)$(MANDIR)/man5/aerc-binds.5
- install -m644 aerc-config.5 $(DESTDIR)$(MANDIR)/man5/aerc-config.5
- install -m644 aerc-imap.5 $(DESTDIR)$(MANDIR)/man5/aerc-imap.5
- install -m644 aerc-jmap.5 $(DESTDIR)$(MANDIR)/man5/aerc-jmap.5
- install -m644 aerc-maildir.5 $(DESTDIR)$(MANDIR)/man5/aerc-maildir.5
- install -m644 aerc-sendmail.5 $(DESTDIR)$(MANDIR)/man5/aerc-sendmail.5
- install -m644 aerc-notmuch.5 $(DESTDIR)$(MANDIR)/man5/aerc-notmuch.5
- install -m644 aerc-smtp.5 $(DESTDIR)$(MANDIR)/man5/aerc-smtp.5
- install -m644 aerc-tutorial.7 $(DESTDIR)$(MANDIR)/man7/aerc-tutorial.7
- install -m644 aerc-templates.7 $(DESTDIR)$(MANDIR)/man7/aerc-templates.7
- install -m644 aerc-stylesets.7 $(DESTDIR)$(MANDIR)/man7/aerc-stylesets.7
- install -m644 config/accounts.conf $(DESTDIR)$(SHAREDIR)/accounts.conf
- install -m644 config/aerc.conf $(DESTDIR)$(SHAREDIR)/aerc.conf
- install -m644 config/binds.conf $(DESTDIR)$(SHAREDIR)/binds.conf
- install -m755 filters/calendar $(DESTDIR)$(LIBEXECDIR)/filters/calendar
- install -m755 filters/hldiff $(DESTDIR)$(LIBEXECDIR)/filters/hldiff
- install -m755 filters/html $(DESTDIR)$(LIBEXECDIR)/filters/html
- install -m755 filters/html-unsafe $(DESTDIR)$(LIBEXECDIR)/filters/html-unsafe
- install -m755 filters/plaintext $(DESTDIR)$(LIBEXECDIR)/filters/plaintext
- install -m755 filters/show-ics-details.py $(DESTDIR)$(LIBEXECDIR)/filters/show-ics-details.py
- install -m755 colorize $(DESTDIR)$(LIBEXECDIR)/filters/colorize
- install -m755 wrap $(DESTDIR)$(LIBEXECDIR)/filters/wrap
- install -m644 templates/new_message $(DESTDIR)$(SHAREDIR)/templates/new_message
- install -m644 templates/quoted_reply $(DESTDIR)$(SHAREDIR)/templates/quoted_reply
- install -m644 templates/forward_as_body $(DESTDIR)$(SHAREDIR)/templates/forward_as_body
- install -m644 stylesets/default $(DESTDIR)$(SHAREDIR)/stylesets/default
- install -m644 stylesets/dracula $(DESTDIR)$(SHAREDIR)/stylesets/dracula
- install -m644 stylesets/nord $(DESTDIR)$(SHAREDIR)/stylesets/nord
- install -m644 stylesets/pink $(DESTDIR)$(SHAREDIR)/stylesets/pink
- install -m644 stylesets/blue $(DESTDIR)$(SHAREDIR)/stylesets/blue
- install -m644 stylesets/solarized $(DESTDIR)$(SHAREDIR)/stylesets/solarized
- install -m644 contrib/aerc.desktop $(DESTDIR)$(PREFIX)/share/applications/aerc.desktop
-
-.PHONY: checkinstall
-checkinstall:
- $(DESTDIR)$(BINDIR)/aerc -v
- test -e $(DESTDIR)$(MANDIR)/man1/aerc.1
- test -e $(DESTDIR)$(MANDIR)/man5/aerc-accounts.5
- test -e $(DESTDIR)$(MANDIR)/man5/aerc-binds.5
- test -e $(DESTDIR)$(MANDIR)/man5/aerc-config.5
- test -e $(DESTDIR)$(MANDIR)/man5/aerc-imap.5
- test -e $(DESTDIR)$(MANDIR)/man5/aerc-jmap.5
- test -e $(DESTDIR)$(MANDIR)/man5/aerc-notmuch.5
- test -e $(DESTDIR)$(MANDIR)/man5/aerc-sendmail.5
- test -e $(DESTDIR)$(MANDIR)/man5/aerc-smtp.5
- test -e $(DESTDIR)$(MANDIR)/man7/aerc-tutorial.7
- test -e $(DESTDIR)$(MANDIR)/man7/aerc-templates.7
-
-RMDIR_IF_EMPTY:=sh -c '! [ -d $$0 ] || ls -1qA $$0 | grep -q . || rmdir $$0'
-
-uninstall:
- $(RM) $(DESTDIR)$(BINDIR)/aerc
- $(RM) $(DESTDIR)$(BINDIR)/carddav-query
- $(RM) $(DESTDIR)$(MANDIR)/man1/aerc.1
- $(RM) $(DESTDIR)$(MANDIR)/man1/aerc-search.1
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-accounts.5
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-binds.5
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-config.5
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-imap.5
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-jmap.5
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-maildir.5
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-sendmail.5
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-notmuch.5
- $(RM) $(DESTDIR)$(MANDIR)/man5/aerc-smtp.5
- $(RM) $(DESTDIR)$(MANDIR)/man7/aerc-tutorial.7
- $(RM) $(DESTDIR)$(MANDIR)/man7/aerc-templates.7
- $(RM) $(DESTDIR)$(MANDIR)/man7/aerc-stylesets.7
- $(RM) -r $(DESTDIR)$(SHAREDIR)
- $(RM) -r $(DESTDIR)$(LIBEXECDIR)
- ${RMDIR_IF_EMPTY} $(DESTDIR)$(BINDIR)
- $(RMDIR_IF_EMPTY) $(DESTDIR)$(MANDIR)/man1
- $(RMDIR_IF_EMPTY) $(DESTDIR)$(MANDIR)/man5
- $(RMDIR_IF_EMPTY) $(DESTDIR)$(MANDIR)/man7
- $(RMDIR_IF_EMPTY) $(DESTDIR)$(MANDIR)
- $(RM) $(DESTDIR)$(PREFIX)/share/applications/aerc.desktop
- $(RMDIR_IF_EMPTY) $(DESTDIR)$(PREFIX)/share/applications
-
-.PHONY: gitconfig
-gitconfig:
- git config format.subjectPrefix "PATCH aerc"
- git config sendemail.to "~rjarry/aerc-devel@lists.sr.ht"
- @mkdir -p .git/hooks
- @rm -f .git/hooks/sendemail-validate*
- @if grep -q GIT_SENDEMAIL_FILE_COUNTER `git --exec-path`/git-send-email 2>/dev/null; then \
- ln -svf ../../contrib/sendemail-validate .git/hooks/sendemail-validate && \
- git config sendemail.validate true; \
- fi
-
-.PHONY: check-patches
-check-patches:
- @contrib/check-patches origin/master..
-
-.PHONY: all doc clean install uninstall debug
+# This file is only left here for explicit error about GNU make requirement
+# when building with other make flavours.
+#
+# Do not edit this file. Edit GNUmakefile instead.
+.PHONY: all
+all .DEFAULT:
+ @echo "Please build and install using GNU make (gmake)"; exit 1