source: branches/libc-0.6/Makefile@ 2456

Last change on this file since 2456 was 2456, checked in by bird, 20 years ago

cleaned up packing.

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