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

Last change on this file since 10366 was 9348, checked in by bird, 23 years ago

Added: Segment fixed/floating and readonly string options.

File size: 9.4 KB
RevLine 
[9348]1# $Id: setup.optional.watcom11x.mk,v 1.11 2002-10-15 12:15:11 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#
[9243]8MAKE_INCLUDE_CX_OPT = $(PATH_MAKE)\setup.optional.watcom11x.mk
[8332]9
10
11#
12# C Compiler flags.
13#
[9165]14_CC_SEG_TEXT =
15_CC_SEG_DATA =
16_CC_SEG_XCPT =
17_CC_SEG_TEXT_CLASS=
18_CC_DEFAULT_LIBS= -zl
19_CC_PACK =
[8354]20!ifdef ENV_16BIT
[9165]21_CC_MODEL = -ms
22_OBJ_MODEL = s
23_CC_DEF_MODEL = SMALL
[8354]24!else
[9165]25_CC_MODEL = -mf
26_CC_DEF_MODEL = FLAT
[8354]27!endif
[9348]28_CC_RO_STRINGS =
29_CC_DS =
30_CC_FS =
31_CC_GS =
[9165]32_CC_OPT_R =
33_CC_O_INLINE_USER =
34_CC_O_FRAMES=
35_CC_O_O2 =
36_CC_O_INLINE=
37_CC_O_SIZE =
38_CC_O_TIME =
39_CC_O_DISABLE =
40_CC_O_X =
[9169]41!ifdef ENV_16BIT
[9180]42_CC_CPU = -5
[9165]43!else
[9180]44_CC_CPU = -5r
[9165]45!endif
[8332]46
47!ifdef ALL_SEG_TEXT
48_CC_SEG_TEXT=-nt=$(ALL_SEG_TEXT)
49!endif
50!ifdef CC_SEG_TEXT
51_CC_SEG_TEXT=-nt=$(CC_SEG_TEXT)
52!endif
53!ifdef ALL_SEG_DATA
54_CC_SEG_DATA=-nd=$(ALL_SEG_TEXT)
55!endif
56!ifdef CC_SEG_DATA
57_CC_SEG_DATA=-nd=$(CC_SEG_TEXT)
58!endif
[9165]59!ifdef ALL_SEG_TEXT_CLASS
60_CC_SEG_TEXT_CLASS =-nc=$(ALL_SEG_TEXT_CLASS)
61!endif
62!ifdef CC_SEG_TEXT_CLASS
63_CC_SEG_TEXT_CLASS =-nc=$(CC_SEG_TEXT_CLASS)
64!endif
[8332]65!if defined(CC_DEFAULT_LIBS) || defined(ALL_DEFAULT_LIBS)
66_CC_DEFAULT_LIBS =
67!endif
68!ifdef ALL_PACK
69_CC_PACK = -zp=$(ALL_PACK)
70!endif
71!ifdef CC_PACK
72_CC_PACK = -zp=$(CC_PACK)
73!endif
[8354]74# model stuff.
[8332]75!if !defined(CC_MODEL) && defined(ALL_MODEL)
76CC_MODEL = $(ALL_MODEL)
77!endif
78!ifdef CC_MODEL
79_CC_MODEL =
80!endif
[8354]81! if "$(CC_MODEL)" == "TINY"
82_CC_MODEL = -ms
83_OBJ_MODEL = s
84_CC_DEF_MODEL= SMALL
85! error CC_MODEL=TINY is not supported by this compiler ($(ENV_NAME)).
86! endif
[8332]87!if "$(CC_MODEL)" == "SMALL"
88_CC_MODEL = -ms
[8354]89_OBJ_MODEL = s
90_CC_DEF_MODEL= SMALL
[8332]91!endif
92!if "$(CC_MODEL)" == "COMPACT"
93_CC_MODEL = -mc
[8354]94_OBJ_MODEL = c
95_CC_DEF_MODEL= COMPACT
[8332]96!endif
97!if "$(CC_MODEL)" == "MEDIUM"
98_CC_MODEL = -mm
[8354]99_OBJ_MODEL = m
100_CC_DEF_MODEL= MEDIUM
[8332]101!endif
102!if "$(CC_MODEL)" == "LARGE"
103_CC_MODEL = -ml
[8354]104_OBJ_MODEL = l
105_CC_DEF_MODEL= LARGE
[8332]106!endif
107!if "$(CC_MODEL)" == "HUGE"
[8354]108! ifdef ENV_16BIT
109_CC_MODEL = -mh
110_OBJ_MODEL = h
111_CC_DEF_MODEL= HUGH
112! else
[8332]113_CC_MODEL = -ml
[8354]114_OBJ_MODEL = l
115_CC_DEF_MODEL= LARGE
116! endif
[8332]117!endif
[8354]118!if "$(CC_MODEL)" == "FLAT"
119! ifdef ENV_16BIT
120! error CC_MODEL=FLAT is not supported by the 16-bit compiler. ($(ENV_NAME))
121! else
122_CC_MODEL = -mf
123_OBJ_MODEL = f
124_CC_DEF_MODEL= LARGE
125! endif
126!endif
[8332]127!if "$(_CC_MODEL)" == ""
128! error Invalid MODEL. CC_MODEL=$(CC_MODEL)
129!endif
130
[9165]131# watcom options.
[9348]132!if defined(CC_READONLY_STRINGS) || defined(ALL_READONLY_STRINGS)
133_CC_RO_STRINGS = -zc
134!endif
135
136!if defined(CC_FIXED_DS) || defined(ALL_FIXED_DS)
137_CC_DS = -zdp
138!endif
139!if defined(CC_NO_FIXED_DS) || defined(ALL_NO_FIXED_DS)
140_CC_DS = -zdf
141!endif
142
143!if defined(CC_FIXED_FS) || defined(ALL_FIXED_FS)
144_CC_FS = -zfp
145!endif
146!if defined(CC_NO_FIXED_FS) || defined(ALL_NO_FIXED_FS)
147_CC_FS = -zff
148!endif
149
150!if defined(CC_FIXED_GS) || defined(ALL_FIXED_GS)
151_CC_GS = -zgp
152!endif
153!if defined(CC_NO_FIXED_GS) || defined(ALL_NO_FIXED_GS)
154_CC_GS = -zgf
155!endif
156
[9137]157!if defined(CC_SAVE_SEGS_ACCROSS_CALLS) || defined(ALL_SAVE_SEGS_ACCROSS_CALLS)
158_CC_OPT_R = -r
159!endif
[8332]160
[9165]161# watcom optimizations.
162!if !defined(ALL_NO_O) && !defined(CC_NO_O)
163! if defined(ALL_O_INLINE_USER)
164_CC_O_INLINE_USER = -e=$(ALL_O_INLINE_USER)
165! endif
166! if defined(CC_O_INLINE_USER)
167_CC_O_INLINE_USER = -e=$(CC_O_INLINE_USER)
168! endif
169! if defined(CC_O_FRAMES) || defined(ALL_O_FRAMES)
170_CC_O_FRAMES=f+
171! endif
172! if defined(CC_O_O2) || defined(ALL_O_O2)
173_CC_O_O2 =h
174! endif
175! if defined(CC_O_INLINE) || defined(ALL_O_INLINE)
176_CC_O_INLINE=i
177! endif
178! if defined(CC_O_SIZE) || defined(ALL_O_SIZE)
179_CC_O_SIZE =s
180! endif
181! if defined(CC_O_TIME) || defined(ALL_O_TIME)
182_CC_O_TIME =t
183! endif
184! if defined(CC_O_X) || defined(ALL_O_X)
185_CC_O_X =x
186! endif
187!else
188_CC_O_DISABLE=d
189!endif
[8332]190
[9165]191_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)
192!if "$(_CC_OPTIM)" == "-o"
193_CC_OPTIM =
194!endif
[8332]195
[9180]196!if defined(ALL_CPU)
[9165]197! ifdef ENV_16BIT
[9180]198_CC_CPU = -$(ALL_CPU)
[9165]199! else
[9180]200_CC_CPU = -$(ALL_CPU)r
[9165]201! endif
202!endif
[9180]203!if defined(CC_CPU)
[9165]204! ifdef ENV_16BIT
[9180]205_CC_CPU = -$(CC_CPU)
[9165]206! else
[9180]207_CC_CPU = -$(CC_CPU)r
[9165]208! endif
209!endif
210
211_CC_OPTIONAL = $(_CC_SEG_TEXT) $(_CC_SEG_DATA) $(_CC_SEG_XCPT) $(_CC_SEG_TEXT_CLASS) $(_CC_DEFAULT_LIBS) \
[9348]212 $(_CC_PACK) $(_CC_MODEL) -d$(_CC_DEF_MODEL) $(_CC_RO_STRINGS) $(_CC_OPT_R) $(_CC_CPU) $(_CC_OPTIM) \
213 $(_CC_DS) $(_CC_FS) $(_CC_GS)
[9165]214
215
216
[8332]217#
218# C++ Compiler flags.
219#
[9165]220_CXX_SEG_TEXT =
221_CXX_SEG_DATA =
222_CXX_SEG_XCPT =
223_CXX_SEG_TEXT_CLASS =
224_CXX_DEFAULT_LIBS= -zl
225_CXX_PACK =
226_CXX_XCPT = -xd
227_CXX_MODEL = -mf
[8354]228!ifdef ENV_16BIT
[9165]229_CXX_MODEL = -ms
230_OBJ_MODEL = s
231_CXX_DEF_MODEL = SMALL
[8354]232!else
[9165]233_CXX_MODEL = -mf
234_CXX_DEF_MODEL = FLAT
[8354]235!endif
[9348]236_CXX_RO_STRINGS =
237_CXX_DS =
238_CXX_FS =
239_CXX_GS =
[9165]240_CXX_OPT_R =
241_CXX_O_INLINE_USER =
242_CXX_O_FRAMES=
243_CXX_O_O2 =
244_CXX_O_INLINE=
245_CXX_O_SIZE =
246_CXX_O_TIME =
247_CXX_O_DISABLE =
248_CXX_O_X =
[9180]249_CXX_CPU =
[9169]250!ifdef ENV_16BIT
[9180]251_CXX_CPU = -5
[9165]252!else
[9180]253_CXX_CPU = -5r
[9165]254!endif
[8332]255
256!ifdef ALL_SEG_TEXT
257_CXX_SEG_TEXT=-nt=$(ALL_SEG_TEXT)
258!endif
259!ifdef CXX_SEG_TEXT
260_CXX_SEG_TEXT=-nt=$(CXX_SEG_TEXT)
261!endif
262!ifdef ALL_SEG_DATA
263_CXX_SEG_DATA=-nd=$(ALL_SEG_TEXT)
264!endif
265!ifdef CXX_SEG_DATA
266_CXX_SEG_DATA=-nd=$(CXX_SEG_TEXT)
267!endif
268!ifdef ALL_SEG_XCPT
269_CXX_SEG_XCPT=
270!endif
271!ifdef CXX_SEG_XCPT
272_CXX_SEG_XCPT=
273!endif
[9165]274!ifdef ALL_SEG_TEXT_CLASS
275_CXX_SEG_TEXT_CLASS =-nc=$(ALL_SEG_TEXT_CLASS)
276!endif
277!ifdef CXX_SEG_TEXT_CLASS
278_CXX_SEG_TEXT_CLASS =-nc=$(CXX_SEG_TEXT_CLASS)
279!endif
[8332]280!if defined(CXX_DEFAULT_LIBS) || defined(ALL_DEFAULT_LIBS)
281_CXX_DEFAULT_LIBS =
282!endif
283!ifdef ALL_PACK
284_CXX_PACK = -zp=$(ALL_PACK)
285!endif
286!ifdef CXX_PACK
287_CXX_PACK = -zp=$(CXX_PACK)
288!endif
289!ifdef CXX_XCPT
290_CXX_XCPT = -xs
291!endif
292!ifdef CXX_NO_XCPT
293_CXX_XCPT = -xd
294!endif
[8354]295# Model
296!if !defined(CXX_MODEL) && defined(ALL_MODEL)
[8332]297CXX_MODEL = $(ALL_MODEL)
298!endif
299!ifdef CXX_MODEL
300_CXX_MODEL =
301!endif
[8354]302! if "$(CXX_MODEL)" == "TINY"
303_CXX_MODEL = -ms
304_OBJ_MODEL = s
305_CXX_DEF_MODEL= SMALL
306! error CXX_MODEL=TINY is not supported by this compiler ($(ENV_NAME)).
307! endif
[8332]308!if "$(CXX_MODEL)" == "SMALL"
309_CXX_MODEL = -ms
[8354]310_OBJ_MODEL = s
311_CXX_DEF_MODEL= SMALL
[8332]312!endif
313!if "$(CXX_MODEL)" == "COMPACT"
314_CXX_MODEL = -mc
[8354]315_OBJ_MODEL = c
316_CXX_DEF_MODEL= COMPACT
[8332]317!endif
318!if "$(CXX_MODEL)" == "MEDIUM"
319_CXX_MODEL = -mm
[8354]320_OBJ_MODEL = m
321_CXX_DEF_MODEL= MEDIUM
[8332]322!endif
323!if "$(CXX_MODEL)" == "LARGE"
324_CXX_MODEL = -ml
[8354]325_OBJ_MODEL = l
326_CXX_DEF_MODEL= LARGE
[8332]327!endif
328!if "$(CXX_MODEL)" == "HUGE"
[8354]329! ifdef ENV_16BIT
330_CXX_MODEL = -mh
331_OBJ_MODEL = h
332_CXX_DEF_MODEL= HUGH
333! else
[8332]334_CXX_MODEL = -ml
[8354]335_OBJ_MODEL = l
336_CXX_DEF_MODEL= LARGE
337! endif
[8332]338!endif
[8354]339!if "$(CXX_MODEL)" == "FLAT"
340! ifdef ENV_16BIT
341! error CXX_MODEL=FLAT is not supported by the 16-bit compiler. ($(ENV_NAME))
342! else
343_CXX_MODEL = -mf
344_OBJ_MODEL = f
345_CXX_DEF_MODEL= LARGE
346! endif
347!endif
[8332]348!if "$(_CXX_MODEL)" == ""
349! error Invalid MODEL. CXX_MODEL=$(CXX_MODEL)
350!endif
[9348]351
352# watcom options
353!if defined(CXX_READONLY_STRINGS) || defined(ALL_READONLY_STRINGS)
354_CXX_RO_STRINGS = -zc
355!endif
356
357!if defined(CXX_FIXED_DS) || defined(ALL_FIXED_DS)
358_CXX_DS = -zdp
359!endif
360!if defined(CXX_NO_FIXED_DS) || defined(ALL_NO_FIXED_DS)
361_CXX_DS = -zdf
362!endif
363
364!if defined(CXX_FIXED_FS) || defined(ALL_FIXED_FS)
365_CXX_FS = -zfp
366!endif
367!if defined(CXX_NO_FIXED_FS) || defined(ALL_NO_FIXED_FS)
368_CXX_FS = -zff
369!endif
370
371!if defined(CXX_FIXED_GS) || defined(ALL_FIXED_GS)
372_CXX_GS = -zgp
373!endif
374!if defined(CXX_NO_FIXED_GS) || defined(ALL_NO_FIXED_GS)
375_CXX_GS = -zgf
376!endif
377
[9137]378!if defined(CXX_SAVE_SEGS_ACCROSS_CALLS) || defined(ALL_SAVE_SEGS_ACCROSS_CALLS)
379_CXX_OPT_R = -r
380!endif
[8332]381
382
[9165]383# watcom optimizations.
384!if !defined(ALL_NO_O) && !defined(CXX_NO_O)
385! if defined(ALL_O_INLINE_USER)
386_CXX_O_INLINE_USER = -e=$(ALL_O_INLINE_USER)
387! endif
388! if defined(CXX_O_INLINE_USER)
389_CXX_O_INLINE_USER = -e=$(CXX_O_INLINE_USER)
390! endif
391! if defined(CXX_O_FRAMES) || defined(ALL_O_FRAMES)
392_CXX_O_FRAMES=f+
393! endif
394! if defined(CXX_O_O2) || defined(ALL_O_O2)
395_CXX_O_O2 =h
396! endif
397! if defined(CXX_O_INLINE) || defined(ALL_O_INLINE)
398_CXX_O_INLINE=i
399! endif
400! if defined(CXX_O_SIZE) || defined(ALL_O_SIZE)
401_CXX_O_SIZE =s
402! endif
403! if defined(CXX_O_TIME) || defined(ALL_O_TIME)
404_CXX_O_TIME =t
405! endif
406! if defined(CXX_O_X) || defined(ALL_O_X)
407_CXX_O_X =x
408! endif
409!else
410_CXX_O_DISABLE=d
411!endif
412
413_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)
414!if "$(_CXX_OPTIM)" == "-o"
415_CXX_OPTIM =
416!endif
417
[9180]418!if defined(ALL_CPU)
[9165]419! ifdef ENV_16BIT
[9180]420_CXX_CPU = -$(ALL_CPU)
[9165]421! else
[9180]422_CXX_CPU = -$(ALL_CPU)r
[9165]423! endif
424!endif
[9180]425!if defined(CXX_CPU)
[9165]426! ifdef ENV_16BIT
[9180]427_CXX_CPU = -$(CXX_CPU)
[9165]428! else
[9180]429_CXX_CPU = -$(CXX_CPU)r
[9165]430! endif
431!endif
432
433_CXX_OPTIONAL = $(_CXX_SEG_TEXT) $(_CXX_SEG_DATA) $(_CXX_SEG_XCPT) $(_CXX_SEG_TEXT_CLASS) $(_CXX_DEFAULT_LIBS) \
[9348]434 $(_CXX_PACK) $(_CXX_XCPT) $(_CXX_MODEL) -d$(_CXX_DEF_MODEL) $(_CXX_RO_STRINGS) $(_CXX_OPT_R) $(_CXX_CPU) $(_CXX_OPTIM) \
435 $(_CXX_DS) $(_CXX_FS) $(_CXX_GS)
[9165]436
[9278]437
438#
439# Macros common for all watcom compilers including this file
440#
441CC_PC_2_STRIPPED_STDOUT =-p
442CC_PC_2_STDOUT = -pcl
443CC_OBJ_OUT = -fo=
444CC_LST_OUT =
445
446CXX_PC_2_STRIPPED_STDOUT=-p
447CXX_PC_2_STDOUT = -pcl
448CXX_OBJ_OUT = -fo=
449CXX_LST_OUT =
450
Note: See TracBrowser for help on using the repository browser.