OSDN Git Service

(split) LDP: (Makefile) Make draft/release/stats per-po file processing
[linuxjm/LDP_man-pages.git] / Makefile
index 606abbe..39be62f 100644 (file)
--- a/Makefile
+++ b/Makefile
 PERKAMON_DIR = perkamon
 LANGS = ja
-THRESH = 100
+THRESH = 80
+THRESH_REL = 80
 FLAGS ?=
 PO4AFLAGS ?= -k $(THRESH) $(FLAGS)
 
+PO4A_SUBDIRS = $(notdir $(wildcard po4a/*))
+
 all: translate
 
-translate: jm-setup
-       cd perkamon && $(MAKE) translate PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)"
+translate:     $(patsubst %, translate-%, $(PO4A_SUBDIRS))
 
 translate-%: jm-setup
-       cd perkamon && $(MAKE) translate-$* PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)"
+       LC_ALL=C $(MAKE) process-$* \
+         PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
+
+release:       $(patsubst %, release-%, $(PO4A_SUBDIRS))
+
+release-%:     jm-setup
+       rm -f $(PERKAMON_DIR)/build/ja
+       ln -s ../../release $(PERKAMON_DIR)/build/ja
+       LC_ALL=C $(MAKE) process-$* \
+         PO4AFLAGS="-k $(THRESH_REL) $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
+       $(RM) $(PERKAMON_DIR)/build/ja
+       ln -s ../../draft $(PERKAMON_DIR)/build/ja
+       @# Do not remove unreleased pages
+       @sleep 1
+       set -e; if git status release | grep deleted >/dev/null; then \
+         git status release | grep deleted | awk '{print $$3;}' | xargs -n1 echo; \
+         git status release | grep deleted | awk '{print $$3;}' | xargs -n1 git checkout; \
+       fi
+
+update-stats:  untrans.html
+
+untrans.html:  $(patsubst %, stats/%, $(PO4A_SUBDIRS))
+       ./tools/generate-list.pl $^ > $@
+
+stats/%:       stamp-jm-setup po4a/%/po/ja.po
+       @echo "*************** $* ***************"
+       mkdir -p stats
+       mkdir -p _transtmp
+       $(RM) $(PERKAMON_DIR)/build/ja
+       ln -s ../../_transtmp $(PERKAMON_DIR)/build/ja
+       LC_ALL=C $(MAKE) process-$* \
+         PO4AFLAGS="-k 100 $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
+         | tee _log.txt
+       ./tools/extract-untrans.pl < _log.txt > $@
+       $(RM) $(PERKAMON_DIR)/build/ja
+       ln -s ../../draft $(PERKAMON_DIR)/build/ja
+       $(RM) -r _transtmp
+       $(RM) _log.txt
+
+clean-stats:
+       $(RM) -r stats
 
-stats: jm-setup
-       cd perkamon && $(MAKE) stats PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)"
+release-tl:
+       set -e; if git status release | grep modified >/dev/null; then \
+         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; \
+       fi
+
+format:
+       set -e; for d in po4a/*; do \
+         echo "----- $$d -----"; cur=`pwd`; cd $$d/po; \
+         f=`/bin/mktemp`; \
+         LC_ALL=C msgmerge --verbose -o $$f ja.po $$(basename $$d) \
+           && mv -f $$f ja.po; \
+         cd $$cur; \
+       done
+
+format-%:
+       set -e; for d in po4a/$*; do \
+         cd $$d/po; \
+         f=`/bin/mktemp`; \
+         msgmerge --verbose -o $$f ja.po $$(basename $$d) \
+           && mv -f $$f ja.po; \
+         cd $$cur; \
+       done
+
+postats:       jm-setup
+       @LC_ALL=C $(MAKE) stats \
+         PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
+
+untrans-postats:       jm-setup
+       @LC_ALL=C $(MAKE) stats \
+         PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
+         2>&1 | grep -vE ' translated messages\.$$'
 
 jm-setup:      stamp-jm-setup
 stamp-jm-setup:
-       # Create symlink to po4a/*/po in the top dir.
+       @# Create symlink to po4a/*/po in the top dir.
        set -e; for d in $(PERKAMON_DIR)/po4a/*; do \
          if [ ! -e $$d/po ]; then \
            t=$$(echo $$d | sed -e "s|$(PERKAMON_DIR)/||"); \
            ln -s ../../../$$t/po $$d/po; \
          fi; \
        done
-       # Create symlink to original dir instead of downloading tarball.
-       cd $(PERKAMON_DIR) && \
-         if [ ! -e man-pages ]; then \
-           ln -s ../original man-pages; \
-         fi && \
-         touch stamp-unpack-release && \
-         touch stamp-unpack
+       @# Create symlink to original dir instead of downloading tarball.
+       @#cd $(PERKAMON_DIR) && \
+       @#  if [ ! -e man-pages ]; then \
+       @#    ln -s ../original man-pages; \
+       @#  fi && \
+       @#  touch stamp-unpack-release && \
+       @#  touch stamp-unpack
        cd $(PERKAMON_DIR) && make setup
        @set -e; if [ ! -e $(PERKAMON_DIR)/build/ja ]; then \
          ln -s ../../draft $(PERKAMON_DIR)/build/ja; \
@@ -39,7 +110,20 @@ stamp-jm-setup:
 
 clean-setup:
        $(RM) stamp-jm-setup
-       $(RM) $(PERKAMON_DIR)/man-pages
+       $(RM) $(PERKAMON_DIR)/man-pages || true
        $(RM) $(PERKAMON_DIR)/stamp-*
        $(RM) -rf $(PERKAMON_DIR)/build
        find $(PERKAMON_DIR) -type l | xargs $(RM)
+
+help:
+       @echo "Available targets:"
+       @echo "   translate       Generate draft from po files"
+       @echo "   translate-<SEC> Generate draft from the specified po file"
+       @echo "   release         Generate release from po files"
+       @echo ""
+       @echo "   update-stats    Update per-page trans stats"
+       @echo "   postats         Display per-po trans stats"
+       @echo "   untrans-postats Display per-po trans stats (untrans only)"
+       @echo ""
+       @echo "   jm-setup        Setup perkamon environment"
+       @echo "   clean-setup     Clean perkamon environment"