Makefile: remove needless $(DIST_VERSION)
[archives2git.git] / Makefile
blob10a551b55ad0d56871e8de257e36b72d518a9da4
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 PACKAGE_VERSION = $(VERSION)
12 # Remove the _g<SHA1> part from the $VERSION
13 RPM_VERSION = $(shell echo $(VERSION) | $(SED) -e 's/_g[0-9a-z]\+//')
15 prefix = $(HOME)/.local
16 bindir = $(prefix)/bin
17 datarootdir = $(prefix)/share
18 docdir = $(datarootdir)/doc/$(PACKAGE_TARNAME)
19 mandir = $(datarootdir)/man
20 # DESTDIR = # distributors set this on the command line
22 CP ?= cp
23 MKDIR = mkdir
24 INSTALL = install
25 SED ?= sed
26 TAR ?= tar
27 TAR_FLAGS = --owner root --group root --mode a+rX,o-w --mtime .
28 HELPM2POD = helpm2pod
29 POD2MAN = pod2man
30 POD2MAN_FLAGS = --utf8 -c "" -r "$(PACKAGE_NAME) $(VERSION)"
31 POD2TEXT = pod2text
32 POD2HTML = pod2html
33 ASCIIDOC = asciidoc
34 ASCIIDOC_FLAGS = -apackagename="$(PACKAGE_NAME)" -aversion="$(VERSION)"
35 MD5SUM ?= md5sum
36 SHA512SUM ?= sha512sum
38 SCRIPTS = archives2git
39 MANDOC = $(SCRIPTS:%=%.1)
40 TEXTDOC = $(SCRIPTS:%=%.1.txt)
41 HTMLDOC = $(SCRIPTS:%=%.1.html) README.html
42 ALLDOC = $(MANDOC) $(TEXTDOC) $(HTMLDOC)
43 RELEASEDOC = $(MANDOC) $(HTMLDOC)
45 TARNAME = $(PACKAGE_TARNAME)-$(RPM_VERSION)
47 .PHONY: .help all clean build doc dist install install-doc
49 all: build doc
51 .help:
52 @echo "Useful targets:"
53 @echo " doc clean distclean dist install install-doc"
55 clean:
56 $(RM) *.1.helpm *.pod pod2htmd.tmp pod2htmi.tmp *~ .*~
57 $(RM) $(PACKAGE_TARNAME)-*.tar.gz*
58 distclean: clean
59 $(RM) ChangeLog $(ALLDOC)
61 install: build install-doc
62 $(MKDIR) -p $(DESTDIR)$(bindir)
63 $(INSTALL) -m 755 $(SCRIPTS) $(DESTDIR)$(bindir)/
64 install-doc:
65 $(MKDIR) -p $(DESTDIR)$(mandir)/man1
66 $(INSTALL) -m 644 $(MANDOC) $(DESTDIR)$(mandir)/man1/
68 build:
69 doc: $(ALLDOC)
71 $(TARNAME).tar: ChangeLog
72 $(MKDIR) -p $(TARNAME)
73 echo $(VERSION) > $(TARNAME)/VERSION
74 $(CP) -p ChangeLog $(TARNAME)
75 git archive --format=tar --prefix=$(TARNAME)/ HEAD > $(TARNAME).tar
76 $(TAR) $(TAR_FLAGS) -rf $(TARNAME).tar $(TARNAME)
77 $(RM) -r $(TARNAME)
78 dist: $(TARNAME).tar.gz
79 $(TARNAME).tar.gz: $(TARNAME).tar $(RELEASEDOC)
80 $(MKDIR) $(TARNAME)
81 $(CP) -p -P $(RELEASEDOC) $(TARNAME)
82 $(TAR) $(TAR_FLAGS) -rf $(TARNAME).tar $(TARNAME)
83 $(RM) -r $(TARNAME)
84 gzip -f -9 $(TARNAME).tar
85 $(MD5SUM) $(TARNAME).tar.gz > $(TARNAME).tar.gz.md5
86 $(SHA512SUM) $(TARNAME).tar.gz > $(TARNAME).tar.gz.sha512
87 ChangeLog:
88 ( echo "# $@ for $(PACKAGE_NAME) - automatically generated from the VCS's history"; \
89 echo; \
90 ./gitchangelog.sh --tags --tag-pattern 'version\/[^\n]*' \
91 -- - --date-order --first-parent ) \
92 | $(SED) 's/^\[version/\f\[version/' \
93 > $@
95 README.html: README asciidoc.conf
96 $(ASCIIDOC) $(ASCIIDOC_FLAGS) -b xhtml11 -d article -a readme $<
98 %.1.helpm: %
99 ./$< --helpm >$@
100 %.pod: %.1.helpm
101 $(HELPM2POD) $< >$@
103 %.1: %.pod
104 $(POD2MAN) $(POD2MAN_FLAGS) --section 1 $< >$@
105 %.1.txt: %.pod
106 $(POD2TEXT) --utf8 $< >$@
107 %.1.html: %.pod
108 $(POD2HTML) --noindex --title "$(shell printf "%s(1)" "$*" | LC_ALL=C tr a-z A-Z)" \
109 $< >$@