OSDN Git Service

(split) LDP: (Makefile) Use JM-release-all.sh to generate release pages
[linuxjm/LDP_man-pages.git] / Makefile
1 PERKAMON_DIR = perkamon
2 LANGS = ja
3 THRESH = 80
4 THRESH_REL = 80
5 FLAGS ?=
6 PO4AFLAGS ?= -k $(THRESH) $(FLAGS)
7
8 PO4A_SUBDIRS = $(notdir $(wildcard po4a/*))
9
10 all: translate update-stats
11
12 translate:      $(patsubst %, stamp/%, $(PO4A_SUBDIRS))
13 stamp/%:        stamp-jm-setup po4a/%/po/ja.po
14         @echo "*************** translate: $* ***************"
15         mkdir -p stamp
16         LC_ALL=C $(MAKE) process-$* \
17           PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
18         touch $@
19
20 translate-all:  $(patsubst %, _translate-%, $(PO4A_SUBDIRS))
21 _translate-%: jm-setup
22         LC_ALL=C $(MAKE) process-$* \
23           PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
24
25 # release:      $(patsubst %, _release-%, $(PO4A_SUBDIRS))
26
27 # _release-%:   jm-setup
28 #       rm -f $(PERKAMON_DIR)/build/ja
29 #       ln -s ../../release $(PERKAMON_DIR)/build/ja
30 #       LC_ALL=C $(MAKE) process-$* \
31 #         PO4AFLAGS="-k $(THRESH_REL) $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
32 #       $(RM) $(PERKAMON_DIR)/build/ja
33 #       ln -s ../../draft $(PERKAMON_DIR)/build/ja
34 #       @# Do not remove unreleased pages
35 #       @sleep 1
36 #       set -e; if git status release | grep deleted >/dev/null; then \
37 #         git status release | grep deleted | awk '{print $$3;}' | xargs -n1 echo; \
38 #         git status release | grep deleted | awk '{print $$3;}' | xargs -n1 git checkout; \
39 #       fi
40 release-pages:
41         ../../admin/JM-release-all.sh -c
42
43 update-stats:   untrans.html
44
45 untrans.html:   $(patsubst %, stats/%, $(PO4A_SUBDIRS))
46         @echo "*************** Updating translation statistics ***************"
47         ./tools/generate-list.pl $^ > $@
48
49 stats/%:        stamp-jm-setup po4a/%/po/ja.po
50         @echo "*************** stats: $* ***************"
51         mkdir -p stats
52         mkdir -p _transtmp
53         $(RM) $(PERKAMON_DIR)/build/ja
54         ln -s ../../_transtmp $(PERKAMON_DIR)/build/ja
55         LC_ALL=C $(MAKE) process-$* \
56           PO4AFLAGS="-k 100 $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
57           | tee _log.txt
58         ./tools/extract-untrans.pl < _log.txt > $@
59         $(RM) $(PERKAMON_DIR)/build/ja
60         ln -s ../../draft $(PERKAMON_DIR)/build/ja
61         $(RM) -r _transtmp
62         $(RM) _log.txt
63
64 clean-stats:
65         $(RM) -r stats
66
67 update-tl-finish:
68         @cat stats/* | grep -v '^#' | cut -d , -f 1 | sort > _stats.txt
69         @grep '^[×☆]' translation_list | cut -d : -f 5-6 | sed -e 's/:/./' | sort > _tr_todo.txt
70         @for p in `comm -23 _tr_todo.txt _stats.txt`; do \
71           ../../admin/JM-tl-modify.pl -U translation_list $$p RO; \
72         done
73         @$(RM) _stats.txt _tr_todo.txt
74
75 check-tl-nofinish:
76         @cat stats/* | grep -v '^#' | cut -d , -f 1 | sort > _stats.txt
77         @grep '^○' translation_list | cut -d : -f 5-6 | sed -e 's/:/./' | sort > _tr_finish.txt
78         @comm -12 _tr_finish.txt _stats.txt
79         @$(RM) _stats.txt _tr_finish.txt
80
81 release-tl:
82         set -e; if git status release | grep modified >/dev/null; then \
83           git status release | grep modified | awk '{print $$3;}' | cut -d / -f 3 | xargs -n1 -IXXXXX ../../admin/JM-tl-modify.pl -U translation_list XXXXX RO; \
84         fi
85
86 format:
87         set -e; for d in po4a/*; do \
88           echo "----- $$d -----"; cur=`pwd`; cd $$d/po; \
89           f=`/bin/mktemp`; \
90           LC_ALL=C msgmerge --verbose -o $$f ja.po $$(basename $$d) \
91             && mv -f $$f ja.po; \
92           cd $$cur; \
93         done
94
95 format-%:
96         set -e; for d in po4a/$*; do \
97           cd $$d/po; \
98           f=`/bin/mktemp`; \
99           msgmerge --verbose -o $$f ja.po $$(basename $$d) \
100             && mv -f $$f ja.po; \
101           cd $$cur; \
102         done
103
104 postats:        jm-setup
105         @LC_ALL=C $(MAKE) stats \
106           PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
107
108 untrans-postats:        jm-setup
109         @LC_ALL=C $(MAKE) stats \
110           PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
111           2>&1 | grep -vE ' translated messages\.$$'
112
113 jm-setup:       stamp-jm-setup
114 stamp-jm-setup:
115         @# Create symlink to po4a/*/po in the top dir.
116         set -e; for d in $(PERKAMON_DIR)/po4a/*; do \
117           if [ ! -e $$d/po ]; then \
118             t=$$(echo $$d | sed -e "s|$(PERKAMON_DIR)/||"); \
119             ln -s ../../../$$t/po $$d/po; \
120           fi; \
121         done
122         cd $(PERKAMON_DIR) && make setup
123         @set -e; if [ ! -e $(PERKAMON_DIR)/build/ja ]; then \
124           ln -s ../../draft $(PERKAMON_DIR)/build/ja; \
125         fi
126         touch $@
127
128 clean-setup:
129         $(RM) stamp-jm-setup
130         $(RM) $(PERKAMON_DIR)/man-pages || true
131         $(RM) $(PERKAMON_DIR)/stamp-*
132         $(RM) -rf $(PERKAMON_DIR)/build
133         find $(PERKAMON_DIR) -type l | xargs $(RM)
134
135 help:
136         @echo "Available targets:"
137         @echo "   translate       Generate draft from po files"
138         @echo "   translate-<SEC> Generate draft from the specified po file"
139         @echo "   release         Generate release from po files"
140         @echo ""
141         @echo "   update-stats    Update per-page trans stats"
142         @echo "   clean-stats     Remove all caches of per-page trans stats"
143         @echo "   postats         Display per-po trans stats"
144         @echo "   untrans-postats Display per-po trans stats (untrans only)"
145         @echo ""
146         @echo "   jm-setup        Setup perkamon environment"
147         @echo "   clean-setup     Clean perkamon environment"