source: trunk/make/setup.optional.watcom11x.mk@ 9175

Last change on this file since 9175 was 9169, checked in by bird, 23 years ago

Bugfixing.

File size: 7.7 KB
Line 
1# $Id: setup.optional.watcom11x.mk,v 1.7 2002-08-29 12:06:17 bird Exp $
2
3#
4# Helper file for all the optional stuff which is common for
5# all watcom11xx compilers.
6# Concidering the size of this, it really make sense putting it here.
7#
8
9
10#
11# C Compiler flags.
12#
13_CC_SEG_TEXT =
14_CC_SEG_DATA =
15_CC_SEG_XCPT =
16_CC_SEG_TEXT_CLASS=
17_CC_DEFAULT_LIBS= -zl
18_CC_PACK =
19!ifdef ENV_16BIT
20_CC_MODEL = -ms
21_OBJ_MODEL = s
22_CC_DEF_MODEL = SMALL
23!else
24_CC_MODEL = -mf
25_CC_DEF_MODEL = FLAT
26!endif
27_CC_OPT_R =
28_CC_O_INLINE_USER =
29_CC_O_FRAMES=
30_CC_O_O2 =
31_CC_O_INLINE=
32_CC_O_SIZE =
33_CC_O_TIME =
34_CC_O_DISABLE =
35_CC_O_X =
36!ifdef ENV_16BIT
37_CC_O_CPU = -5
38!else
39_CC_O_CPU = -5r
40!endif
41
42!ifdef ALL_SEG_TEXT
43_CC_SEG_TEXT=-nt=$(ALL_SEG_TEXT)
44!endif
45!ifdef CC_SEG_TEXT
46_CC_SEG_TEXT=-nt=$(CC_SEG_TEXT)
47!endif
48!ifdef ALL_SEG_DATA
49_CC_SEG_DATA=-nd=$(ALL_SEG_TEXT)
50!endif
51!ifdef CC_SEG_DATA
52_CC_SEG_DATA=-nd=$(CC_SEG_TEXT)
53!endif
54!ifdef ALL_SEG_TEXT_CLASS
55_CC_SEG_TEXT_CLASS =-nc=$(ALL_SEG_TEXT_CLASS)
56!endif
57!ifdef CC_SEG_TEXT_CLASS
58_CC_SEG_TEXT_CLASS =-nc=$(CC_SEG_TEXT_CLASS)
59!endif
60!if defined(CC_DEFAULT_LIBS) || defined(ALL_DEFAULT_LIBS)
61_CC_DEFAULT_LIBS =
62!endif
63!ifdef ALL_PACK
64_CC_PACK = -zp=$(ALL_PACK)
65!endif
66!ifdef CC_PACK
67_CC_PACK = -zp=$(CC_PACK)
68!endif
69# model stuff.
70!if !defined(CC_MODEL) && defined(ALL_MODEL)
71CC_MODEL = $(ALL_MODEL)
72!endif
73!ifdef CC_MODEL
74_CC_MODEL =
75!endif
76! if "$(CC_MODEL)" == "TINY"
77_CC_MODEL = -ms
78_OBJ_MODEL = s
79_CC_DEF_MODEL= SMALL
80! error CC_MODEL=TINY is not supported by this compiler ($(ENV_NAME)).
81! endif
82!if "$(CC_MODEL)" == "SMALL"
83_CC_MODEL = -ms
84_OBJ_MODEL = s
85_CC_DEF_MODEL= SMALL
86!endif
87!if "$(CC_MODEL)" == "COMPACT"
88_CC_MODEL = -mc
89_OBJ_MODEL = c
90_CC_DEF_MODEL= COMPACT
91!endif
92!if "$(CC_MODEL)" == "MEDIUM"
93_CC_MODEL = -mm
94_OBJ_MODEL = m
95_CC_DEF_MODEL= MEDIUM
96!endif
97!if "$(CC_MODEL)" == "LARGE"
98_CC_MODEL = -ml
99_OBJ_MODEL = l
100_CC_DEF_MODEL= LARGE
101!endif
102!if "$(CC_MODEL)" == "HUGE"
103! ifdef ENV_16BIT
104_CC_MODEL = -mh
105_OBJ_MODEL = h
106_CC_DEF_MODEL= HUGH
107! else
108_CC_MODEL = -ml
109_OBJ_MODEL = l
110_CC_DEF_MODEL= LARGE
111! endif
112!endif
113!if "$(CC_MODEL)" == "FLAT"
114! ifdef ENV_16BIT
115! error CC_MODEL=FLAT is not supported by the 16-bit compiler. ($(ENV_NAME))
116! else
117_CC_MODEL = -mf
118_OBJ_MODEL = f
119_CC_DEF_MODEL= LARGE
120! endif
121!endif
122!if "$(_CC_MODEL)" == ""
123! error Invalid MODEL. CC_MODEL=$(CC_MODEL)
124!endif
125
126# watcom options.
127!if defined(CC_SAVE_SEGS_ACCROSS_CALLS) || defined(ALL_SAVE_SEGS_ACCROSS_CALLS)
128_CC_OPT_R = -r
129!endif
130
131# watcom optimizations.
132!if !defined(ALL_NO_O) && !defined(CC_NO_O)
133! if defined(ALL_O_INLINE_USER)
134_CC_O_INLINE_USER = -e=$(ALL_O_INLINE_USER)
135! endif
136! if defined(CC_O_INLINE_USER)
137_CC_O_INLINE_USER = -e=$(CC_O_INLINE_USER)
138! endif
139! if defined(CC_O_FRAMES) || defined(ALL_O_FRAMES)
140_CC_O_FRAMES=f+
141! endif
142! if defined(CC_O_O2) || defined(ALL_O_O2)
143_CC_O_O2 =h
144! endif
145! if defined(CC_O_INLINE) || defined(ALL_O_INLINE)
146_CC_O_INLINE=i
147! endif
148! if defined(CC_O_SIZE) || defined(ALL_O_SIZE)
149_CC_O_SIZE =s
150! endif
151! if defined(CC_O_TIME) || defined(ALL_O_TIME)
152_CC_O_TIME =t
153! endif
154! if defined(CC_O_X) || defined(ALL_O_X)
155_CC_O_X =x
156! endif
157!else
158_CC_O_DISABLE=d
159!endif
160
161_CC_OPTIM = -o$(_CC_O_DISABLE)$(_CC_O_O2)$(_CC_O_INLINE)$(_CC_O_SIZE)$(_CC_O_TIME)$(_CC_O_X)$(_CC_O_FRAMES)$(_CC_O_INLINE_USER)
162!if "$(_CC_OPTIM)" == "-o"
163_CC_OPTIM =
164!endif
165
166!if defined(ALL_O_CPU)
167! ifdef ENV_16BIT
168_CC_O_CPU = -$(ALL_O_CPU)
169! else
170_CC_O_CPU = -$(ALL_O_CPU)r
171! endif
172!endif
173!if defined(CC_O_CPU)
174! ifdef ENV_16BIT
175_CC_O_CPU = -$(CC_O_CPU)
176! else
177_CC_O_CPU = -$(CC_O_CPU)r
178! endif
179!endif
180
181_CC_OPTIONAL = $(_CC_SEG_TEXT) $(_CC_SEG_DATA) $(_CC_SEG_XCPT) $(_CC_SEG_TEXT_CLASS) $(_CC_DEFAULT_LIBS) \
182 $(_CC_PACK) $(_CC_MODEL) -d$(_CC_DEF_MODEL) $(_CC_OPT_R) $(_CC_O_CPU) $(_CC_OPTIM)
183
184
185
186#
187# C++ Compiler flags.
188#
189_CXX_SEG_TEXT =
190_CXX_SEG_DATA =
191_CXX_SEG_XCPT =
192_CXX_SEG_TEXT_CLASS =
193_CXX_DEFAULT_LIBS= -zl
194_CXX_PACK =
195_CXX_XCPT = -xd
196_CXX_MODEL = -mf
197!ifdef ENV_16BIT
198_CXX_MODEL = -ms
199_OBJ_MODEL = s
200_CXX_DEF_MODEL = SMALL
201!else
202_CXX_MODEL = -mf
203_CXX_DEF_MODEL = FLAT
204!endif
205_CXX_OPT_R =
206_CXX_O_INLINE_USER =
207_CXX_O_FRAMES=
208_CXX_O_O2 =
209_CXX_O_INLINE=
210_CXX_O_SIZE =
211_CXX_O_TIME =
212_CXX_O_DISABLE =
213_CXX_O_X =
214_CXX_O_CPU =
215!ifdef ENV_16BIT
216_CXX_O_CPU = -5
217!else
218_CXX_O_CPU = -5r
219!endif
220
221!ifdef ALL_SEG_TEXT
222_CXX_SEG_TEXT=-nt=$(ALL_SEG_TEXT)
223!endif
224!ifdef CXX_SEG_TEXT
225_CXX_SEG_TEXT=-nt=$(CXX_SEG_TEXT)
226!endif
227!ifdef ALL_SEG_DATA
228_CXX_SEG_DATA=-nd=$(ALL_SEG_TEXT)
229!endif
230!ifdef CXX_SEG_DATA
231_CXX_SEG_DATA=-nd=$(CXX_SEG_TEXT)
232!endif
233!ifdef ALL_SEG_XCPT
234_CXX_SEG_XCPT=
235!endif
236!ifdef CXX_SEG_XCPT
237_CXX_SEG_XCPT=
238!endif
239!ifdef ALL_SEG_TEXT_CLASS
240_CXX_SEG_TEXT_CLASS =-nc=$(ALL_SEG_TEXT_CLASS)
241!endif
242!ifdef CXX_SEG_TEXT_CLASS
243_CXX_SEG_TEXT_CLASS =-nc=$(CXX_SEG_TEXT_CLASS)
244!endif
245!if defined(CXX_DEFAULT_LIBS) || defined(ALL_DEFAULT_LIBS)
246_CXX_DEFAULT_LIBS =
247!endif
248!ifdef ALL_PACK
249_CXX_PACK = -zp=$(ALL_PACK)
250!endif
251!ifdef CXX_PACK
252_CXX_PACK = -zp=$(CXX_PACK)
253!endif
254!ifdef CXX_XCPT
255_CXX_XCPT = -xs
256!endif
257!ifdef CXX_NO_XCPT
258_CXX_XCPT = -xd
259!endif
260# Model
261!if !defined(CXX_MODEL) && defined(ALL_MODEL)
262CXX_MODEL = $(ALL_MODEL)
263!endif
264!ifdef CXX_MODEL
265_CXX_MODEL =
266!endif
267! if "$(CXX_MODEL)" == "TINY"
268_CXX_MODEL = -ms
269_OBJ_MODEL = s
270_CXX_DEF_MODEL= SMALL
271! error CXX_MODEL=TINY is not supported by this compiler ($(ENV_NAME)).
272! endif
273!if "$(CXX_MODEL)" == "SMALL"
274_CXX_MODEL = -ms
275_OBJ_MODEL = s
276_CXX_DEF_MODEL= SMALL
277!endif
278!if "$(CXX_MODEL)" == "COMPACT"
279_CXX_MODEL = -mc
280_OBJ_MODEL = c
281_CXX_DEF_MODEL= COMPACT
282!endif
283!if "$(CXX_MODEL)" == "MEDIUM"
284_CXX_MODEL = -mm
285_OBJ_MODEL = m
286_CXX_DEF_MODEL= MEDIUM
287!endif
288!if "$(CXX_MODEL)" == "LARGE"
289_CXX_MODEL = -ml
290_OBJ_MODEL = l
291_CXX_DEF_MODEL= LARGE
292!endif
293!if "$(CXX_MODEL)" == "HUGE"
294! ifdef ENV_16BIT
295_CXX_MODEL = -mh
296_OBJ_MODEL = h
297_CXX_DEF_MODEL= HUGH
298! else
299_CXX_MODEL = -ml
300_OBJ_MODEL = l
301_CXX_DEF_MODEL= LARGE
302! endif
303!endif
304!if "$(CXX_MODEL)" == "FLAT"
305! ifdef ENV_16BIT
306! error CXX_MODEL=FLAT is not supported by the 16-bit compiler. ($(ENV_NAME))
307! else
308_CXX_MODEL = -mf
309_OBJ_MODEL = f
310_CXX_DEF_MODEL= LARGE
311! endif
312!endif
313!if "$(_CXX_MODEL)" == ""
314! error Invalid MODEL. CXX_MODEL=$(CXX_MODEL)
315!endif
316!if defined(CXX_SAVE_SEGS_ACCROSS_CALLS) || defined(ALL_SAVE_SEGS_ACCROSS_CALLS)
317_CXX_OPT_R = -r
318!endif
319
320
321# watcom optimizations.
322!if !defined(ALL_NO_O) && !defined(CXX_NO_O)
323! if defined(ALL_O_INLINE_USER)
324_CXX_O_INLINE_USER = -e=$(ALL_O_INLINE_USER)
325! endif
326! if defined(CXX_O_INLINE_USER)
327_CXX_O_INLINE_USER = -e=$(CXX_O_INLINE_USER)
328! endif
329! if defined(CXX_O_FRAMES) || defined(ALL_O_FRAMES)
330_CXX_O_FRAMES=f+
331! endif
332! if defined(CXX_O_O2) || defined(ALL_O_O2)
333_CXX_O_O2 =h
334! endif
335! if defined(CXX_O_INLINE) || defined(ALL_O_INLINE)
336_CXX_O_INLINE=i
337! endif
338! if defined(CXX_O_SIZE) || defined(ALL_O_SIZE)
339_CXX_O_SIZE =s
340! endif
341! if defined(CXX_O_TIME) || defined(ALL_O_TIME)
342_CXX_O_TIME =t
343! endif
344! if defined(CXX_O_X) || defined(ALL_O_X)
345_CXX_O_X =x
346! endif
347!else
348_CXX_O_DISABLE=d
349!endif
350
351_CXX_OPTIM = -o$(_CXX_O_DISABLE)$(_CXX_O_O2)$(_CXX_O_INLINE)$(_CXX_O_SIZE)$(_CXX_O_TIME)$(_CXX_O_FRAMES)$(_CXX_O_X)$(_CXX_O_INLINE_USER)
352!if "$(_CXX_OPTIM)" == "-o"
353_CXX_OPTIM =
354!endif
355
356!if defined(ALL_O_CPU)
357! ifdef ENV_16BIT
358_CXX_O_CPU = -$(ALL_O_CPU)
359! else
360_CXX_O_CPU = -$(ALL_O_CPU)r
361! endif
362!endif
363!if defined(CXX_O_CPU)
364! ifdef ENV_16BIT
365_CXX_O_CPU = -$(CXX_O_CPU)
366! else
367_CXX_O_CPU = -$(CXX_O_CPU)r
368! endif
369!endif
370
371_CXX_OPTIONAL = $(_CXX_SEG_TEXT) $(_CXX_SEG_DATA) $(_CXX_SEG_XCPT) $(_CXX_SEG_TEXT_CLASS) $(_CXX_DEFAULT_LIBS) \
372 $(_CXX_PACK) $(_CXX_XCPT) $(_CXX_MODEL) -d$(_CXX_DEF_MODEL) $(_CXX_OPT_R) $(_CXX_O_CPU) $(_CXX_OPTIM)
373
Note: See TracBrowser for help on using the repository browser.