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
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
27 TAR_FLAGS
= --owner root
--group root
--mode a
+rX
,o-w
--mtime .
30 POD2MAN_FLAGS
= --utf8
-c
"" -r
"$(PACKAGE_NAME) $(VERSION)"
34 ASCIIDOC_FLAGS
= -apackagename
="$(PACKAGE_NAME)" -aversion
="$(VERSION)"
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
52 @echo
"Useful targets:"
53 @echo
" doc clean distclean dist install install-doc"
56 $(RM
) *.1.helpm
*.pod pod2htmd.tmp pod2htmi.tmp
*~ .
*~
57 $(RM
) $(PACKAGE_TARNAME
)-*.
tar.gz
*
59 $(RM
) ChangeLog
$(ALLDOC
)
61 install: build install-doc
62 $(MKDIR
) -p
$(DESTDIR
)$(bindir)
63 $(INSTALL
) -m
755 $(SCRIPTS
) $(DESTDIR
)$(bindir)/
65 $(MKDIR
) -p
$(DESTDIR
)$(mandir)/man1
66 $(INSTALL
) -m
644 $(MANDOC
) $(DESTDIR
)$(mandir)/man1
/
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
)
78 dist: $(TARNAME
).
tar.gz
79 $(TARNAME
).
tar.gz
: $(TARNAME
).
tar $(RELEASEDOC
)
81 $(CP
) -p
-P
$(RELEASEDOC
) $(TARNAME
)
82 $(TAR
) $(TAR_FLAGS
) -rf
$(TARNAME
).
tar $(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
88 ( echo
"# $@ for $(PACKAGE_NAME) - automatically generated from the VCS's history"; \
90 .
/gitchangelog.sh
--tags --tag-pattern
'version\/[^\n]*' \
91 -- - --date-order
--first-parent
) \
92 |
$(SED
) 's/^\[version/\f\[version/' \
95 README.html
: README asciidoc.conf
96 $(ASCIIDOC
) $(ASCIIDOC_FLAGS
) -b xhtml11
-d article
-a readme
$<
104 $(POD2MAN
) $(POD2MAN_FLAGS
) --section
1 $< >$@
106 $(POD2TEXT
) --utf8
$< >$@
108 $(POD2HTML
) --noindex
--title
"$(shell printf "%s
(1)" "$*" | LC_ALL=C tr a-z A-Z)" \