source: trunk/Makefile@ 43

Last change on this file since 43 was 41, checked in by bird, 23 years ago

Start with src/gcc.

  • Property cvs2svn:cvs-rev set to 1.3
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 9.6 KB
Line 
1# $Id: Makefile 41 2003-04-25 19:51:20Z bird $
2#
3# Top level makefile.
4#
5# InnoTek Systemberatung GmbHconfidential
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###############################################################################
17PWD := $(shell pwd.exe)
18MAKEFILE = $(PWD)/makefile
19
20ifndef "$(BUILD_MODE)"
21export BUILD_MODE=DEBUG
22endif
23
24ifndef PATH_OBJ
25export PATH_OBJ = $(PWD)/obj/$(BUILD_MODE)
26endif
27
28ifndef PATH_TOP
29export PATH_TOP:= $(PWD)
30endif
31
32PATH_BIN = $(PATH_TOP)/bin/$(BUILD_MODE)
33PATH_BUILTTOOLS = $(PATH_OBJ)/builttools
34
35
36###############################################################################
37###############################################################################
38###############################################################################
39###############################################################################
40#
41# M a i n R u l e z
42#
43###############################################################################
44###############################################################################
45###############################################################################
46###############################################################################
47all:
48 mkdir -p $(PATH_OBJ)
49 $(MAKE) -C . all-logged 2>&1 | $(UNIXROOT)/usr/bin/tee.exe $(PATH_OBJ)/build-`date +"%Y%m%d-%H%M%S"`.log
50
51all-logged: \
52 all-start \
53 all-env \
54 all-sanity \
55 all-preload \
56 all-builttools-initial \
57 \
58 all-gcc \
59 all-binutils \
60 all-emx \
61 \
62 all-ended
63
64
65all-start:
66 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
67 @echo "+ Make started: $(shell date)"
68 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
69
70
71all-ended:
72 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
73 @echo "+ Make ended: $(shell date)"
74 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
75
76
77all-env:
78 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
79 @echo "Variables:"
80 @echo " PWD = $(PWD)"
81 @echo " PATH_TOP = $(PATH_TOP)"
82 @echo " PATH_OBJ = $(PATH_OBJ)"
83 @echo " PATH_EMXPGCC = $(PATH_EMXPGCC)"
84 @echo " PATH_EMX = $(PATH_EMX)"
85 @echo " BUILD_MODE = $(BUILD_MODE)"
86 @echo " BUILD_PLATFORM = $(BUILD_PLATFORM)"
87 @echo " BUILD_PROJECT = $(BUILD_PROJECT)"
88 @echo " MAKEFILE = $(MAKEFILE)"
89 @echo " UNIXROOT = $(UNIXROOT)"
90 @echo " AC_PREFIX = $(AC_PREFIX)"
91 @echo " AC_MACRODIR = $(AC_MACRODIR)"
92 @echo " HOSTNAME = $(HOSTNAME)"
93 @echo " USER = $(USER)"
94 @echo " LOGNAME = $(LOGNAME)"
95 @echo " TMP = $(TMP)"
96 @echo " TMPDIR = $(TMPDIR)"
97 @echo " USER = $(USER)"
98 @echo " AWK = $(AWK)"
99 @echo " GAWK = $(GAWK)"
100 @echo " SH = $(SH)"
101 @echo " ASH = $(ASH)"
102 @echo " BASH = $(BASH)"
103 @echo " CONFIG_SHELL = $(CONFIG_SHELL)"
104 @echo " MAKESHELL = $(MAKESHELL)"
105 @echo " EMXSHELL = $(EMXSHELL)"
106 @echo " SHELL = $(SHELL)"
107 @echo " MAKE = $(MAKE)"
108 @echo " PATH = $(PATH)"
109 @echo " C_INCLUDE_PATH = $(C_INCLUDE_PATH)"
110 @echo " CPLUS_INCLUDE_PATH = $(CPLUS_INCLUDE_PATH)"
111 @echo " OBJC_INCLUDE_PATH = $(OBJC_INCLUDE_PATH)"
112 @echo " LIBRARY_PATH = $(LIBRARY_PATH)"
113 @echo "+++++++++++++++++++++++++++++++++++++++++++++++++++"
114
115all-sanity:
116 if [ "$(UNIXROOT)x" = "x" ]; then \
117 echo "Error: UNIXROOT isn't defined!"; \
118 exit 8; \
119 fi
120
121PRELOADED_TOOLS = bin/sh.exe bin/echo.exe bin/true.exe usr/bin/test.exe usr/bin/expr.exe \
122 usr/bin/gawk.exe usr/bin/sed.exe bin/rm.exe bin/cat.exe bin/cp.exe
123
124all-preload:
125 @echo "Preloading tools:"
126 @for tool in $(PRELOADED_TOOLS); do \
127 echo -n " $$tool"; \
128 emxload -e $(UNIXROOT)/$$tool; \
129 done
130 emxload -e gcc.exe g++.exe ld.exe cc1.exe as.exe cc1plus.exe cpp0.exe ar.exe
131 @echo ""
132
133
134
135###############################################################################
136###############################################################################
137###############################################################################
138#
139# B u i l t T o o l s
140#
141###############################################################################
142###############################################################################
143###############################################################################
144.PHONY: all-builttools-initial all-builttools-dirs
145all-builttools-initial: \
146 all-builttools-dirs \
147 $(PATH_BUILTTOOLS)/usr/bin/dllar.cmd \
148
149
150all-builttools-dirs:
151 mkdir -p $(PATH_BUILTTOOLS)/bin $(PATH_BUILTTOOLS)/lib $(PATH_BUILTTOOLS)/usr/bin $(PATH_BUILTTOOLS)/usr/lib
152
153$(PATH_BUILTTOOLS)/usr/bin/dllar.cmd: $(PATH_TOP)/src/misc/dllar.cmd
154 cp $< $@
155
156
157
158
159
160
161###############################################################################
162###############################################################################
163###############################################################################
164#
165# G C C
166#
167###############################################################################
168###############################################################################
169###############################################################################
170all-gcc gcc: \
171 gcc-autoconf-refresh \
172 gcc-build
173 echo "Successfully build GCC."
174
175
176
177GCC_DIRS = \
178gcc/libiberty \
179gcc/zlib \
180gcc/gcc \
181gcc/libstdc++-v3 \
182gcc/boehm-gc \
183gcc/fastjar \
184gcc/libf2c \
185gcc/libf2c/libF77 \
186gcc/libf2c/libI77 \
187gcc/libf2c/libU77 \
188gcc/libffi \
189gcc/libjava \
190gcc/libjava/libltdl \
191gcc/libobjc \
192
193GCC_CONFIGURE_DIRS = $(GCC_DIRS)
194
195
196# configure.in/configure
197.PHONY: gcc-autoconf-refresh gcc-autoconf-rerun gcc-autoconf-clean gcc-autoconf-remove
198gcc-autoconf-refresh gcc-autoconf-rerun gcc-autoconf-clean gcc-autoconf-remove:
199 for dir in $(GCC_CONFIGURE_DIRS); do \
200 $(MAKE) $(@:gcc-autoconf-%=%) -f $(PWD)/config.gmk -C src/$$dir ; \
201 done
202
203
204# build the components.
205.PHONY: gcc-build
206gcc-build:
207 mkdir -p $(PATH_OBJ)/gcc
208 $(MAKE) -C $(PATH_OBJ)/gcc -f $(MAKEFILE) $@-it
209
210
211# when changed directory.
212gcc-build-it: \
213 $(PATH_OBJ)/gcc/.ts.configured
214 uset GCCLOAD & $(MAKE) -C $(PATH_OBJ)/gcc bootstrap
215
216# configure
217gcc-configure $(PATH_OBJ)/gcc/.ts.configured: $(PATH_TOP)/src/gcc/configure
218 $(ASH) -c "export CC=\"gcc.exe\" ; \
219 export LDFLAGS=\"-s -Zexe -Zcrtdll\" ; \
220 $< \
221 --enable-threads=os2 \
222 --enable-shared \
223 --enable-nls \
224 --without-included-gettext \
225 --with-local-prefix=$(subst \,/,$(PATH_EMXPGCC)) \
226 --prefix=$(PATH_BIN)/gcc322 \
227 --with-gnu-ld \
228 --with-gnu-as \
229 --disable-libgcj \
230 --enable-languages=c,c++ "
231 touch $(PATH_OBJ)/gcc/.ts.configured
232# --disable-multilib
233# $(BASH) -c "export LDFLAGS=\"-s -Zexe -Zcrtdll\" ; $< --enable-threads --enable-shared --enable-nls --without-included-gettext --prefix=$(PATH_BIN)/usr/bin/local/gcc322 "
234
235
236# old way
237gcc-build-old:
238 mkdir -p $(GCC_CONFIGURE_DIRS:%=$(PATH_OBJ)/%)
239 -emxload -u $(PATH_OBJ)\gcc\gcc\cc1.exe $(PATH_OBJ)\gcc\gcc\g++.exe $(PATH_OBJ)\gcc\gcc\xgcc.exe
240 $(foreach dir,$(GCC_CONFIGURE_DIRS), $(MAKE) -f $(MAKEFILE) -C $(PATH_OBJ)/$(dir) $@-$(shell echo $(dir)|sed -e 's/gcc\///' -e 's/\//-/g') &&) echo "."
241
242# src/gcc/libiberty
243.PHONY: gcc-build-libiberty gcc-build-libiberty-configure
244gcc-build-libiberty: $(PATH_OBJ)/gcc/libiberty/Makefile
245 $(MAKE) -C $(<D)
246
247$(PATH_OBJ)/gcc/libiberty/Makefile: $(PATH_TOP)/src/gcc/libiberty/configure
248 $(BASH) $<
249
250# src/gcc/gcc
251gcc-build-gcc: $(PATH_OBJ)/gcc/gcc/Makefile
252 $(MAKE) -C $(<D)
253
254$(PATH_OBJ)/gcc/gcc/Makefile: $(PATH_TOP)/src/gcc/gcc/configure
255 $(BASH) -c "export LDFLAGS=\"-s -Zexe -Zcrtdll\" ; $< --enable-threads --enable-shared --enable-nls --without-included-gettext --prefix=$(PATH_BIN)/usr/bin/local/gcc322 "
256# $(BASH) -c "export LDFLAGS=\"-s -Zexe -Zcrtdll\" ; $< --enable-clh --enable-threads --enable-shared --enable-nls --without-included-gettext --prefix=/dev/gcc/v3.2.2"
257
258# src/gcc/zlib
259gcc-build-zlib: $(PATH_OBJ)/gcc/zlib/Makefile
260 $(MAKE) -C $(<D)
261
262$(PATH_OBJ)/gcc/zlib/Makefile: $(PATH_TOP)/src/gcc/zlib/configure
263 $(BASH) -c "export LDFLAGS=\"-s -Zexe -Zcrtdll\" ; $< --enable-shared --prefix=$(PATH_BIN)/usr/bin/local/gcc322 "
264
265
266gcc-build-libstdc++-v3:
267
268
269
270
271
272###############################################################################
273###############################################################################
274###############################################################################
275#
276# B i n U t i l s
277#
278###############################################################################
279###############################################################################
280###############################################################################
281all-binutils binutils:
282 echo "Successfully build BinUtils."
283 echo "Warning!!! BinUtils not yet done!"
284
285
286
287
288
289
290###############################################################################
291###############################################################################
292###############################################################################
293#
294# E M X
295#
296###############################################################################
297###############################################################################
298###############################################################################
299all-binemx emx:
300 echo "Successfully build EMX."
301 echo "Warning!!! EMX not yet done!"
302
Note: See TracBrowser for help on using the repository browser.