-NAME = coreutils
-V = 8.25
-
-DEST = draft/man1
-
-# You must compile coreutils in advance.
-srcdir = ./$(NAME)-$(V)
-tarball = $(NAME)-$(V).tar.xz
-
-PACKAGE_NAME = GNU $(NAME)
-PACKAGE_VERSION = $(V)
-PACKAGE_STRING = $(PACKAGE_NAME) $(PACKAGE_VERSION)
-
-all: build-man
-source: stamp-build
-
-#------------------------------------------------------------
-
-tarball: $(tarball)
-$(tarball):
- wget http://core.ring.gr.jp/pub/GNU/coreutils/$@
-
-stamp-setup: $(tarball)
- tar xJf $^
- ln -s $(srcdir) source
- @(cd source \
- && git init \
- && git add . \
- && git commit -m 'Import $(PACKAGE_NAME).' > /dev/null \
- )
- mkdir -p source/locale/ja/LC_MESSAGES
- @set -e ; if [ -f patch-$(V).diff ]; then \
- patch -p0 < patch-$(V).diff; \
- fi
- @set -e ; if [ -f ja.po/ja.po.$(V) ]; then \
- rm -f source/po/ja.po; \
- ln -s ../../ja.po/ja.po.$(V) source/po/ja.po; \
- echo "Use JM-maintained ja.po for translation."; \
- else \
- echo "No JM-maintained ja.po found for $(V)."; \
- fi
+#
+# 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 --omit-dir-times -v $(ROFFSRC)/ $(WWWROFF)
+ @mkdir -p $(WWWPOD)
+ $(RSYNC) -a --delete --omit-dir-times -v $(PODSRC)/ $(WWWPOD)
touch $@
-stamp-configure: stamp-setup
- @(cd source && ./configure --localedir=`pwd`/locale)
- touch stamp-configure
-
-stamp-build: stamp-configure
- @(cd source \
- && make \
- && make src/arch \
- && make src/hostname \
- && make man/arch.1 \
- && make man/hostname.1 \
- )
+#
+# 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 $@
-#------------------------------------------------------------
+#
+# info tree
+#
+infoman: stamp/www-info-modified
-mo-ja = source/locale/ja/LC_MESSAGES/coreutils.mo
-gmo-ja = source/po/ja.gmo
-po-ja = source/po/ja.po
-
-$(mo-ja): $(gmo-ja)
- /bin/cp $^ $@
-
-$(gmo-ja): $(po-ja)
- $(MAKE) -C source/po $$(basename $@)
-
-catalog: $(mo-ja)
-
-build-man: stamp-build catalog
- $(MAKE) -C help2man.ja $@ PACKAGE_VERSION=$(PACKAGE_VERSION)
-
-install: build-man
- $(MAKE) -C help2man.ja $@
-
-clean:
- $(MAKE) -C help2man.ja $@
-
-clean-build:
- (cd source && make distclean)
- $(RM) stamp-configure stamp-build
-
-clean-setup:
- $(RM) -r $(srcdir)
- $(RM) source
- $(RM) stamp-setup stamp-configure stamp-build
-
-realclean: clean-setup clean
-
-#------------------------------------------------------------
-
-MAN2HTML = ../../admin/man-1.6g/man2html/man2html
-
-html: html-setup html-gen html-index
-
-html-setup:
- @set -e; if [ ! -e html ]; then \
- echo " MKDIR html."; \
- mkdir html; \
- fi; \
- for d in draft/man?; do \
- dm=html/$$(basename $$d); \
- echo " MKDIR $$dm"; \
- mkdir -p $$dm; \
- done
+stamp/www-info-modified: stamp/info-release-modified
+ $(MAKE) -C $(INFOSRC) install
+ touch $@
-html-gen:
- @set -e; for f in draft/man?/*.[1-8]; do \
- n=$$(basename $$f); \
- t=$$(echo $$f | cut -d / -f 2-3); \
- o=original/$$t; \
- echo " GEN html/$${t}.html"; \
- $(MAN2HTML) $$f | tail -n +3 > html/$${t}.draft.html; \
- $(MAN2HTML) $$o | tail -n +3 > html/$${t}.orig.html; \
- printf "<html>\n" > html/$${t}.html; \
- printf "<head><title>$$n</title></head>\n" >> html/$${t}.html; \
- printf "<frameset cols=\"50%%,50%%\">\n" >> html/$${t}.html; \
- printf " <frame src=\"$$n.orig.html\" name=\"orig\" />\n" >> html/$${t}.html; \
- printf " <frame src=\"$$n.draft.html\" name=\"draft\" />\n" >> html/$${t}.html; \
- printf "</frameset></html>\n" >> html/$${t}.html; \
+#
+# 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
-html-index:
- @set -e; echo " GEN index.html"; \
- idx=html/index.html; \
- printf "<html><head><title>" > $$idx; \
- printf "Drafts of $(PACKAGE_STRING)</title></head>\n" >> $$idx; \
- printf "<body><h1>Drafts of $(PACKAGE_STRING)</h1>\n<ul>\n" >> $$idx; \
- for f in draft/man?/*.[1-8]; do \
- t=$$(echo $$f | cut -d / -f 2-3).html; \
- printf "<li><a href=\"$$t\">$$(basename $$f)</a></li>\n" >> $$idx; \
- done; \
- printf "</ul><hr>$$(LC_ALL=C date)</body></html>\n" >> $$idx
+realclean: clean
+ $(RM) -rf $(WWWROOT)/*
+ $(RM) -rf $(CGIROOT)/*