-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathMakefile
More file actions
81 lines (63 loc) · 2.49 KB
/
Copy pathMakefile
File metadata and controls
81 lines (63 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
PRODUCT = docdiff
VERSION = $(shell $(RUBY) -r./lib/docdiff/version.rb -e 'Docdiff::VERSION.display')
RUBY = ruby
TAR_XVCS = tar --exclude=.svn --exclude=.git
MD2HTML = md2html --full-html
DOCS = doc/README.md doc/README_ja.md doc/README.html doc/README_ja.html doc/news.html doc/man/$(PRODUCT).1
DOCSRC = README.md README_ja.md doc/news.md doc/img doc/example doc/man/$(PRODUCT).adoc
TESTS = test/*_test.rb
DIST = $(shell git ls-files)
SOURCE_DATE_EPOCH = $(shell git show --quiet --format=%ct HEAD)
DESTDIR =
PREFIX = /usr/local
datadir = $(DESTDIR)$(PREFIX)/share
all: test docs dist gem
test: $(TESTS)
$(RUBY) -I./lib -e 'ARGV.map{|a| require_relative "#{a}"}' $^
docs: $(DOCS)
%.html: %.md
$(MD2HTML) --html-title="$(shell grep '^# .*' $< | head -n 1 | sed 's/^# //')" $< \
| sed 's/\(href\|src\)="doc\/\([^"]*\)"/\1="\2"/g' \
| sed 's/href="\([^"]*\).md"/href="\1.html"/g' > $@
doc/%.md: %.md
cp $^ $@
%.1: %.adoc
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) asciidoctor --backend=manpage --out-file=$@ $<
doc/man/$(PRODUCT).1: doc/man/$(PRODUCT).adoc
sed 's|/path/to/README.html|$(PREFIX)/share/doc/$(PRODUCT)/README.html|g' $< \
| SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) asciidoctor --backend=manpage --out-file=$@ -
install: $(DIST) $(DOCS)
@if [ ! -d $(DESTDIR)$(PREFIX)/bin ]; then \
mkdir -p $(DESTDIR)$(PREFIX)/bin; \
fi
cp -Ppv bin/docdiff $(DESTDIR)$(PREFIX)/bin/
chmod +x $(DESTDIR)$(PREFIX)/bin/docdiff
@if [ ! -d $(datadir)/$(PRODUCT) ]; then \
mkdir -p $(datadir)/$(PRODUCT); \
fi
(cd lib && $(TAR_XVCS) -cf - *) | (cd $(datadir)/$(PRODUCT) && tar -xpf -)
@if [ ! -d $(DESTDIR)/etc/$(PRODUCT) ]; then \
mkdir -p $(DESTDIR)/etc/$(PRODUCT); \
fi
cp -Pprv doc/example/docdiff.conf.example $(DESTDIR)/etc/$(PRODUCT)/docdiff.conf
@if [ ! -d $(datadir)/doc/$(PRODUCT) ]; then \
mkdir -p $(datadir)/doc/$(PRODUCT); \
fi
cp -Pprv $(DOCSRC) $(datadir)/doc/$(PRODUCT)
cp -Pprv $(DOCS) $(datadir)/doc/$(PRODUCT)
uninstall:
-rm -fr $(DESTDIR)$(PREFIX)/bin/docdiff
-rm -fr $(datadir)/$(PRODUCT)
-rm -fr $(DESTDIR)/etc/$(PRODUCT)
-rm -fr $(datadir)/doc/$(PRODUCT)
dist: $(PRODUCT)-$(VERSION).tar.gz
$(PRODUCT)-$(VERSION).tar.gz:
git archive --prefix="$(PRODUCT)-$(VERSION)/" --format=tar HEAD --output="$@"
gem: $(PRODUCT)-$(VERSION).gem
$(PRODUCT)-$(VERSION).gem: $(PRODUCT).gemspec
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) gem build $<
clean:
-rm -fr $(DOCS)
-rm -fr $(PRODUCT)-$(VERSION).tar.gz
-rm -fr $(PRODUCT)-$(VERSION).gem
.PHONY: all test docs install uninstall dist gem clean