VirtualBox

source: vbox/trunk/src/libs/softfloat-3e/testfloat/build/Linux-ARM-VFPv2-GCC/Makefile@ 106842

Last change on this file since 106842 was 94551, checked in by vboxsync, 3 years ago

libs/softfloat: Copied TestFloat-3e from vendor branch and to testfloat subdir. bugref:9898

  • Property svn:eol-style set to native
File size: 11.8 KB
Line 
1
2#=============================================================================
3#
4# This Makefile is part of TestFloat, Release 3e, a package of programs for
5# testing the correctness of floating-point arithmetic complying with the IEEE
6# Standard for Floating-Point, by John R. Hauser.
7#
8# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
9# University of California. All rights reserved.
10#
11# Redistribution and use in source and binary forms, with or without
12# modification, are permitted provided that the following conditions are met:
13#
14# 1. Redistributions of source code must retain the above copyright notice,
15# this list of conditions, and the following disclaimer.
16#
17# 2. Redistributions in binary form must reproduce the above copyright
18# notice, this list of conditions, and the following disclaimer in the
19# documentation and/or other materials provided with the distribution.
20#
21# 3. Neither the name of the University nor the names of its contributors
22# may be used to endorse or promote products derived from this software
23# without specific prior written permission.
24#
25# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
26# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
27# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
28# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
29# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
30# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
32# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35#
36#=============================================================================
37
38SOURCE_DIR ?= ../../source
39SOFTFLOAT_DIR ?= ../../../SoftFloat-3e
40PLATFORM ?= Linux-ARM-VFPv2-GCC
41
42SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
43SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
44
45SOFTFLOAT_H = \
46 $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
47 $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
48SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
49
50TESTFLOAT_OPTS ?= -DFLOAT16 -DFLOAT64 -DEXTFLOAT80 -DFLOAT128 -DFLOAT_ROUND_ODD
51
52DELETE = rm -f
53C_INCLUDES = \
54 -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
55COMPILE_C = \
56 gcc -std=c99 -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
57 $(C_INCLUDES) -O2 -o $@
58COMPILE_SLOWFLOAT_C = \
59 gcc -std=c99 -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
60 $(C_INCLUDES) -O3 -o $@
61MAKELIB = ar crs $@
62LINK = gcc -o $@
63OTHER_LIBS = -lm
64
65OBJ = .o
66LIB = .a
67EXE =
68
69.PHONY: all
70all: \
71 testsoftfloat$(EXE) \
72 timesoftfloat$(EXE) \
73 testfloat_gen$(EXE) \
74 testfloat_ver$(EXE) \
75 testfloat$(EXE) \
76
77OBJS_GENCASES = \
78 genCases_ui32$(OBJ) \
79 genCases_ui64$(OBJ) \
80 genCases_i32$(OBJ) \
81 genCases_i64$(OBJ) \
82 genCases_f16$(OBJ) \
83 genCases_f32$(OBJ) \
84 genCases_f64$(OBJ) \
85 genCases_extF80$(OBJ) \
86 genCases_f128$(OBJ) \
87
88OBJS_WRITECASE = \
89 writeCase_a_ui32$(OBJ) \
90 writeCase_a_ui64$(OBJ) \
91 writeCase_a_f16$(OBJ) \
92 writeCase_ab_f16$(OBJ) \
93 writeCase_abc_f16$(OBJ) \
94 writeCase_a_f32$(OBJ) \
95 writeCase_ab_f32$(OBJ) \
96 writeCase_abc_f32$(OBJ) \
97 writeCase_a_f64$(OBJ) \
98 writeCase_ab_f64$(OBJ) \
99 writeCase_abc_f64$(OBJ) \
100 writeCase_a_extF80M$(OBJ) \
101 writeCase_ab_extF80M$(OBJ) \
102 writeCase_a_f128M$(OBJ) \
103 writeCase_ab_f128M$(OBJ) \
104 writeCase_abc_f128M$(OBJ) \
105 writeCase_z_bool$(OBJ) \
106 writeCase_z_ui32$(OBJ) \
107 writeCase_z_ui64$(OBJ) \
108 writeCase_z_f16$(OBJ) \
109 writeCase_z_f32$(OBJ) \
110 writeCase_z_f64$(OBJ) \
111 writeCase_z_extF80M$(OBJ) \
112 writeCase_z_f128M$(OBJ) \
113
114OBJS_TEST = \
115 test_a_ui32_z_f16$(OBJ) \
116 test_a_ui32_z_f32$(OBJ) \
117 test_a_ui32_z_f64$(OBJ) \
118 test_a_ui32_z_extF80$(OBJ) \
119 test_a_ui32_z_f128$(OBJ) \
120 test_a_ui64_z_f16$(OBJ) \
121 test_a_ui64_z_f32$(OBJ) \
122 test_a_ui64_z_f64$(OBJ) \
123 test_a_ui64_z_extF80$(OBJ) \
124 test_a_ui64_z_f128$(OBJ) \
125 test_a_i32_z_f16$(OBJ) \
126 test_a_i32_z_f32$(OBJ) \
127 test_a_i32_z_f64$(OBJ) \
128 test_a_i32_z_extF80$(OBJ) \
129 test_a_i32_z_f128$(OBJ) \
130 test_a_i64_z_f16$(OBJ) \
131 test_a_i64_z_f32$(OBJ) \
132 test_a_i64_z_f64$(OBJ) \
133 test_a_i64_z_extF80$(OBJ) \
134 test_a_i64_z_f128$(OBJ) \
135 test_a_f16_z_ui32_rx$(OBJ) \
136 test_a_f16_z_ui64_rx$(OBJ) \
137 test_a_f16_z_i32_rx$(OBJ) \
138 test_a_f16_z_i64_rx$(OBJ) \
139 test_a_f16_z_ui32_x$(OBJ) \
140 test_a_f16_z_ui64_x$(OBJ) \
141 test_a_f16_z_i32_x$(OBJ) \
142 test_a_f16_z_i64_x$(OBJ) \
143 test_a_f16_z_f32$(OBJ) \
144 test_a_f16_z_f64$(OBJ) \
145 test_a_f16_z_extF80$(OBJ) \
146 test_a_f16_z_f128$(OBJ) \
147 test_az_f16$(OBJ) \
148 test_az_f16_rx$(OBJ) \
149 test_abz_f16$(OBJ) \
150 test_abcz_f16$(OBJ) \
151 test_ab_f16_z_bool$(OBJ) \
152 test_a_f32_z_ui32_rx$(OBJ) \
153 test_a_f32_z_ui64_rx$(OBJ) \
154 test_a_f32_z_i32_rx$(OBJ) \
155 test_a_f32_z_i64_rx$(OBJ) \
156 test_a_f32_z_ui32_x$(OBJ) \
157 test_a_f32_z_ui64_x$(OBJ) \
158 test_a_f32_z_i32_x$(OBJ) \
159 test_a_f32_z_i64_x$(OBJ) \
160 test_a_f32_z_f16$(OBJ) \
161 test_a_f32_z_f64$(OBJ) \
162 test_a_f32_z_extF80$(OBJ) \
163 test_a_f32_z_f128$(OBJ) \
164 test_az_f32$(OBJ) \
165 test_az_f32_rx$(OBJ) \
166 test_abz_f32$(OBJ) \
167 test_abcz_f32$(OBJ) \
168 test_ab_f32_z_bool$(OBJ) \
169 test_a_f64_z_ui32_rx$(OBJ) \
170 test_a_f64_z_ui64_rx$(OBJ) \
171 test_a_f64_z_i32_rx$(OBJ) \
172 test_a_f64_z_i64_rx$(OBJ) \
173 test_a_f64_z_ui32_x$(OBJ) \
174 test_a_f64_z_ui64_x$(OBJ) \
175 test_a_f64_z_i32_x$(OBJ) \
176 test_a_f64_z_i64_x$(OBJ) \
177 test_a_f64_z_f16$(OBJ) \
178 test_a_f64_z_f32$(OBJ) \
179 test_a_f64_z_extF80$(OBJ) \
180 test_a_f64_z_f128$(OBJ) \
181 test_az_f64$(OBJ) \
182 test_az_f64_rx$(OBJ) \
183 test_abz_f64$(OBJ) \
184 test_abcz_f64$(OBJ) \
185 test_ab_f64_z_bool$(OBJ) \
186 test_a_extF80_z_ui32_rx$(OBJ) \
187 test_a_extF80_z_ui64_rx$(OBJ) \
188 test_a_extF80_z_i32_rx$(OBJ) \
189 test_a_extF80_z_i64_rx$(OBJ) \
190 test_a_extF80_z_ui32_x$(OBJ) \
191 test_a_extF80_z_ui64_x$(OBJ) \
192 test_a_extF80_z_i32_x$(OBJ) \
193 test_a_extF80_z_i64_x$(OBJ) \
194 test_a_extF80_z_f16$(OBJ) \
195 test_a_extF80_z_f32$(OBJ) \
196 test_a_extF80_z_f64$(OBJ) \
197 test_a_extF80_z_f128$(OBJ) \
198 test_az_extF80$(OBJ) \
199 test_az_extF80_rx$(OBJ) \
200 test_abz_extF80$(OBJ) \
201 test_ab_extF80_z_bool$(OBJ) \
202 test_a_f128_z_ui32_rx$(OBJ) \
203 test_a_f128_z_ui64_rx$(OBJ) \
204 test_a_f128_z_i32_rx$(OBJ) \
205 test_a_f128_z_i64_rx$(OBJ) \
206 test_a_f128_z_ui32_x$(OBJ) \
207 test_a_f128_z_ui64_x$(OBJ) \
208 test_a_f128_z_i32_x$(OBJ) \
209 test_a_f128_z_i64_x$(OBJ) \
210 test_a_f128_z_f16$(OBJ) \
211 test_a_f128_z_f32$(OBJ) \
212 test_a_f128_z_f64$(OBJ) \
213 test_a_f128_z_extF80$(OBJ) \
214 test_az_f128$(OBJ) \
215 test_az_f128_rx$(OBJ) \
216 test_abz_f128$(OBJ) \
217 test_abcz_f128$(OBJ) \
218 test_ab_f128_z_bool$(OBJ) \
219
220OBJS_LIB = \
221 uint128_inline$(OBJ) \
222 uint128$(OBJ) \
223 fail$(OBJ) \
224 functions_common$(OBJ) \
225 functionInfos$(OBJ) \
226 standardFunctionInfos$(OBJ) \
227 random$(OBJ) \
228 genCases_common$(OBJ) \
229 $(OBJS_GENCASES) \
230 genCases_writeTestsTotal$(OBJ) \
231 verCases_inline$(OBJ) \
232 verCases_common$(OBJ) \
233 verCases_writeFunctionName$(OBJ) \
234 readHex$(OBJ) \
235 writeHex$(OBJ) \
236 $(OBJS_WRITECASE) \
237 testLoops_common$(OBJ) \
238 $(OBJS_TEST) \
239
240uint128$(OBJ): $(SOURCE_DIR)/uint128.h
241fail$(OBJ): $(SOURCE_DIR)/fail.h
242functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
243functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
244standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
245random$(OBJ): $(SOURCE_DIR)/random.h
246genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
247$(OBJS_GENCASES): \
248 $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
249genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
250genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
251verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
252verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
253readHex$(OBJ): $(SOURCE_DIR)/readHex.h
254writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
255$(OBJS_WRITECASE): \
256 $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
257testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
258$(OBJS_TEST): \
259 $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
260 $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
261$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
262 $(COMPILE_C) $(SOURCE_DIR)/$*.c
263testfloat$(LIB): $(OBJS_LIB)
264 $(MAKELIB) $^
265
266OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
267
268slowfloat$(OBJ): \
269 platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
270 $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
271 $(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
272testsoftfloat$(OBJ): \
273 platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
274 $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
275 $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
276 $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
277 $(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
278
279testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
280 $(LINK) $^ $(OTHER_LIBS)
281
282OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
283
284timesoftfloat$(OBJ): \
285 platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
286 $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
287 $(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
288
289timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
290 $(LINK) $^ $(OTHER_LIBS)
291
292OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
293
294genLoops$(OBJ): \
295 platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
296 $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
297 $(SOURCE_DIR)/genLoops.c
298 $(COMPILE_C) $(SOURCE_DIR)/genLoops.c
299testfloat_gen$(OBJ): \
300 $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
301 $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
302 $(SOURCE_DIR)/testfloat_gen.c
303 $(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
304
305testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
306 $(LINK) $^ $(OTHER_LIBS)
307
308OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
309
310verLoops$(OBJ): \
311 platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
312 $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
313 $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
314 $(COMPILE_C) $(SOURCE_DIR)/verLoops.c
315testfloat_ver$(OBJ): \
316 platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
317 $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
318 $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
319 $(SOURCE_DIR)/testfloat_ver.c
320 $(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
321
322testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
323 $(LINK) $^ $(OTHER_LIBS)
324
325OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
326
327subjfloat$(OBJ): \
328 platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
329 $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
330 $(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
331subjfloat_functions$(OBJ): \
332 platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
333 $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
334 $(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
335testfloat$(OBJ): \
336 platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
337 $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
338 $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
339 $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
340 $(COMPILE_C) $(SOURCE_DIR)/testfloat.c
341
342testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
343 $(LINK) $^ $(OTHER_LIBS)
344
345.PHONY: clean
346clean:
347 $(DELETE) $(OBJS_LIB) testfloat$(LIB)
348 $(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
349 $(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
350 $(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
351 $(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
352 $(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
353
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