version/0.3
[archives2git.git] / Makefile
blobc2a01b2d766c5f76827da3cb3b12fb94e8d7c36a
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 dsc2git
39 MANDOC = $(SCRIPTS:%=%.1)
40 TEXTDOC = $(SCRIPTS:%=%.1.txt)
41 HTMLDOC = $(SCRIPTS:%=%.1.html) README.html NEWS.html
42 ALLDOC = $(MANDOC) $(TEXTDOC) $(HTMLDOC)
43 RELEASEDOC = $(MANDOC) $(HTMLDOC)
45 TARNAME = $(PACKAGE_TARNAME)-$(RPM_VERSION)
47 .PHONY: .help all clean build doc doc-txt doc-man doc-html dist \
48 install install-doc
50 all: build doc
52 .help:
53 @echo "Useful targets:"
54 @echo " doc doc-man doc-html doc-txt clean distclean dist"
55 @echo " install install-doc"
57 clean:
58 $(RM) *.1.helpm *.pod pod2htmd.tmp pod2htmi.tmp *~ .*~
59 $(RM) $(PACKAGE_TARNAME)-*.tar.gz*
60 distclean: clean
61 $(RM) ChangeLog $(ALLDOC)
63 install: build install-doc
64 $(MKDIR) -p $(DESTDIR)$(bindir)
65 $(INSTALL) -m 755 $(SCRIPTS) $(DESTDIR)$(bindir)/
66 install-doc:
67 $(MKDIR) -p $(DESTDIR)$(mandir)/man1
68 $(INSTALL) -m 644 $(MANDOC) $(DESTDIR)$(mandir)/man1/
70 build:
71 doc: $(ALLDOC)
72 doc-txt: $(TEXTDOC)
73 doc-man: $(MANDOC)
74 doc-html: $(HTMLDOC)
76 $(TARNAME).tar: ChangeLog
77 $(MKDIR) -p $(TARNAME)
78 echo $(VERSION) > $(TARNAME)/VERSION
79 $(CP) -p ChangeLog $(TARNAME)
80 git archive --format=tar --prefix=$(TARNAME)/ HEAD > $(TARNAME).tar
81 $(TAR) $(TAR_FLAGS) -rf $(TARNAME).tar $(TARNAME)
82 $(RM) -r $(TARNAME)
83 dist: $(TARNAME).tar.gz
84 $(TARNAME).tar.gz: $(TARNAME).tar $(RELEASEDOC)
85 $(MKDIR) $(TARNAME)
86 $(CP) -p -P $(RELEASEDOC) $(TARNAME)
87 $(TAR) $(TAR_FLAGS) -rf $(TARNAME).tar $(TARNAME)
88 $(RM) -r $(TARNAME)
89 gzip -f -9 $(TARNAME).tar
90 $(MD5SUM) $(TARNAME).tar.gz > $(TARNAME).tar.gz.md5
91 $(SHA512SUM) $(TARNAME).tar.gz > $(TARNAME).tar.gz.sha512
92 ChangeLog:
93 ( echo "# $@ for $(PACKAGE_NAME) - automatically generated from the VCS's history"; \
94 echo; \
95 ./gitchangelog.sh --tags --tag-pattern 'version\/[^\n]*' \
96 -- - --date-order --first-parent ) \
97 | $(SED) 's/^\[version/\f\[version/' \
98 > $@
100 README.html: README asciidoc.conf
101 $(ASCIIDOC) $(ASCIIDOC_FLAGS) -b xhtml11 -d article -a readme $<
102 NEWS.html: NEWS asciidoc.conf
103 $(ASCIIDOC) $(ASCIIDOC_FLAGS) -b xhtml11 -d article $<
105 %.1.helpm: %
106 ./$< --helpm >$@
107 %.pod: %.1.helpm
108 $(HELPM2POD) $< >$@
110 %.1: %.pod
111 $(POD2MAN) $(POD2MAN_FLAGS) --section 1 $< >$@
112 %.1.txt: %.pod
113 $(POD2TEXT) --utf8 $< >$@
114 %.1.html: %.pod
115 $(POD2HTML) --noindex --title "$(shell printf "%s(1)" "$*" | LC_ALL=C tr a-z A-Z)" \
116 $< >$@