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
RevLine 
[9169]1# $Id: setup.optional.watcom11x.mk,v 1.7 2002-08-29 12:06:17 bird Exp $
[8332]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#
[9165]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 =
[8354]19!ifdef ENV_16BIT
[9165]20_CC_MODEL = -ms
21_OBJ_MODEL = s
22_CC_DEF_MODEL = SMALL
[8354]23!else
[9165]24_CC_MODEL = -mf
25_CC_DEF_MODEL = FLAT
[8354]26!endif
[9165]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 =
[9169]36!ifdef ENV_16BIT
[9165]37_CC_O_CPU = -5
38!else
39_CC_O_CPU = -5r
40!endif
[8332]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
[9165]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
[8332]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
[8354]69# model stuff.
[8332]70!if !defined(CC_MODEL) && defined(ALL_MODEL)
71CC_MODEL = $(ALL_MODEL)
72!endif
73!ifdef CC_MODEL
74_CC_MODEL =
75!endif
[8354]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
[8332]82!if "$(CC_MODEL)" == "SMALL"
83_CC_MODEL = -ms
[8354]84_OBJ_MODEL = s
85_CC_DEF_MODEL= SMALL
[8332]86!endif
87!if "$(CC_MODEL)" == "COMPACT"
88_CC_MODEL = -mc
[8354]89_OBJ_MODEL = c
90_CC_DEF_MODEL= COMPACT
[8332]91!endif
92!if "$(CC_MODEL)" == "MEDIUM"
93_CC_MODEL = -mm
[8354]94_OBJ_MODEL = m
95_CC_DEF_MODEL= MEDIUM
[8332]96!endif
97!if "$(CC_MODEL)" == "LARGE"
98_CC_MODEL = -ml
[8354]99_OBJ_MODEL = l
100_CC_DEF_MODEL= LARGE
[8332]101!endif
102!if "$(CC_MODEL)" == "HUGE"
[8354]103! ifdef ENV_16BIT
104_CC_MODEL = -mh
105_OBJ_MODEL = h
106_CC_DEF_MODEL= HUGH
107! else
[8332]108_CC_MODEL = -ml
[8354]109_OBJ_MODEL = l
110_CC_DEF_MODEL= LARGE
111! endif
[8332]112!endif
[8354]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
[8332]122!if "$(_CC_MODEL)" == ""
123! error Invalid MODEL. CC_MODEL=$(CC_MODEL)
124!endif
125
[9165]126# watcom options.
[9137]127!if defined(CC_SAVE_SEGS_ACCROSS_CALLS) || defined(ALL_SAVE_SEGS_ACCROSS_CALLS)
128_CC_OPT_R = -r
129!endif
[8332]130
[9165]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
[8332]160
[9165]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
[8332]165
[9165]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
[8332]186#
187# C++ Compiler flags.
188#
[9165]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
[8354]197!ifdef ENV_16BIT
[9165]198_CXX_MODEL = -ms
199_OBJ_MODEL = s
200_CXX_DEF_MODEL = SMALL
[8354]201!else
[9165]202_CXX_MODEL = -mf
203_CXX_DEF_MODEL = FLAT
[8354]204!endif
[9165]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 =
[9169]215!ifdef ENV_16BIT
[9165]216_CXX_O_CPU = -5
217!else
218_CXX_O_CPU = -5r
219!endif
[8332]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
[9165]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
[8332]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
[8354]260# Model
261!if !defined(CXX_MODEL) && defined(ALL_MODEL)
[8332]262CXX_MODEL = $(ALL_MODEL)
263!endif
264!ifdef CXX_MODEL
265_CXX_MODEL =
266!endif
[8354]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
[8332]273!if "$(CXX_MODEL)" == "SMALL"
274_CXX_MODEL = -ms
[8354]275_OBJ_MODEL = s
276_CXX_DEF_MODEL= SMALL
[8332]277!endif
278!if "$(CXX_MODEL)" == "COMPACT"
279_CXX_MODEL = -mc
[8354]280_OBJ_MODEL = c
281_CXX_DEF_MODEL= COMPACT
[8332]282!endif
283!if "$(CXX_MODEL)" == "MEDIUM"
284_CXX_MODEL = -mm
[8354]285_OBJ_MODEL = m
286_CXX_DEF_MODEL= MEDIUM
[8332]287!endif
288!if "$(CXX_MODEL)" == "LARGE"
289_CXX_MODEL = -ml
[8354]290_OBJ_MODEL = l
291_CXX_DEF_MODEL= LARGE
[8332]292!endif
293!if "$(CXX_MODEL)" == "HUGE"
[8354]294! ifdef ENV_16BIT
295_CXX_MODEL = -mh
296_OBJ_MODEL = h
297_CXX_DEF_MODEL= HUGH
298! else
[8332]299_CXX_MODEL = -ml
[8354]300_OBJ_MODEL = l
301_CXX_DEF_MODEL= LARGE
302! endif
[8332]303!endif
[8354]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
[8332]313!if "$(_CXX_MODEL)" == ""
314! error Invalid MODEL. CXX_MODEL=$(CXX_MODEL)
315!endif
[9137]316!if defined(CXX_SAVE_SEGS_ACCROSS_CALLS) || defined(ALL_SAVE_SEGS_ACCROSS_CALLS)
317_CXX_OPT_R = -r
318!endif
[8332]319
320
[9165]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.