-PERKAMON_DIR = perkamon
-LANGS = ja
-THRESH = 80
-THRESH_REL = 80
-FLAGS ?=
-PO4AFLAGS ?= -k $(THRESH) $(FLAGS)
-
-PO4A_SUBDIRS = $(notdir $(wildcard po4a/*))
-
-.PHONY: all release translate
-
-all: translate
-translate: translate-pages update-stats
-release: release-pages update-tl-finish check-tl-nofinish
-
-translate-pages: $(patsubst %, stamp/%, $(PO4A_SUBDIRS))
-stamp/%: stamp-jm-setup po4a/%/po/ja.po
- @echo "*************** translate: $* ***************"
- mkdir -p stamp
- LC_ALL=C $(MAKE) process-$* \
- PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
+#
+# Build macro for JM project. If something don't work well,
+# please refer the description in admin/JM-CVS/JM-CVS.sgml.
+#
+include ./JM.rules
+
+#
+# defs
+#
+MKRWWW=bin/mkmanweb.perl
+MKPWWW=bin/mkpodweb.perl
+MKDIST=bin/mkdist.perl
+MKSPDIST=bin/mksplitdist.perl
+CHKCVS=bin/chkcvs.sh
+
+ROFFSRC=./manual
+PODSRC=./pod
+INFOSRC=./info
+
+JMVER=0.5
+JMRELEASE := $(shell env LANG=C date +"%Y%m%d")
+DIST := man-pages-ja-$(JMRELEASE)
+
+JMRPMDIST := jman_pages-$(JMVER)-$(JMRELEASE)
+JMRPMSRC := $(TMPDIR)/$(DIST).tar.gz
+JMRPMSPEC=jman_pages.spec
+JMRPM_BUILD_ROOT=$(TMPDIR)/man-pages-ja-root
+
+#
+# global rules
+#
+periodic: chkcvs roff infoman html web cgi guide web-extra
+
+all: periodic archive-install
+
+#
+# update check for CVS checkout
+#
+chkcvs:
+ $(CHKCVS)
+
+stamp/cvs-release-modified stamp/cvs-status-modified: chkcvs
+
+#
+# roff tree
+#
+roff: stamp/www-roff-modified
+
+stamp/www-roff-modified: stamp/cvs-status-modified
+ @mkdir -p $(WWWROFF)
+ $(RSYNC) -a --delete -v $(ROFFSRC)/ $(WWWROFF)
+ @mkdir -p $(WWWPOD)
+ $(RSYNC) -a --delete -v $(PODSRC)/ $(WWWPOD)
touch $@
-release-pages:
- ../../admin/JM-release-all.sh -c
-
-update-stats: untrans.html
-
-untrans.html: $(patsubst %, stats/%, $(PO4A_SUBDIRS))
- @echo "*************** Updating translation statistics ***************"
- ./tools/generate-list.pl $^ > $@
- if [ -f EXCLUDED_PAGES.txt ]; then \
- ./tools/generate-list.pl -e EXCLUDED_PAGES.txt $^ > untrans-partial.html; \
- fi
-
-stats/%: stamp-jm-setup po4a/%/po/ja.po
- @echo "*************** stats: $* ***************"
- 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
-
-update-tl-finish:
- @cat stats/* | grep -v '^#' | cut -d , -f 1 | sort > _stats.txt
- @grep '^[×☆]' translation_list | cut -d : -f 5-6 | sed -e 's/:/./' | sort > _tr_todo.txt
- @for p in `comm -23 _tr_todo.txt _stats.txt`; do \
- ../../admin/JM-tl-modify.pl -U translation_list $$p RO; \
- done
- @$(RM) _stats.txt _tr_todo.txt
-
-check-tl-nofinish:
- @cat stats/* | grep -v '^#' | cut -d , -f 1 | sort > _stats.txt
- @grep '^○' translation_list | cut -d : -f 5-6 | sed -e 's/:/./' | sort > _tr_finish.txt
- @comm -12 _tr_finish.txt _stats.txt
- @$(RM) _stats.txt _tr_finish.txt
-
-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
+#
+# html tree
+#
+html: stamp/www-html-modified
+
+stamp/www-html-modified: stamp/cvs-release-modified
+ -$(RM) -rf $(WWWHTML)
+ mkdir -p $(WWWHTML)
+ $(MKRWWW) $(ROFFSRC) $(WWWHTML) $(MAN2HTML)
+ $(MKPWWW) $(PODSRC) $(WWWHTML) $(POD2HTML)
+# $(MAKE) -C $(INFOSRC) install
+ # Remove temporary files generated by pod2html
+ rm -f pod2htmd.tmp pod2htmi.tmp
+ touch $@
-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
+#
+# info tree
+#
+infoman: stamp/www-info-modified
-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:
- @# Check perkamon/po4a and JM/po4a
- ls -1 $(PERKAMON_DIR)/po4a | sort > _po4a_list_perkamon
- ls -1 po4a | sort > _po4a_list_jm
- set -e; for d in `comm -13 _po4a_list_perkamon _po4a_list_jm`; do \
- echo $$d; \
- rm -vrf po4a/$$d; \
- done
- set -e; for d in `comm -23 _po4a_list_perkamon _po4a_list_jm`; do \
- echo $$d; \
- mkdir -vp po4a/$$d/po; \
- done
- rm _po4a_list_jm _po4a_list_perkamon
- cd $(PERKAMON_DIR) && make setup
- @# 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
- @set -e; if [ ! -e $(PERKAMON_DIR)/build/ja ]; then \
- ln -s ../../draft $(PERKAMON_DIR)/build/ja; \
- fi
- ln -s ../../add_ja $(PERKAMON_DIR)/po4a
+stamp/www-info-modified: stamp/info-release-modified
+ $(MAKE) -C $(INFOSRC) install
touch $@
-clean-setup:
- $(RM) stamp-jm-setup
- $(RM) $(PERKAMON_DIR)/man-pages || true
- $(RM) $(PERKAMON_DIR)/stamp-*
- $(RM) -rf $(PERKAMON_DIR)/build
- find $(PERKAMON_DIR) -type l | xargs $(RM)
-
-upgrade:
- $(MAKE) clean-setup
- $(MAKE) jm-setup
- cd $(PERKAMON_DIR)/man-pages \
- && ../../../../admin/JM-orig-upd.sh ../../original \
- && cp README man-pages-* Changes* ../../original
- cd original \
- sed -e 's/\^\\\.SH /^\\.S[Hh] /' ../perkamon/man-pages/scripts/remove_COLOPHON.sh \
- sh ../perkamon/man-pages/scripts/remove_COLOPHON.sh man?/*.[1-8]
- git add --all original/
- git status original | ../../admin/git2upd > upd.txt
- $(eval VERSION = $(shell grep "^V = " $(PERKAMON_DIR)/Makefile | awk '{print $$3}'))
- ../../admin/upd_tl.perl translation_list upd.txt $(VERSION)
- mv translation_list.* translation_list
- $(MAKE) FLAGS="--no-translations -v --force" translate-pages
- $(MAKE) update-stats
- git add translation_list
- git commit -m "LDP: Update original to LDP v$(VERSION)" original/ translation_list
- git add po4a/ stats/ untrans.html perkamon
- git commit -m "LDP: Update POT and ja.po to LDP v$(VERSION)" po4a/ stats/ untrans.html
-
-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 " clean-stats Remove all caches of 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"
+#
+# web & cgi contents
+#
+web:
+ $(MAKE) -C www/\
+ WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT) WORKDIR=$(TMPDIR)\
+ install
+
+cgi:
+ $(MAKE) -C admin/cgi/\
+ WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
+ install
+
+.PHONY: guide
+guide:
+ $(MAKE) -C guide/ -f Makefile.venv-wrap install WWWROOT=$(WWWROOT) install
+
+.PHONY: web-extra
+web-extra:
+ rsync -av manual/LDP_man-pages/untrans.html $(WWWROOT)/LDP_untrans.html
+
+#
+# archive related rules
+#
+archive-install: stamp/latest-archive-modified
+ -$(RM) www/man-pages-ja-*.tar.gz www/per-pkg/*.gz
+ -$(RM) www/rpm/*.rpm
+ cp $(TMPDIR)/$(DIST).tar.gz www/
+ mkdir -p www/per-pkg
+ cp $(TMPDIR)/man-pages-ja-*-$(JMRELEASE).tar.gz www/per-pkg
+ mkdir -p www/rpm
+ -cp $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm www/rpm
+ -cp $(RPMROOT)/SRPMS/$(JMRPMDIST).src.rpm www/rpm
+ touch $<
+ make -C www/ DATE=$(JMRELEASE)\
+ WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
+ download.html index.html
+ make -C www/\
+ WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
+ install
+
+stamp/latest-archive-modified: tarball rpm
+
+#
+# tarball
+#
+tarball: $(TMPDIR)/$(DIST).tar.gz
+
+$(TMPDIR)/$(DIST).tar.gz:
+ $(MKDIST) . $(TMPDIR)/$(DIST) $(POD2MAN)
+ $(MAKE) -f Makefile.dist install
+ (cd $(TMPDIR); tar czf $(DIST).tar.gz $(DIST))
+ $(MKSPDIST) $(TMPDIR)/$(DIST)
+ touch stamp/latest-archive-modified
+
+#
+# rpm
+#
+rpm: $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm
+
+$(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm: $(JMRPMSRC)
+ifdef NORPM
+else
+ mkdir -p $(RPMROOT)/SOURCES
+ mkdir -p $(RPMROOT)/SPECS
+ mkdir -p $(RPMROOT)/BUILD
+ mkdir -p $(RPMROOT)/RPMS/noarch
+ mkdir -p $(RPMROOT)/SRPMS
+ mkdir -p $(RPMROOT)/db
+ mkdir -p $(RPMROOT)/tmp
+ cp $(JMRPMSRC) $(RPMROOT)/SOURCES/
+ sed -e "s/@@version@@/$(JMVER)/" \
+ -e "s/@@release@@/$(JMRELEASE)/" \
+ -e "s%@@buildroot@@%$(JMRPM_BUILD_ROOT)%" \
+ www/rpm/$(JMRPMSPEC) > $(RPMROOT)/SPECS/$(JMRPMSPEC)
+ $(RPM) --dbpath $(RPMROOT)/db --rebuilddb
+ $(RPMB) --define "buildroot $(JMRPM_BUILD_ROOT)" \
+ --dbpath $(RPMROOT)/db \
+ --define "_topdir $(RPMROOT)" \
+ --define "_tmppath $(RPMROOT)/tmp" \
+ --define "_sourcedir $(RPMROOT)/SOURCES" \
+ --define "_mandir /usr/share/man" -ba \
+ $(RPMROOT)/SPECS/$(JMRPMSPEC)
+ touch stamp/latest-archive-modified
+endif
+
+#
+# clean
+#
+clean: tmpclean
+ rm -f stamp/*-modified
+ $(MAKE) -C admin/cgi/ clean
+ $(MAKE) -C www/ clean
+ $(MAKE) -f Makefile.dist clean
+
+tmpclean:
+ rm -rf $(TMPDIR)
+ rm -rf $(JMRPM_BUILD_ROOT)
+ rm -rf $(RPMROOT)/BUILD/$(DIST)
+ for i in $(JMRPMSRC); do \
+ rm -f $(RPMROOT)/SOURCES/`basename $$i` ; \
+ done
+
+realclean: clean
+ $(RM) -rf $(WWWROOT)/*
+ $(RM) -rf $(CGIROOT)/*