OSDN Git Service

b8238db9ce750b86122a7309c107f1e7b705a920
[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 YAM2H=bin/yaman2html.perl
18
19 ROFFSRC=./manual
20 PODSRC=./pod
21
22 JMVER=0.5
23 JMRELEASE := $(shell date +"%Y%m%d")
24 DIST := man-pages-ja-$(JMRELEASE)
25
26 JMRPMDIST := jman_pages-$(JMVER)-$(JMRELEASE)
27 JMRPMSRC := $(TMPDIR)/$(DIST).tar.gz
28 JMRPMSPEC=jman_pages.spec
29 JMRPM_BUILD_ROOT=$(TMPDIR)/man-pages-ja-root
30
31 #
32 # global rules
33 #
34 periodic: chkcvs roff html web cgi
35
36 all: periodic archive-install 
37
38 #
39 # update check for CVS checkout
40 #
41 chkcvs:
42         $(CHKCVS)
43
44 cvs-release-modified cvs-status-modified: chkcvs
45
46 #
47 # roff tree
48 #
49 roff: www-roff-modified
50
51 www-roff-modified: cvs-status-modified
52         @mkdir -p $(WWWROFF)
53         $(MIRRORDIR) -v --no-netrc --exclude-regexp '*CVS*' \
54                 $(ROFFSRC) $(WWWROFF)
55         @mkdir -p $(WWWPOD)
56         $(MIRRORDIR) -v --no-netrc --exclude-regexp '*CVS*' \
57                 $(PODSRC) $(WWWPOD)
58         touch $@
59
60 #
61 # html tree
62 #
63 html: www-html-modified
64
65 www-html-modified: cvs-release-modified
66         -$(RM) -rf $(WWWHTML)
67         mkdir -p $(WWWHTML)
68         $(MKRWWW) $(ROFFSRC) $(WWWHTML) $(MAN2HTML) $(YAM2H)
69         $(MKPWWW) $(PODSRC) $(WWWHTML) $(POD2HTML)
70         touch $@
71
72 #
73 # web & cgi contents
74 #
75 web:
76         $(MAKE) -C www/\
77                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
78                 install
79
80 cgi:
81         $(MAKE) -C admin/cgi/\
82                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
83                 install
84
85 #
86 # archive related rules
87 #
88 archive-install: latest-archive-modified
89         -$(RM) www/man-pages-ja-*.tar.gz www/per-pkg/*.gz
90         -$(RM) www/rpm/*.rpm
91         cp $(TMPDIR)/$(DIST).tar.gz www/
92         mkdir -p www/per-pkg
93         cp $(TMPDIR)/man-pages-ja-*-$(JMRELEASE).tar.gz www/per-pkg
94         mkdir -p www/rpm
95         -cp $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm www/rpm
96         -cp $(RPMROOT)/SRPMS/$(JMRPMDIST).src.rpm www/rpm
97         touch $<
98         make -C www/ DATE=$(JMRELEASE)\
99                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
100                 download.html index.html
101         make -C www/\
102                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
103                 install
104
105 latest-archive-modified: tarball rpm
106
107 #
108 # tarball
109 #
110 tarball: $(TMPDIR)/$(DIST).tar.gz
111
112 $(TMPDIR)/$(DIST).tar.gz:
113         $(MKDIST) . $(TMPDIR)/$(DIST) $(POD2MAN)
114         $(MAKE) -f Makefile.dist install
115         (cd $(TMPDIR); tar czf $(DIST).tar.gz $(DIST))
116         $(MKSPDIST) $(TMPDIR)/$(DIST)
117         touch latest-archive-modified
118
119 #
120 # rpm
121 #
122 rpm: $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm
123
124 $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm: $(JMRPMSRC)
125         mkdir -p $(RPMROOT)/SOURCES
126         mkdir -p $(RPMROOT)/SPECS
127         mkdir -p $(RPMROOT)/BUILD
128         mkdir -p $(RPMROOT)/RPMS/noarch
129         mkdir -p $(RPMROOT)/SRPMS
130         mkdir -p $(RPMROOT)/db
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 "_mandir /usr/share/man" -ba \
141             $(RPMROOT)/SPECS/$(JMRPMSPEC)
142         touch latest-archive-modified
143
144 #
145 # clean
146 #
147 clean:
148         rm -f *-modified
149         rm -rf $(TMPDIR)
150         $(MAKE) -C admin/cgi/ clean
151         $(MAKE) -C www/ clean
152         $(MAKE) -f Makefile.dist clean
153         rm -rf $(JMRPM_BUILD_ROOT)
154         rm -rf $(RPMROOT)/BUILD/$(DIST)
155         for i in $(JMRPMSRC); do \
156             rm -f $(RPMROOT)/SOURCES/`basename $$i` ; \
157         done
158