OSDN Git Service

se enter the commit message for your changes. Lines starting
[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 web-extra
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 --omit-dir-times -v $(ROFFSRC)/ $(WWWROFF)
52         @mkdir -p $(WWWPOD)
53         $(RSYNC) -a --delete --omit-dir-times -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 .PHONY: web-extra
98 web-extra:
99         rsync -av manual/LDP_man-pages/untrans.html $(WWWROOT)/LDP_untrans.html
100
101 #
102 # archive related rules
103 #
104 archive-install: stamp/latest-archive-modified
105         -$(RM) www/man-pages-ja-*.tar.gz www/per-pkg/*.gz
106         -$(RM) www/rpm/*.rpm
107         cp $(TMPDIR)/$(DIST).tar.gz www/
108         mkdir -p www/per-pkg
109         cp $(TMPDIR)/man-pages-ja-*-$(JMRELEASE).tar.gz www/per-pkg
110         mkdir -p www/rpm
111         -cp $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm www/rpm
112         -cp $(RPMROOT)/SRPMS/$(JMRPMDIST).src.rpm www/rpm
113         touch $<
114         make -C www/ DATE=$(JMRELEASE)\
115                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
116                 download.html index.html
117         make -C www/\
118                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
119                 install
120
121 stamp/latest-archive-modified: tarball rpm
122
123 #
124 # tarball
125 #
126 tarball: $(TMPDIR)/$(DIST).tar.gz
127
128 $(TMPDIR)/$(DIST).tar.gz:
129         $(MKDIST) . $(TMPDIR)/$(DIST) $(POD2MAN)
130         $(MAKE) -f Makefile.dist install
131         (cd $(TMPDIR); tar czf $(DIST).tar.gz $(DIST))
132         $(MKSPDIST) $(TMPDIR)/$(DIST)
133         touch stamp/latest-archive-modified
134
135 #
136 # rpm
137 #
138 rpm: $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm
139
140 $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm: $(JMRPMSRC)
141 ifdef NORPM
142 else
143         mkdir -p $(RPMROOT)/SOURCES
144         mkdir -p $(RPMROOT)/SPECS
145         mkdir -p $(RPMROOT)/BUILD
146         mkdir -p $(RPMROOT)/RPMS/noarch
147         mkdir -p $(RPMROOT)/SRPMS
148         mkdir -p $(RPMROOT)/db
149         mkdir -p $(RPMROOT)/tmp
150         cp $(JMRPMSRC) $(RPMROOT)/SOURCES/
151         sed     -e "s/@@version@@/$(JMVER)/" \
152                 -e "s/@@release@@/$(JMRELEASE)/" \
153                 -e "s%@@buildroot@@%$(JMRPM_BUILD_ROOT)%" \
154             www/rpm/$(JMRPMSPEC) > $(RPMROOT)/SPECS/$(JMRPMSPEC)
155         $(RPM) --dbpath $(RPMROOT)/db --rebuilddb
156         $(RPMB) --define "buildroot $(JMRPM_BUILD_ROOT)" \
157             --dbpath $(RPMROOT)/db \
158             --define "_topdir $(RPMROOT)"  \
159             --define "_tmppath $(RPMROOT)/tmp"  \
160             --define "_sourcedir $(RPMROOT)/SOURCES" \
161             --define "_mandir /usr/share/man" -ba \
162             $(RPMROOT)/SPECS/$(JMRPMSPEC)
163         touch stamp/latest-archive-modified
164 endif
165
166 #
167 # clean
168 #
169 clean:  tmpclean
170         rm -f stamp/*-modified
171         $(MAKE) -C admin/cgi/ clean
172         $(MAKE) -C www/ clean
173         $(MAKE) -f Makefile.dist clean
174
175 tmpclean:
176         rm -rf $(TMPDIR)
177         rm -rf $(JMRPM_BUILD_ROOT)
178         rm -rf $(RPMROOT)/BUILD/$(DIST)
179         for i in $(JMRPMSRC); do \
180             rm -f $(RPMROOT)/SOURCES/`basename $$i` ; \
181         done
182
183 realclean:      clean
184         $(RM) -rf $(WWWROOT)/*
185         $(RM) -rf $(CGIROOT)/*