OSDN Git Service

info/GNU_which: Add some explanations.
[linuxjm/jm.git] / Makefile
index 62e0ae4..593660c 100644 (file)
--- a/Makefile
+++ b/Makefile
-THRESH = 100
-EXTFLAGS =
-PO4AFLAGS += -k $(THRESH) $(EXTFLAGS)
-
-MASTER_CMD = $(wildcard original/man[^23]/*.[1-8])
-MASTER_LIB = $(wildcard original/man[23]/*.[1-8])
-MASTER_ROFFS = $(MASTER_CMD) $(MASTER_LIB)
-TRANS_ROFFS = $(patsubst original/%,draft/%,$(MASTER_ROFFS))
-POFILES = $(wildcard po4a/*/*.ja.po)
-POTFILES = $(wildcard po4a/*/*.pot)
-MSGMERGE_OPTS = --no-wrap --no-location
-
-WORK_DIR = .
-
-all:   translate
-cmd:   translate-cmd
-lib:   translate-lib
-
-translate:     translate-cmd translate-lib
-translate-cmd: $(patsubst %,_translate-%,$(notdir $(MASTER_CMD)))
-translate-lib: $(patsubst %,_translate-%,$(notdir $(MASTER_LIB)))
-
-_translate-%:
-       @set -e; for target in $*; do \
-         echo $$target; \
-         p=$$(echo $* | sed -e 's|.*\.\([1-8]\)|man\1/\0|'); \
-         pofile=po4a/$$p.ja.po; \
-         potfile=po4a/$$p.pot; \
-         master=original/$$p; \
-         trans=draft/$$p; \
-         addendum=po4a/add_ja/copyright/$(notdir $*).txt; \
-         mkdir -p $$(dirname $$master); \
-         if sed -e '1,3!d' $$master | grep -q '^\.so '; then \
-           echo "Skip link file $$master"; \
-         else \
-           po4a-translate $(PO4AFLAGS) -f man -p $$pofile -l $$trans -m $$master \
-             --addendum $$addendum; \
-         fi; \
-       done
+#
+# 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
 
-updatepo:      $(patsubst %,_updatepo-%,$(notdir $(MASTER_ROFFS)))
-
-_updatepo-%:
-       @set -e; for target in $*; do \
-         p=$$(echo $* | sed -e 's|.*\.\([1-8]\)|man\1/\0|'); \
-         pofile=po4a/$$p.ja.po; \
-         potfile=po4a/$$p.pot; \
-         master=original/$$p; \
-         if sed -e '1,3!d' $$master | grep -q '^\.so '; then \
-           echo "Skip link file $$master"; \
-         elif [ -f $$pofile ]; then \
-           echo -n "po4a-updatepo $$pofile <- $$master"; \
-           po4a-updatepo -f man --previous --msgmerge-opt='$(MSGMERGE_OPTS)' \
-             -p $$pofile -m $$master; \
-         else \
-           echo -n "po4a-gettextize $$pofile <- $$master"; \
-           mkdir -p $$(dirname $$pofile); \
-           po4a-gettextize -f man -p $$pofile -m $$master; \
-           cp $$pofile $$potfile; \
-           msgmerge $(MSGMERGE_OPTS) -o $$pofile $$pofile $$potfile; \
-           $(RM) $$potfile; \
-         fi; \
-       done
+#
+# defs
+#
+MKRWWW=bin/mkmanweb.perl
+MKPWWW=bin/mkpodweb.perl
+MKDIST=bin/mkdist.perl
+MKSPDIST=bin/mksplitdist.perl
+CHKCVS=bin/chkcvs.sh
 
-stat:
-       @for po in $(POFILES); do \
-         echo -n $$(basename $$po)": "; \
-         msgfmt --statistics -o /dev/null $$po; \
-       done
+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 $@
+
+#
+# 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
+
+stamp/www-info-modified: stamp/info-release-modified
+       $(MAKE) -C $(INFOSRC) install
+       touch $@
+
+#
+# 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
 
-pot:   $(patsubst %,_pot-%,$(notdir $(MASTER_ROFFS)))
-
-_pot-%:
-       @set -e; for target in $*; do \
-         p=$$(echo $* | sed -e 's|.*\.\([1-8]\)|man\1/\0|'); \
-         pofile=po4a/$$p.ja.po; \
-         potfile=po4a/$$p.pot; \
-         master=original/$$p; \
-         if sed -e '1,3!d' $$master | grep -q '^\.so '; then \
-           echo "Skip link file $$master"; \
-         else \
-           echo "po4a-gettextize $$potfile <- $$master"; \
-           po4a-gettextize -f man -p $$potfile -m $$master; \
-         fi; \
+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
 
-pot-clean:
-       $(RM) -v $(POTFILES)
+realclean:     clean
+       $(RM) -rf $(WWWROOT)/*
+       $(RM) -rf $(CGIROOT)/*