-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
52 lines (41 loc) · 1.31 KB
/
Makefile
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
STGIT_WORKTREE ?= ../stgit
STGIT_DOC = $(STGIT_WORKTREE)/Documentation
MAN_DIR = content/man
.SHELLFLAGS += -e
STG_COMMANDS = $(shell cd $(STGIT_WORKTREE); cargo --quiet run completion list commands)
STG_COMMANDS_ADOC = $(patsubst %,$(MAN_DIR)/stg-%.adoc,$(STG_COMMANDS))
STG_COMMANDS_TXT = $(patsubst %,$(STGIT_DOC)/stg-%.txt,$(STG_COMMANDS))
.PHONY: sync
sync: clean-man command-list.txt $(STG_COMMANDS_ADOC) $(MAN_DIR)/stg.adoc content/changelog/_index.md
.PHONY: FORCE
FORCE:
.PHONY: clean-man
clean-man:
$(RM) $(MAN_DIR)/*.adoc
$(RM) txt-stamp
$(STG_COMMANDS_TXT) $(STGIT_DOC)/command-list.txt: txt-stamp
txt-stamp: FORCE
$(QUIET)$(RM) txt-stamp-temp
$(QUIET)touch txt-stamp-temp
$(MAKE) -C $(STGIT_DOC)
$(QUIET)mv txt-stamp-temp $@
$(MAN_DIR)/stg.adoc: $(STGIT_DOC)/stg.txt command-list.txt FORCE
@echo "+++" > $@
@echo "title = \"stg(1)\"" >> $@
@echo "+++" >> $@
@echo >> $@
cat $< >> $@
$(MAN_DIR)/stg-%.adoc: $(STGIT_DOC)/stg-%.txt FORCE
@echo "+++" > $@
@echo "title = \"$(subst .adoc,,$(subst $(MAN_DIR)/,,$@))(1)\"" >> $@
@echo "+++" >> $@
@echo >> $@
cat $< >> $@
command-list.txt: $(STGIT_DOC)/command-list.txt FORCE
cp $< $@
content/changelog/_index.md: $(STGIT_WORKTREE)/CHANGELOG.md FORCE
@echo "+++" > $@
@echo "title = 'StGit Changelog'" >> $@
@echo "+++" >> $@
@echo >> $@
cat $< >> $@