OSDN Git Service

Add Makefile target to install JM guide
[linuxjm/jm.git] / Makefile
1 #
2 # Build macro for JM project.  If something don't work well,
3 # please refer the description in admin/JM-CVS/JM-CVS.sgml.
4 #
5 include ./JM.rules
6
7 #
8 # defs
9 #
10 MKRWWW=bin/mkmanweb.perl
11 MKPWWW=bin/mkpodweb.perl
12 MKDIST=bin/mkdist.perl
13 MKSPDIST=bin/mksplitdist.perl
14 CHKCVS=bin/chkcvs.sh
15
16 ROFFSRC=./manual
17 PODSRC=./pod
18 INFOSRC=./info
19
20 JMVER=0.5
21 JMRELEASE := $(shell env LANG=C date +"%Y%m%d")
22 DIST := man-pages-ja-$(JMRELEASE)
23
24 JMRPMDIST := jman_pages-$(JMVER)-$(JMRELEASE)
25 JMRPMSRC := $(TMPDIR)/$(DIST).tar.gz
26 JMRPMSPEC=jman_pages.spec
27 JMRPM_BUILD_ROOT=$(TMPDIR)/man-pages-ja-root
28
29 #
30 # global rules
31 #
32 periodic: chkcvs roff infoman html web cgi guide
33
34 all: periodic archive-install 
35
36 #
37 # update check for CVS checkout
38 #
39 chkcvs:
40         $(CHKCVS)
41
42 stamp/cvs-release-modified stamp/cvs-status-modified: chkcvs
43
44 #
45 # roff tree
46 #
47 roff: stamp/www-roff-modified
48
49 stamp/www-roff-modified: stamp/cvs-status-modified
50         @mkdir -p $(WWWROFF)
51         $(RSYNC) -a --delete -v $(ROFFSRC)/ $(WWWROFF)
52         @mkdir -p $(WWWPOD)
53         $(RSYNC) -a --delete -v $(PODSRC)/ $(WWWPOD)
54         touch $@
55
56 #
57 # html tree
58 #
59 html: stamp/www-html-modified
60
61 stamp/www-html-modified: stamp/cvs-release-modified
62         -$(RM) -rf $(WWWHTML)
63         mkdir -p $(WWWHTML)
64         $(MKRWWW) $(ROFFSRC) $(WWWHTML) $(MAN2HTML)
65         $(MKPWWW) $(PODSRC) $(WWWHTML) $(POD2HTML)
66 #       $(MAKE) -C $(INFOSRC) install
67         # Remove temporary files generated by pod2html
68         rm -f pod2htmd.tmp pod2htmi.tmp
69         touch $@
70
71 #
72 # info tree
73 #
74 infoman: stamp/www-info-modified
75
76 stamp/www-info-modified: stamp/info-release-modified
77         $(MAKE) -C $(INFOSRC) install
78         touch $@
79
80 #
81 # web & cgi contents
82 #
83 web:
84         $(MAKE) -C www/\
85                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT) WORKDIR=$(TMPDIR)\
86                 install
87
88 cgi:
89         $(MAKE) -C admin/cgi/\
90                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
91                 install
92
93 .PHONY: guide
94 guide:
95         $(MAKE) -C guide/ -f Makefile.venv-wrap install WWWROOT=$(WWWROOT) install
96
97 #
98 # archive related rules
99 #
100 archive-install: stamp/latest-archive-modified
101         -$(RM) www/man-pages-ja-*.tar.gz www/per-pkg/*.gz
102         -$(RM) www/rpm/*.rpm
103         cp $(TMPDIR)/$(DIST).tar.gz www/
104         mkdir -p www/per-pkg
105         cp $(TMPDIR)/man-pages-ja-*-$(JMRELEASE).tar.gz www/per-pkg
106         mkdir -p www/rpm
107         -cp $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm www/rpm
108         -cp $(RPMROOT)/SRPMS/$(JMRPMDIST).src.rpm www/rpm
109         touch $<
110         make -C www/ DATE=$(JMRELEASE)\
111                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
112                 download.html index.html
113         make -C www/\
114                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
115                 install
116
117 stamp/latest-archive-modified: tarball rpm
118
119 #
120 # tarball
121 #
122 tarball: $(TMPDIR)/$(DIST).tar.gz
123
124 $(TMPDIR)/$(DIST).tar.gz:
125         $(MKDIST) . $(TMPDIR)/$(DIST) $(POD2MAN)
126         $(MAKE) -f Makefile.dist install
127         (cd $(TMPDIR); tar czf $(DIST).tar.gz $(DIST))
128         $(MKSPDIST) $(TMPDIR)/$(DIST)
129         touch stamp/latest-archive-modified
130
131 #
132 # rpm
133 #
134 rpm: $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm
135
136 $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm: $(JMRPMSRC)
137 ifdef NORPM
138 else
139         mkdir -p $(RPMROOT)/SOURCES
140         mkdir -p $(RPMROOT)/SPECS
141         mkdir -p $(RPMROOT)/BUILD
142         mkdir -p $(RPMROOT)/RPMS/noarch
143         mkdir -p $(RPMROOT)/SRPMS
144         mkdir -p $(RPMROOT)/db
145         mkdir -p $(RPMROOT)/tmp
146         cp $(JMRPMSRC) $(RPMROOT)/SOURCES/
147         sed     -e "s/@@version@@/$(JMVER)/" \
148                 -e "s/@@release@@/$(JMRELEASE)/" \
149                 -e "s%@@buildroot@@%$(JMRPM_BUILD_ROOT)%" \
150             www/rpm/$(JMRPMSPEC) > $(RPMROOT)/SPECS/$(JMRPMSPEC)
151         $(RPM) --dbpath $(RPMROOT)/db --rebuilddb
152         $(RPMB) --define "buildroot $(JMRPM_BUILD_ROOT)" \
153             --dbpath $(RPMROOT)/db \
154             --define "_topdir $(RPMROOT)"  \
155             --define "_tmppath $(RPMROOT)/tmp"  \
156             --define "_sourcedir $(RPMROOT)/SOURCES" \
157             --define "_mandir /usr/share/man" -ba \
158             $(RPMROOT)/SPECS/$(JMRPMSPEC)
159         touch stamp/latest-archive-modified
160 endif
161
162 #
163 # clean
164 #
165 clean:  tmpclean
166         rm -f stamp/*-modified
167         $(MAKE) -C admin/cgi/ clean
168         $(MAKE) -C www/ clean
169         $(MAKE) -f Makefile.dist clean
170
171 tmpclean:
172         rm -rf $(TMPDIR)
173         rm -rf $(JMRPM_BUILD_ROOT)
174         rm -rf $(RPMROOT)/BUILD/$(DIST)
175         for i in $(JMRPMSRC); do \
176             rm -f $(RPMROOT)/SOURCES/`basename $$i` ; \
177         done
178
179 realclean:      clean
180         $(RM) -rf $(WWWROOT)/*
181         $(RM) -rf $(CGIROOT)/*