OSDN Git Service

(split) LDP: (Makefile) Make draft/release/stats per-po file processing
[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
11
12 translate:      $(patsubst %, translate-%, $(PO4A_SUBDIRS))
13
14 translate-%: jm-setup
15         LC_ALL=C $(MAKE) process-$* \
16           PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
17
18 release:        $(patsubst %, release-%, $(PO4A_SUBDIRS))
19
20 release-%:      jm-setup
21         rm -f $(PERKAMON_DIR)/build/ja
22         ln -s ../../release $(PERKAMON_DIR)/build/ja
23         LC_ALL=C $(MAKE) process-$* \
24           PO4AFLAGS="-k $(THRESH_REL) $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
25         $(RM) $(PERKAMON_DIR)/build/ja
26         ln -s ../../draft $(PERKAMON_DIR)/build/ja
27         @# Do not remove unreleased pages
28         @sleep 1
29         set -e; if git status release | grep deleted >/dev/null; then \
30           git status release | grep deleted | awk '{print $$3;}' | xargs -n1 echo; \
31           git status release | grep deleted | awk '{print $$3;}' | xargs -n1 git checkout; \
32         fi
33
34 update-stats:   untrans.html
35
36 untrans.html:   $(patsubst %, stats/%, $(PO4A_SUBDIRS))
37         ./tools/generate-list.pl $^ > $@
38
39 stats/%:        stamp-jm-setup po4a/%/po/ja.po
40         @echo "*************** $* ***************"
41         mkdir -p stats
42         mkdir -p _transtmp
43         $(RM) $(PERKAMON_DIR)/build/ja
44         ln -s ../../_transtmp $(PERKAMON_DIR)/build/ja
45         LC_ALL=C $(MAKE) process-$* \
46           PO4AFLAGS="-k 100 $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
47           | tee _log.txt
48         ./tools/extract-untrans.pl < _log.txt > $@
49         $(RM) $(PERKAMON_DIR)/build/ja
50         ln -s ../../draft $(PERKAMON_DIR)/build/ja
51         $(RM) -r _transtmp
52         $(RM) _log.txt
53
54 clean-stats:
55         $(RM) -r stats
56
57 release-tl:
58         set -e; if git status release | grep modified >/dev/null; then \
59           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; \
60         fi
61
62 format:
63         set -e; for d in po4a/*; do \
64           echo "----- $$d -----"; cur=`pwd`; cd $$d/po; \
65           f=`/bin/mktemp`; \
66           LC_ALL=C msgmerge --verbose -o $$f ja.po $$(basename $$d) \
67             && mv -f $$f ja.po; \
68           cd $$cur; \
69         done
70
71 format-%:
72         set -e; for d in po4a/$*; do \
73           cd $$d/po; \
74           f=`/bin/mktemp`; \
75           msgmerge --verbose -o $$f ja.po $$(basename $$d) \
76             && mv -f $$f ja.po; \
77           cd $$cur; \
78         done
79
80 postats:        jm-setup
81         @LC_ALL=C $(MAKE) stats \
82           PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
83
84 untrans-postats:        jm-setup
85         @LC_ALL=C $(MAKE) stats \
86           PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
87           2>&1 | grep -vE ' translated messages\.$$'
88
89 jm-setup:       stamp-jm-setup
90 stamp-jm-setup:
91         @# Create symlink to po4a/*/po in the top dir.
92         set -e; for d in $(PERKAMON_DIR)/po4a/*; do \
93           if [ ! -e $$d/po ]; then \
94             t=$$(echo $$d | sed -e "s|$(PERKAMON_DIR)/||"); \
95             ln -s ../../../$$t/po $$d/po; \
96           fi; \
97         done
98         @# Create symlink to original dir instead of downloading tarball.
99         @#cd $(PERKAMON_DIR) && \
100         @#  if [ ! -e man-pages ]; then \
101         @#    ln -s ../original man-pages; \
102         @#  fi && \
103         @#  touch stamp-unpack-release && \
104         @#  touch stamp-unpack
105         cd $(PERKAMON_DIR) && make setup
106         @set -e; if [ ! -e $(PERKAMON_DIR)/build/ja ]; then \
107           ln -s ../../draft $(PERKAMON_DIR)/build/ja; \
108         fi
109         touch $@
110
111 clean-setup:
112         $(RM) stamp-jm-setup
113         $(RM) $(PERKAMON_DIR)/man-pages || true
114         $(RM) $(PERKAMON_DIR)/stamp-*
115         $(RM) -rf $(PERKAMON_DIR)/build
116         find $(PERKAMON_DIR) -type l | xargs $(RM)
117
118 help:
119         @echo "Available targets:"
120         @echo "   translate       Generate draft from po files"
121         @echo "   translate-<SEC> Generate draft from the specified po file"
122         @echo "   release         Generate release from po files"
123         @echo ""
124         @echo "   update-stats    Update per-page trans stats"
125         @echo "   postats         Display per-po trans stats"
126         @echo "   untrans-postats Display per-po trans stats (untrans only)"
127         @echo ""
128         @echo "   jm-setup        Setup perkamon environment"
129         @echo "   clean-setup     Clean perkamon environment"