OSDN Git Service

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