forked from gobo-eiffel/gobo
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinstall.bat
executable file
·222 lines (194 loc) · 5.1 KB
/
install.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
@echo off
rem description: "Install Gobo Eiffel package"
rem copyright: "Copyright (c) 2007-2013, Eric Bezault and others"
rem license: "MIT License"
rem date: "$Date$"
rem revision: "$Revision$"
rem "usage: install.bat [-v] <c_compiler>"
if .%1. == .-v. goto verbose
goto no_verbose
:no_verbose
set VERBOSE=
set CC=%1
set EIF=ge
goto do_it
:verbose
set VERBOSE=-v
set CC=%2
set EIF=ge
goto do_it
:do_it
if .%GOBO%. == .. goto gobo
goto windows
:gobo
echo Environment variable GOBO must be set
goto exit
:windows
set CP=copy
set MV=rename
set RM=del
set BIN_DIR=%GOBO%\bin
set BOOTSTRAP_DIR=%GOBO%\bin
set OBJ=.obj
set EXE=.exe
goto c_compilation
:c_compilation
set BIN_DIR=%GOBO%\bin
set BOOTSTRAP_DIR=%GOBO%\bin
cd %BIN_DIR%
if .%CC%. == .. goto usage
if .%CC%. == .-help. goto usage
if .%CC%. == .--help. goto usage
if .%CC%. == .-h. goto usage
if .%CC%. == .-?. goto usage
if .%CC%. == ./h. goto usage
if .%CC%. == ./?. goto usage
if .%EIF%. == .. goto usage
if .%CC%. == .msc. goto msc
if .%CC%. == .cl. goto msc
if .%CC%. == .lcc-win32. goto lcc-win32
if .%CC%. == .lcc. goto lcc-win32
if .%CC%. == .bcc. goto bcc32
if .%CC%. == .bcc32. goto bcc32
if .%CC%. == .gcc. goto gcc
if .%CC%. == .mingw. goto mingw
if .%CC%. == .cc. goto cc
if .%CC%. == .icc. goto icc
if .%CC%. == .tcc. goto tcc
if .%CC%. == .no_c. goto install
echo Unknown C compiler: %CC%
goto exit
:msc
set CC=cl
set LD=link
set CFLAGS=-O2 -nologo -wd4049
set LFLAGS=-nologo -subsystem:console
set LFLAG_OUT=-out:
set LLIBS=
echo msc > %GOBO%\tool\gec\config\c\default.cfg
goto c_compilation
:bcc32
set CC=bcc32
set LD=bcc32
set CFLAGS=-5 -q -w-8004 -w-8008 -w-8057 -w-8065 -w-8066 -w-8070 -O2
set LFLAGS=-5 -q
set LFLAG_OUT=-e
set LLIBS=
echo bcc > %GOBO%\tool\gec\config\c\default.cfg
goto c_compilation
:lcc-win32
set CC=lcc
rem set CFLAGS=-O -- Problem when gec is compiled with the -O option.
set CFLAGS=
set LD=lcclnk
set LFLAGS=-s -subsystem Console
set LFLAG_OUT=-o
set LLIBS=
echo lcc-win32 > %GOBO%\tool\gec\config\c\default.cfg
goto c_compilation
:gcc
set CC=gcc
set LD=gcc
set CFLAGS=-O2
set LFLAGS=
set LFLAG_OUT=-o
set LLIBS=-lm
set OBJ=.o
echo gcc > %GOBO%\tool\gec\config\c\default.cfg
goto c_compilation
:mingw
set CC=gcc
set LD=gcc
set CFLAGS=-O2
set LFLAGS=
set LFLAG_OUT=-o
set LLIBS=-lm
set OBJ=.o
echo mingw > %GOBO%\tool\gec\config\c\default.cfg
goto c_compilation
:cc
set CC=cc
set LD=cc
set CFLAGS='-fast'
set LFLAGS='-lm'
set LFLAG_OUT=-o
set LLIBS=
set OBJ=.o
echo cc > %GOBO%\tool\gec\config\c\default.cfg
goto c_compilation
:icc
set CC=icc
set LD=icc
set CFLAGS=-O2
set LFLAGS=
set LFLAG_OUT=-o
set LLIBS=
set OBJ=.o
echo icc > %GOBO%\tool\gec\config\c\default.cfg
goto c_compilation
:tcc
set CC=tcc
set LD=tcc
set CFLAGS=-O2
set LFLAGS=-lm
set LFLAG_OUT=-o
set LLIBS=
set OBJ=.o
echo tcc > %GOBO%\tool\gec\config\c\default.cfg
goto c_compilation
:c_compilation
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec17.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec16.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec15.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec14.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec13.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec12.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec11.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec10.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec9.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec8.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec7.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec6.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec5.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec4.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec3.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec2.c
%CC% %CFLAGS% -c %BOOTSTRAP_DIR%\gec1.c
%LD% %LFLAGS% %LFLAG_OUT%gec%EXE% gec*%OBJ% %LLIBS%
%RM% gec*%OBJ%
if .%CC%. == .bcc32. %RM% gec.tds
goto install
:install
if .%EIF%. == .ge. goto ge
echo Unknown Eiffel compiler: %EIF%
goto exit
:ge
set GOBO_EIFFEL=ge
cd %BIN_DIR%
%BIN_DIR%\gec%EXE% --finalize %GOBO%\src\geant\ge.xace
%BIN_DIR%\gec%EXE% --finalize %GOBO%\src\gexace\ge.xace
%BIN_DIR%\gec%EXE% --finalize %GOBO%\src\gelex\ge.xace
%BIN_DIR%\gec%EXE% --finalize %GOBO%\src\geyacc\ge.xace
%BIN_DIR%\gec%EXE% --finalize %GOBO%\src\gepp\ge.xace
%BIN_DIR%\gec%EXE% --finalize %GOBO%\src\getest\ge.xace
%BIN_DIR%\gec%EXE% --finalize %GOBO%\src\gelint\ge.xace
%BIN_DIR%\gec%EXE% --finalize %GOBO%\src\gexslt\ge.xace
goto clean
:clean
set PATH=%BIN_DIR%;%PATH%
cd %BIN_DIR%
geant %VERBOSE% --buildfilename=%GOBO%\src\gec\build.eant clean
geant %VERBOSE% --buildfilename=%GOBO%\src\geant\build.eant clean
geant %VERBOSE% --buildfilename=%GOBO%\src\gexace\build.eant clean
geant %VERBOSE% --buildfilename=%GOBO%\src\gelex\build.eant clean
geant %VERBOSE% --buildfilename=%GOBO%\src\geyacc\build.eant clean
geant %VERBOSE% --buildfilename=%GOBO%\src\gepp\build.eant clean
geant %VERBOSE% --buildfilename=%GOBO%\src\getest\build.eant clean
geant %VERBOSE% --buildfilename=%GOBO%\src\gelint\build.eant clean
geant %VERBOSE% --buildfilename=%GOBO%\src\gexslt\build.eant clean
goto exit
:usage
echo usage: install.bat [-v] ^<c_compiler^>
echo c_compiler: msc ^| lcc-win32 ^| bcc ^| gcc ^| mingw ^| cc ^| icc ^| tcc ^| no_c
goto exit
:exit