source: trunk/Makefile@ 1330

Last change on this file since 1330 was 1269, checked in by bird, 22 years ago

* empty log message *

  • Property cvs2svn:cvs-rev set to 1.86
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 52.5 KB
Line 
1# $Id: Makefile 1269 2004-02-18 13:53:57Z bird $
2#
3# Top level makefile.
4#
5# InnoTek Systemberatung GmbH confidential
6#
7# Copyright (c) 2003 InnoTek Systemberatung GmbH
8# Author: knut st. osmundsen <bird@anduin.net>
9#
10# All Rights Reserved
11#
12
13
14###############################################################################
15## Global Variables
16## (D = no drive)
17###############################################################################
18PWD := $(shell pwd)
19PWDD := $(shell pwd|sed 's/^[a-zA-Z]://')
20MAKEFILE = $(PWD)/Makefile
21
22ifndef BUILD_MODE
23export BUILD_MODE=DEBUG
24endif
25
26ifndef PATH_TOP
27export PATH_TOP := $(PWD)
28endif
29ifndef PATH_TOPD
30export PATH_TOPD := $(PWDD)
31endif
32
33
34export PATH_BIN = $(PATH_TOP)/bin/$(BUILD_PLATFORM)/$(BUILD_MODE)
35export PATH_BIND = $(PATH_TOPD)/bin/$(BUILD_PLATFORM)/$(BUILD_MODE)
36export PATH_OBJ = $(PATH_TOP)/obj/$(BUILD_PLATFORM)/$(BUILD_MODE)
37export PATH_OBJD = $(PATH_TOPD)/obj/$(BUILD_PLATFORM)/$(BUILD_MODE)
38export PATH_BUILTTOOLS = $(PATH_OBJ)/builttools
39export PATH_BUILTTOOLSD= $(PATH_OBJD)/builttools
40PATH_BUILTTOOLS_TMP = $(PATH_OBJ)/builttools.tmp
41PATH_BUILTTOOLS_TMPD = $(PATH_OBJD)/builttools.tmp
42
43# Debug info or not (when ever we feel like passing down such options).
44# Several ways to do this it seems.
45ifeq "$(BUILD_MODE)" "RELEASE"
46BUILD_DEBUGINFO = -s
47BUILD_ENABLE_SYMBOLS = --disable-symbols
48BUILD_OPTIMIZE = -O2 -mcpu=pentium -mpreferred-stack-boundary=2 -malign-strings=0 -falign-loops=2 -falign-jumps=2 -falign-functions=2
49else
50BUILD_OPTIMIZE = -O0
51BUILD_DEBUGINFO = -g
52BUILD_ENABLE_SYMBOLS = --enable-symbols
53endif
54
55
56# Version and CVS defines - real stuff in env.cmd.
57export GCC_VERSION ?= 3.2.2
58export GCC_VERSION_SHORT ?= 322
59export GCC_RELEASE_ID ?= beta4
60export GCC_CVS_VENDOR ?= GNU
61export GCC_CVS_REL ?= GCC_3-2-2
62export BINUTILS_VERSION ?= 2.14
63export BINUTILS_VERSION_SHORT ?= 214
64export BINUTILS_CVS_VENDOR ?= GNU
65export BINUTILS_CVS_REL ?= BINUTILS_2-14
66export EMX_VERSION ?= 0.9d-fix04
67export EMX_VERSION_SHORT ?= 9d04
68export EMX_CVS_VENDOR ?= EMX
69export EMX_CVS_REL ?= EMX_0-9D-FIX04
70export LIBC_VERSION ?= 0.5.0
71export LIBC_VERSION_SHORT ?= 05
72
73# innotek version and timestamp
74ifndef BUILD_TS
75export BUILD_TS := $(shell date '+%Y-%m-%d %H:%M')
76else
77export BUILD_TS
78endif
79export INNOTEK_VERSION ?= (Innotek Build $(BUILD_TS))
80
81
82#
83# For builds on Linux Host builds we do the environment setup here.
84# This is essentially a mimicking of what we do on OS/2.
85#
86ifndef BUILD_PLATFORM
87ifeq "$(shell uname -s)" "Linux"
88export BUILD_PLATFORM ?= LINUX
89export BUILD_PROJECT ?= GCCOS2
90export SH ?= /bin/sh
91export ASH ?= /bin/ash
92export BASH ?= /bin/bash
93export AWK ?= /bin/gawk
94export GAWK ?= /bin/gawk
95export CONFIG_SHELL ?= $(SH)
96export MAKESHELL ?= $(SH)
97export PATH_EMX ?= /usr
98export PATH_EMXPGCC ?= /usr
99export TMP ?= /tmp
100export TMPDIR ?= /tmp
101endif
102endif
103
104
105
106# Misc Helpers
107ALL_PREFIX = $(PATH_BIND)/$(GCC_VERSION)-$(GCC_RELEASE_ID)/usr
108TOOL_CVS_DIFF_TREE = -cvs diff -R -N -w -u -r
109ifeq "$(BUILD_PLATFORM)" "OS2"
110NICE = nice -i
111else
112NICE =
113endif
114
115
116
117
118###############################################################################
119###############################################################################
120###############################################################################
121###############################################################################
122#
123# M a i n R u l e z
124#
125###############################################################################
126###############################################################################
127###############################################################################
128###############################################################################
129
130# default is quick
131all: all-quick
132all-logged: all-quick-logged
133
134# release builds are built 'double quick'.
135all-double-quick:
136
137
138
139# old bootstrap building.
140bootstrap all-boostrap:
141 mkdir -p $(PATH_OBJ)
142 $(NICE) $(MAKE) $(MAKEOPT) -j 1 -C . all-bootstrap-logged 2>&1 | $(UNIXROOT)/usr/bin/tee $(PATH_OBJ)/build-`date +"%Y%m%d-%H%M%S"`.log
143
144all-bootstrap-logged: \
145 all-banner-start \
146 all-env \
147 all-sanity \
148 all-preload \
149 all-versionstamps \
150 all-symlinks \
151 \
152 all-stage1 \
153 all-stage2 \
154 \
155 all-install \
156 \
157 all-symlinks-unlink \
158 all-preload-unload
159 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
160 @echo "+ Make Ended Successfully: $(shell date)"
161 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
162
163#
164# banners
165#
166
167all-banner-start:
168 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
169 @echo "+ Make started: $(shell date)"
170 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
171
172all-banner-stage1:
173 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
174 @echo "+ Stage 1 - starting: $(shell date)"
175 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
176
177all-banner-stage2:
178 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
179 @echo "+ Stage 2 - starting: $(shell date)"
180 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
181
182all-banner-builttools-initial:
183 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
184 @echo "+ Initializing builttools tree"
185 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
186
187all-banner-builttools-stage2:
188 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
189 @echo "+ Copying stage2 builttools"
190 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
191
192all-banner-install:
193 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
194 @echo "+ Install - starting: $(shell date)"
195 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
196
197all-banner-install-done:
198 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
199 @echo "+ Install - done: $(shell date)"
200 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
201
202all-banner-symlinks-start:
203 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
204 @echo "+ symlinks - staring: $(shell date)"
205 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
206
207all-banner-symlinks-done:
208 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
209 @echo "+ symlinks - done: $(shell date)"
210 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
211
212all-banner-symlinks-unlink-start:
213 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
214 @echo "+ symlinks unlinking - staring: $(shell date)"
215 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
216
217all-banner-symlinks-unlink-done:
218 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
219 @echo "+ symlinks unlinking - done: $(shell date)"
220 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
221
222
223#
224# Sanity and environment dumps - to make it easier to figure out make bugs.
225#
226
227.PHONY: all-env
228all-env:
229 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
230 @echo "Variables:"
231 @echo " PWD = $(PWD)"
232 @echo " PWDD = $(PWDD)"
233 @echo " PATH_TOP = $(PATH_TOP)"
234 @echo " PATH_TOPD = $(PATH_TOPD)"
235 @echo " PATH_OBJ = $(PATH_OBJ)"
236 @echo " PATH_OBJD = $(PATH_OBJD)"
237 @echo " PATH_BIN = $(PATH_BIN)"
238 @echo " PATH_BIND = $(PATH_BIND)"
239 @echo " ALL_PREFIX = $(ALL_PREFIX)"
240 @echo " PATH_EMXPGCC = $(PATH_EMXPGCC)"
241 @echo " PATH_EMX = $(PATH_EMX)"
242 @echo " BUILD_MODE = $(BUILD_MODE)"
243 @echo " BUILD_PLATFORM = $(BUILD_PLATFORM)"
244 @echo " BUILD_PROJECT = $(BUILD_PROJECT)"
245 @echo " GCC_VERSION = $(GCC_VERSION)"
246 @echo " GCC_VERSION_SHORT = $(GCC_VERSION_SHORT)"
247 @echo " GCC_CVS_VENDOR = $(GCC_CVS_VENDOR)"
248 @echo " GCC_CVS_REL = $(GCC_CVS_REL)"
249 @echo " BINUTILS_VERSION = $(BINUTILS_VERSION)"
250 @echo " BINUTILS_VERSION_SHORT = $(BINUTILS_VERSION_SHORT)"
251 @echo " BINUTILS_CVS_VENDOR = $(BINUTILS_CVS_VENDOR)"
252 @echo " BINUTILS_CVS_REL = $(BINUTILS_CVS_REL)"
253 @echo " EMX_VERSION = $(EMX_VERSION)"
254 @echo " EMX_VERSION_SHORT = $(EMX_VERSION_SHORT)"
255 @echo " EMX_CVS_VENDOR = $(EMX_CVS_VENDOR)"
256 @echo " EMX_CVS_REL = $(EMX_CVS_REL)"
257 @echo " MAKEFILE = $(MAKEFILE)"
258 @echo " UNIXROOT = $(UNIXROOT)"
259 @echo " AC_PREFIX = $(AC_PREFIX)"
260 @echo " AC_MACRODIR = $(AC_MACRODIR)"
261 @echo " HOSTNAME = $(HOSTNAME)"
262 @echo " USER = $(USER)"
263 @echo " LOGNAME = $(LOGNAME)"
264 @echo " TMP = $(TMP)"
265 @echo " TMPDIR = $(TMPDIR)"
266 @echo " USER = $(USER)"
267 @echo " AWK = $(AWK)"
268 @echo " GAWK = $(GAWK)"
269 @echo " SH = $(SH)"
270 @echo " ASH = $(ASH)"
271 @echo " BASH = $(BASH)"
272 @echo " CONFIG_SHELL = $(CONFIG_SHELL)"
273 @echo " MAKESHELL = $(MAKESHELL)"
274 @echo " EMXSHELL = $(EMXSHELL)"
275 @echo " SHELL = $(SHELL)"
276 @echo " MAKE = $(MAKE)"
277 @echo " MAKEOPT = $(MAKEOPT)"
278 @echo " PATH = $(PATH)"
279 @echo " C_INCLUDE_PATH = $(C_INCLUDE_PATH)"
280 @echo " CPLUS_INCLUDE_PATH = $(CPLUS_INCLUDE_PATH)"
281 @echo " OBJC_INCLUDE_PATH = $(OBJC_INCLUDE_PATH)"
282 @echo " LIBRARY_PATH = $(LIBRARY_PATH)"
283 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
284 @echo "Content of PATH_OBJ:"
285 -ls -la $(PATH_OBJ)/
286 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
287 @echo "Content of PATH_BIN:"
288 -ls -la $(PATH_BIN)/
289 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
290
291
292.PHONY: all-sanity
293all-sanity:
294 @echo -n "Checking build environment sanity... "
295 @if [ "x$(BUILD_PROJECT)" != "xGCCOS2" ]; then \
296 echo ""; echo "Error: BUILD_PROJECT is wrong or isn't defined!"; \
297 exit 8; \
298 fi
299 @if [ "x$(BUILD_PLATFORM)" != "xOS2" -a "x$(BUILD_PLATFORM)" != "xLINUX" ]; then \
300 echo ""; echo "Error: BUILD_PLATFORM is wrong or isn't defined!"; \
301 exit 8; \
302 fi
303 @if [ "x$(BUILD_PLATFORM)" = "xOS2" -a "x$(UNIXROOT)" = "x" ]; then \
304 echo ""; echo "Error: UNIXROOT isn't defined!"; \
305 exit 8; \
306 fi
307 @if [ "x$(BUILD_PLATFORM)" != "xOS2" -a "x$(UNIXROOT)" != "x" ]; then \
308 echo ""; echo "Error: UNIXROOT is defined!"; \
309 exit 8; \
310 fi
311ifeq "$(BUILD_PLATFORM)" "OS2"
312 @if gcc --version | grep -qe ".*[3]\.[2-9]\.[0-9]"; then \
313 true; \
314 else \
315 echo ""; echo "Warning: GCC v3.2.x or higher is recommended!"; \
316 fi
317 @if ar --version | grep -qe ".*2\.11\.[2-9]" -e ".*[2]\.1[2-9][.0-9]*"; then \
318 true; \
319 else \
320 echo ""; echo "Warning: AR v2.11.2 or higher is recommended!"; \
321 fi
322endif
323 @echo "ok"
324
325
326#
327# Preload tools we commonly use this speeds up stuff.
328#
329PRELOADED_TOOLS = bin/sh.exe bin/echo.exe bin/true.exe usr/bin/test.exe usr/bin/expr.exe \
330 usr/bin/gawk.exe bin/sed.exe bin/rm.exe bin/cat.exe bin/cp.exe bin/mkdir.exe bin/rm.exe
331
332.PHONY: all-preload-unload all-preload
333all-preload:
334 @echo "Preloading tools:"
335ifeq "$(BUILD_PLATFORM)" "OS2"
336 @for tool in $(PRELOADED_TOOLS); do \
337 echo -n " $$tool"; \
338 emxload -e $(UNIXROOT)/$$tool; \
339 done
340 @echo ""
341 emxload -e gcc.exe g++.exe ld.exe as.exe ar.exe ld.exe emxomfld.exe emxomf.exe emxomfar.exe \
342 `gcc -print-prog-name=cc1` \
343 `gcc -print-prog-name=as` \
344 `gcc -print-prog-name=cc1plus`
345endif
346 @echo ""
347
348all-preload-unload:
349ifeq "$(BUILD_PLATFORM)" "OS2"
350 emxload -qw
351endif
352
353
354#
355# Version stamping/branding.
356# Update various version strings which are printed from the tools to tell
357# the build date and that's our built. This helps us tell releases apart.
358#
359# IMPORTANT! Take care not to commit the changed files
360# (TODO! Try make these changes to non-cvs backed files. (long-term-goal))
361.PHONY: all-versionstamps
362all-versionstamps: $(PATH_OBJ)/.ts.versionstamped
363$(PATH_OBJ)/.ts.versionstamped:
364 echo '#define INNOTEK_VERSION "$(INNOTEK_VERSION)"' > include/innotekversion.h
365 $(MAKE) $(MAKEOPT) -j 1 -f $(MAKEFILE) "INNOTEK_VERSION=$(INNOTEK_VERSION)" gcc-versionstamps binutils-versionstamps emx-versionstamps
366 mkdir -p $(@D)
367 touch $@
368
369
370#
371# Stages
372# A rebuild with the new toolsuite is usually required when there is ABI
373# changes and other vital changes done to the tools.
374#
375
376.PHONY: all-stage1 all-stage1-it
377all-stage1: $(PATH_OBJ)/.all-stage1
378$(PATH_OBJ)/.all-stage1:
379 $(MAKE) $(MAKEOPT) -j 1 -f $(MAKEFILE) all-stage1-it
380 echo "$(@F)" > $(PATH_OBJ)/.last-stage
381 touch $@
382 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
383 @echo "+ Stage 1 - done: $(shell date)"
384 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
385
386all-stage1-it: \
387 all-banner-stage1 \
388 all-builttools-initial \
389 all-binutils \
390 all-gcc \
391 all-emx
392
393.PHONY: all-stage2 all-stage2-it
394all-stage2: $(PATH_OBJ)/.all-stage2
395$(PATH_OBJ)/.all-stage2: \
396 $(PATH_OBJ)/.all-stage2.save-stage1
397 $(MAKE) $(MAKEOPT) -j 1 -f $(MAKEFILE) all-stage2-it
398 echo "$(@F)" > $(PATH_OBJ)/.last-stage
399 touch $@
400 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
401 @echo "+ Stage 2 - done: $(shell date)"
402 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
403
404$(PATH_OBJ)/.all-stage2.save-stage1:
405 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
406 @echo "+ Saving Stage 1 - Starting: $(shell date)"
407 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
408 $(MAKE) $(MAKEOPT) -j 1 -f $(MAKEFILE) all-preload-unload
409 $(MAKE) $(MAKEOPT) -j 1 -f $(MAKEFILE) all-builttools-stage2
410 rm -Rf $(PATH_OBJ)/stage1
411 mkdir -p $(PATH_OBJ)/stage1
412 if [ -d $(PATH_OBJ)/gcc ] ; then mv $(PATH_OBJ)/gcc $(PATH_OBJ)/stage1/gcc; fi
413 if [ -d $(PATH_OBJ)/emx ] ; then mv $(PATH_OBJ)/emx $(PATH_OBJ)/stage1/emx; fi
414 $(MAKE) $(MAKEOPT) -j 1 -f $(MAKEFILE) all-preload
415 touch $@
416 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
417 @echo "+ Saving Stage 1 - done: $(shell date)"
418 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
419
420all-stage2-it: \
421 all-banner-stage2 \
422 all-binutils \
423 all-gcc \
424 all-emx
425
426
427#
428# Install to bin tree makeing it ready for packing.
429#
430.PHONY: all-install
431all-install: \
432 all-banner-install \
433 gcc-install \
434 emx-install \
435 misc-install \
436 all-strip-install \
437 all-banner-install-done \
438
439# strips release build installations.
440.PHONY: all-strip-install
441all-strip-install:
442ifeq ($(BUILD_MODE), RELEASE)
443 echo "Stripping installed binaries..."
444 exes="`find $(PATH_BIN) -name '*.exe' | sed -e 's,/,\\\\,g'`"; \
445 dlls="`find $(PATH_BIN) -name '*.dll' | sed -e 's,/,\\\\,g'`"; \
446 for i in $$exes $$dlls; \
447 do \
448 if lxlite /F+ /AP:4096 /MRN /MLN /MF1 $$i; then true; \
449 else exit 1; \
450 fi; \
451 done
452endif
453
454
455#
456# Generate all the diffs we have to supply.
457#
458.PHONY: all-diff
459all-diff: \
460 gcc-diff \
461 binutils-diff \
462 emx-diff \
463
464
465
466
467
468###############################################################################
469###############################################################################
470###############################################################################
471#
472# Q u i c k b o o t s t r a p p i n g
473#
474###############################################################################
475###############################################################################
476###############################################################################
477
478# This is the default buildtype now.
479# It requires a very up-to-date gcc build, not good for bootstrapping from old GCCs.
480.PHONY: quick all-quick
481quick all-quick:
482 mkdir -p $(PATH_OBJ)
483 $(NICE) $(MAKE) $(MAKEOPT) -j 1 -C . all-quick-logged 2>&1 | $(UNIXROOT)/usr/bin/tee $(PATH_OBJ)/build-`date +"%Y%m%d-%H%M%S"`.log
484
485all-quick-banner-start:
486 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
487 @echo "+ Quick Bootstrap started: $(shell date)"
488 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
489.PHONY: all-quick-logged
490all-quick-logged: \
491 all-quick-banner-start \
492 all-env \
493 all-sanity \
494 all-quick-builttools-initial \
495 all-versionstamps \
496 all-symlinks-unlink \
497 \
498 all-quick-step1 \
499 all-quick-step2 \
500 all-quick-step3 \
501 all-quick-step4 \
502 \
503 all-quick-install \
504 all-preload-unload
505 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
506 @echo "+ Quick Bootstrap Ended Successfully: $(shell date)"
507 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
508
509.PHONY: all-quick-builttools-initial
510all-quick-builttools-initial: $(PATH_OBJ)/.quick-builttools-initial
511all-quick-builttools-initial-it: \
512 all-preload-unload \
513 all-builttools-initial \
514 all-preload
515$(PATH_OBJ)/.quick-builttools-initial:
516 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-quick-builttools-initial-it
517 touch $@
518
519
520# This build type is used for release builds.
521# We're doing two quick builds here to ensure everything is alright.
522.PHONY: double-quick all-double-quick
523double-quick all-double-quick:
524 mkdir -p $(PATH_OBJ)
525 $(NICE) $(MAKE) $(MAKEOPT) -j 1 -C . all-double-quick-logged 2>&1 | $(UNIXROOT)/usr/bin/tee $(PATH_OBJ)/build-`date +"%Y%m%d-%H%M%S"`.log
526
527all-double-quick-banner-start:
528 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
529 @echo "+ Double Quick Bootstrap started: $(shell date)"
530 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
531PHONY: all-double-quick-logged
532all-double-quick-logged: \
533 all-double-quick-banner-start \
534 all-env \
535 all-sanity \
536 all-preload-unload \
537 all-double-quick-builttools-initial \
538 all-preload \
539 all-versionstamps \
540 all-symlinks-unlink \
541 \
542 all-double-quick-stage1 \
543 all-preload-unload \
544 all-double-quick-save-stage1 \
545 all-preload \
546 all-double-quick-stage2 \
547 \
548 all-quick-install \
549 all-preload-unload
550 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
551 @echo "+ Double Quick Bootstrap Ended Successfully: $(shell date)"
552 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
553
554.PHONY: all-double-quick-builttools-initial
555all-double-quick-builttools-initial: $(PATH_OBJ)/.doublequick-builttools-initial
556all-double-quick-builttools-initial-it: \
557 all-preload-unload \
558 all-builttools-initial \
559 all-preload
560$(PATH_OBJ)/.doublequick-builttools-initial:
561 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-double-quick-builttools-initial-it
562 touch $@
563
564# stage1
565.PHONY: all-double-quick-stage1 all-double-quick-stage1-it
566all-double-quick-stage1: $(PATH_OBJ)/.doublequick-stage1
567all-double-quick-stage1-it: \
568 all-quick-step1 \
569 all-quick-step2 \
570 all-quick-step3 \
571 all-quick-step4
572$(PATH_OBJ)/.doublequick-stage1:
573 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
574 @echo "+ Double Quick Bootstrap Stage 1 - starting: $(shell date)"
575 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
576 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-double-quick-stage1-it
577 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
578 @echo "+ Double Quick Bootstrap Stage 1 - done: $(shell date)"
579 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
580 touch $@
581
582# save stage1
583.PHONY: all-double-quick-save-stage1 all-double-quick-save-stage1-it
584all-double-quick-save-stage1: $(PATH_OBJ)/.doublequick-stage1-saved
585all-double-quick-save-stage1-it: all-preload-unload
586 mkdir -p $(PATH_OBJ)/stage1
587 if [ -d $(PATH_OBJ)/emx ]; then rm -Rf $(PATH_OBJ)/stage1/emx && mv $(PATH_OBJ)/emx $(PATH_OBJ)/stage1/emx; fi
588 if [ -d $(PATH_OBJ)/binutils ]; then rm -Rf $(PATH_OBJ)/stage1/binutils && mv $(PATH_OBJ)/binutils $(PATH_OBJ)/stage1/binutils; fi
589 if [ -d $(PATH_OBJ)/gcc ]; then rm -Rf $(PATH_OBJ)/stage1/gcc && mv $(PATH_OBJ)/gcc $(PATH_OBJ)/stage1/gcc; fi
590 if [ -f $(PATH_OBJ)/.quick-last-step ]; then mv -f $(PATH_OBJ)/.quick-last-step $(PATH_OBJ)/stage1; fi
591 rm -f $(PATH_OBJ)/.quick*
592$(PATH_OBJ)/.doublequick-stage1-saved:
593 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
594 @echo "+ Double Quick Bootstrap Saving Stage 1 - starting: $(shell date)"
595 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
596 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-double-quick-save-stage1-it
597 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
598 @echo "+ Double Quick Bootstrap Saving Stage 1 - done: $(shell date)"
599 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
600 touch $@
601
602# stage2
603.PHONY: all-double-quick-stage2 all-double-quick-stage2-it
604all-double-quick-stage2: $(PATH_OBJ)/.doublequick-stage2
605all-double-quick-stage2-it: \
606 all-quick-step1 \
607 all-quick-step2 \
608 all-quick-step3 \
609 all-quick-step4
610$(PATH_OBJ)/.doublequick-stage2:
611 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
612 @echo "+ Double Quick Bootstrap Stage 2 - starting: $(shell date)"
613 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
614 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-double-quick-stage2-it
615 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
616 @echo "+ Double Quick Bootstrap Stage 2 - done: $(shell date)"
617 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
618 touch $@
619
620
621# step 1 builds the base libraries.
622.PHONY: all-quick-step1 all-quick-step1-it
623all-quick-step1: $(PATH_OBJ)/.quick-step1
624all-quick-step1-it: \
625 all-preload \
626 emx-quick-libs \
627 all-preload-unload \
628 emx-quick-libs-install \
629 all-preload
630$(PATH_OBJ)/.quick-step1:
631 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
632 @echo "+ Quick Bootstrap Step 1 - starting: $(shell date)"
633 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
634 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-quick-step1-it
635 echo "$(@F)" > $(PATH_OBJ)/.quick-last-step
636 touch $@
637 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
638 @echo "+ Quick Bootstrap Step 1 - done: $(shell date)"
639 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
640
641# step 2 builds the emx base utilities.
642.PHONY: all-quick-step2 all-quick-step2-it
643all-quick-step2: $(PATH_OBJ)/.quick-step2
644all-quick-step2-it: \
645 emx-quick-rest \
646 all-preload-unload \
647 emx-quick-rest-install \
648 all-preload
649$(PATH_OBJ)/.quick-step2:
650 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
651 @echo "+ Quick Bootstrap Step 2 - starting: $(shell date)"
652 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
653 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-quick-step2-it
654 echo "$(@F)" > $(PATH_OBJ)/.quick-last-step
655 touch $@
656 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
657 @echo "+ Quick Bootstrap Step 2 - done: $(shell date)"
658 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
659
660# step 3 builds all the binutil utilities and libraries.
661.PHONY: all-quick-step3 all-quick-step3-it
662all-quick-step3: $(PATH_OBJ)/.quick-step3
663all-quick-step3-it: \
664 binutils-quick \
665 all-preload-unload \
666 binutils-quick-installstage \
667 all-preload
668$(PATH_OBJ)/.quick-step3:
669 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
670 @echo "+ Quick Bootstrap Step 3 - starting: $(shell date)"
671 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
672 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-quick-step3-it
673 echo "$(@F)" > $(PATH_OBJ)/.quick-last-step
674 touch $@
675 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
676 @echo "+ Quick Bootstrap Step 3 - done: $(shell date)"
677 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
678
679# step 4 builds gcc.
680.PHONY: all-quick-step4 all-quick-step4-it
681all-quick-step4: $(PATH_OBJ)/.quick-step4
682all-quick-step4-it: \
683 gcc-quick \
684 all-preload-unload \
685 gcc-quick-installstage \
686 all-preload
687$(PATH_OBJ)/.quick-step4:
688 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
689 @echo "+ Quick Bootstrap Step 4 - starting: $(shell date)"
690 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
691 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) all-quick-step4-it
692 echo "$(@F)" > $(PATH_OBJ)/.quick-last-step
693 touch $@
694 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
695 @echo "+ Quick Bootstrap Step 4 - done: $(shell date)"
696 @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
697
698
699# Installs the stuff we've built.
700.PHONY: all-quick-install
701all-quick-install: \
702 all-banner-install \
703 gcc-install \
704 binutils-install \
705 emx-install \
706 misc-install \
707 all-strip-install \
708 all-banner-install-done
709
710
711###############################################################################
712###############################################################################
713###############################################################################
714#
715# B u i l t T o o l s
716#
717###############################################################################
718###############################################################################
719###############################################################################
720
721all-builttools-initial: \
722 all-banner-builttools-initial \
723 all-builttools-clean \
724 all-builttools-dirs \
725 $(PATH_BUILTTOOLS)/bin/dllar.cmd \
726 $(PATH_BUILTTOOLS)/omfhack/ar.exe \
727 $(PATH_BUILTTOOLS)/omfhack/realar.exe \
728 $(PATH_BUILTTOOLS)/omfhack/ranlib.exe
729
730all-builttools-clean: \
731 all-preload-unload
732 rm -Rf $(PATH_BUILTTOOLS)
733
734all-builttools-dirs:
735 mkdir -p $(PATH_BUILTTOOLS)/bin $(PATH_BUILTTOOLS)/lib $(PATH_BUILTTOOLS)/include $(PATH_BUILTTOOLS)/omfhack
736
737$(PATH_BUILTTOOLS)/bin/dllar.cmd $(PATH_BUILTTOOLS_TMP)/bin/dllar.cmd: $(PATH_TOP)/src/misc/dllar.cmd
738 cp $< $@
739$(PATH_BUILTTOOLS)/omfhack/ranlib.exe $(PATH_BUILTTOOLS_TMP)/omfhack/ranlib.exe: $(PATH_TOP)/tools/bin/true.exe
740 cp $< $@
741$(PATH_BUILTTOOLS)/omfhack/ar.exe: $(PATH_EMXPGCC)/bin/emxomfar.exe
742 cp $< $@
743$(PATH_BUILTTOOLS_TMP)/omfhack/ar.exe: $(PATH_BUILTTOOLS_TMP)/bin/emxomfar.exe
744 cp $< $@
745$(PATH_BUILTTOOLS)/omfhack/realar.exe $(PATH_BUILTTOOLS_TMP)/omfhack/realar.exe: $(PATH_EMXPGCC)/bin/ar.exe
746 cp $< $@
747$(PATH_BUILTTOOLS_TMP)/omfhack:
748 mkdir -p $@
749
750all-builttools-stage2: \
751 all-banner-builttools-stage2 \
752 gcc-builttools-stage2 \
753 emx-builttools-stage2 \
754 all-builttools-stage2-libs \
755 $(PATH_BUILTTOOLS_TMP)/bin/dllar.cmd \
756 $(PATH_BUILTTOOLS_TMP)/omfhack \
757 $(PATH_BUILTTOOLS_TMP)/omfhack/ar.exe \
758 $(PATH_BUILTTOOLS_TMP)/omfhack/realar.exe \
759 $(PATH_BUILTTOOLS_TMP)/omfhack/ranlib.exe \
760 all-builttools-clean
761 mv -f $(PATH_BUILTTOOLS_TMP) $(PATH_BUILTTOOLS)
762
763all-builttools-stage2-libs:
764 -for aoutlib in `find $(PATH_BUILTTOOLS_TMP) -name "*.a" | sed -e 's/\.a$$//' `; \
765 do \
766 if [ ! -f $(aoutlib).lib ]; then \
767 echo " $${aoutlib}"; \
768 $(PATH_BUILTTOOLS_TMP)/bin/emxomf.exe -p256 $${aoutlib}.a; \
769 fi;\
770 done
771
772
773###############################################################################
774###############################################################################
775###############################################################################
776#
777# S y m l i n k s
778#
779#
780# We use symlinking of binutils stuff into the gcc tree so we can
781# build everything in one go and take advantage of the gcc
782# makesystem which will use the binutils we built when doing the
783# gcc libraries and such.
784#
785# On OS/2 symlinks doesn't exist so, we'll copy the source trees.
786# Copy because this will for directories work ok with cvs, moving
787# directories would cause 'cvs update -d' to refetch stuff.
788#
789# IMPORTANT! Take care, the 'symlined' stuff will be removed at the
790# end of the build. Remeber to do all-symlinks-unlink before a fresh
791# build is started as the duplicated binutils things doesn't get
792# updated by cvs.
793#
794#
795#w##############################################################################
796###############################################################################
797###############################################################################
798all-symlinks: \
799 all-banner-symlinks-start \
800 all-symlinks-binutils \
801 all-banner-symlinks-done
802
803all-symlinks-unlink: \
804 all-banner-symlinks-unlink-start \
805 all-symlinks-unlink-binutils \
806 all-banner-symlinks-unlink-done
807
808
809ifeq "$(BUILD_PLATFORM)" "OS2"
810TOOL_SYMLINK_FILE = cp -p
811TOOL_SYMLINK_DIR = cp -pRf
812TOOL_SYMLINK_MKDIR = mkdir
813TOOL_UNSYMLINK_DIR = rm -Rf
814else
815TOOL_SYMLINK_FILE = ln -fs
816TOOL_SYMLINK_DIR = ln -fs
817TOOL_SYMLINK_MKDIR = true
818TOOL_UNSYMLINK_DIR = rm
819endif
820
821# ld is broken, so don't use it!
822# ld \
823
824SYMLINKS_BINUTILS_TO_GCC_DIRS = \
825bfd \
826binutils \
827etc \
828gas \
829gprof \
830intl \
831opcodes \
832texinfo \
833libiberty \
834include/aout \
835include/coff \
836include/elf \
837include/gdb \
838include/mpw \
839include/nlm \
840include/opcode \
841include/regs \
842
843SYMLINKS_BINUTILS_TO_GCC_FILES = \
844include/alloca-conf.h \
845include/ansidecl.h \
846include/bfdlink.h \
847include/bin-bugs.h \
848include/bout.h \
849include/ChangeLog \
850include/COPYING \
851include/demangle.h \
852include/dis-asm.h \
853include/dyn-string.h \
854include/fibheap.h \
855include/filenames.h \
856include/floatformat.h \
857include/fnmatch.h \
858include/fopen-bin.h \
859include/fopen-same.h \
860include/fopen-vms.h \
861include/gdbm.h \
862include/getopt.h \
863include/hashtab.h \
864include/hp-symtab.h \
865include/ieee.h \
866include/libiberty.h \
867include/MAINTAINERS \
868include/md5.h \
869include/oasys.h \
870include/objalloc.h \
871include/obstack.h \
872include/os9k.h \
873include/partition.h \
874include/progress.h \
875include/safe-ctype.h \
876include/sort.h \
877include/splay-tree.h \
878include/symcat.h \
879include/ternary.h \
880include/xregex.h \
881include/xregex2.h \
882include/xtensa-config.h \
883include/xtensa-isa-internal.h \
884include/xtensa-isa.h \
885
886
887# Symlink binutils stuff to gcc.
888# Note the test should've been "! -e", but that doesn' work in ash... :/
889all-symlinks-binutils:
890 for file in $(SYMLINKS_BINUTILS_TO_GCC_FILES); do \
891 if [ ! -f "$(PATH_TOP)/src/gcc/.symlinked.`echo $${file} | sed -e 's@/@_@g'`" ]; then \
892 echo symlinking file src/gcc/$${file} to src/binutils/$${file} ; \
893 if rm -f $(PATH_TOP)/src/gcc/$$file && \
894 $(TOOL_SYMLINK_FILE) $(PATH_TOP)/src/binutils/$$file $(PATH_TOP)/src/gcc/$$file && \
895 touch $(PATH_TOP)/src/gcc/.symlinked.`echo $${file} | sed -e 's@/@_@g'`; \
896 then true ; \
897 else exit 1; \
898 fi ; \
899 fi ; \
900 done
901 for dir in $(SYMLINKS_BINUTILS_TO_GCC_DIRS) ; do \
902 if [ ! -f "$(PATH_TOP)/src/gcc/.symlinked.`echo $${dir} | sed -e 's@/@_@g'`" ] ; then \
903 echo symlinking directory src/gcc/$${dir} to src/binutils/$${dir} ; \
904 if [ -d "$(PATH_TOP)/src/gcc/$$dir" ] ; then \
905 echo removing existing directory: $${dir} ; \
906 rm -Rf $(PATH_TOP)/src/gcc/$$dir ; \
907 fi ; \
908 if $(TOOL_SYMLINK_MKDIR) $(PATH_TOP)/src/gcc/$$dir && \
909 $(TOOL_SYMLINK_DIR) $(PATH_TOP)/src/binutils/$$dir $(PATH_TOP)/src/gcc/`echo $${dir}| sed -e '/\//!d' -e 's@\([a-zA-z0-9]*\)/.*@\1/@'` ; \
910 touch $(PATH_TOP)/src/gcc/.symlinked.`echo $${dir} | sed -e 's@/@_@g'` ; \
911 then true ; \
912 else exit 1; \
913 fi ; \
914 fi ; \
915 done
916 -ls -a1 src/gcc/.sym*
917
918all-symlinks-unlink-binutils:
919 for name in `ls src/gcc/.symlinked* | sed -e "s/.*\.symlinked.//" -e "s/_/\//g"`; do \
920 echo unlinking $${name} ; \
921 if [ -d "$(PATH_TOP)/src/gcc/$${name}" ] ; then \
922 rm -Rf $(PATH_TOP)/src/gcc/$${name} ; \
923 else \
924 rm -f $(PATH_TOP)/src/gcc/$${name} ; \
925 fi ; \
926 if [ ! -f "$(PATH_TOP)/src/gcc/$${name}" -a ! -d "$(PATH_TOP)/src/gcc/$${name}" ] ; then \
927 rm $(PATH_TOP)/src/gcc/.symlinked.`echo $${name} | sed -e 's@/@_@g'` ; \
928 else \
929 echo "unlink error: $(PATH_TOP)/src/gcc/$${name} exist" ; \
930 ls -l "$(PATH_TOP)/src/gcc/$${name}" ; \
931 exit 1; \
932 fi ; \
933 done
934 -ls -a1 src/gcc/.sym*
935
936
937###############################################################################
938###############################################################################
939###############################################################################
940#
941# G C C
942#
943###############################################################################
944###############################################################################
945###############################################################################
946all-gcc gcc: \
947 gcc-autoconf-refresh \
948 gcc-bootstrap
949 echo "Successfully build GCC."
950
951
952
953GCC_DIRS = \
954gcc/libiberty \
955gcc/zlib \
956gcc/gcc \
957gcc/libstdc++-v3 \
958gcc/boehm-gc \
959gcc/fastjar \
960gcc/libf2c \
961gcc/libf2c/libF77 \
962gcc/libf2c/libI77 \
963gcc/libf2c/libU77 \
964gcc/libffi \
965gcc/libjava \
966gcc/libjava/libltdl \
967gcc/libobjc \
968
969# Here is a problem, we can't regenerate binutils makefiles when symlinked into
970# gcc. At least not yet. The result is messed up severely.
971not_yet =\
972gcc/bfd \
973gcc/binutils \
974gcc/gas \
975gcc/gprof \
976gcc/ld \
977gcc/libiberty \
978gcc/opcodes
979#gcc/intl
980
981GCC_CONFIGURE_DIRS = $(GCC_DIRS)
982
983
984# configure.in/configure
985.PHONY: gcc-autoconf-refresh gcc-autoconf-rerun gcc-autoconf-clean gcc-autoconf-remove
986gcc-autoconf-refresh gcc-autoconf-rerun gcc-autoconf-clean gcc-autoconf-remove:
987ifeq "$(BUILD_PLATFORM)" "LINUX"
988 -$(SH) $(PATH_TOP)/xfix.sh
989endif
990 for dir in $(GCC_CONFIGURE_DIRS); do \
991 echo $$dir; \
992 if $(MAKE) $(MAKEOPT) -j 1 $(@:gcc-autoconf-%=%) -f $(PWD)/config.gmk -C src/$$dir ; then \
993 true; \
994 else \
995 exit 8; \
996 fi \
997 done
998
999
1000# build the components.
1001.PHONY: gcc-bootstrap gcc-build gcc-install gcc-configure
1002gcc-bootstrap gcc-build gcc-install gcc-configure:
1003 mkdir -p $(PATH_OBJ)/gcc
1004 $(MAKE) $(MAKEOPT) -j 1 -C $(PATH_OBJ)/gcc -f $(MAKEFILE) $@-it
1005
1006
1007# When changed directory
1008# We pass down BOOT_ flags for stage2+.
1009# Because strip is broken on OS/2 we pass -s for release build and -g for
1010# non release builds - This overrides some stuff in src/gcc/gcc/config/i386/t-emx!
1011# For the 2nd stage we need a hack for using the right specs when linking...
1012#SPEC_HACK = $(if $(wildchar $(PATH_OBJ)/.all-stage1),\
1013# -specs $(PATH_TOP)/src/emx/src/lib/libc.specs, \
1014# -specs $(PATH_TOP)/tools/x86.os2/gcc/staged/lib/gcc-lib/i386-pc-os2-emx/$(GCC_VERSION)/specs)
1015SPECS_HACK =
1016gcc-bootstrap-it gcc-build-it: \
1017 $(PATH_OBJ)/gcc/.ts.configured
1018ifeq "$(BUILD_PLATFORM)" "OS2"
1019 unset GCCLOAD ; export LT_OS2_LDFLAGS="-Zomf -g" ; \
1020 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/gcc \
1021 LIBGCC2_DEBUG_CFLAGS="$(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem " \
1022 CFLAGS="$(SPEC_HACK) $(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem" \
1023 CXXFLAGS="$(SPEC_HACK) $(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem" \
1024 BOOT_CFLAGS="$(SPEC_HACK) $(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem" \
1025 LDFLAGS="$(SPEC_HACK) $(BUILD_DEBUGINFO) -Zhigh-mem -Zcrtdll -Zstack 1024 -Zomf" \
1026 BOOT_LDFLAGS="$(SPEC_HACK) $(BUILD_DEBUGINFO) -Zhigh-mem -Zcrtdll -Zstack 1024 -Zomf" \
1027 $(subst build, all, $(patsubst gcc-%-it, %, $@))
1028else
1029 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/gcc $(subst build, all, $(patsubst gcc-%-it, %, $@))
1030endif
1031
1032# configure it (invoked after directory change).
1033# We set CC to help configure finding it.
1034# We also set some LDFLAGS to get omf linking.
1035gcc-configure-it $(PATH_OBJ)/gcc/.ts.configured: $(PATH_TOP)/src/gcc/configure
1036ifeq "$(BUILD_PLATFORM)" "OS2"
1037 $(ASH) -c " \
1038 export CC=\"gcc.exe\" ; \
1039 export LDFLAGS=\"$(SPEC_HACK) $(BUILD_DEBUGINFO) -Zhigh-mem -Zcrtdll -Zstack 1024 -Zomf\" ; \
1040 export BOOT_LDFLAGS=\"$(SPEC_HACK) $(BUILD_DEBUGINFO) -Zhigh-mem -Zcrtdll -Zstack 1024 -Zomf\" ; \
1041 $< \
1042 --enable-clh \
1043 --enable-threads=os2 \
1044 --enable-shared=libgcc,bfd,opcodes \
1045 --enable-nls \
1046 --without-included-gettext \
1047 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
1048 --prefix=/gcc \
1049 --with-gnu-as \
1050 --disable-libgcj \
1051 --enable-languages=c,c++ "
1052else
1053 $(ASH) -c "$< \
1054 --disable-clh \
1055 --enable-shared=libgcc,bfd,opcodes \
1056 --enable-nls \
1057 --without-included-gettext \
1058 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
1059 --prefix=/gcc \
1060 --with-gnu-as \
1061 --disable-libgcj \
1062 --enable-languages=c,c++ "
1063endif
1064 touch $(PATH_OBJ)/gcc/.ts.configured
1065# TODO: Andy, on Linux --enable-clh result in linking errors.
1066
1067# Install the GCC build
1068# Repeating the prefix doesn't hurt anybody.
1069gcc-install-it:
1070 $(MAKE) $(MAKEOPT) prefix=$(ALL_PREFIX) install
1071
1072
1073# easy, update src/gcc/gcc/version.c
1074gcc-versionstamps:
1075 @echo "Version stamping gcc..."
1076 mv -f $(PATH_TOP)/src/gcc/gcc/version.c $(PATH_TOP)/src/gcc/gcc/version.tmp.c
1077 sed -e '/version_string/s/\([0-9]\.[0-9]*\.[0-9]*\).*/\1 $(INNOTEK_VERSION)";/' \
1078 $(PATH_TOP)/src/gcc/gcc/version.tmp.c > $(PATH_TOP)/src/gcc/gcc/version.c
1079 rm -f $(PATH_TOP)/src/gcc/gcc/version.tmp.c
1080
1081
1082# Install to builttools directory.
1083## WARNING! Another spec HACK!
1084gcc-builttools-stage2:
1085 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/gcc prefix=$(PATH_BUILTTOOLS_TMPD) install
1086## cp $(PATH_TOP)/src/emx/src/lib/libc.specs $(PATH_OBJ)/gcc/gcc/specs
1087
1088
1089# Quick bootstrap workers.
1090gcc-quick: \
1091 gcc-autoconf-refresh \
1092 gcc-build
1093
1094gcc-quick-installstage:
1095 rm -Rf $(PATH_BUILTTOOLS_TMP)
1096 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/gcc prefix=$(PATH_BUILTTOOLS_TMPD) install
1097 cp -Rf $(PATH_BUILTTOOLS_TMP)/* $(PATH_BUILTTOOLS)/
1098 rm -Rf $(PATH_BUILTTOOLS_TMP)
1099
1100
1101# Generate diffs for GCC (v3.2.2) - part of packing a release.
1102.PHONY: gcc-diff $(ALL_PREFIX)/src/diffs/gcc-$(GCC_VERSION).diff
1103gcc-diff: $(ALL_PREFIX)/src/diffs/gcc-$(GCC_VERSION).diff
1104$(ALL_PREFIX)/src/diffs/gcc-$(GCC_VERSION).diff:
1105 mkdir -p $(@D)
1106 $(TOOL_CVS_DIFF_TREE) $(GCC_CVS_REL) src/gcc > $@
1107
1108
1109
1110
1111
1112###############################################################################
1113###############################################################################
1114###############################################################################
1115#
1116# B i n U t i l s
1117#
1118###############################################################################
1119###############################################################################
1120###############################################################################
1121
1122BINUTILS_DIRS = \
1123binutils/bfd \
1124binutils/opcodes \
1125binutils/gas \
1126binutils/gprof \
1127binutils/binutils \
1128binutils/ld \
1129
1130BINUTILS_NOT_DIRS =\
1131binutils/etc \
1132binutils/libiberty
1133#binutils/intl
1134
1135
1136BINUTILS_CONFIGURE_DIRS = $(BINUTILS_DIRS) $(BINUTILS_NOT_DIRS)
1137
1138all-binutils binutils:
1139 echo "Binutils are build together with the other GNU Tools in GCC."
1140 echo "Separate building of binutils is not configured."
1141
1142binutils214: \
1143 binutils-autoconf-refresh \
1144 binutils-build
1145 echo "Successfully build Binutils v2.14."
1146
1147
1148
1149# configure.in/configure
1150.PHONY: binutils-autoconf-refresh binutils-autoconf-rerun binutils-autoconf-clean binutils-autoconf-remove
1151binutils-autoconf-refresh binutils-autoconf-rerun binutils-autoconf-clean binutils-autoconf-remove:
1152ifeq "$(BUILD_PLATFORM)" "LINUX"
1153 -$(SH) $(PATH_TOP)/xfix.sh
1154endif
1155 for dir in $(BINUTILS_CONFIGURE_DIRS); do \
1156 if $(MAKE) $(MAKEOPT) -j 1 $(@:binutils-autoconf-%=%) -f $(PWD)/config.gmk -C src/$$dir ; then \
1157 true; \
1158 else \
1159 exit 8; \
1160 fi \
1161 done
1162
1163
1164# build the components.
1165.PHONY: binutils-build binutils-install binutils-configure binutils-configure-elf
1166binutils-build binutils-install binutils-configure binutils-configure-elf:
1167 mkdir -p $(PATH_OBJ)/binutils
1168 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/binutils -f $(MAKEFILE) $@-it
1169
1170
1171# When changed directory
1172binutils-build-it: \
1173 $(PATH_OBJ)/binutils/.ts.configured
1174 unset GCCLOAD ; export LT_OS2_LDFLAGS="-Zomf -g -Zmap" ; \
1175 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/binutils \
1176 CFLAGS="$(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem" \
1177 LDFLAGS="$(BUILD_DEBUGINFO) -Zhigh-mem -Zstack 1024 -Zomf"
1178 unset GCCLOAD ; export LT_OS2_LDFLAGS="-Zomf -g -Zmap" ; \
1179 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/binutils/gas-elf \
1180 CFLAGS="$(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem" \
1181 LDFLAGS="$(BUILD_DEBUGINFO) -Zhigh-mem -Zstack 1024 -Zomf"
1182 unset GCCLOAD ; export LT_OS2_LDFLAGS="-Zomf -g -Zmap" ; \
1183 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/binutils/ld-elf \
1184 CFLAGS="$(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem" \
1185 LDFLAGS="$(BUILD_DEBUGINFO) -Zhigh-mem -Zstack 1024 -Zomf"
1186
1187# configure it (invoked after directory change).
1188# We set CC to help configure finding it.
1189# And we reconfigure libiberty to the gcc one.
1190binutils-configure-it $(PATH_OBJ)/binutils/.ts.configured: $(PATH_TOP)/src/binutils/configure
1191ifeq "$(BUILD_PLATFORM)" "OS2"
1192 $(ASH) -c " \
1193 CC=\"gcc.exe\" \
1194 CFLAGS=\"$(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem\" \
1195 LDFLAGS=\"$(BUILD_DEBUGINFO) -Zhigh-mem -Zstack 1024 -Zomf\" \
1196 $< \
1197 --enable-clh \
1198 --enable-threads=os2 \
1199 --enable-shared=libgcc,bfd,opcodes \
1200 --enable-nls \
1201 --without-included-gettext \
1202 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
1203 --prefix=/gcc \
1204 --with-gnu-as \
1205 --disable-libgcj \
1206 --enable-languages=c,c++ "
1207else
1208 $(ASH) -c "$< \
1209 --disable-clh \
1210 --enable-shared=libgcc,bfd,opcodes \
1211 --enable-nls \
1212 --without-included-gettext \
1213 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
1214 --prefix=/gcc \
1215 --with-gnu-as \
1216 --disable-libgcj \
1217 --enable-languages=c,c++ "
1218endif
1219 mkdir -p gas-elf
1220 $(ASH) -c "cd gas-elf && \
1221 CC=\"gcc.exe\" \
1222 CFLAGS=\"$(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem\" \
1223 LDFLAGS=\"$(BUILD_DEBUGINFO) -Zhigh-mem -Zstack 1024 -Zomf\" \
1224 $(PATH_TOP)/src/binutils/gas/configure \
1225 --target=i386-pc-os2-elf \
1226 --enable-shared=libgcc,bfd,opcodes \
1227 --enable-nls \
1228 --without-included-gettext \
1229 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
1230 --prefix=/gcc \
1231 --with-gnu-as \
1232 --program-suffix=-elf "
1233 mkdir -p ld-elf
1234 $(ASH) -c "cd ld-elf && \
1235 CC=\"gcc.exe\" \
1236 CFLAGS=\"$(BUILD_DEBUGINFO) $(BUILD_OPTIMIZE) -Zhigh-mem\" \
1237 LDFLAGS=\"$(BUILD_DEBUGINFO) -Zhigh-mem -Zstack 1024 -Zomf\" \
1238 $(PATH_TOP)/src/binutils/ld/configure \
1239 --target=i386-pc-os2-elf \
1240 --enable-shared=libgcc,bfd,opcodes \
1241 --enable-nls \
1242 --without-included-gettext \
1243 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
1244 --prefix=/gcc \
1245 --with-gnu-as \
1246 --program-suffix=-elf "
1247 touch $(PATH_OBJ)/binutils/.ts.configured
1248
1249
1250
1251# Install the Binutils build
1252# Repeating the prefix doesn't hurt anybody.
1253binutils-install-it:
1254 cd gas-elf && $(MAKE) $(MAKEOPT) prefix=$(ALL_PREFIX) install
1255 cd ld-elf && $(MAKE) $(MAKEOPT) prefix=$(ALL_PREFIX) install
1256 $(MAKE) $(MAKEOPT) prefix=$(ALL_PREFIX) install
1257 mv -f $(ALL_PREFIX)/bin/ld.exe $(ALL_PREFIX)/bin/ld-bad.exe
1258 mv -f $(ALL_PREFIX)/i386-pc-os2-emx/bin/ld.exe $(ALL_PREFIX)/i386-pc-os2-emx/bin/ld-bad.exe
1259
1260
1261# Not so easy, need to patch a few files.
1262binutils-versionstamps:
1263 @echo "Version stamping binutils..."
1264 cp -f $(PATH_TOP)/src/binutils/binutils/version.c $(PATH_TOP)/src/binutils/binutils/version.tmp.c
1265 sed -e '/printf.*program_version/s/%s %s.*\\n/%s %s $(INNOTEK_VERSION)\\n/' \
1266 $(PATH_TOP)/src/binutils/binutils/version.tmp.c > $(PATH_TOP)/src/binutils/binutils/version.c
1267 rm -f $(PATH_TOP)/src/binutils/binutils/version.tmp.c
1268 if [ -f $(PATH_TOP)/src/gcc/binutils/version.c ]; then \
1269 cp -f $(PATH_TOP)/src/gcc/binutils/version.c $(PATH_TOP)/src/gcc/binutils/version.tmp.c && \
1270 sed -e '/printf.*program_version/s/%s %s.*\\n/%s %s $(INNOTEK_VERSION)\\n/' \
1271 $(PATH_TOP)/src/gcc/binutils/version.tmp.c > $(PATH_TOP)/src/gcc/binutils/version.c && \
1272 rm -f $(PATH_TOP)/src/gcc/binutils/version.tmp.c ; \
1273 fi
1274 @echo "Version stamping gas..."
1275 cp -f $(PATH_TOP)/src/binutils/gas/as.c $(PATH_TOP)/src/binutils/gas/as.tmp.c
1276 sed -e '/printf.*GNU.*assembler/s/%s.*\\n/%s $(INNOTEK_VERSION)\\n/' \
1277 -e '/fprintf.*GNU.*assembler.*version.*BFD.*/s/using BFD version %s.*/using BFD version %s $(INNOTEK_VERSION)"),/ ' \
1278 $(PATH_TOP)/src/binutils/gas/as.tmp.c > $(PATH_TOP)/src/binutils/gas/as.c
1279 rm -f $(PATH_TOP)/src/binutils/gas/as.tmp.c
1280 if [ -f $(PATH_TOP)/src/gcc/gas/as.c ]; then \
1281 cp -f $(PATH_TOP)/src/gcc/gas/as.c $(PATH_TOP)/src/gcc/gas/as.tmp.c && \
1282 sed -e '/printf.*GNU.*assembler/s/%s.*\\n/%s $(INNOTEK_VERSION)\\n/' \
1283 -e '/fprintf.*GNU.*assembler.*version.*BFD.*/s/using BFD version %s.*/using BFD version %s $(INNOTEK_VERSION)"),/ ' \
1284 $(PATH_TOP)/src/gcc/gas/as.tmp.c > $(PATH_TOP)/src/gcc/gas/as.c && \
1285 rm -f $(PATH_TOP)/src/gcc/gas/as.tmp.c ; \
1286 fi
1287 @echo "Version stamping ld..."
1288 cp -f $(PATH_TOP)/src/binutils/ld/ldver.c $(PATH_TOP)/src/binutils/ld/ldver.tmp.c
1289 sed -e '/fprintf.*GNU.*ld.*version/s/(with BFD %s).*/(with BFD %s) $(INNOTEK_VERSION)\\n"),/' \
1290 $(PATH_TOP)/src/binutils/ld/ldver.tmp.c > $(PATH_TOP)/src/binutils/ld/ldver.c
1291 rm -f $(PATH_TOP)/src/binutils/ld/ldver.tmp.c
1292 if [ -f $(PATH_TOP)/src/gcc/ld/ldver.c ]; then \
1293 cp -f $(PATH_TOP)/src/gcc/ld/ldver.c $(PATH_TOP)/src/gcc/ld/ldver.tmp.c && \
1294 sed -e '/fprintf.*GNU.*ld.*version/s/(with BFD %s).*/(with BFD %s) $(INNOTEK_VERSION)\\n"),/' \
1295 $(PATH_TOP)/src/gcc/ld/ldver.tmp.c > $(PATH_TOP)/src/gcc/ld/ldver.c && \
1296 rm -f $(PATH_TOP)/src/gcc/ld/ldver.tmp.c ; \
1297 fi
1298
1299
1300# Quick bootstrap workers.
1301binutils-quick:
1302 GCCLOAD=5 $(MAKE) $(MAKEOPT) -f $(MAKEFILE) binutils214
1303
1304binutils-quick-installstage:
1305 rm -Rf $(PATH_BUILTTOOLS_TMP)
1306 $(MAKE) $(MAKEOPT) -C $(PATH_OBJ)/binutils prefix=$(PATH_BUILTTOOLS_TMPD) install
1307 mv -f $(PATH_BUILTTOOLS_TMP)/bin/ld.exe $(PATH_BUILTTOOLS_TMP)/bin/ld-bad.exe
1308 mv -f $(PATH_BUILTTOOLS_TMP)/i386-pc-os2-emx/bin/ld.exe $(PATH_BUILTTOOLS_TMP)/i386-pc-os2-emx/bin/ld-bad.exe
1309 cp -Rf $(PATH_BUILTTOOLS_TMP)/* $(PATH_BUILTTOOLS)/
1310 rm -Rf $(PATH_BUILTTOOLS_TMP)
1311
1312
1313# Generate diffs for Binutils (part of packing).
1314.PHONY: binutils-diff $(ALL_PREFIX)/src/diffs/binutils-$(BINUTILS_VERSION).diff
1315binutils-diff: $(ALL_PREFIX)/src/diffs/binutils-$(BINUTILS_VERSION).diff
1316$(ALL_PREFIX)/src/diffs/binutils-$(BINUTILS_VERSION).diff:
1317 mkdir -p $(@D)
1318 $(TOOL_CVS_DIFF_TREE) $(BINUTILS_CVS_REL) src/binutils > $@
1319
1320
1321
1322
1323
1324
1325
1326
1327###############################################################################
1328###############################################################################
1329###############################################################################
1330#
1331# E M X
1332#
1333###############################################################################
1334###############################################################################
1335###############################################################################
1336all-emx emx: \
1337 emx-build
1338 @echo "Successfully build EMX."
1339
1340# Some helpers.
1341# TODO: Change OUT and INS to the right ones. Currently not possible as
1342# doing such breaks the rules generating.
1343EMX_MODE = dbg
1344ifeq "$(BUILD_MODE)" "RELEASE"
1345EMX_MODE = opt
1346endif
1347#EMX_OUT = out/
1348#EMX_INS = out/install/
1349EMX_OUT = $(PATH_OBJD)/emx/
1350EMX_INS = $(ALL_PREFIX)/
1351EMX_MASM = $(PATH_TOP)/tools/x86.os2/masm/v6.0/binp/ml.exe
1352EMX_DEFINES = "OUT=$(EMX_OUT)" "INS=$(EMX_INS)" "MODE=$(EMX_MODE)" "ASM=$(EMX_MASM) -c"
1353
1354# build the components. (directory changer rules)
1355.PHONY: emx-build emx-install emx-configure
1356emx-build emx-install:
1357 mkdir -p $(PATH_OBJ)/emx
1358 $(MAKE) $(MAKEOPT) -C $(PATH_TOP)/src/emx -f $(MAKEFILE) $@-it
1359
1360emx-build-it:
1361 $(MAKE) $(MAKEOPT) -j 1 -C $(PATH_TOP)/src/emx $(EMX_DEFINES) tools
1362 $(MAKE) $(MAKEOPT) -C $(PATH_TOP)/src/emx $(EMX_DEFINES) all
1363
1364emx-install-it:
1365 $(MAKE) $(MAKEOPT) -C $(PATH_TOP)/src/emx $(EMX_DEFINES) INS=$(ALL_PREFIX)/ install
1366
1367
1368# We pass down the INNOTEK_VERSION define when building EMX.
1369emx-versionstamps:
1370 @echo "Version stamping EMX... nothing to do"
1371
1372# Install the compiled emx stuff to builttools.
1373emx-builttools-stage2:
1374 $(MAKE) $(MAKEOPT) -C $(PATH_TOP)/src/emx $(EMX_DEFINES) INS=$(PATH_BUILTTOOLS_TMP)/ install
1375
1376# Quick bootstrap workers.
1377emx-quick-libs:
1378 GCCLOAD=3 $(MAKE) $(MAKEOPT) -f $(PATH_TOP)/src/emx/libonly.gmk -C $(PATH_TOP)/src/emx $(EMX_DEFINES) all
1379
1380emx-quick-libs-install:
1381 $(MAKE) $(MAKEOPT) -f $(PATH_TOP)/src/emx/libonly.gmk -C $(PATH_TOP)/src/emx $(EMX_DEFINES) INS=$(PATH_BUILTTOOLS)/ install
1382
1383emx-quick-rest:
1384 GCCLOAD=3 $(MAKE) $(MAKEOPT) -C $(PATH_TOP)/src/emx $(EMX_DEFINES) all
1385
1386emx-quick-rest-install:
1387 $(MAKE) $(MAKEOPT) -C $(PATH_TOP)/src/emx $(EMX_DEFINES) INS=$(PATH_BUILTTOOLS)/ install
1388
1389
1390# Generate diffs for EMX (part of packing).
1391.PHONY: emx-diff $(ALL_PREFIX)/src/diffs/emx-$(EMX_VERSION).diff
1392emx-diff: $(ALL_PREFIX)/src/diffs/emx-$(EMX_VERSION).diff
1393$(ALL_PREFIX)/src/diffs/emx-$(EMX_VERSION).diff:
1394 mkdir -p $(@D)
1395 $(TOOL_CVS_DIFF_TREE) $(EMX_CVS_REL) src/emx > $@
1396
1397
1398
1399
1400
1401###############################################################################
1402###############################################################################
1403###############################################################################
1404#
1405# P A C K I N G
1406#
1407###############################################################################
1408###############################################################################
1409###############################################################################
1410packing: \
1411 packing-all \
1412 packing-doc \
1413 packing-libc \
1414 installer
1415# don't need this anylonger - all or nothing at all.
1416# packing-core
1417# packing-dbg
1418# packing-prf
1419
1420ZIPFLAGS=-rX9
1421ZIPBASE=$(PATH_BIN)/GCC-$(GCC_VERSION)-$(GCC_RELEASE_ID)
1422
1423packing-all:
1424 rm -f $(ZIPBASE).zip
1425 cd $(ALL_PREFIX)/.. ; zip $(ZIPFLAGS) $(ZIPBASE).zip *
1426
1427packing-doc:
1428 rm -f $(ZIPBASE)-doc.zip
1429 cd $(ALL_PREFIX)/..; zip $(ZIPFLAGS) $(ZIPBASE)-doc.zip usr/doc/GCC-$(GCC_VERSION)/*
1430
1431packing-libc:
1432 rm -f $(PATH_BIN)/libc.zip
1433 cd $(ALL_PREFIX)/lib; zip $(ZIPFLAGS) $(PATH_BIN)/libc.zip libc*.dll gcc*.dll
1434 cd $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION); zip $(ZIPFLAGS) $(PATH_BIN)/libc.zip COPYING.LIB
1435
1436packing-core:
1437 rm -f $(ZIPBASE)-core.zip
1438 cd $(ALL_PREFIX)/.. ; zip $(ZIPFLAGS) $(ZIPBASE)-core.zip * -x \*.dbg -x \*.map -x \*_p.\* -x \*.elh -x \*.prf -x \*.lib -x usr/lib/dbg/\* -x \*.lib
1439 cd $(ALL_PREFIX)/.. ; zip $(ZIPFLAGS) $(ZIPBASE)-core.zip usr/lib/libc*dbg usr/lib/end.lib
1440
1441packing-dbg:
1442 rm -f $(ZIPBASE)-dbg.zip
1443 cd $(ALL_PREFIX)/.. ; zip $(ZIPFLAGS) $(ZIPBASE)-dbg.zip . -i \*.dbg -i \*.map -i \*.elh -i \*.sym -i usr/lib/dbg/\*
1444
1445packing-prf:
1446 rm -f $(ZIPBASE)-prf.zip
1447 cd $(ALL_PREFIX)/.. ; zip $(ZIPFLAGS) $(ZIPBASE)-prf.zip . -i \*_p.\* -i \*.prf
1448
1449packing-src: \
1450 packing-src-gcc \
1451 packing-src-binutils \
1452 packing-src-emx \
1453
1454packing-src-gcc:
1455 rm -f $(ZIPBASE)-src-GCC.zip
1456 zip $(ZIPFLAGS) $(ZIPBASE)-src-GCC.zip src/gcc -x \*CVS\*
1457
1458packing-src-binutils:
1459 rm -f $(ZIPBASE)-src-binutils.zip
1460 zip $(ZIPFLAGS) $(ZIPBASE)-src-binutils.zip src/binutils -x \*CVS\*
1461
1462packing-src-emx:
1463 rm -f $(ZIPBASE)-src-emx.zip
1464 zip $(subst r,,$(ZIPFLAGS)) $(ZIPBASE)-src-emx.zip src/emx/* -x \*CVS\* -x \*testcase\* -x \*out\*
1465 zip $(ZIPFLAGS) $(ZIPBASE)-src-emx.zip src/emx/src/* src/emx/include/* src/emx/src/bsd/* -x \*CVS\*
1466
1467installer:
1468 $(MAKE) $(MAKEOPT) -C $(PATH_TOP)/src/install all packing
1469
1470
1471###############################################################################
1472###############################################################################
1473###############################################################################
1474#
1475# M I S C
1476#
1477###############################################################################
1478###############################################################################
1479###############################################################################
1480
1481misc-install:
1482 mkdir -p $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION)
1483 mkdir -p $(ALL_PREFIX)/lib
1484 mkdir -p $(ALL_PREFIX)/bin
1485 cp $(PATH_TOP)/doc/ReleaseNotes.os2 $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION)
1486 cp $(PATH_TOP)/doc/MailingLists.os2 $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION)
1487 cp $(PATH_TOP)/doc/Install.os2 $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION)
1488 cp $(PATH_TOP)/doc/Licenses.os2 $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION)
1489 cp $(PATH_TOP)/doc/COPYING.LIB $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION)
1490 cp $(PATH_TOP)/doc/COPYING $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION)
1491 cp $(PATH_TOP)/ChangeLog $(ALL_PREFIX)/doc/GCC-$(GCC_VERSION)/ChangeLog.os2
1492 cp $(PATH_TOP)/src/install/MakeOmfLibs.cmd $(ALL_PREFIX)/lib
1493 cp $(PATH_TOP)/src/misc/dllar.cmd $(ALL_PREFIX)/bin
1494 cp $(PATH_TOP)/src/misc/gccenv.cmd $(ALL_PREFIX)/bin
1495 if test -f $(PATH_TOP)/tools/usr/lib/Iintl6i.dll; then \
1496 cp $(PATH_TOP)/tools/usr/lib/Iintl6i.dll $(ALL_PREFIX)/lib; \
1497 else \
1498 if test -f $(PATH_TOP)/tools/usr/lib/intl6i.dll; then \
1499 cp $(PATH_TOP)/tools/usr/lib/intl6i.dll $(ALL_PREFIX)/lib; \
1500 fi \
1501 fi
1502 ar cr $(ALL_PREFIX)/lib/m.a
1503
1504
1505#
1506# Checkout rule
1507#
1508checkout update:
1509 cvs -q update -d -P 2>&1 | tee up.log
1510
1511# DO NOT DELETE
Note: See TracBrowser for help on using the repository browser.