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

Last change on this file since 8889 was 8362, checked in by bird, 23 years ago

Support for .def files with the watcom linker.

File size: 4.5 KB
RevLine 
[8362]1# $Id: setup.optional.watcom11x.mk,v 1.3 2002-05-01 04:00:18 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
[8362]9#
10# This is not optional (but I'm getting lazy)
11#
12TOOL_DEFCONV = $(PATH_TOOLS)\kDef2Wat.exe $(BUILD_PLATFORM)
[8332]13
14#
15# C Compiler flags.
16#
17_CC_SEG_TEXT =
18_CC_SEG_DATA =
19_CC_SEG_XCPT =
20_CC_DEFAULT_LIBS = -zl
21_CC_PACK =
[8354]22!ifdef ENV_16BIT
23_CC_MODEL = -ms
24_OBJ_MODEL = s
25_CC_DEF_MODEL = SMALL
26!else
[8332]27_CC_MODEL = -mf
[8354]28_CC_DEF_MODEL = FLAT
29!endif
[8332]30
31!ifdef ALL_SEG_TEXT
32_CC_SEG_TEXT=-nt=$(ALL_SEG_TEXT)
33!endif
34!ifdef CC_SEG_TEXT
35_CC_SEG_TEXT=-nt=$(CC_SEG_TEXT)
36!endif
37!ifdef ALL_SEG_DATA
38_CC_SEG_DATA=-nd=$(ALL_SEG_TEXT)
39!endif
40!ifdef CC_SEG_DATA
41_CC_SEG_DATA=-nd=$(CC_SEG_TEXT)
42!endif
43!if defined(CC_DEFAULT_LIBS) || defined(ALL_DEFAULT_LIBS)
44_CC_DEFAULT_LIBS =
45!endif
46!ifdef ALL_PACK
47_CC_PACK = -zp=$(ALL_PACK)
48!endif
49!ifdef CC_PACK
50_CC_PACK = -zp=$(CC_PACK)
51!endif
[8354]52# model stuff.
[8332]53!if !defined(CC_MODEL) && defined(ALL_MODEL)
54CC_MODEL = $(ALL_MODEL)
55!endif
56!ifdef CC_MODEL
57_CC_MODEL =
58!endif
[8354]59! if "$(CC_MODEL)" == "TINY"
60_CC_MODEL = -ms
61_OBJ_MODEL = s
62_CC_DEF_MODEL= SMALL
63! error CC_MODEL=TINY is not supported by this compiler ($(ENV_NAME)).
64! endif
[8332]65!if "$(CC_MODEL)" == "SMALL"
66_CC_MODEL = -ms
[8354]67_OBJ_MODEL = s
68_CC_DEF_MODEL= SMALL
[8332]69!endif
70!if "$(CC_MODEL)" == "COMPACT"
71_CC_MODEL = -mc
[8354]72_OBJ_MODEL = c
73_CC_DEF_MODEL= COMPACT
[8332]74!endif
75!if "$(CC_MODEL)" == "MEDIUM"
76_CC_MODEL = -mm
[8354]77_OBJ_MODEL = m
78_CC_DEF_MODEL= MEDIUM
[8332]79!endif
80!if "$(CC_MODEL)" == "LARGE"
81_CC_MODEL = -ml
[8354]82_OBJ_MODEL = l
83_CC_DEF_MODEL= LARGE
[8332]84!endif
85!if "$(CC_MODEL)" == "HUGE"
[8354]86! ifdef ENV_16BIT
87_CC_MODEL = -mh
88_OBJ_MODEL = h
89_CC_DEF_MODEL= HUGH
90! else
[8332]91_CC_MODEL = -ml
[8354]92_OBJ_MODEL = l
93_CC_DEF_MODEL= LARGE
94! endif
[8332]95!endif
[8354]96!if "$(CC_MODEL)" == "FLAT"
97! ifdef ENV_16BIT
98! error CC_MODEL=FLAT is not supported by the 16-bit compiler. ($(ENV_NAME))
99! else
100_CC_MODEL = -mf
101_OBJ_MODEL = f
102_CC_DEF_MODEL= LARGE
103! endif
104!endif
[8332]105!if "$(_CC_MODEL)" == ""
106! error Invalid MODEL. CC_MODEL=$(CC_MODEL)
107!endif
108
[8354]109_CC_OPTIONAL = $(_CC_SEG_TEXT) $(_CC_SEG_DATA) $(_CC_SEG_XCPT) $(_CC_DEFAULT_LIBS) $(_CC_PACK) $(_CC_MODEL) -d$(_CC_DEF_MODEL)
[8332]110
111
112
113#
114# C++ Compiler flags.
115#
116_CXX_SEG_TEXT =
117_CXX_SEG_DATA =
118_CXX_SEG_XCPT =
119_CXX_DEFAULT_LIBS = -zl
120_CXX_PACK =
121_CXX_XCPT = -xd
122_CXX_MODEL = -mf
[8354]123!ifdef ENV_16BIT
124_CXX_MODEL = -ms
125_OBJ_MODEL = s
126_CXX_DEF_MODEL = SMALL
127!else
128_CXX_MODEL = -mf
129_CXX_DEF_MODEL = FLAT
130!endif
[8332]131
132!ifdef ALL_SEG_TEXT
133_CXX_SEG_TEXT=-nt=$(ALL_SEG_TEXT)
134!endif
135!ifdef CXX_SEG_TEXT
136_CXX_SEG_TEXT=-nt=$(CXX_SEG_TEXT)
137!endif
138!ifdef ALL_SEG_DATA
139_CXX_SEG_DATA=-nd=$(ALL_SEG_TEXT)
140!endif
141!ifdef CXX_SEG_DATA
142_CXX_SEG_DATA=-nd=$(CXX_SEG_TEXT)
143!endif
144!ifdef ALL_SEG_XCPT
145_CXX_SEG_XCPT=
146!endif
147!ifdef CXX_SEG_XCPT
148_CXX_SEG_XCPT=
149!endif
150!if defined(CXX_DEFAULT_LIBS) || defined(ALL_DEFAULT_LIBS)
151_CXX_DEFAULT_LIBS =
152!endif
153!ifdef ALL_PACK
154_CXX_PACK = -zp=$(ALL_PACK)
155!endif
156!ifdef CXX_PACK
157_CXX_PACK = -zp=$(CXX_PACK)
158!endif
159!ifdef CXX_XCPT
160_CXX_XCPT = -xs
161!endif
162!ifdef CXX_NO_XCPT
163_CXX_XCPT = -xd
164!endif
[8354]165# Model
166!if !defined(CXX_MODEL) && defined(ALL_MODEL)
[8332]167CXX_MODEL = $(ALL_MODEL)
168!endif
169!ifdef CXX_MODEL
170_CXX_MODEL =
171!endif
[8354]172! if "$(CXX_MODEL)" == "TINY"
173_CXX_MODEL = -ms
174_OBJ_MODEL = s
175_CXX_DEF_MODEL= SMALL
176! error CXX_MODEL=TINY is not supported by this compiler ($(ENV_NAME)).
177! endif
[8332]178!if "$(CXX_MODEL)" == "SMALL"
179_CXX_MODEL = -ms
[8354]180_OBJ_MODEL = s
181_CXX_DEF_MODEL= SMALL
[8332]182!endif
183!if "$(CXX_MODEL)" == "COMPACT"
184_CXX_MODEL = -mc
[8354]185_OBJ_MODEL = c
186_CXX_DEF_MODEL= COMPACT
[8332]187!endif
188!if "$(CXX_MODEL)" == "MEDIUM"
189_CXX_MODEL = -mm
[8354]190_OBJ_MODEL = m
191_CXX_DEF_MODEL= MEDIUM
[8332]192!endif
193!if "$(CXX_MODEL)" == "LARGE"
194_CXX_MODEL = -ml
[8354]195_OBJ_MODEL = l
196_CXX_DEF_MODEL= LARGE
[8332]197!endif
198!if "$(CXX_MODEL)" == "HUGE"
[8354]199! ifdef ENV_16BIT
200_CXX_MODEL = -mh
201_OBJ_MODEL = h
202_CXX_DEF_MODEL= HUGH
203! else
[8332]204_CXX_MODEL = -ml
[8354]205_OBJ_MODEL = l
206_CXX_DEF_MODEL= LARGE
207! endif
[8332]208!endif
[8354]209!if "$(CXX_MODEL)" == "FLAT"
210! ifdef ENV_16BIT
211! error CXX_MODEL=FLAT is not supported by the 16-bit compiler. ($(ENV_NAME))
212! else
213_CXX_MODEL = -mf
214_OBJ_MODEL = f
215_CXX_DEF_MODEL= LARGE
216! endif
217!endif
[8332]218!if "$(_CXX_MODEL)" == ""
219! error Invalid MODEL. CXX_MODEL=$(CXX_MODEL)
220!endif
221
[8354]222_CXX_OPTIONAL = $(_CXX_SEG_TEXT) $(_CXX_SEG_DATA) $(_CXX_SEG_XCPT) $(_CXX_DEFAULT_LIBS) $(_CXX_PACK) $(_CXX_XCPT) $(_CXX_MODEL) -d$(_CXX_DEF_MODEL)
[8332]223
224
Note: See TracBrowser for help on using the repository browser.