source: trunk/Makefile@ 80

Last change on this file since 80 was 76, checked in by bird, 23 years ago

Installing.

  • Property cvs2svn:cvs-rev set to 1.8
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 12.0 KB
RevLine 
[25]1# $Id: Makefile 76 2003-05-01 02:22:07Z bird $
2#
3# Top level makefile.
4#
5# InnoTek Systemberatung GmbHconfidential
6#
7# Copyright (c) 2003 InnoTek Systemberatung GmbH
8# Author: knut st. osmundsen <[email protected]>
9#
10# All Rights Reserved
11#
12
[34]13
14###############################################################################
15## Global Variables
[73]16## (D = no drive)
[34]17###############################################################################
[69]18PWD := $(shell pwd)
19PWDD := $(shell pwd|sed 's/^[a-zA-Z]://')
20MAKEFILE = $(PWD)/Makefile
[34]21
22ifndef "$(BUILD_MODE)"
23export BUILD_MODE=DEBUG
[25]24endif
[34]25
[69]26ifndef PATH_TOP
27export PATH_TOP := $(PWD)
[76]28endif
29ifndef PATH_TOPD
[69]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)
[34]36ifndef PATH_OBJ
[69]37export PATH_OBJ = $(PATH_TOP)/obj/$(BUILD_PLATFORM)/$(BUILD_MODE)
38export PATH_OBJD = $(PATH_TOPD)/obj/$(BUILD_PLATFORM)/$(BUILD_MODE)
[25]39endif
[69]40export PATH_BUILTTOOLS = $(PATH_OBJ)/builttools
41export PATH_BUILTTOOLSD= $(PATH_OBJD)/builttools
[34]42
[69]43# Debug info or not (when ever we feel like passing down such options).
44ifeq "$(BUILD_MODE)" "RELEASE"
45BUILD_DEBUGINFO = -s
46else
47BUILD_DEBUGINFO = -g
48endif
49
[76]50
51#
[69]52# For builds on Linux Host builds we do the environment setup here.
53# This is essentially a mimicking of what we do on OS/2.
54#
55ifndef BUILD_PLATFORM
56ifeq "$(shell uname -s)" "Linux"
57export BUILD_PLATFORM ?= LINUX
58export BUILD_PROJECT ?= GCCOS2
59export SH ?= /bin/sh
60export ASH ?= /bin/ash
61export BASH ?= /bin/bash
62export AWK ?= /bin/gawk
63export GAWK ?= /bin/gawk
64export CONFIG_SHELL ?= $(SH)
65export MAKESHELL ?= $(SH)
66export PATH_EMX ?= /usr
67export PATH_EMXPGCC ?= /usr
68export TMP ?= /tmp
69export TMPDIR ?= /tmp
[25]70endif
[69]71endif
[25]72
73
[34]74###############################################################################
75###############################################################################
76###############################################################################
77###############################################################################
78#
79# M a i n R u l e z
80#
81###############################################################################
82###############################################################################
83###############################################################################
84###############################################################################
85all:
86 mkdir -p $(PATH_OBJ)
[69]87 $(MAKE) -C . all-logged 2>&1 | $(UNIXROOT)/usr/bin/tee $(PATH_OBJ)/build-`date +"%Y%m%d-%H%M%S"`.log
[34]88
89all-logged: \
[25]90 all-start \
91 all-env \
92 all-sanity \
[34]93 all-preload \
94 all-builttools-initial \
[25]95 \
96 all-gcc \
97 all-binutils \
98 all-emx \
99 \
[76]100 all-install \
101 \
[25]102 all-ended
[34]103
104
[25]105all-start:
106 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
107 @echo "+ Make started: $(shell date)"
108 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
109
110
111all-ended:
112 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
113 @echo "+ Make ended: $(shell date)"
114 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
115
116
117all-env:
118 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
119 @echo "Variables:"
[34]120 @echo " PWD = $(PWD)"
[69]121 @echo " PWDD = $(PWDD)"
[34]122 @echo " PATH_TOP = $(PATH_TOP)"
[69]123 @echo " PATH_TOPD = $(PATH_TOPD)"
[34]124 @echo " PATH_OBJ = $(PATH_OBJ)"
[69]125 @echo " PATH_OBJD = $(PATH_OBJD)"
126 @echo " PATH_BIN = $(PATH_BIN)"
127 @echo " PATH_BIND = $(PATH_BIND)"
[34]128 @echo " PATH_EMXPGCC = $(PATH_EMXPGCC)"
129 @echo " PATH_EMX = $(PATH_EMX)"
130 @echo " BUILD_MODE = $(BUILD_MODE)"
131 @echo " BUILD_PLATFORM = $(BUILD_PLATFORM)"
132 @echo " BUILD_PROJECT = $(BUILD_PROJECT)"
133 @echo " MAKEFILE = $(MAKEFILE)"
134 @echo " UNIXROOT = $(UNIXROOT)"
135 @echo " AC_PREFIX = $(AC_PREFIX)"
136 @echo " AC_MACRODIR = $(AC_MACRODIR)"
137 @echo " HOSTNAME = $(HOSTNAME)"
138 @echo " USER = $(USER)"
139 @echo " LOGNAME = $(LOGNAME)"
140 @echo " TMP = $(TMP)"
141 @echo " TMPDIR = $(TMPDIR)"
142 @echo " USER = $(USER)"
143 @echo " AWK = $(AWK)"
144 @echo " GAWK = $(GAWK)"
145 @echo " SH = $(SH)"
146 @echo " ASH = $(ASH)"
147 @echo " BASH = $(BASH)"
148 @echo " CONFIG_SHELL = $(CONFIG_SHELL)"
149 @echo " MAKESHELL = $(MAKESHELL)"
150 @echo " EMXSHELL = $(EMXSHELL)"
151 @echo " SHELL = $(SHELL)"
152 @echo " MAKE = $(MAKE)"
153 @echo " PATH = $(PATH)"
[25]154 @echo " C_INCLUDE_PATH = $(C_INCLUDE_PATH)"
155 @echo " CPLUS_INCLUDE_PATH = $(CPLUS_INCLUDE_PATH)"
156 @echo " OBJC_INCLUDE_PATH = $(OBJC_INCLUDE_PATH)"
157 @echo " LIBRARY_PATH = $(LIBRARY_PATH)"
158 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
159
160all-sanity:
[68]161 @echo -n "Checking build environment sanity... "
162 @if [ "x$(BUILD_PROJECT)" != "xGCCOS2" ]; then \
163 echo ""; echo "Error: BUILD_PROJECT is wrong or isn't defined!"; \
164 exit 8; \
165 fi
[69]166 @if [ "x$(BUILD_PLATFORM)" != "xOS2" -a "x$(BUILD_PLATFORM)" != "xLINUX" ]; then \
[68]167 echo ""; echo "Error: BUILD_PLATFORM is wrong or isn't defined!"; \
168 exit 8; \
169 fi
[69]170 @if [ "x$(BUILD_PLATFORM)" = "xOS2" -a "x$(UNIXROOT)" = "x" ]; then \
171 echo ""; echo "Error: UNIXROOT isn't defined!"; \
172 exit 8; \
173 fi
174 @if [ "x$(BUILD_PLATFORM)" != "xOS2" -a "x$(UNIXROOT)" != "x" ]; then \
175 echo ""; echo "Error: UNIXROOT is defined!"; \
176 exit 8; \
177 fi
178ifeq "$(BUILD_PLATFORM)" "OS2"
179 @if gcc --version | grep -qe ".*[3]\.[2-9]\.[0-9]"; then \
180 true; \
181 else \
182 echo ""; echo "Warning: GCC v3.2.x or higher is recommended!"; \
183 fi
184 @if ar --version | grep -qe ".*2\.11\.[2-9]" -e ".*[2]\.1[2-9]\.[0-9]*"; then \
185 true; \
186 else \
187 echo ""; echo "Warning: AR v2.11.2 or higher is recommended!"; \
188 fi
189endif
[68]190 @echo "ok"
191
[76]192
[34]193PRELOADED_TOOLS = bin/sh.exe bin/echo.exe bin/true.exe usr/bin/test.exe usr/bin/expr.exe \
194 usr/bin/gawk.exe usr/bin/sed.exe bin/rm.exe bin/cat.exe bin/cp.exe
[76]195
[34]196all-preload:
197 @echo "Preloading tools:"
[69]198ifeq "$(BUILD_PLATFORM)" "OS2"
[34]199 @for tool in $(PRELOADED_TOOLS); do \
200 echo -n " $$tool"; \
201 emxload -e $(UNIXROOT)/$$tool; \
202 done
[41]203 emxload -e gcc.exe g++.exe ld.exe cc1.exe as.exe cc1plus.exe cpp0.exe ar.exe
[69]204endif
[34]205 @echo ""
[69]206
[34]207
[76]208
209all-install: \
210 gcc-install
211# emx-install
212# binutils-install
213
[25]214
[34]215
[25]216###############################################################################
217###############################################################################
218###############################################################################
[34]219#
220# B u i l t T o o l s
221#
[25]222###############################################################################
223###############################################################################
224###############################################################################
[34]225.PHONY: all-builttools-initial all-builttools-dirs
226all-builttools-initial: \
227 all-builttools-dirs \
228 $(PATH_BUILTTOOLS)/usr/bin/dllar.cmd \
229
230
231all-builttools-dirs:
232 mkdir -p $(PATH_BUILTTOOLS)/bin $(PATH_BUILTTOOLS)/lib $(PATH_BUILTTOOLS)/usr/bin $(PATH_BUILTTOOLS)/usr/lib
233
234$(PATH_BUILTTOOLS)/usr/bin/dllar.cmd: $(PATH_TOP)/src/misc/dllar.cmd
235 cp $< $@
236
237
238
239
240
241
242###############################################################################
243###############################################################################
244###############################################################################
245#
246# G C C
247#
248###############################################################################
249###############################################################################
250###############################################################################
[25]251all-gcc gcc: \
252 gcc-autoconf-refresh \
253 gcc-build
[34]254 echo "Successfully build GCC."
[25]255
256
257
258GCC_DIRS = \
[34]259gcc/libiberty \
[41]260gcc/zlib \
[25]261gcc/gcc \
[41]262gcc/libstdc++-v3 \
263gcc/boehm-gc \
264gcc/fastjar \
265gcc/libf2c \
266gcc/libf2c/libF77 \
267gcc/libf2c/libI77 \
268gcc/libf2c/libU77 \
269gcc/libffi \
270gcc/libjava \
271gcc/libjava/libltdl \
272gcc/libobjc \
[25]273
274GCC_CONFIGURE_DIRS = $(GCC_DIRS)
275
276
277# configure.in/configure
278.PHONY: gcc-autoconf-refresh gcc-autoconf-rerun gcc-autoconf-clean gcc-autoconf-remove
[34]279gcc-autoconf-refresh gcc-autoconf-rerun gcc-autoconf-clean gcc-autoconf-remove:
[25]280 for dir in $(GCC_CONFIGURE_DIRS); do \
281 $(MAKE) $(@:gcc-autoconf-%=%) -f $(PWD)/config.gmk -C src/$$dir ; \
282 done
283
284
285# build the components.
[76]286.PHONY: gcc-build gcc-install gcc-configure
287gcc-build gcc-install gcc-configure:
[41]288 mkdir -p $(PATH_OBJ)/gcc
289 $(MAKE) -C $(PATH_OBJ)/gcc -f $(MAKEFILE) $@-it
290
[69]291
292# When changed directory
[76]293# We pass down BOOT_ flags for stage2+.
294# Because strip is broken on OS/2 we pass -s for release build and -g for
295# non release builds - This overrides some stuff in src/gcc/gcc/config/i386/t-emx!
[41]296gcc-build-it: \
297 $(PATH_OBJ)/gcc/.ts.configured
[69]298ifeq "$(BUILD_PLATFORM)" "OS2"
299 unset GCCLOAD & $(MAKE) -C $(PATH_OBJ)/gcc \
300 LIBGCC2_DEBUG_CFLAGS="$(BUILD_DEBUGINFO)" \
301 BOOT_CFLAGS="$(BUILD_DEBUGINFO) -O2 -mcpu=pentium -mpreferred-stack-boundary=2 -malign-strings=0 -falign-loops=2 -falign-jumps=2 -falign-functions=2" \
302 BOOT_LDFLAGS="$(BUILD_DEBUGINFO) -Zexe -Zcrtdll" \
[76]303 LIBGCC2_DEBUG_CFLAG="$(BUILD_DEBUGINFO)" \
[69]304 bootstrap
305else
306 $(MAKE) -C $(PATH_OBJ)/gcc bootstrap
307endif
308
309# configure it (invoked after directory change).
310# We set CC to help configure finding it.
[76]311gcc-configure-it $(PATH_OBJ)/gcc/.ts.configured: $(PATH_TOP)/src/gcc/configure
[69]312ifeq "$(BUILD_PLATFORM)" "OS2"
313 $(ASH) -c " \
314 export CC=\"gcc.exe\" ; \
[41]315 $< \
[68]316 --enable-clh \
[41]317 --enable-threads=os2 \
[68]318 --enable-shared=libgcc \
[41]319 --enable-nls \
320 --without-included-gettext \
321 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
[69]322 --prefix=$(PATH_BIND)/gcc322 \
[41]323 --with-gnu-ld \
324 --with-gnu-as \
325 --disable-libgcj \
326 --enable-languages=c,c++ "
[69]327else
328 $(ASH) -c "$< \
329 --enable-clh \
330 --enable-shared=libgcc \
331 --enable-nls \
332 --without-included-gettext \
333 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
334 --prefix=$(PATH_BIND)/gcc322 \
335 --with-gnu-ld \
336 --with-gnu-as \
337 --disable-libgcj \
338 --enable-languages=c,c++ "
339endif
[41]340 touch $(PATH_OBJ)/gcc/.ts.configured
341
[76]342
343# Install the GCC build
344# Repeating the prefix doesn't hurt anybody.
345gcc-install-it:
346 $(MAKE) prefix=$(PATH_BIND)/gcc322 install
347
[25]348
[55]349# Generate diffs for GCC (v3.2.2) - part of packing a release.
350.PHONY: gcc-diff $(PATH_BIN)/usr/src/gcc/gcc-3.2.2.diff
351gcc-diff: $(PATH_BIN)/usr/src/gcc/gcc-3.2.2.diff
352$(PATH_BIN)/usr/src/gcc/gcc-3.2.2.diff:
353 mkdir -p $(@D)
354 -cvs diff -R -N -w -c -r GCC_3-2-2 src/gcc > $@
[25]355
356
[55]357
[25]358###############################################################################
359###############################################################################
360###############################################################################
[34]361#
[25]362# B i n U t i l s
[34]363#
[25]364###############################################################################
365###############################################################################
366###############################################################################
367all-binutils binutils:
[34]368 echo "Successfully build BinUtils."
369 echo "Warning!!! BinUtils not yet done!"
[25]370
[34]371
372
[25]373
374
375
376###############################################################################
377###############################################################################
378###############################################################################
[34]379#
[25]380# E M X
[34]381#
[25]382###############################################################################
383###############################################################################
384###############################################################################
385all-binemx emx:
[34]386 echo "Successfully build EMX."
387 echo "Warning!!! EMX not yet done!"
[25]388
Note: See TracBrowser for help on using the repository browser.