]>
Commit | Line | Data |
---|---|---|
5898af2c DHW |
1 | #!/usr/latest/bin/make -f |
2 | # | |
3 | # Makefile used to three-stage build a tree of source code, usually devo. | |
4 | # | |
5 | ||
6 | # Every invocation of this Makefile needs to have a variable set (host), | |
7 | # which is the named used for ./configure, and also the prefix for the | |
8 | # various files and directories used in a three stage. | |
9 | # | |
10 | ||
11 | ifndef host | |
12 | error: | |
13 | @echo | |
14 | @echo | |
15 | @echo You must set the variable \"host\" to use this Makefile | |
16 | @echo | |
17 | @echo | |
18 | @exit 1 | |
19 | else | |
20 | ||
21 | # | |
22 | # from here to very near the end of the file is the real guts of this | |
23 | # Makefile, and it is not seen if the variable 'host' is not set | |
24 | # | |
25 | ||
26 | TREE := progressive | |
27 | ROOTING := /opt/cygnus-sol2-1.0 | |
28 | CVS_MODULE := progressive-solaris | |
29 | TAG_DATE := 920615 | |
30 | RELEASE_TAG := $(CVS_MODULE)-$(TAG_DATE) | |
31 | release_root := $(ROOTING) | |
32 | ||
33 | TIME := time | |
34 | NICE := nice -17 | |
35 | MF := -w | |
36 | GNUC := gcc -g | |
37 | ||
38 | SHELL := /bin/sh | |
39 | ||
40 | INSTDIR := $(shell pwd)/$(host) | |
41 | PREFIXES := prefix=$(ROOTING) | |
42 | ||
43 | ifdef target | |
44 | arch=$(host)=$(target) | |
45 | endif | |
46 | ||
47 | .PHONY: all | |
48 | all: do1 do2 do3 | |
49 | ||
50 | .PHONY: configuration | |
51 | configuration: $(TREE) $(host)-stamp-stage1-configured | |
52 | ||
53 | .PHONY: comparison | |
54 | comparison: | |
55 | for i in `cd $(host)-objdir.3 ; find . -name \*.o -print` ; do \ | |
56 | cmp $(host)-objdir.2/$$i $(host)-objdir.3/$$i ; \ | |
57 | done | |
58 | ||
59 | .PHONY: clean | |
60 | clean: | |
61 | rm -rf $(host)-$(TREE)-holes $(host)-objdir $(host)-objdir.[123] $(host)-stamp-stage[123]* $(host)-stamp-holes *~ | |
62 | ||
63 | .PHONY: very | |
64 | very: | |
65 | rm -rf $(TREE) | |
66 | ||
67 | $(TREE): | |
68 | $(TIME) cvs co $(CVS_TAG) $(CVS_MODULE) | |
69 | ||
70 | .PHONY: do1 | |
71 | do1: $(host)-$(TREE)-holes $(host)-stamp-stage1 | |
72 | ||
73 | $(host)-stamp-stage1: $(host)-objdir.1 | |
74 | touch $(host)-stamp-stage1 | |
75 | ||
76 | $(host)-objdir.1: $(TREE) $(host)-stamp-stage1-configured | |
77 | (cd $(host)-objdir ; $(TIME) make $(MF) all info host=$(host)) | |
78 | @echo CONFIGURE: make all completed for $(host) | |
79 | (cd $(host)-objdir ; $(TIME) make $(MF) install install-info host=$(host)) | |
80 | @echo CONFIGURE: make install-all completed for $(host) | |
81 | mv $(host)-objdir $(host)-objdir.1 | |
82 | ||
83 | $(host)-stamp-stage1-configured: | |
84 | [ -d $(host)-objdir ] || mkdir $(host)-objdir | |
85 | (cd $(host)-objdir ; \ | |
86 | $(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \ | |
87 | -prefix=$(ROOTING)) | |
88 | touch $@ | |
89 | ||
90 | .PHONY: do2 | |
91 | do2: $(host)-$(TREE)-holes $(host)-stamp-stage2 | |
92 | ||
93 | $(host)-stamp-stage2: $(host)-objdir.2 | |
94 | PATH=$(release_root)/bin:`pwd`/$(host)-$(TREE)-holes ; \ | |
95 | export PATH ; \ | |
96 | echo $$PATH ; \ | |
97 | SHELL=sh ; export SHELL ; \ | |
98 | $(TIME) make $(host)-objdir.2 host=$(host) | |
99 | touch $(host)-stamp-stage2 | |
100 | ||
101 | $(host)-objdir.2: $(TREE) $(host)-stamp-stage2-configured | |
102 | [ -d $(host)-objdir ] || mkdir $(host)-objdir | |
103 | (cd $(host)-objdir ; $(TIME) make $(MF) all info "CC=$(GNUC)" host=$(host)) | |
104 | (cd $(host)-objdir ; $(TIME) make $(MF) $(PREFIXES) install install-info "CC=$(GNUC)" host=$(host)) | |
105 | mv $(host)-objdir $(host)-objdir.2 | |
106 | ||
107 | $(host)-stamp-stage2-configured: | |
108 | [ -d $(host)-objdir ] || mkdir $(host)-objdir | |
109 | (cd $(host)-objdir ; \ | |
110 | $(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \ | |
111 | -prefix=$(ROOTING)) | |
112 | touch $@ | |
113 | ||
114 | .PHONY: do3 | |
115 | do3: $(host)-$(TREE)-holes $(host)-stamp-stage3 | |
116 | ||
117 | $(host)-stamp-stage3: $(host)-objdir.3 | |
118 | PATH=$(release_root)/bin:`pwd`/$(host)-$(TREE)-holes ; \ | |
119 | export PATH ; \ | |
120 | SHELL=sh ; export SHELL ; \ | |
121 | $(TIME) make $(host)-objdir.3 host=$(host) | |
122 | touch $(host)-stamp-stage3 | |
123 | ||
124 | $(host)-objdir.3: $(TREE) $(host)-stamp-stage3-configured | |
125 | [ -d $(host)-objdir ] || mkdir $(host)-objdir | |
126 | (cd $(host)-objdir ; $(TIME) make $(MF) all info "CC=$(GNUC)" host=$(host)) | |
127 | (cd $(host)-objdir ; $(TIME) make $(MF) install-no-fixedincludes install-info "CC=$(GNUC)" host=$(host)) | |
128 | mv $(host)-objdir $(host)-objdir.3 | |
129 | ||
130 | $(host)-stamp-stage3-configured: | |
131 | [ -d $(host)-objdir ] || mkdir $(host)-objdir | |
132 | (cd $(host)-objdir ; \ | |
133 | $(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \ | |
134 | -prefix=$(ROOTING)) | |
135 | touch $@ | |
136 | ||
137 | HOLES := [ \ | |
138 | ar \ | |
139 | as \ | |
140 | awk \ | |
141 | basename \ | |
142 | cat \ | |
143 | cc \ | |
144 | chmod \ | |
145 | cmp \ | |
146 | cp \ | |
147 | date \ | |
148 | echo \ | |
149 | egrep \ | |
150 | ex \ | |
151 | expr \ | |
152 | find \ | |
153 | grep \ | |
154 | hostname \ | |
155 | install \ | |
156 | ld \ | |
157 | lex \ | |
158 | ln \ | |
159 | ls \ | |
160 | mkdir \ | |
161 | mv \ | |
162 | pwd \ | |
163 | ranlib \ | |
164 | rm \ | |
165 | rmdir \ | |
166 | sed \ | |
167 | sh \ | |
168 | sort \ | |
169 | time \ | |
170 | touch \ | |
171 | tr \ | |
172 | true \ | |
173 | whoami | |
174 | ||
175 | PARTIAL_HOLES := \ | |
176 | gcc \ | |
177 | make | |
178 | ||
179 | ||
180 | $(host)-$(TREE)-holes: $(host)-stamp-holes | |
181 | ||
182 | $(host)-stamp-holes: | |
183 | -rm -rf $(host)-$(TREE)-holes | |
184 | -mkdir $(host)-$(TREE)-holes | |
185 | for i in $(HOLES) ; do \ | |
186 | if [ -x $(host)-$(TREE)-holes/$$i ] ; then \ | |
187 | echo "$$i already present" ; \ | |
188 | else if [ -x /bin/$$i ] ; then \ | |
189 | cp /bin/$$i $(host)-$(TREE)-holes ; \ | |
190 | echo $$i from /bin ; \ | |
191 | else if [ -x /usr/bin/$$i ] ; then \ | |
192 | cp /usr/bin/$$i $(host)-$(TREE)-holes ; \ | |
193 | echo $$i from /usr/bin ; \ | |
194 | else if [ -x /usr/ccs/bin/$$i ] ; then \ | |
195 | cp /usr/ccs/bin/$$i $(host)-$(TREE)-holes ; \ | |
196 | echo $$i from /usr/ccs/bin ; \ | |
197 | else if [ -x /usr/unsupported/bin/$$i ] ; then \ | |
198 | cp /usr/unsupported/bin/$$i $(host)-$(TREE)-holes ; \ | |
199 | echo $$i from /usr/unsupported/bin ; \ | |
200 | else \ | |
201 | echo $$i is NOT found ; \ | |
202 | fi; fi ; fi ; fi ; fi ; true ; \ | |
203 | done | |
204 | for i in $(PARTIAL_HOLES) ; do \ | |
205 | if [ -x /usr/latest/bin/$$i ] ; then \ | |
206 | cp /usr/latest/bin/$$i $(host)-$(TREE)-holes ; \ | |
207 | echo $$i from /usr/latest/bin ; \ | |
208 | else if [ -x /usr/unsupported/bin/$$i ] ; then \ | |
209 | cp /usr/unsupported/bin/$$i $(host)-$(TREE)-holes ; \ | |
210 | echo $$i from /usr/unsupported/bin ; \ | |
211 | fi; fi; \ | |
212 | done | |
213 | touch $(host)-stamp-holes | |
214 | ||
215 | force: | |
216 | ||
217 | endif # host | |
218 | ||
219 | ### Local Variables: | |
220 | ### fill-column: 131 | |
221 | ### End: | |
222 |