]>
Commit | Line | Data |
---|---|---|
c12d9b4c RP |
1 | ### |
2 | ### Makefile used to three-stage build a tree of source code. Also used to | |
3 | ### compile other bundles, first with cc, then with gcc. | |
4 | ### | |
5 | ||
5ba00487 DZ |
6 | ### |
7 | ### USE OF THIS FILE REQUIRES GNU MAKE!!! | |
8 | ### | |
9 | ||
10 | ### The first versions of the file were written by Rich Pixley ([email protected]). | |
11 | ### Many subsequent additions (and current maintainance by) david d `zoo' zuhn, | |
12 | ### ([email protected]). | |
c12d9b4c RP |
13 | |
14 | ### Every invocation of this Makefile needs to have a variable set (host), | |
15 | ### which is the named used for ./configure, and also the prefix for the | |
16 | ### various files and directories used in a three stage. | |
17 | ||
35eae2d8 ILT |
18 | ### The variable target may be set for the target of a cross-compilation. |
19 | ||
20 | ### The variable build may be to build a tree on a machine other than the host. | |
21 | ||
c12d9b4c | 22 | ifndef host |
5ba00487 DZ |
23 | error: |
24 | @echo You must set the variable \"host\" to use this Makefile ; exit 1 | |
c12d9b4c RP |
25 | else |
26 | ||
27 | ### from here to very near the end of the file is the real guts of this | |
28 | ### Makefile, and it is not seen if the variable 'host' is not set | |
29 | ||
c12d9b4c | 30 | ### from which cvs tree are we working? |
8b510607 | 31 | TREE := devo |
c12d9b4c | 32 | |
7f0d689a | 33 | include $(TREE)/release-info |
c12d9b4c | 34 | |
3066e752 KC |
35 | # Set TIME to time to get timings. Not done by default because time |
36 | # ignores the exit status. | |
37 | TIME := | |
c12d9b4c | 38 | |
c8f1aa31 | 39 | CONFIG_SHELL := |
3066e752 | 40 | GCC := $(host)-gcc -O2 |
301c3fef | 41 | GNUC := CC="$(GCC)" |
5ba00487 | 42 | CFLAGS := -g |
3066e752 | 43 | CXXFLAGS := -g -O2 |
5ba00487 | 44 | GNU_MAKE := /usr/latest/bin/make -w |
04a59f79 | 45 | MAKEINFOFLAGS := |
c12d9b4c | 46 | |
c8f1aa31 | 47 | override MAKE := make -w |
5ba00487 DZ |
48 | override MFLAGS := |
49 | #override MAKEFLAGS := | |
c12d9b4c | 50 | |
5ba00487 | 51 | SHELL := /bin/sh |
c12d9b4c | 52 | |
04a59f79 DZ |
53 | ifndef build |
54 | build := $(host) | |
55 | endif | |
56 | ||
57 | ifndef target | |
58 | target := $(host) | |
59 | endif | |
60 | ||
8456a631 KC |
61 | ifeq ($(patsubst %-lynx,lynx,$(host)),lynx) |
62 | SHELL := /bin/bash | |
63 | GNU_MAKE := $(MAKE) | |
64 | CONFIG_SHELL := /bin/bash | |
65 | endif | |
66 | ||
3066e752 KC |
67 | ifeq ($(patsubst %-m68k-hp-hpux,m68k-hp-hpux,$(host)),m68k-hp-hpux) |
68 | SHELL := /usr/unsupported/bin/bash | |
69 | GNU_MAKE := $(MAKE) | |
70 | CONFIG_SHELL := /usr/unsupported/bin/bash | |
71 | endif | |
72 | ||
04a59f79 | 73 | ifneq ($(build),$(host)) |
35eae2d8 ILT |
74 | |
75 | # We are building on a machine other than the host. We rely upon | |
76 | # previously built cross-compilers from the build machine to the host | |
77 | # (used to build the executables) and from the build machine to the | |
78 | # target (used to build the libraries). | |
79 | ||
80 | AR := $(host)-ar | |
81 | AR_FOR_TARGET := $(target)-ar | |
82 | AS := $(host)-as | |
83 | AS_FOR_TARGET := $(target)-as | |
c8f1aa31 | 84 | BISON := byacc |
35eae2d8 ILT |
85 | CC := $(host)-gcc |
86 | CC_FOR_BUILD := gcc | |
87 | CC_FOR_TARGET := $(target)-gcc | |
3066e752 KC |
88 | CXX := $(host)-gcc |
89 | CXX_FOR_TARGET := $(target)-gcc | |
90 | GCC := $(host)-gcc -O2 | |
35eae2d8 ILT |
91 | GXX := $(host)-g++ |
92 | GXX_FOR_TARGET := $(target)-g++ | |
93 | HOST_PREFIX := $(build)- | |
94 | HOST_PREFIX_1 := $(build)- | |
c8f1aa31 | 95 | LEX := flex |
35eae2d8 | 96 | MAKEINFO := makeinfo |
8456a631 | 97 | MUNCH_NM := $(host)-nm |
35eae2d8 ILT |
98 | NM := $(host)-nm |
99 | NM_FOR_TARGET := $(target)-nm | |
100 | RANLIB := $(host)-ranlib | |
101 | RANLIB_FOR_TARGET := $(target)-ranlib | |
c8f1aa31 ME |
102 | YACC := $(BISON) |
103 | ||
8456a631 KC |
104 | ifeq ($(host),i386-go32) |
105 | MAKEINFOFLAGS = --no-split | |
c8f1aa31 | 106 | endif |
35eae2d8 ILT |
107 | |
108 | FLAGS_TO_PASS := \ | |
109 | "AR=$(AR)" \ | |
110 | "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ | |
111 | "AS=$(AS)" \ | |
112 | "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ | |
c8f1aa31 | 113 | "BISON=$(BISON)" \ |
35eae2d8 ILT |
114 | "CC=$(CC)" \ |
115 | "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ | |
116 | "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ | |
117 | "CXX=$(CXX)" \ | |
118 | "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ | |
119 | "CFLAGS=$(CFLAGS)" \ | |
04a59f79 | 120 | "CXXFLAGS=$(CXXFLAGS)" \ |
35eae2d8 ILT |
121 | "GCC=$(GCC)" \ |
122 | "HOST_PREFIX=$(HOST_PREFIX)" \ | |
123 | "HOST_PREFIX_1=$(HOST_PREFIX_1)" \ | |
c8f1aa31 | 124 | "LEX=$(LEX)" \ |
35eae2d8 | 125 | "MAKEINFO=$(MAKEINFO)" \ |
04a59f79 | 126 | "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \ |
35eae2d8 | 127 | "MF=$(MF)" \ |
8456a631 | 128 | "MUNCH_NM=$(MUNCH_NM)" \ |
35eae2d8 ILT |
129 | "NM=$(NM)" \ |
130 | "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ | |
131 | "RANLIB=$(RANLIB)" \ | |
132 | "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \ | |
133 | "RELEASE_TAG=$(RELEASE_TAG)" \ | |
c8f1aa31 | 134 | "RUNTEST=$(relbindir)/runtest" \ |
fb682d69 | 135 | "SHELL=$(SHELL)" \ |
35eae2d8 | 136 | "TIME=$(TIME)" \ |
c8f1aa31 | 137 | "YACC=$(YACC)" \ |
35eae2d8 ILT |
138 | "build=$(build)" \ |
139 | "host=$(host)" | |
140 | ||
141 | # We must pass the build cross host tools in the environment of | |
142 | # configure, so that autoconf scripts will run the right programs. | |
143 | configenv := AR="$(AR)" CC="$(CC)" RANLIB="$(RANLIB)" | |
144 | ||
145 | else | |
146 | ||
147 | # This is a normal build on the host machine. | |
148 | ||
c12d9b4c RP |
149 | FLAGS_TO_PASS := \ |
150 | "GCC=$(GCC)" \ | |
5ba00487 | 151 | "CFLAGS=$(CFLAGS)" \ |
04a59f79 | 152 | "CXXFLAGS=$(CXXFLAGS)" \ |
c12d9b4c | 153 | "TIME=$(TIME)" \ |
04a59f79 | 154 | "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \ |
5ba00487 | 155 | "MF=$(MF)" \ |
12eda620 | 156 | "host=$(host)" \ |
8456a631 KC |
157 | "RELEASE_TAG=$(RELEASE_TAG)" \ |
158 | "SHELL=$(SHELL)" | |
5ba00487 | 159 | |
c8f1aa31 ME |
160 | configenv := |
161 | ||
301482c7 DZ |
162 | endif |
163 | ||
c8f1aa31 ME |
164 | #### we need to change the default C compiler for some hosts |
165 | ifeq ($(host),sparc-sun-solaris2) | |
166 | CC := cc -Xs | |
167 | endif | |
168 | ||
169 | ifeq ($(host),mips-sgi-irix4) | |
60430a46 | 170 | CC := cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 |
c8f1aa31 | 171 | endif |
35eae2d8 | 172 | |
3066e752 KC |
173 | ifeq ($(host),hppa1.1-hp-hpux) |
174 | CC := cc -Wp,-H256000 | |
175 | endif | |
176 | ||
177 | ifeq ($(host),mips-mips-riscos5sysv) | |
c8f1aa31 ME |
178 | CC := cc -non_shared -systype sysv |
179 | endif | |
180 | ||
181 | ifeq ($(host),mips-dec-ultrix) | |
182 | CC := cc -Wf,-XNg1000 | |
183 | endif | |
184 | ||
185 | ifeq ($(host),m68k-sun-sunos4.1.1) | |
186 | CC := cc -J | |
187 | endif | |
188 | ||
60430a46 JW |
189 | # We want to use stabs for MIPS targets. |
190 | ifeq ($(target),mips-idt-ecoff) | |
191 | configargs = -with-stabs | |
192 | endif | |
193 | ||
194 | ifeq ($(target),mips-dec-ultrix) | |
195 | configargs = -with-stabs | |
196 | endif | |
197 | ||
198 | ifeq ($(target),mips-sgi-irix4) | |
199 | configargs = -with-stabs | |
200 | endif | |
201 | ||
3066e752 KC |
202 | ifeq ($(target),mips-sgi-irix5.2) |
203 | configargs = -with-stabs | |
204 | endif | |
205 | ||
206 | ifeq ($(target),alpha-dec-osf1.3) | |
207 | configargs = -with-stabs | |
208 | endif | |
209 | ||
60430a46 JW |
210 | # We must use stabs for SVR4 targets. |
211 | ifeq ($(target),i386-sysv4.2) | |
212 | configargs = -with-stabs | |
213 | endif | |
214 | ||
c8f1aa31 ME |
215 | ifneq ($(CC), 'cc') |
216 | FLAGS_TO_PASS := "CC=$(CC)" $(FLAGS_TO_PASS) | |
35eae2d8 ILT |
217 | endif |
218 | ||
60430a46 JW |
219 | #### and on some, we need CONFIG_SHELL |
220 | ifeq ($(patsubst %-lynxos,lynxos,$(host)),lynxos) | |
221 | FLAGS_TO_PASS := "CONFIG_SHELL=$(CONFIG_SHELL)" $(FLAGS_TO_PASS) | |
222 | endif | |
223 | ||
35eae2d8 | 224 | # These are the prefixes used for Cygnus builds. |
43ba04b1 | 225 | prefixes = --prefix=$(release_root) --exec-prefix=$(release_root)/H-$(host) |
5ba00487 | 226 | |
c8f1aa31 | 227 | relbindir = $(release_root)/H-$(build)/bin |
c12d9b4c RP |
228 | |
229 | ### general config stuff | |
5ba00487 DZ |
230 | WORKING_DIR := $(host)-objdir |
231 | STAGE1DIR := $(WORKING_DIR).1 | |
232 | STAGE2DIR := $(WORKING_DIR).2 | |
233 | STAGE3DIR := $(WORKING_DIR).3 | |
c8f1aa31 | 234 | STAGE4DIR := $(WORKING_DIR).4 |
5ba00487 | 235 | INPLACEDIR := $(host)-in-place |
35eae2d8 ILT |
236 | |
237 | # Arrange to find the needed programs. If we are building on a | |
238 | # machine other than the host, we must find the cross-compilers. | |
239 | ||
04a59f79 | 240 | ifneq ($(build),$(host)) |
35eae2d8 ILT |
241 | |
242 | holesys := $(build) | |
243 | HOLESSTAMP := $(holesys)-stamp-holes $(build)-x-$(host)-stamp-holes $(build)-x-$(target)-stamp-holes | |
244 | HOLESDIR := $(holesys)-holes | |
245 | BUILD_HOST_HOLES_DIR := $(build)-x-$(host)-holes | |
246 | BUILD_TARGET_HOLES_DIR := $(build)-x-$(target)-holes | |
247 | ||
fb682d69 ME |
248 | SET_NATIVE_HOLES := SHELL=$(SHELL) ; PATH=`pwd`/$(HOLESDIR):`pwd`/$(BUILD_HOST_HOLES_DIR):`pwd`/$(BUILD_TARGET_HOLES_DIR) ; export PATH ; export SHELL ; |
249 | SET_CYGNUS_PATH := SHELL=$(SHELL) ; PATH=`pwd`/$(HOLESDIR):`pwd`/$(BUILD_HOST_HOLES_DIR):`pwd`/$(BUILD_TARGET_HOLES_DIR) ; export PATH ; export SHELL ; | |
250 | SET_LATEST_PATH := SHELL=$(SHELL) ; PATH=/usr/latest/bin:`pwd`/$(HOLESDIR):`pwd`/$(BUILD_HOST_HOLES_DIR):`pwd`/$(BUILD_TARGET_HOLES_DIR) ; export PATH ; export SHELL ; | |
35eae2d8 ILT |
251 | |
252 | else | |
253 | ||
254 | holesys := $(host) | |
255 | HOLESSTAMP := $(holesys)-stamp-holes | |
256 | HOLESDIR := $(holesys)-holes | |
c12d9b4c | 257 | |
fb682d69 ME |
258 | SET_NATIVE_HOLES := SHELL=$(SHELL) ; PATH=`pwd`/$(HOLESDIR) ; export PATH ; export SHELL ; |
259 | SET_CYGNUS_PATH := SHELL=$(SHELL) ; PATH=$(relbindir):`pwd`/$(HOLESDIR) ; export PATH ; export SHELL ; | |
260 | SET_LATEST_PATH := SHELL=$(SHELL) ; PATH=/usr/latest/bin:`pwd`/$(HOLESDIR) ; export PATH ; export SHELL ; | |
41a88234 | 261 | |
35eae2d8 | 262 | endif |
41a88234 | 263 | |
c12d9b4c | 264 | .PHONY: all |
04a59f79 | 265 | ifneq ($(target),$(host)) |
5ba00487 DZ |
266 | ## |
267 | ## This is a cross compilation | |
268 | ## | |
269 | arch = $(host)-x-$(target) | |
35eae2d8 | 270 | config = -host=$(host) -target=$(target) |
5ba00487 DZ |
271 | FLAGS_TO_PASS := $(FLAGS_TO_PASS) "target=$(target)" |
272 | ||
3066e752 KC |
273 | ifeq ($(patsubst %-lynx,lynx,$(target)),lynx) |
274 | configargs := $(configargs) --with-headers=/s1/cygnus/dejagnu/$(target)/include \ | |
275 | --with-libs=/s1/cygnus/dejagnu/$(target)/lib | |
276 | endif | |
277 | ||
278 | ifeq ($(patsubst %-i386-sysv4.2,i386-sysv4.2,$(target)),i386-sysv4.2) | |
279 | configargs := $(configargs) --with-headers=/s1/cygnus/dejagnu/$(target)/include \ | |
280 | --with-libs=/s1/cygnus/dejagnu/$(target)/lib | |
281 | endif | |
282 | ||
283 | ifeq ($(patsubst %-sparc-sun-sunos4.1.3,sparc-sun-sunos4.1.3,$(target)),sparc-sun-sunos4.1.3) | |
284 | configargs := $(configargs) --with-headers=/s1/cygnus/dejagnu/$(target)/include \ | |
285 | --with-libs=/s1/cygnus/dejagnu/$(target)/lib | |
286 | endif | |
287 | ||
288 | ifeq ($(patsubst %-sparc-sun-solaris2,sparc-sun-solaris2,$(target)),sparc-sun-solaris2) | |
289 | configargs := $(configargs) --with-headers=/s1/cygnus/dejagnu/$(target)/include \ | |
290 | --with-libs=/s1/cygnus/dejagnu/$(target)/lib | |
291 | endif | |
292 | ||
04a59f79 | 293 | ifneq ($(build),$(host)) |
35eae2d8 ILT |
294 | all: do-cygnus do-latest |
295 | build-all: build-cygnus build-latest | |
296 | else | |
5ba00487 DZ |
297 | all: do-native do-latest |
298 | build-all: build-native build-latest | |
35eae2d8 ILT |
299 | endif |
300 | ||
5ba00487 DZ |
301 | |
302 | else | |
303 | ## | |
304 | ## This is a native compilation | |
305 | ## | |
301c3fef | 306 | arch = $(host) |
35eae2d8 | 307 | config = -host=$(host) |
04a59f79 | 308 | ifneq ($(build),$(host)) |
35eae2d8 ILT |
309 | all: do-cygnus do-latest |
310 | else | |
5ba00487 | 311 | all: $(host)-stamp-3stage-done |
35eae2d8 | 312 | endif |
5ba00487 | 313 | #all: in-place do1 do2 do3 comparison |
35eae2d8 | 314 | |
5ba00487 DZ |
315 | endif |
316 | ||
301c3fef DZ |
317 | NATIVEDIR := $(arch)-native-objdir |
318 | CYGNUSDIR := $(arch)-cygnus-objdir | |
319 | LATESTDIR := $(arch)-latest-objdir | |
c8f1aa31 | 320 | DOSDIR := dos-x-$(target)-objdir |
301c3fef | 321 | |
5ba00487 DZ |
322 | everything: do-cross |
323 | #everything: in-place do1 do2 do3 comparison do-cygnus | |
324 | ||
c8f1aa31 ME |
325 | .PHONY: dos |
326 | dos: | |
327 | $(MAKE) -f test-build.mk CFLAGS= build=$(host) host=i386-go32 target=$(target) do-dos | |
328 | dos-path: | |
329 | $(MAKE) -f test-build.mk CFLAGS= build=$(host) host=i386-go32 target=$(target) path-dos | |
330 | ||
331 | .PHONY: do-dos | |
332 | do-dos: $(HOLESSTAMP) dos-x-$(target)-stamp-done | |
333 | build-dos: $(HOLESSTAMP) dos-x-$(target)-stamp-dos-checked | |
334 | config-dos: $(HOLESSTAMP) dos-x-$(target)-stamp-dos-configured | |
335 | path-dos: | |
336 | @echo "$(SET_CYGNUS_PATH)" | |
337 | ||
338 | dos-x-$(target)-stamp-done: | |
339 | [ -f $(relbindir)/$(host)-gcc ] || (echo "must have gcc available"; exit 1) | |
340 | $(SET_CYGNUS_PATH) $(TIME) $(GNU_MAKE) -f test-build.mk dos-x-$(target)-stamp-installed $(FLAGS_TO_PASS) | |
341 | if [ -f CLEAN_ALL -o -f CLEAN_CROSSES ] ; then rm -rf $(DOSDIR) ; else true ; fi | |
342 | touch $@ | |
343 | ||
344 | dos-x-$(target)-stamp-installed: $(HOLESSTAMP) dos-x-$(target)-stamp-intermediate | |
345 | [ -d dos-x-$(target)-installed ] || mkdir dos-x-$(target)-installed | |
346 | $(SET_CYGNUS_PATH) $(TREE)/release/mkdosrel dos-x-$(target)-intermediate \ | |
347 | dos-x-$(target)-installed $(target) | |
348 | # (cd dos-x-$(target)-installed; find . -print | $(TREE)/release/make8.3) | |
349 | touch $@ | |
350 | ||
351 | dos-x-$(target)-stamp-intermediate: $(HOLESSTAMP) dos-x-$(target)-stamp-dos-checked | |
352 | [ -d dos-x-$(target)-intermediate ] || mkdir dos-x-$(target)-intermediate | |
353 | dir=`pwd` ; export dir ; \ | |
354 | $(SET_CYGNUS_PATH) cd $(DOSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) \ | |
355 | prefix=$$dir/dos-x-$(target)-intermediate install install-info | |
356 | touch $@ | |
357 | ||
358 | dos-x-$(target)-stamp-dos-checked: $(HOLESSTAMP) dos-x-$(target)-stamp-dos-built | |
359 | # cd $(DOSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) check | |
360 | touch $@ | |
361 | ||
362 | dos-x-$(target)-stamp-dos-built: $(HOLESSTAMP) dos-x-$(target)-stamp-dos-configured | |
363 | $(SET_CYGNUS_PATH) cd $(DOSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) all info | |
364 | touch $@ | |
365 | ||
366 | dos-x-$(target)-stamp-dos-configured: $(HOLESSTAMP) | |
367 | [ -d $(DOSDIR) ] || mkdir $(DOSDIR) | |
368 | $(SET_CYGNUS_PATH) cd $(DOSDIR) ; $(GNUC) $(configenv) $(TIME) $(CONFIG_SHELL) \ | |
369 | ../$(TREE)/configure $(config) -v --srcdir=../$(TREE) --prefix=/cygnus \ | |
370 | --program-transform-name='' $(configargs) | |
371 | touch $@ | |
372 | ||
373 | ||
374 | ||
375 | ||
5ba00487 | 376 | .PHONY: do-native |
35eae2d8 | 377 | do-native: $(HOLESSTAMP) $(arch)-stamp-native |
5ba00487 | 378 | do-native-config: $(arch)-stamp-native-configured |
35eae2d8 ILT |
379 | build-native: $(HOLESSTAMP) $(arch)-stamp-native-checked |
380 | config-native: $(HOLESSTAMP) $(arch)-stamp-native-configured | |
5ba00487 | 381 | |
35eae2d8 | 382 | $(arch)-stamp-native: $(HOLESSTAMP) |
301482c7 | 383 | $(SET_NATIVE_HOLES) $(TIME) $(GNU_MAKE) -f test-build.mk $(arch)-stamp-native-installed $(FLAGS_TO_PASS) |
c8f1aa31 | 384 | if [ -f CLEAN_ALL -o -f CLEAN_CROSSES ] ; then rm -rf $(NATIVEDIR) ; else true ; fi |
5ba00487 DZ |
385 | touch $(arch)-stamp-native |
386 | ||
35eae2d8 | 387 | $(arch)-stamp-native-installed: $(HOLESSTAMP) $(arch)-stamp-native-checked |
301482c7 DZ |
388 | $(SET_NATIVE_HOLES) cd $(NATIVEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) install |
389 | $(SET_NATIVE_HOLES) cd $(NATIVEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) install-info | |
5ba00487 DZ |
390 | touch $@ |
391 | ||
392 | $(arch)-stamp-native-checked: $(arch)-stamp-native-built | |
393 | # cd $(NATIVEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) check | |
394 | touch $@ | |
395 | ||
35eae2d8 | 396 | $(arch)-stamp-native-built: $(HOLESSTAMP) $(arch)-stamp-native-configured |
301482c7 DZ |
397 | $(SET_NATIVE_HOLES) cd $(NATIVEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) all |
398 | $(SET_NATIVE_HOLES) cd $(NATIVEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) info | |
5ba00487 DZ |
399 | touch $@ |
400 | ||
35eae2d8 | 401 | $(arch)-stamp-native-configured: $(HOLESSTAMP) |
5ba00487 | 402 | [ -d $(NATIVEDIR) ] || mkdir $(NATIVEDIR) |
c8f1aa31 | 403 | $(SET_NATIVE_HOLES) cd $(NATIVEDIR) ; $(configenv) CC="$(CC)" $(TIME) $(CONFIG_SHELL) ../$(TREE)/configure $(config) -v --srcdir=../$(TREE) $(prefixes) $(configargs) |
5ba00487 DZ |
404 | touch $@ |
405 | ||
406 | ||
407 | .PHONY: do-cygnus | |
35eae2d8 ILT |
408 | do-cygnus: $(HOLESSTAMP) $(arch)-stamp-cygnus |
409 | build-cygnus: $(HOLESSTAMP) $(arch)-stamp-cygnus-checked | |
410 | config-cygnus: $(HOLESSTAMP) $(arch)-stamp-cygnus-configured | |
c8f1aa31 ME |
411 | path-cygnus: |
412 | $(SET_CYGNUS_PATH) echo $$PATH | |
5ba00487 | 413 | |
04a59f79 DZ |
414 | vault-cygnus: $(HOLESSTAMP) $(arch)-stamp-cygnus-built |
415 | $(SET_CYGNUS_PATH) cd $(CYGNUSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) vault-install | |
416 | ||
417 | ||
5ba00487 | 418 | $(arch)-stamp-cygnus: |
04a59f79 | 419 | [ -f $(relbindir)/$(host)-gcc ] || (echo "must have gcc available"; exit 1) |
41a88234 | 420 | $(SET_CYGNUS_PATH) $(TIME) $(GNU_MAKE) -f test-build.mk $(arch)-stamp-cygnus-installed $(FLAGS_TO_PASS) |
c8f1aa31 | 421 | if [ -f CLEAN_ALL -o -f CLEAN_CROSSES ] ; then rm -rf $(CYGNUSDIR) ; else true ; fi |
5ba00487 DZ |
422 | touch $(arch)-stamp-cygnus |
423 | ||
35eae2d8 | 424 | $(arch)-stamp-cygnus-installed: $(HOLESSTAMP) $(arch)-stamp-cygnus-checked |
41a88234 ILT |
425 | $(SET_CYGNUS_PATH) cd $(CYGNUSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) install |
426 | $(SET_CYGNUS_PATH) cd $(CYGNUSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) install-info | |
c8f1aa31 ME |
427 | if [ -f VAULT-INSTALL ] ; then \ |
428 | $(SET_CYGNUS_PATH) cd $(CYGNUSDIR) ; $(MAKE) $(FLAGS_TO_PASS) $(GNUC) vault-install ; \ | |
60430a46 | 429 | else true ; fi |
5ba00487 DZ |
430 | touch $@ |
431 | ||
35eae2d8 | 432 | $(arch)-stamp-cygnus-checked: $(HOLESSTAMP) $(arch)-stamp-cygnus-built |
5ba00487 DZ |
433 | # cd $(CYGNUSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) check |
434 | touch $@ | |
435 | ||
35eae2d8 | 436 | $(arch)-stamp-cygnus-built: $(HOLESSTAMP) $(arch)-stamp-cygnus-configured |
41a88234 ILT |
437 | $(SET_CYGNUS_PATH) cd $(CYGNUSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) all |
438 | $(SET_CYGNUS_PATH) cd $(CYGNUSDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) info | |
5ba00487 DZ |
439 | touch $@ |
440 | ||
35eae2d8 | 441 | $(arch)-stamp-cygnus-configured: $(HOLESSTAMP) |
5ba00487 | 442 | [ -d $(CYGNUSDIR) ] || mkdir $(CYGNUSDIR) |
c8f1aa31 | 443 | $(SET_CYGNUS_PATH) cd $(CYGNUSDIR) ; $(configenv) $(GNUC) $(TIME) $(CONFIG_SHELL) ../$(TREE)/configure $(config) -v --srcdir=../$(TREE) $(prefixes) $(configargs) |
5ba00487 DZ |
444 | touch $@ |
445 | ||
446 | .PHONY: do-latest | |
35eae2d8 ILT |
447 | do-latest: $(HOLESSTAMP) $(arch)-stamp-latest |
448 | build-latest: $(HOLESSTAMP) $(arch)-stamp-latest-checked | |
5ba00487 DZ |
449 | |
450 | $(arch)-stamp-latest: | |
41a88234 | 451 | $(SET_LATEST_PATH) $(TIME) $(GNU_MAKE) -f test-build.mk $(arch)-stamp-latest-installed $(FLAGS_TO_PASS) |
5ba00487 DZ |
452 | touch $(arch)-stamp-latest |
453 | ||
35eae2d8 | 454 | $(arch)-stamp-latest-installed: $(HOLESSTAMP) $(arch)-stamp-latest-checked |
41a88234 ILT |
455 | $(SET_LATEST_PATH) cd $(LATESTDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) install |
456 | $(SET_LATEST_PATH) cd $(LATESTDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) install-info | |
5ba00487 DZ |
457 | touch $@ |
458 | ||
459 | $(arch)-stamp-latest-checked: $(arch)-stamp-latest-built | |
41a88234 | 460 | # $(SET_LATEST_PATH) cd $(LATESTDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) check |
5ba00487 DZ |
461 | touch $@ |
462 | ||
463 | $(arch)-stamp-latest-built: $(arch)-stamp-latest-configured | |
41a88234 ILT |
464 | $(SET_LATEST_PATH) cd $(LATESTDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) all |
465 | $(SET_LATEST_PATH) cd $(LATESTDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) $(GNUC) info | |
5ba00487 DZ |
466 | touch $@ |
467 | ||
468 | $(arch)-stamp-latest-configured: | |
469 | [ -d $(LATESTDIR) ] || mkdir $(LATESTDIR) | |
c8f1aa31 | 470 | $(SET_LATEST_PATH) cd $(LATESTDIR) ; $(configenv) $(GNUC) $(TIME) $(CONFIG_SHELL) ../$(TREE)/configure $(config) -v --srcdir=../$(TREE) $(prefixes) $(configargs) |
5ba00487 DZ |
471 | touch $@ |
472 | ||
7bea9148 RP |
473 | |
474 | .PHONY: in-place | |
475 | in-place: $(host)-stamp-in-place | |
476 | ||
5ba00487 | 477 | $(host)-stamp-in-place: |
7bea9148 | 478 | PATH=/bin:/usr/bin:/usr/ucb ; \ |
5ba00487 DZ |
479 | export PATH ; \ |
480 | SHELL=/bin/sh ; export SHELL ; \ | |
481 | $(TIME) $(GNU_MAKE) -f test-build.mk $(host)-stamp-in-place-installed host=$(host) $(FLAGS_TO_PASS) | |
7bea9148 | 482 | touch $@ |
5ba00487 DZ |
483 | if [ -f CLEAN_ALL ] ; then \ |
484 | rm -rf $(INPLACEDIR) ; \ | |
485 | else \ | |
486 | mv $(INPLACEDIR) $(STAGE1DIR) ; \ | |
487 | fi | |
7bea9148 RP |
488 | |
489 | $(host)-stamp-in-place-installed: $(host)-stamp-in-place-checked | |
41a88234 ILT |
490 | cd $(INPLACEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" install host=$(host) |
491 | cd $(INPLACEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" install-info host=$(host) | |
7bea9148 RP |
492 | touch $@ |
493 | ||
494 | $(host)-stamp-in-place-checked: $(host)-stamp-in-place-built | |
41a88234 | 495 | # cd $(INPLACEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" check host=$(host) |
7bea9148 RP |
496 | touch $@ |
497 | ||
498 | $(host)-stamp-in-place-built: $(host)-stamp-in-place-configured | |
41a88234 ILT |
499 | cd $(INPLACEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" all host=$(host) |
500 | cd $(INPLACEDIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" info host=$(host) | |
7bea9148 RP |
501 | touch $@ |
502 | ||
503 | $(host)-stamp-in-place-configured: $(host)-stamp-in-place-cp | |
c8f1aa31 | 504 | cd $(INPLACEDIR) ; $(configenv) CC="$(CC)" $(TIME) $(CONFIG_SHELL) ./configure $(config) -v $(prefixes) $(configargs) |
7bea9148 RP |
505 | touch $@ |
506 | ||
507 | $(host)-stamp-in-place-cp: | |
508 | rm -rf $(INPLACEDIR) | |
509 | mkdir $(INPLACEDIR) | |
510 | (cd $(TREE) ; tar cf - .) | (cd $(INPLACEDIR) ; tar xf -) | |
511 | touch $@ | |
c12d9b4c | 512 | |
5ba00487 DZ |
513 | $(host)-stamp-3stage-done: do1 do2 do3 comparison |
514 | touch $@ | |
515 | ||
516 | ||
c12d9b4c | 517 | .PHONY: do1 |
35eae2d8 ILT |
518 | do1: $(HOLESSTAMP) $(host)-stamp-stage1 |
519 | do1-config: $(HOLESSTAMP) $(host)-stamp-stage1-configured | |
520 | do1-build: $(HOLESSTAMP) $(host)-stamp-stage1-checked | |
c12d9b4c | 521 | |
04a59f79 DZ |
522 | do1-vault: $(HOLESSTAMP) $(host)-stamp-stage1-built |
523 | if [ -d $(WORKING_DIR).1 ] ; then \ | |
524 | $(SET_NATIVE_HOLES) cd $(WORKING_DIR).1 ; $(MAKE) $(FLAGS_TO_PASS) host=$(host) "CFLAGS=$(CFLAGS)" vault-install ; \ | |
525 | else \ | |
526 | $(SET_NATIVE_HOLES) cd $(WORKING_DIR) ; $(MAKE) $(FLAGS_TO_PASS) host=$(host) "CFLAGS=$(CFLAGS)" vault-install ; \ | |
527 | fi | |
528 | ||
c12d9b4c RP |
529 | $(host)-stamp-stage1: |
530 | if [ -d $(STAGE1DIR) ] ; then \ | |
531 | mv $(STAGE1DIR) $(WORKING_DIR) ; \ | |
532 | else \ | |
533 | true ; \ | |
534 | fi | |
301482c7 | 535 | $(SET_NATIVE_HOLES) $(TIME) $(GNU_MAKE) -f test-build.mk $(FLAGS_TO_PASS) host=$(host) $(host)-stamp-stage1-installed |
7bea9148 | 536 | touch $@ |
5ba00487 DZ |
537 | if [ -f CLEAN_ALL ] ; then \ |
538 | rm -rf $(WORKING_DIR) ; \ | |
539 | else \ | |
540 | mv $(WORKING_DIR) $(STAGE1DIR) ; \ | |
541 | fi | |
c12d9b4c RP |
542 | |
543 | $(host)-stamp-stage1-installed: $(host)-stamp-stage1-checked | |
301482c7 DZ |
544 | $(SET_NATIVE_HOLES) cd $(WORKING_DIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" install host=$(host) |
545 | $(SET_NATIVE_HOLES) cd $(WORKING_DIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" install-info host=$(host) | |
fdfa2371 | 546 | ifeq ($(host),rs6000-ibm-aix) |
35eae2d8 | 547 | -rm $(relbindir)/make |
fdfa2371 | 548 | endif |
c12d9b4c RP |
549 | touch $@ |
550 | ||
551 | $(host)-stamp-stage1-checked: $(host)-stamp-stage1-built | |
301482c7 | 552 | # $(SET_NATIVE_HOLES) cd $(WORKING_DIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" check host=$(host) |
c12d9b4c RP |
553 | touch $@ |
554 | ||
555 | $(host)-stamp-stage1-built: $(host)-stamp-stage1-configured | |
301482c7 DZ |
556 | $(SET_NATIVE_HOLES) cd $(WORKING_DIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" all host=$(host) |
557 | $(SET_NATIVE_HOLES) cd $(WORKING_DIR) ; $(TIME) $(MAKE) $(FLAGS_TO_PASS) "CFLAGS=$(CFLAGS)" info host=$(host) | |
c12d9b4c RP |
558 | touch $@ |
559 | ||
560 | $(host)-stamp-stage1-configured: | |
561 | [ -d $(WORKING_DIR) ] || mkdir $(WORKING_DIR) | |
301482c7 | 562 | $(SET_NATIVE_HOLES) cd $(WORKING_DIR) ; \ |
c8f1aa31 | 563 | $(configenv) CC="$(CC)" $(TIME) $(CONFIG_SHELL) ../$(TREE)/configure $(config) -v --srcdir=../$(TREE) $(prefixes) $(configargs) |
c12d9b4c RP |
564 | touch $@ |
565 | ||
566 | .PHONY: do2 | |
567 | do2: $(HOLESDIR) $(host)-stamp-stage2 | |
568 | ||
04a59f79 DZ |
569 | do2-vault: $(HOLESSTAMP) $(host)-stamp-stage2-built |
570 | if [ -d $(WORKING_DIR).2 ] ; then \ | |
571 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR).2 ; $(MAKE) $(FLAGS_TO_PASS) host=$(host) "CFLAGS=$(CFLAGS)" vault-install ; \ | |
572 | else \ | |
573 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(MAKE) $(FLAGS_TO_PASS) host=$(host) "CFLAGS=$(CFLAGS)" vault-install ; \ | |
574 | fi | |
575 | ||
576 | ||
577 | ||
c12d9b4c RP |
578 | $(host)-stamp-stage2: |
579 | if [ -d $(STAGE2DIR) ] ; then \ | |
580 | mv $(STAGE2DIR) $(WORKING_DIR) ; \ | |
581 | else \ | |
582 | true ; \ | |
583 | fi | |
41a88234 | 584 | $(SET_CYGNUS_PATH) $(TIME) $(GNU_MAKE) $(FLAGS_TO_PASS) -f test-build.mk -w $(host)-stamp-stage2-installed |
5ba00487 | 585 | mv $(WORKING_DIR) $(STAGE2DIR) |
7bea9148 | 586 | touch $@ |
c12d9b4c | 587 | |
c12d9b4c | 588 | |
3066e752 KC |
589 | # The SunOS make program gets confused when it is deleted while running. |
590 | # The signal handlers return to the wrong place, or something, and the | |
591 | # program dumps core. To avoid trouble with installing make over itself, | |
592 | # we delete the installed make program. | |
c12d9b4c | 593 | $(host)-stamp-stage2-installed: $(host)-stamp-stage2-checked |
3066e752 KC |
594 | -rm -f $(relbindir)/make |
595 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(GNU_MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" install host=$(host) | |
41a88234 | 596 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" install-info host=$(host) |
c12d9b4c RP |
597 | touch $@ |
598 | ||
599 | $(host)-stamp-stage2-checked: $(host)-stamp-stage2-built | |
41a88234 | 600 | # $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" check host=$(host) |
c12d9b4c RP |
601 | touch $@ |
602 | ||
603 | $(host)-stamp-stage2-built: $(host)-stamp-stage2-configured | |
41a88234 ILT |
604 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" all host=$(host) |
605 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" info host=$(host) | |
c12d9b4c RP |
606 | touch $@ |
607 | ||
608 | $(host)-stamp-stage2-configured: | |
609 | [ -d $(WORKING_DIR) ] || mkdir $(WORKING_DIR) | |
41a88234 | 610 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; \ |
c8f1aa31 | 611 | $(configenv) $(GNUC) $(TIME) $(CONFIG_SHELL) ../$(TREE)/configure $(config) -v --srcdir=../$(TREE) $(prefixes) $(configargs) |
c12d9b4c RP |
612 | touch $@ |
613 | ||
614 | .PHONY: do3 | |
615 | do3: $(HOLESDIR) $(host)-stamp-stage3 | |
616 | ||
04a59f79 DZ |
617 | do3-vault: $(HOLESSTAMP) $(host)-stamp-stage3-built |
618 | if [ -d $(WORKING_DIR).3 ] ; then \ | |
619 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR).3 ; $(MAKE) $(FLAGS_TO_PASS) host=$(host) "CFLAGS=$(CFLAGS)" vault-install ; \ | |
620 | else \ | |
621 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(MAKE) $(FLAGS_TO_PASS) host=$(host) "CFLAGS=$(CFLAGS)" vault-install ; \ | |
622 | fi | |
623 | ||
c12d9b4c | 624 | $(host)-stamp-stage3: |
5ba00487 DZ |
625 | if [ -d $(STAGE3DIR) ] ; then \ |
626 | mv $(STAGE3DIR) $(WORKING_DIR) ; \ | |
c12d9b4c RP |
627 | else \ |
628 | true ; \ | |
629 | fi | |
c8f1aa31 | 630 | $(SET_CYGNUS_PATH) $(TIME) $(GNU_MAKE) $(FLAGS_TO_PASS) -f test-build.mk -w $(host)-stamp-stage3-installed |
5ba00487 | 631 | mv $(WORKING_DIR) $(STAGE3DIR) |
7bea9148 | 632 | touch $@ |
c12d9b4c | 633 | |
c12d9b4c | 634 | |
3066e752 KC |
635 | # The SunOS make program gets confused when it is deleted while running. |
636 | # The signal handlers return to the wrong place, or something, and the | |
637 | # program dumps core. To avoid trouble with installing make over itself, | |
638 | # we delete the installed make program. | |
c12d9b4c | 639 | $(host)-stamp-stage3-installed: $(host)-stamp-stage3-checked |
3066e752 KC |
640 | -rm -f $(relbindir)/make |
641 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(GNU_MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" install host=$(host) | |
41a88234 | 642 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" install-info host=$(host) |
c8f1aa31 ME |
643 | if [ -f VAULT-INSTALL ] ; then \ |
644 | $(SET_CYGNUS_PATH) cd $(CYGNUSDIR) ; $(MAKE) $(FLAGS_TO_PASS) $(GNUC) vault-install ; \ | |
60430a46 | 645 | else true ; fi |
c12d9b4c RP |
646 | touch $@ |
647 | ||
648 | $(host)-stamp-stage3-checked: $(host)-stamp-stage3-built | |
41a88234 | 649 | # $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" check host=$(host) |
c12d9b4c RP |
650 | touch $@ |
651 | ||
60430a46 JW |
652 | $(host)-check-3stage: $(host)-stamp-stage3 |
653 | $(SET_CYGNUS_PATH) cd $(STAGE3DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" check host=$(host) | |
654 | touch $@ | |
655 | ||
c12d9b4c | 656 | $(host)-stamp-stage3-built: $(host)-stamp-stage3-configured |
41a88234 ILT |
657 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" all host=$(host) |
658 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" info host=$(host) | |
c12d9b4c RP |
659 | touch $@ |
660 | ||
661 | $(host)-stamp-stage3-configured: | |
662 | [ -d $(WORKING_DIR) ] || mkdir $(WORKING_DIR) | |
41a88234 | 663 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; \ |
c8f1aa31 ME |
664 | $(configenv) $(GNUC) $(TIME) $(CONFIG_SHELL) ../$(TREE)/configure $(config) -v --srcdir=../$(TREE) $(prefixes) $(configargs) |
665 | touch $@ | |
666 | ||
667 | .PHONY: do4 | |
668 | do4: $(HOLESDIR) $(host)-stamp-stage4 | |
669 | ||
670 | $(host)-stamp-stage4: | |
671 | if [ -d $(STAGE4DIR) ] ; then \ | |
672 | mv $(STAGE4DIR) $(WORKING_DIR) ; \ | |
673 | else \ | |
674 | true ; \ | |
675 | fi | |
676 | $(SET_CYGNUS_PATH) $(TIME) $(GNU_MAKE) $(FLAGS_TO_PASS) -f test-build.mk -w $(host)-stamp-stage4-checked | |
677 | mv $(WORKING_DIR) $(STAGE4DIR) | |
678 | touch $@ | |
679 | ||
680 | ||
681 | $(host)-stamp-stage4-installed: $(host)-stamp-stage4-checked | |
682 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" install host=$(host) | |
683 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" install-info host=$(host) | |
684 | touch $@ | |
685 | ||
686 | $(host)-stamp-stage4-checked: $(host)-stamp-stage4-built | |
687 | # $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" check host=$(host) | |
688 | touch $@ | |
689 | ||
690 | $(host)-stamp-stage4-built: $(host)-stamp-stage4-configured | |
691 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" all host=$(host) | |
692 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; $(TIME) $(MAKE) -w $(FLAGS_TO_PASS) $(GNUC) "CFLAGS=$(CFLAGS)" info host=$(host) | |
693 | touch $@ | |
694 | ||
695 | $(host)-stamp-stage4-configured: | |
696 | [ -d $(WORKING_DIR) ] || mkdir $(WORKING_DIR) | |
697 | $(SET_CYGNUS_PATH) cd $(WORKING_DIR) ; \ | |
698 | $(configenv) $(GNUC) $(TIME) $(CONFIG_SHELL) ../$(TREE)/configure $(config) -v --srcdir=../$(TREE) $(prefixes) $(configargs) | |
c12d9b4c RP |
699 | touch $@ |
700 | ||
701 | # These things are needed by a three-stage, but are not included locally. | |
702 | ||
703 | HOLES := \ | |
704 | [ \ | |
705 | ar \ | |
706 | as \ | |
707 | awk \ | |
708 | basename \ | |
709 | cat \ | |
710 | cc \ | |
711 | chmod \ | |
04a59f79 DZ |
712 | chgrp \ |
713 | chown \ | |
c12d9b4c RP |
714 | cmp \ |
715 | cp \ | |
41a88234 | 716 | cpio \ |
c12d9b4c RP |
717 | date \ |
718 | diff \ | |
04a59f79 | 719 | dirname \ |
c12d9b4c RP |
720 | echo \ |
721 | egrep \ | |
722 | ex \ | |
723 | expr \ | |
301482c7 | 724 | false \ |
c12d9b4c RP |
725 | find \ |
726 | grep \ | |
5ba00487 | 727 | head \ |
c12d9b4c RP |
728 | hostname \ |
729 | install \ | |
730 | ld \ | |
731 | lex \ | |
732 | ln \ | |
733 | ls \ | |
734 | make \ | |
735 | mkdir \ | |
736 | mv \ | |
737 | nm \ | |
738 | pwd \ | |
739 | ranlib \ | |
740 | rm \ | |
741 | rmdir \ | |
742 | sed \ | |
743 | sh \ | |
8456a631 | 744 | sleep \ |
c12d9b4c | 745 | sort \ |
41a88234 | 746 | tar \ |
c12d9b4c RP |
747 | test \ |
748 | time \ | |
749 | touch \ | |
750 | tr \ | |
751 | true \ | |
35eae2d8 | 752 | uname \ |
04a59f79 | 753 | uniq \ |
41a88234 | 754 | uudecode \ |
40a75cc7 | 755 | wc \ |
c12d9b4c RP |
756 | whoami |
757 | ||
758 | ### so far only sun make supports VPATH | |
35eae2d8 | 759 | ifeq ($(subst sun3,sun4,$(holesys)),sun4) |
c12d9b4c RP |
760 | MAKE_HOLE := |
761 | else | |
762 | MAKE_HOLE := make | |
763 | endif | |
764 | ||
5ba00487 | 765 | ### solaris 2 -- don't use /usr/ucb/cc |
35eae2d8 | 766 | ifeq (sparc-sun-solaris2,$(holesys)) |
fb682d69 | 767 | SET_NATIVE_HOLES := SHELL=$(SHELL) ; PATH=/opt/SUNWspro/bin:`pwd`/$(HOLESDIR) ; export PATH ; export SHELL ; |
af5874bd | 768 | HOLE_DIRS := /usr/ccs/bin |
301c3fef DZ |
769 | CC_HOLE := |
770 | NUKEM := cc | |
5ba00487 DZ |
771 | endif |
772 | ||
c8f1aa31 ME |
773 | ifeq ($(host),i386-go32) |
774 | DOS_HOLES := aout2exe doschk file | |
775 | endif | |
776 | ||
8456a631 KC |
777 | ifeq ($(host),i386-lynx) |
778 | MAKE_HOLE := make | |
779 | endif | |
780 | ||
781 | ifeq ($(host),m68k-lynx) | |
782 | MAKE_HOLE := make | |
783 | endif | |
784 | ||
3066e752 KC |
785 | ifeq ($(host),sparc-lynx) |
786 | MAKE_HOLE := make | |
787 | endif | |
788 | ||
789 | ifeq ($(host),rs6000-lynx) | |
790 | MAKE_HOLE := make | |
791 | endif | |
792 | ||
c12d9b4c RP |
793 | ### These things are also needed by a three-stage, but in this case, the GNU version of the tool is required. |
794 | PARTIAL_HOLES := \ | |
c12d9b4c | 795 | $(MAKE_HOLE) \ |
5ba00487 | 796 | $(CC_HOLE) \ |
c8f1aa31 | 797 | $(DOS_HOLES) \ |
c12d9b4c RP |
798 | flex \ |
799 | m4 | |
800 | ||
801 | ### look in these directories for things missing from a three-stage | |
802 | HOLE_DIRS := \ | |
fdfa2371 | 803 | $(HOLE_DIRS) \ |
c12d9b4c RP |
804 | /bin \ |
805 | /usr/bin \ | |
806 | /usr/ucb \ | |
807 | /usr/unsupported/bin | |
808 | ||
809 | ### look in these directories for alternate versions of some tools. | |
810 | PARTIAL_HOLE_DIRS := \ | |
811 | /usr/latest/bin \ | |
812 | /usr/progressive/bin \ | |
fdfa2371 | 813 | $(PARTIAL_HOLE_DIRS) \ |
c12d9b4c | 814 | /usr/vintage/bin \ |
8456a631 KC |
815 | /usr/unsupported/bin \ |
816 | $(HOLE_DIRS) | |
c12d9b4c | 817 | |
35eae2d8 | 818 | $(HOLESDIR): $(holesys)-stamp-holes |
c12d9b4c | 819 | |
35eae2d8 | 820 | $(holesys)-stamp-holes: |
c12d9b4c RP |
821 | -rm -rf $(HOLESDIR) |
822 | -mkdir $(HOLESDIR) | |
5ba00487 | 823 | @for i in $(HOLES) ; do \ |
c12d9b4c RP |
824 | found= ; \ |
825 | for j in $(HOLE_DIRS) ; do \ | |
826 | if [ -x $$j/$$i ] ; then \ | |
21412832 | 827 | ln -s $$j/$$i $(HOLESDIR) || cp $$j/$$i $(HOLESDIR) ; \ |
c12d9b4c RP |
828 | echo $$i from $$j ; \ |
829 | found=t ; \ | |
830 | break ; \ | |
831 | fi ; \ | |
832 | done ; \ | |
833 | case "$$found" in \ | |
834 | t) ;; \ | |
835 | *) echo $$i is NOT found ;; \ | |
836 | esac ; \ | |
837 | done | |
5ba00487 | 838 | @for i in $(PARTIAL_HOLES) ; do \ |
c12d9b4c RP |
839 | found= ; \ |
840 | for j in $(PARTIAL_HOLE_DIRS) ; do \ | |
841 | if [ -x $$j/$$i ] ; then \ | |
842 | rm -f $(HOLESDIR)/$$i ; \ | |
843 | cp $$j/$$i $(HOLESDIR)/$$i || exit 1; \ | |
844 | echo $$i from $$j ; \ | |
845 | found=t ; \ | |
846 | break ; \ | |
847 | fi ; \ | |
848 | done ; \ | |
849 | case "$$found" in \ | |
850 | t) ;; \ | |
851 | *) echo $$i is NOT found ;; \ | |
852 | esac ; \ | |
853 | done | |
301c3fef DZ |
854 | ifdef NUKEM |
855 | cd $(HOLESDIR); rm -f $(NUKEM) | |
856 | endif | |
7bea9148 | 857 | touch $@ |
c12d9b4c | 858 | |
35eae2d8 ILT |
859 | # Get the cross-tools for build cross host when not building on the host. |
860 | ||
861 | BUILD_HOST_HOLES := \ | |
862 | byacc \ | |
863 | gcc \ | |
864 | makeinfo \ | |
865 | $(AR) \ | |
866 | $(AS) \ | |
867 | $(CC) \ | |
868 | $(CXX) \ | |
869 | $(GXX) \ | |
870 | $(NM) \ | |
871 | $(RANLIB) | |
872 | ||
04a59f79 | 873 | BUILD_HOLES_DIRS := $(release_root)/H-$(build)/bin $(PARTIAL_HOLE_DIRS) |
35eae2d8 | 874 | |
7f0d689a | 875 | ifdef BUILD_HOST_HOLES_DIR |
35eae2d8 | 876 | $(BUILD_HOST_HOLES_DIR): $(build)-x-$(host)-stamp-holes |
7f0d689a | 877 | endif |
35eae2d8 | 878 | |
04a59f79 | 879 | ifneq ($(build),$(host)) |
35eae2d8 ILT |
880 | $(build)-x-$(host)-stamp-holes: |
881 | -rm -rf $(BUILD_HOST_HOLES_DIR) | |
882 | -mkdir $(BUILD_HOST_HOLES_DIR) | |
883 | @for i in $(BUILD_HOST_HOLES) ; do \ | |
884 | found= ; \ | |
885 | for j in $(BUILD_HOLES_DIRS) ; do \ | |
886 | if [ -x $$j/$$i ] ; then \ | |
887 | ln -s $$j/$$i $(BUILD_HOST_HOLES_DIR) || cp $$j/$$i $(BUILD_HOST_HOLES_DIR) ; \ | |
888 | echo $$i from $$j ; \ | |
889 | found=t ; \ | |
890 | break ; \ | |
891 | fi ; \ | |
892 | done ; \ | |
893 | case "$$found" in \ | |
894 | t) ;; \ | |
895 | *) echo $$i is NOT found ;; \ | |
896 | esac ; \ | |
897 | done | |
898 | touch $@ | |
04a59f79 | 899 | endif |
35eae2d8 ILT |
900 | |
901 | # Get the cross tools for build cross target when not building on the host. | |
902 | ||
903 | BUILD_TARGET_HOLES := \ | |
904 | byacc \ | |
905 | gcc \ | |
906 | makeinfo \ | |
907 | $(AR_FOR_TARGET) \ | |
908 | $(AS_FOR_TARGET) \ | |
909 | $(CC_FOR_TARGET) \ | |
910 | $(CXX_FOR_TARGET) \ | |
911 | $(GXX_FOR_TARGET) \ | |
912 | $(NM_FOR_TARGET) \ | |
913 | $(RANLIB_FOR_TARGET) | |
914 | ||
7f0d689a | 915 | ifdef BUILD_TARGET_HOLES_DIR |
35eae2d8 | 916 | $(BUILD_TARGET_HOLES_DIR): $(build)-x-$(target)-stamp-holes |
7f0d689a | 917 | endif |
35eae2d8 | 918 | |
04a59f79 | 919 | ifneq ($(build),$(target)) |
35eae2d8 ILT |
920 | $(build)-x-$(target)-stamp-holes: |
921 | -rm -rf $(BUILD_TARGET_HOLES_DIR) | |
922 | -mkdir $(BUILD_TARGET_HOLES_DIR) | |
923 | @for i in $(BUILD_TARGET_HOLES) ; do \ | |
924 | found= ; \ | |
925 | for j in $(BUILD_HOLES_DIRS) ; do \ | |
926 | if [ -x $$j/$$i ] ; then \ | |
927 | ln -s $$j/$$i $(BUILD_TARGET_HOLES_DIR) || cp $$j/$$i $(BUILD_TARGET_HOLES_DIR) ; \ | |
928 | echo $$i from $$j ; \ | |
929 | found=t ; \ | |
930 | break ; \ | |
931 | fi ; \ | |
932 | done ; \ | |
933 | case "$$found" in \ | |
934 | t) ;; \ | |
935 | *) echo $$i is NOT found ;; \ | |
936 | esac ; \ | |
937 | done | |
938 | touch $@ | |
04a59f79 | 939 | endif |
35eae2d8 | 940 | |
c12d9b4c | 941 | .PHONY: comparison |
5ba00487 | 942 | comparison: $(host)-stamp-3stage-compared |
c8f1aa31 | 943 | comparison-stage3to4: $(host)-stamp-4stage-compared |
5ba00487 DZ |
944 | |
945 | $(host)-stamp-3stage-compared: | |
946 | rm -f .bad-compare | |
8456a631 | 947 | ifeq ($(patsubst %-lynx,mips-sgi-irix4,$(subst i386-sco3.2v4,mips-sgi-irix4,$(subst rs6000-ibm-aix,mips-sgi-irix4,$(subst mips-dec-ultrix,mips-sgi-irix4,$(host))))),mips-sgi-irix4) |
5ba00487 DZ |
948 | for i in `cd $(STAGE3DIR) ; find . -name \*.o -print` ; do \ |
949 | tail +10c $(STAGE2DIR)/$$i > foo1 ; \ | |
950 | tail +10c $(STAGE3DIR)/$$i > foo2 ; \ | |
951 | if cmp foo1 foo2 ; then \ | |
952 | true ; \ | |
953 | else \ | |
954 | echo $$i ; \ | |
955 | touch .bad-compare ; \ | |
956 | fi ; \ | |
957 | done | |
958 | rm -f foo1 foo2 | |
c12d9b4c | 959 | else |
5ba00487 DZ |
960 | for i in `cd $(STAGE3DIR) ; find . -name \*.o -print` ; do \ |
961 | cmp $(STAGE2DIR)/$$i $(STAGE3DIR)/$$i || touch .bad-compare ; \ | |
962 | done | |
963 | endif | |
964 | if [ -f CLEAN_ALL ] ; then \ | |
965 | rm -rf $(STAGE2DIR) $(STAGE3DIR) ; \ | |
dae8a4cf | 966 | else \ |
5ba00487 DZ |
967 | if [ -f CLEAN_STAGES ] ; then \ |
968 | if [ -f .bad-compare ] ; then \ | |
969 | true ; \ | |
970 | else \ | |
971 | rm -rf $(STAGE1DIR) $(STAGE2DIR) ; \ | |
972 | fi ; \ | |
21412832 | 973 | else true ; \ |
5ba00487 | 974 | fi ; \ |
dae8a4cf | 975 | fi |
5ba00487 | 976 | touch $@ |
c12d9b4c | 977 | |
c8f1aa31 ME |
978 | $(host)-stamp-4stage-compared: |
979 | rm -f .bad-compare | |
8456a631 | 980 | ifeq ($(patsubst %-lynx,mips-sgi-irix4,$(subst i386-sco3.2v4,mips-sgi-irix4,$(subst rs6000-ibm-aix,mips-sgi-irix4,$(subst mips-dec-ultrix,mips-sgi-irix4,$(host))))),mips-sgi-irix4) |
c8f1aa31 ME |
981 | for i in `cd $(STAGE4DIR) ; find . -name \*.o -print` ; do \ |
982 | tail +10c $(STAGE3DIR)/$$i > foo1 ; \ | |
983 | tail +10c $(STAGE4DIR)/$$i > foo2 ; \ | |
984 | if cmp foo1 foo2 ; then \ | |
985 | true ; \ | |
986 | else \ | |
987 | echo $$i ; \ | |
988 | touch .bad-compare ; \ | |
989 | fi ; \ | |
990 | done | |
991 | rm -f foo1 foo2 | |
992 | else | |
993 | for i in `cd $(STAGE4DIR) ; find . -name \*.o -print` ; do \ | |
994 | cmp $(STAGE3DIR)/$$i $(STAGE4DIR)/$$i || touch .bad-compare ; \ | |
995 | done | |
996 | endif | |
997 | if [ -f CLEAN_ALL ] ; then \ | |
998 | rm -rf $(STAGE2DIR) $(STAGE3DIR) $(STAGE4DIR) ; \ | |
999 | else \ | |
1000 | if [ -f CLEAN_STAGES ] ; then \ | |
1001 | if [ -f .bad-compare ] ; then \ | |
1002 | true ; \ | |
1003 | else \ | |
1004 | rm -rf $(STAGE1DIR) $(STAGE2DIR) $(STAGE3DIR) ; \ | |
1005 | fi ; \ | |
1006 | else true ; \ | |
1007 | fi ; \ | |
1008 | fi | |
1009 | ||
c12d9b4c RP |
1010 | .PHONY: clean |
1011 | clean: | |
7bea9148 | 1012 | rm -rf $(HOLESDIR) $(INPLACEDIR) $(WORKING_DIR)* $(host)-stamp-* *~ |
c12d9b4c RP |
1013 | |
1014 | .PHONY: very | |
1015 | very: | |
7bea9148 | 1016 | rm -rf $(TREE) |
c12d9b4c RP |
1017 | |
1018 | force: | |
1019 | ||
1020 | endif # host | |
1021 | ||
1022 | ### Local Variables: | |
1023 | ### fill-column: 131 | |
1024 | ### End: |