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

Last change on this file since 9168 was 9165, checked in by bird, 23 years ago

Added new tools. Restructured tools. More options. Fixes.

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