VirtualBox

source: vbox/trunk/src/libs/softfloat-3e/build/Win64-MinGW-w64/Makefile@ 107044

Last change on this file since 107044 was 94480, checked in by vboxsync, 3 years ago

libs/softfloat-3e: Copied from vendor branch (SoftFloat-3e.zip, md5: 7dac954ea4aed0697cbfee800ba4f492). bugref:9898

  • Property svn:eol-style set to native
File size: 10.5 KB
Line 
1
2#=============================================================================
3#
4# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
5# Package, Release 3e, by John R. Hauser.
6#
7# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
8# University of California. All rights reserved.
9#
10# Redistribution and use in source and binary forms, with or without
11# modification, are permitted provided that the following conditions are met:
12#
13# 1. Redistributions of source code must retain the above copyright notice,
14# this list of conditions, and the following disclaimer.
15#
16# 2. Redistributions in binary form must reproduce the above copyright
17# notice, this list of conditions, and the following disclaimer in the
18# documentation and/or other materials provided with the distribution.
19#
20# 3. Neither the name of the University nor the names of its contributors
21# may be used to endorse or promote products derived from this software
22# without specific prior written permission.
23#
24# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
25# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
27# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
28# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34#
35#=============================================================================
36
37SOURCE_DIR ?= ../../source
38SPECIALIZE_TYPE ?= 8086-SSE
39
40SOFTFLOAT_OPTS ?= \
41 -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
42 -DSOFTFLOAT_FAST_DIV64TO32
43
44DELETE = rm -f
45C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
46COMPILE_C = \
47 x86_64-w64-mingw32-gcc -c -Werror-implicit-function-declaration \
48 -DSOFTFLOAT_FAST_INT64 $(SOFTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
49MAKELIB = x86_64-w64-mingw32-ar crs $@
50
51OBJ = .o
52LIB = .a
53
54OTHER_HEADERS = $(SOURCE_DIR)/include/opts-GCC.h
55
56.PHONY: all
57all: softfloat$(LIB)
58
59OBJS_PRIMITIVES = \
60 s_eq128$(OBJ) \
61 s_le128$(OBJ) \
62 s_lt128$(OBJ) \
63 s_shortShiftLeft128$(OBJ) \
64 s_shortShiftRight128$(OBJ) \
65 s_shortShiftRightJam64$(OBJ) \
66 s_shortShiftRightJam64Extra$(OBJ) \
67 s_shortShiftRightJam128$(OBJ) \
68 s_shortShiftRightJam128Extra$(OBJ) \
69 s_shiftRightJam32$(OBJ) \
70 s_shiftRightJam64$(OBJ) \
71 s_shiftRightJam64Extra$(OBJ) \
72 s_shiftRightJam128$(OBJ) \
73 s_shiftRightJam128Extra$(OBJ) \
74 s_shiftRightJam256M$(OBJ) \
75 s_countLeadingZeros8$(OBJ) \
76 s_countLeadingZeros16$(OBJ) \
77 s_countLeadingZeros32$(OBJ) \
78 s_countLeadingZeros64$(OBJ) \
79 s_add128$(OBJ) \
80 s_add256M$(OBJ) \
81 s_sub128$(OBJ) \
82 s_sub256M$(OBJ) \
83 s_mul64ByShifted32To128$(OBJ) \
84 s_mul64To128$(OBJ) \
85 s_mul128By32$(OBJ) \
86 s_mul128To256M$(OBJ) \
87 s_approxRecip_1Ks$(OBJ) \
88 s_approxRecip32_1$(OBJ) \
89 s_approxRecipSqrt_1Ks$(OBJ) \
90 s_approxRecipSqrt32_1$(OBJ) \
91
92OBJS_SPECIALIZE = \
93 softfloat_raiseFlags$(OBJ) \
94 s_f16UIToCommonNaN$(OBJ) \
95 s_commonNaNToF16UI$(OBJ) \
96 s_propagateNaNF16UI$(OBJ) \
97 s_f32UIToCommonNaN$(OBJ) \
98 s_commonNaNToF32UI$(OBJ) \
99 s_propagateNaNF32UI$(OBJ) \
100 s_f64UIToCommonNaN$(OBJ) \
101 s_commonNaNToF64UI$(OBJ) \
102 s_propagateNaNF64UI$(OBJ) \
103 extF80M_isSignalingNaN$(OBJ) \
104 s_extF80UIToCommonNaN$(OBJ) \
105 s_commonNaNToExtF80UI$(OBJ) \
106 s_propagateNaNExtF80UI$(OBJ) \
107 f128M_isSignalingNaN$(OBJ) \
108 s_f128UIToCommonNaN$(OBJ) \
109 s_commonNaNToF128UI$(OBJ) \
110 s_propagateNaNF128UI$(OBJ) \
111
112OBJS_OTHERS = \
113 s_roundToUI32$(OBJ) \
114 s_roundToUI64$(OBJ) \
115 s_roundToI32$(OBJ) \
116 s_roundToI64$(OBJ) \
117 s_normSubnormalF16Sig$(OBJ) \
118 s_roundPackToF16$(OBJ) \
119 s_normRoundPackToF16$(OBJ) \
120 s_addMagsF16$(OBJ) \
121 s_subMagsF16$(OBJ) \
122 s_mulAddF16$(OBJ) \
123 s_normSubnormalF32Sig$(OBJ) \
124 s_roundPackToF32$(OBJ) \
125 s_normRoundPackToF32$(OBJ) \
126 s_addMagsF32$(OBJ) \
127 s_subMagsF32$(OBJ) \
128 s_mulAddF32$(OBJ) \
129 s_normSubnormalF64Sig$(OBJ) \
130 s_roundPackToF64$(OBJ) \
131 s_normRoundPackToF64$(OBJ) \
132 s_addMagsF64$(OBJ) \
133 s_subMagsF64$(OBJ) \
134 s_mulAddF64$(OBJ) \
135 s_normSubnormalExtF80Sig$(OBJ) \
136 s_roundPackToExtF80$(OBJ) \
137 s_normRoundPackToExtF80$(OBJ) \
138 s_addMagsExtF80$(OBJ) \
139 s_subMagsExtF80$(OBJ) \
140 s_normSubnormalF128Sig$(OBJ) \
141 s_roundPackToF128$(OBJ) \
142 s_normRoundPackToF128$(OBJ) \
143 s_addMagsF128$(OBJ) \
144 s_subMagsF128$(OBJ) \
145 s_mulAddF128$(OBJ) \
146 softfloat_state$(OBJ) \
147 ui32_to_f16$(OBJ) \
148 ui32_to_f32$(OBJ) \
149 ui32_to_f64$(OBJ) \
150 ui32_to_extF80$(OBJ) \
151 ui32_to_extF80M$(OBJ) \
152 ui32_to_f128$(OBJ) \
153 ui32_to_f128M$(OBJ) \
154 ui64_to_f16$(OBJ) \
155 ui64_to_f32$(OBJ) \
156 ui64_to_f64$(OBJ) \
157 ui64_to_extF80$(OBJ) \
158 ui64_to_extF80M$(OBJ) \
159 ui64_to_f128$(OBJ) \
160 ui64_to_f128M$(OBJ) \
161 i32_to_f16$(OBJ) \
162 i32_to_f32$(OBJ) \
163 i32_to_f64$(OBJ) \
164 i32_to_extF80$(OBJ) \
165 i32_to_extF80M$(OBJ) \
166 i32_to_f128$(OBJ) \
167 i32_to_f128M$(OBJ) \
168 i64_to_f16$(OBJ) \
169 i64_to_f32$(OBJ) \
170 i64_to_f64$(OBJ) \
171 i64_to_extF80$(OBJ) \
172 i64_to_extF80M$(OBJ) \
173 i64_to_f128$(OBJ) \
174 i64_to_f128M$(OBJ) \
175 f16_to_ui32$(OBJ) \
176 f16_to_ui64$(OBJ) \
177 f16_to_i32$(OBJ) \
178 f16_to_i64$(OBJ) \
179 f16_to_ui32_r_minMag$(OBJ) \
180 f16_to_ui64_r_minMag$(OBJ) \
181 f16_to_i32_r_minMag$(OBJ) \
182 f16_to_i64_r_minMag$(OBJ) \
183 f16_to_f32$(OBJ) \
184 f16_to_f64$(OBJ) \
185 f16_to_extF80$(OBJ) \
186 f16_to_extF80M$(OBJ) \
187 f16_to_f128$(OBJ) \
188 f16_to_f128M$(OBJ) \
189 f16_roundToInt$(OBJ) \
190 f16_add$(OBJ) \
191 f16_sub$(OBJ) \
192 f16_mul$(OBJ) \
193 f16_mulAdd$(OBJ) \
194 f16_div$(OBJ) \
195 f16_rem$(OBJ) \
196 f16_sqrt$(OBJ) \
197 f16_eq$(OBJ) \
198 f16_le$(OBJ) \
199 f16_lt$(OBJ) \
200 f16_eq_signaling$(OBJ) \
201 f16_le_quiet$(OBJ) \
202 f16_lt_quiet$(OBJ) \
203 f16_isSignalingNaN$(OBJ) \
204 f32_to_ui32$(OBJ) \
205 f32_to_ui64$(OBJ) \
206 f32_to_i32$(OBJ) \
207 f32_to_i64$(OBJ) \
208 f32_to_ui32_r_minMag$(OBJ) \
209 f32_to_ui64_r_minMag$(OBJ) \
210 f32_to_i32_r_minMag$(OBJ) \
211 f32_to_i64_r_minMag$(OBJ) \
212 f32_to_f16$(OBJ) \
213 f32_to_f64$(OBJ) \
214 f32_to_extF80$(OBJ) \
215 f32_to_extF80M$(OBJ) \
216 f32_to_f128$(OBJ) \
217 f32_to_f128M$(OBJ) \
218 f32_roundToInt$(OBJ) \
219 f32_add$(OBJ) \
220 f32_sub$(OBJ) \
221 f32_mul$(OBJ) \
222 f32_mulAdd$(OBJ) \
223 f32_div$(OBJ) \
224 f32_rem$(OBJ) \
225 f32_sqrt$(OBJ) \
226 f32_eq$(OBJ) \
227 f32_le$(OBJ) \
228 f32_lt$(OBJ) \
229 f32_eq_signaling$(OBJ) \
230 f32_le_quiet$(OBJ) \
231 f32_lt_quiet$(OBJ) \
232 f32_isSignalingNaN$(OBJ) \
233 f64_to_ui32$(OBJ) \
234 f64_to_ui64$(OBJ) \
235 f64_to_i32$(OBJ) \
236 f64_to_i64$(OBJ) \
237 f64_to_ui32_r_minMag$(OBJ) \
238 f64_to_ui64_r_minMag$(OBJ) \
239 f64_to_i32_r_minMag$(OBJ) \
240 f64_to_i64_r_minMag$(OBJ) \
241 f64_to_f16$(OBJ) \
242 f64_to_f32$(OBJ) \
243 f64_to_extF80$(OBJ) \
244 f64_to_extF80M$(OBJ) \
245 f64_to_f128$(OBJ) \
246 f64_to_f128M$(OBJ) \
247 f64_roundToInt$(OBJ) \
248 f64_add$(OBJ) \
249 f64_sub$(OBJ) \
250 f64_mul$(OBJ) \
251 f64_mulAdd$(OBJ) \
252 f64_div$(OBJ) \
253 f64_rem$(OBJ) \
254 f64_sqrt$(OBJ) \
255 f64_eq$(OBJ) \
256 f64_le$(OBJ) \
257 f64_lt$(OBJ) \
258 f64_eq_signaling$(OBJ) \
259 f64_le_quiet$(OBJ) \
260 f64_lt_quiet$(OBJ) \
261 f64_isSignalingNaN$(OBJ) \
262 extF80_to_ui32$(OBJ) \
263 extF80_to_ui64$(OBJ) \
264 extF80_to_i32$(OBJ) \
265 extF80_to_i64$(OBJ) \
266 extF80_to_ui32_r_minMag$(OBJ) \
267 extF80_to_ui64_r_minMag$(OBJ) \
268 extF80_to_i32_r_minMag$(OBJ) \
269 extF80_to_i64_r_minMag$(OBJ) \
270 extF80_to_f16$(OBJ) \
271 extF80_to_f32$(OBJ) \
272 extF80_to_f64$(OBJ) \
273 extF80_to_f128$(OBJ) \
274 extF80_roundToInt$(OBJ) \
275 extF80_add$(OBJ) \
276 extF80_sub$(OBJ) \
277 extF80_mul$(OBJ) \
278 extF80_div$(OBJ) \
279 extF80_rem$(OBJ) \
280 extF80_sqrt$(OBJ) \
281 extF80_eq$(OBJ) \
282 extF80_le$(OBJ) \
283 extF80_lt$(OBJ) \
284 extF80_eq_signaling$(OBJ) \
285 extF80_le_quiet$(OBJ) \
286 extF80_lt_quiet$(OBJ) \
287 extF80_isSignalingNaN$(OBJ) \
288 extF80M_to_ui32$(OBJ) \
289 extF80M_to_ui64$(OBJ) \
290 extF80M_to_i32$(OBJ) \
291 extF80M_to_i64$(OBJ) \
292 extF80M_to_ui32_r_minMag$(OBJ) \
293 extF80M_to_ui64_r_minMag$(OBJ) \
294 extF80M_to_i32_r_minMag$(OBJ) \
295 extF80M_to_i64_r_minMag$(OBJ) \
296 extF80M_to_f16$(OBJ) \
297 extF80M_to_f32$(OBJ) \
298 extF80M_to_f64$(OBJ) \
299 extF80M_to_f128M$(OBJ) \
300 extF80M_roundToInt$(OBJ) \
301 extF80M_add$(OBJ) \
302 extF80M_sub$(OBJ) \
303 extF80M_mul$(OBJ) \
304 extF80M_div$(OBJ) \
305 extF80M_rem$(OBJ) \
306 extF80M_sqrt$(OBJ) \
307 extF80M_eq$(OBJ) \
308 extF80M_le$(OBJ) \
309 extF80M_lt$(OBJ) \
310 extF80M_eq_signaling$(OBJ) \
311 extF80M_le_quiet$(OBJ) \
312 extF80M_lt_quiet$(OBJ) \
313 f128_to_ui32$(OBJ) \
314 f128_to_ui64$(OBJ) \
315 f128_to_i32$(OBJ) \
316 f128_to_i64$(OBJ) \
317 f128_to_ui32_r_minMag$(OBJ) \
318 f128_to_ui64_r_minMag$(OBJ) \
319 f128_to_i32_r_minMag$(OBJ) \
320 f128_to_i64_r_minMag$(OBJ) \
321 f128_to_f16$(OBJ) \
322 f128_to_f32$(OBJ) \
323 f128_to_extF80$(OBJ) \
324 f128_to_f64$(OBJ) \
325 f128_roundToInt$(OBJ) \
326 f128_add$(OBJ) \
327 f128_sub$(OBJ) \
328 f128_mul$(OBJ) \
329 f128_mulAdd$(OBJ) \
330 f128_div$(OBJ) \
331 f128_rem$(OBJ) \
332 f128_sqrt$(OBJ) \
333 f128_eq$(OBJ) \
334 f128_le$(OBJ) \
335 f128_lt$(OBJ) \
336 f128_eq_signaling$(OBJ) \
337 f128_le_quiet$(OBJ) \
338 f128_lt_quiet$(OBJ) \
339 f128_isSignalingNaN$(OBJ) \
340 f128M_to_ui32$(OBJ) \
341 f128M_to_ui64$(OBJ) \
342 f128M_to_i32$(OBJ) \
343 f128M_to_i64$(OBJ) \
344 f128M_to_ui32_r_minMag$(OBJ) \
345 f128M_to_ui64_r_minMag$(OBJ) \
346 f128M_to_i32_r_minMag$(OBJ) \
347 f128M_to_i64_r_minMag$(OBJ) \
348 f128M_to_f16$(OBJ) \
349 f128M_to_f32$(OBJ) \
350 f128M_to_extF80M$(OBJ) \
351 f128M_to_f64$(OBJ) \
352 f128M_roundToInt$(OBJ) \
353 f128M_add$(OBJ) \
354 f128M_sub$(OBJ) \
355 f128M_mul$(OBJ) \
356 f128M_mulAdd$(OBJ) \
357 f128M_div$(OBJ) \
358 f128M_rem$(OBJ) \
359 f128M_sqrt$(OBJ) \
360 f128M_eq$(OBJ) \
361 f128M_le$(OBJ) \
362 f128M_lt$(OBJ) \
363 f128M_eq_signaling$(OBJ) \
364 f128M_le_quiet$(OBJ) \
365 f128M_lt_quiet$(OBJ) \
366
367OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
368
369$(OBJS_ALL): \
370 $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
371 $(SOURCE_DIR)/include/primitives.h
372$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
373 $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
374 $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
375 $(SOURCE_DIR)/include/softfloat.h
376
377$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
378 $(COMPILE_C) $(SOURCE_DIR)/$*.c
379
380$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
381 $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
382
383softfloat$(LIB): $(OBJS_ALL)
384 $(DELETE) $@
385 $(MAKELIB) $^
386
387.PHONY: clean
388clean:
389 $(DELETE) $(OBJS_ALL) softfloat$(LIB)
390
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette