diff options
author | Guilhem Moulin <guilhem@fripost.org> | 2020-07-01 22:41:28 +0200 |
---|---|---|
committer | Guilhem Moulin <guilhem@fripost.org> | 2020-07-02 00:14:39 +0200 |
commit | a1c089b997ebf705a9023b4f0f97327e5bd2814e (patch) | |
tree | 5bbc5a441626b26bbebd61ecb220714f99f92bb5 /Makefile | |
parent | bb7790c7e6e4a2ab4f1658222c19978f6601b35b (diff) |
Makefile: Major refactoring, add install and uninstall targets.
Honor BUILD_DOCDIR and DESTDIR variables.
Also, remove the `use lib` statement from our executables.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 52 |
1 files changed, 37 insertions, 15 deletions
@@ -1,24 +1,25 @@ +DESTDIR ?= /usr/local +BUILD_DOCDIR ?= ./doc +CSS ?= /usr/share/javascript/bootstrap4/css/bootstrap.css +HTML_TEMPLATE ?= ./doc/template.html + +HTML_FILES = $(addprefix $(BUILD_DOCDIR)/,$(patsubst ./doc/%.md,%.html,$(wildcard ./doc/*.md))) +MANUAL_FILES = $(addprefix $(BUILD_DOCDIR)/,$(patsubst ./doc/%.md,%,$(wildcard ./doc/*.[1-9].md))) + all: manual -MANUALS = $(patsubst %.md,%,$(wildcard ./doc/*.[1-9].md)) -manual: $(MANUALS) +manual: $(MANUAL_FILES) +html: $(HTML_FILES) # upper case the headers and remove the links -$(MANUALS): %: %.md +$(MANUAL_FILES): $(BUILD_DOCDIR)/%: ./doc/%.md pandoc -f markdown -t json -- "$<" | ./pandoc2man.jq | pandoc -s -f json -t man+smart -o "$@" test: @./tests/run-all -HTML_ROOTDIR ?= ./doc -CSS ?= /usr/share/javascript/bootstrap/css/bootstrap.min.css -HTML_TEMPLATE ?= ./doc/template.html - -HTML_FILES = $(addprefix $(HTML_ROOTDIR)/,$(patsubst ./doc/%.md,%.html,$(wildcard ./doc/*.md))) -html: $(HTML_FILES) - -## CSS="https://guilhem.org/static/css/bootstrap.min.css" HTML_ROOTDIR="$XDG_RUNTIME_DIR/Downloads" make html -$(HTML_ROOTDIR)/%.html: ./doc/%.md $(HTML_TEMPLATE) +## make html CSS="https://guilhem.org/static/css/bootstrap.min.css" BUILD_DOCDIR="$XDG_RUNTIME_DIR/Downloads" +$(HTML_FILES): $(BUILD_DOCDIR)/%.html: ./doc/%.md $(HTML_TEMPLATE) mtime="$$(git --no-pager log -1 --pretty="format:%ct" -- "$<" 2>/dev/null)"; \ [ -n "$$mtime" ] || mtime="$$(date +%s -r "$<")"; \ [ "$<" = "doc/index.md" ] && parent="" || parent="./index.html"; \ @@ -31,9 +32,30 @@ $(HTML_ROOTDIR)/%.html: ./doc/%.md $(HTML_TEMPLATE) doc: manual html -install: +prefix ?= $(DESTDIR) +exec_prefix ?= $(prefix) +bindir ?= $(exec_prefix)/bin +libdir ?= $(exec_prefix)/lib +datarootdir ?= $(DESTDIR)/share +mandir ?= $(datarootdir)/man +man1dir ?= $(mandir)/man1 + +install: all + install -m0755 -vDt $(bindir) ./interimap ./pullimap + install -m0644 -vDT ./lib/Net/IMAP/InterIMAP.pm $(datarootdir)/perl5/Net/IMAP/InterIMAP.pm + install -m0644 -vDt $(man1dir) $(BUILD_DOCDIR)/interimap.1 $(BUILD_DOCDIR)/pullimap.1 + install -m0644 -vDt $(datarootdir)/doc/pullimap ./pullimap.sample + install -m0644 -vDt $(datarootdir)/doc/interimap ./interimap.sample ./doc/getting-started.md ./doc/multi-account.md README + install -m0644 -vDt $(libdir)/systemd/user ./*.service + +uninstall: + rm -vf -- $(bindir)/interimap $(man1dir)/interimap.1 $(libdir)/systemd/user/interimap*.service + rm -vf -- $(bindir)/pullimap $(man1dir)/pullimap.1 $(libdir)/systemd/user/pullimap*.service + rm -vf -- $(datarootdir)/perl5/Net/IMAP/InterIMAP.pm + rm -rvf -- $(datarootdir)/doc/interimap $(datarootdir)/doc/pullimap + rm -vf -- $(BUILD_DOCDIR)/interimap.1 $(BUILD_DOCDIR)/pullimap.1 clean: - rm -f $(MANUALS) $(HTML_FILES) + rm -vf -- $(MANUAL_FILES) $(HTML_FILES) -.PHONY: all manual html doc test install clean +.PHONY: all manual html doc test install uninstall clean |