OSDN Git Service

Set LANG=C when invoking shell in Makefile.
[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
19 JMVER=0.5
20 JMRELEASE := $(shell env LANG=C date +"%Y%m%d")
21 DIST := man-pages-ja-$(JMRELEASE)
22
23 JMRPMDIST := jman_pages-$(JMVER)-$(JMRELEASE)
24 JMRPMSRC := $(TMPDIR)/$(DIST).tar.gz
25 JMRPMSPEC=jman_pages.spec
26 JMRPM_BUILD_ROOT=$(TMPDIR)/man-pages-ja-root
27
28 #
29 # global rules
30 #
31 periodic: chkcvs roff html web cgi
32
33 all: periodic archive-install 
34
35 #
36 # update check for CVS checkout
37 #
38 chkcvs:
39         $(CHKCVS)
40
41 stamp/cvs-release-modified stamp/cvs-status-modified: chkcvs
42
43 #
44 # roff tree
45 #
46 roff: stamp/www-roff-modified
47
48 stamp/www-roff-modified: stamp/cvs-status-modified
49         @mkdir -p $(WWWROFF)
50         $(RSYNC) -a $(ROFFSRC)/ $(WWWROFF)
51         @mkdir -p $(WWWPOD)
52         $(RSYNC) -a $(PODSRC)/ $(WWWPOD)
53         touch $@
54
55 #
56 # html tree
57 #
58 html: stamp/www-html-modified
59
60 stamp/www-html-modified: stamp/cvs-release-modified
61         -$(RM) -rf $(WWWHTML)
62         mkdir -p $(WWWHTML)
63         $(MKRWWW) $(ROFFSRC) $(WWWHTML) $(MAN2HTML)
64         $(MKPWWW) $(PODSRC) $(WWWHTML) $(POD2HTML)
65         # Remove temporary files generated by pod2html
66         rm -f pod2htmd.tmp pod2htmi.tmp
67         touch $@
68
69 #
70 # web & cgi contents
71 #
72 web:
73         $(MAKE) -C www/\
74                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT) WORKDIR=$(TMPDIR)\
75                 install
76
77 cgi:
78         $(MAKE) -C admin/cgi/\
79                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
80                 install
81
82 #
83 # archive related rules
84 #
85 archive-install: stamp/latest-archive-modified
86         -$(RM) www/man-pages-ja-*.tar.gz www/per-pkg/*.gz
87         -$(RM) www/rpm/*.rpm
88         cp $(TMPDIR)/$(DIST).tar.gz www/
89         mkdir -p www/per-pkg
90         cp $(TMPDIR)/man-pages-ja-*-$(JMRELEASE).tar.gz www/per-pkg
91         mkdir -p www/rpm
92         -cp $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm www/rpm
93         -cp $(RPMROOT)/SRPMS/$(JMRPMDIST).src.rpm www/rpm
94         touch $<
95         make -C www/ DATE=$(JMRELEASE)\
96                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
97                 download.html index.html
98         make -C www/\
99                 WWWROOT=$(WWWROOT) CGIROOT=$(CGIROOT)\
100                 install
101
102 stamp/latest-archive-modified: tarball rpm
103
104 #
105 # tarball
106 #
107 tarball: $(TMPDIR)/$(DIST).tar.gz
108
109 $(TMPDIR)/$(DIST).tar.gz:
110         $(MKDIST) . $(TMPDIR)/$(DIST) $(POD2MAN)
111         $(MAKE) -f Makefile.dist install
112         (cd $(TMPDIR); tar czf $(DIST).tar.gz $(DIST))
113         $(MKSPDIST) $(TMPDIR)/$(DIST)
114         touch stamp/latest-archive-modified
115
116 #
117 # rpm
118 #
119 rpm: $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm
120
121 $(RPMROOT)/RPMS/noarch/$(JMRPMDIST).noarch.rpm: $(JMRPMSRC)
122         mkdir -p $(RPMROOT)/SOURCES
123         mkdir -p $(RPMROOT)/SPECS
124         mkdir -p $(RPMROOT)/BUILD
125         mkdir -p $(RPMROOT)/RPMS/noarch
126         mkdir -p $(RPMROOT)/SRPMS
127         mkdir -p $(RPMROOT)/db
128         mkdir -p $(RPMROOT)/tmp
129         cp $(JMRPMSRC) $(RPMROOT)/SOURCES/
130         sed     -e "s/@@version@@/$(JMVER)/" \
131                 -e "s/@@release@@/$(JMRELEASE)/" \
132                 -e "s%@@buildroot@@%$(JMRPM_BUILD_ROOT)%" \
133             www/rpm/$(JMRPMSPEC) > $(RPMROOT)/SPECS/$(JMRPMSPEC)
134         $(RPM) --dbpath $(RPMROOT)/db --rebuilddb
135         $(RPMB) --define "buildroot $(JMRPM_BUILD_ROOT)" \
136             --dbpath $(RPMROOT)/db \
137             --define "_topdir $(RPMROOT)"  \
138             --define "_tmppath $(RPMROOT)/tmp"  \
139             --define "_mandir /usr/share/man" -ba \
140             $(RPMROOT)/SPECS/$(JMRPMSPEC)
141         touch stamp/latest-archive-modified
142
143 #
144 # clean
145 #
146 clean:  tmpclean
147         rm -f stamp/*-modified
148         $(MAKE) -C admin/cgi/ clean
149         $(MAKE) -C www/ clean
150         $(MAKE) -f Makefile.dist clean
151
152 tmpclean:
153         rm -rf $(TMPDIR)
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)/*