Makefile: suppress the manpage's header and add the project name to the footer
[archives2git.git] / Makefile
blob2b17a92ee6cd7e9e6d9e17285af2650f967562d3
1 # GNU Makefile for archives2git
3 PACKAGE_NAME = archives2git
4 PACKAGE_TARNAME = archives2git
6 # Get the version via git or from the VERSION file or from the project
7 # directory name.
8 VERSION = $(shell test -x version.sh && ./version.sh $(PACKAGE_TARNAME) \
9 || echo "unknown_version")
10 # Allow either to be overwritten by setting DIST_VERSION on the command line.
11 ifdef DIST_VERSION
12 VERSION = $(DIST_VERSION)
13 endif
14 PACKAGE_VERSION = $(VERSION)
15 # Remove the _g<SHA1> part from the $VERSION
16 RPM_VERSION = $(shell echo $(VERSION) | $(SED) -e 's/_g[0-9a-z]\+//')
18 prefix = $(HOME)/.local
19 bindir = $(prefix)/bin
20 datarootdir = $(prefix)/share
21 docdir = $(datarootdir)/doc/$(PACKAGE_TARNAME)
22 mandir = $(datarootdir)/man
23 # DESTDIR = # distributors set this on the command line
25 CP ?= cp
26 MKDIR = mkdir
27 INSTALL = install
28 SED ?= sed
29 TAR ?= tar
30 TAR_FLAGS = --owner root --group root --mode a+rX,o-w --mtime .
31 HELPM2POD = helpm2pod
32 POD2MAN = pod2man
33 POD2MAN_FLAGS = --utf8 -c "" -r "$(PACKAGE_NAME) $(VERSION)"
34 POD2TEXT = pod2text
35 POD2HTML = pod2html
36 ASCIIDOC = asciidoc
37 ASCIIDOC_FLAGS = -apackagename="$(PACKAGE_NAME)" -aversion="$(VERSION)"
38 MD5SUM ?= md5sum
39 SHA512SUM ?= sha512sum
41 SCRIPTS = archives2git
42 MANDOC = $(SCRIPTS:%=%.1)
43 TEXTDOC = $(SCRIPTS:%=%.1.txt)
44 HTMLDOC = $(SCRIPTS:%=%.1.html) README.html
45 ALLDOC = $(MANDOC) $(TEXTDOC) $(HTMLDOC)
46 RELEASEDOC = $(MANDOC) $(HTMLDOC)
48 TARNAME = $(PACKAGE_TARNAME)-$(RPM_VERSION)
50 .PHONY: .help all clean build doc dist install install-doc
52 all: build doc
54 .help:
55 @echo "Useful targets:"
56 @echo " doc clean distclean dist install install-doc"
58 clean:
59 $(RM) *.1.helpm *.pod pod2htmd.tmp pod2htmi.tmp *~ .*~
60 $(RM) $(PACKAGE_TARNAME)-*.tar.gz*
61 distclean: clean
62 $(RM) ChangeLog $(ALLDOC)
64 install: build install-doc
65 $(MKDIR) -p $(DESTDIR)$(bindir)
66 $(INSTALL) -m 755 $(SCRIPTS) $(DESTDIR)$(bindir)/
67 install-doc:
68 $(MKDIR) -p $(DESTDIR)$(mandir)/man1
69 $(INSTALL) -m 644 $(MANDOC) $(DESTDIR)$(mandir)/man1/
71 build:
72 doc: $(ALLDOC)
74 $(TARNAME).tar: ChangeLog
75 $(MKDIR) -p $(TARNAME)
76 echo $(VERSION) > $(TARNAME)/VERSION
77 $(CP) -p ChangeLog $(TARNAME)
78 git archive --format=tar --prefix=$(TARNAME)/ HEAD > $(TARNAME).tar
79 $(TAR) $(TAR_FLAGS) -rf $(TARNAME).tar $(TARNAME)
80 $(RM) -r $(TARNAME)
81 dist: $(TARNAME).tar.gz
82 $(TARNAME).tar.gz: $(TARNAME).tar $(RELEASEDOC)
83 $(MKDIR) $(TARNAME)
84 $(CP) -p -P $(RELEASEDOC) $(TARNAME)
85 $(TAR) $(TAR_FLAGS) -rf $(TARNAME).tar $(TARNAME)
86 $(RM) -r $(TARNAME)
87 gzip -f -9 $(TARNAME).tar
88 $(MD5SUM) $(TARNAME).tar.gz > $(TARNAME).tar.gz.md5
89 $(SHA512SUM) $(TARNAME).tar.gz > $(TARNAME).tar.gz.sha512
90 ChangeLog:
91 ( echo "# $@ for $(PACKAGE_NAME) - automatically generated from the VCS's history"; \
92 echo; \
93 ./gitchangelog.sh --tags --tag-pattern 'version\/[^\n]*' \
94 -- - --date-order --first-parent ) \
95 | $(SED) 's/^\[version/\f\[version/' \
96 > $@
98 README.html: README asciidoc.conf
99 $(ASCIIDOC) $(ASCIIDOC_FLAGS) -b xhtml11 -d article -a readme $<
101 %.1.helpm: %
102 ./$< --helpm >$@
103 %.pod: %.1.helpm
104 $(HELPM2POD) $< >$@
106 %.1: %.pod
107 $(POD2MAN) $(POD2MAN_FLAGS) --section 1 $< >$@
108 %.1.txt: %.pod
109 $(POD2TEXT) --utf8 $< >$@
110 %.1.html: %.pod
111 $(POD2HTML) --noindex --title "$(shell printf "%s(1)" "$*" | LC_ALL=C tr a-z A-Z)" \
112 $< >$@