Makefile revision 1.2 1 1.1 mycroft # MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP
2 1.1 mycroft # M68000 Hi-Performance Microprocessor Division
3 1.1 mycroft # M68040 Software Package
4 1.1 mycroft #
5 1.1 mycroft # M68040 Software Package Copyright (c) 1993, 1994 Motorola Inc.
6 1.1 mycroft # All rights reserved.
7 1.1 mycroft #
8 1.1 mycroft # THE SOFTWARE is provided on an "AS IS" basis and without warranty.
9 1.1 mycroft # To the maximum extent permitted by applicable law,
10 1.1 mycroft # MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
11 1.1 mycroft # INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
12 1.1 mycroft # PARTICULAR PURPOSE and any warranty against infringement with
13 1.1 mycroft # regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)
14 1.1 mycroft # and any accompanying written materials.
15 1.1 mycroft #
16 1.1 mycroft # To the maximum extent permitted by applicable law,
17 1.1 mycroft # IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
18 1.1 mycroft # (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS
19 1.1 mycroft # PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR
20 1.1 mycroft # OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE
21 1.1 mycroft # SOFTWARE. Motorola assumes no responsibility for the maintenance
22 1.1 mycroft # and support of the SOFTWARE.
23 1.1 mycroft #
24 1.1 mycroft # You are hereby granted a copyright license to use, modify, and
25 1.1 mycroft # distribute the SOFTWARE so long as this entire notice is retained
26 1.1 mycroft # without alteration in any modified and/or redistributed versions,
27 1.1 mycroft # and that such modified versions are clearly identified as such.
28 1.1 mycroft # No licenses are granted by implication, estoppel or otherwise
29 1.1 mycroft # under any patents or trademarks of Motorola, Inc.
30 1.1 mycroft
31 1.1 mycroft #
32 1.1 mycroft # Makefile 3.3 3/27/91
33 1.1 mycroft #
34 1.1 mycroft # Makefile for 68040 Floating Point Software Package
35 1.1 mycroft #
36 1.1 mycroft
37 1.2 mycroft TARGET = fpsp
38 1.1 mycroft
39 1.2 mycroft AS = as -m68040
40 1.2 mycroft LD = ld
41 1.1 mycroft
42 1.1 mycroft #
43 1.1 mycroft # For the Library Version:
44 1.1 mycroft #
45 1.1 mycroft AR = ar
46 1.2 mycroft LIB_FILTER = sed 's/fpsp.defs/l_fpsp.defs/'
47 1.2 mycroft LIB_TARGET = lib$(TARGET).a
48 1.1 mycroft #
49 1.1 mycroft # SYS selects the template set to use
50 1.1 mycroft # templates are supplied for R3V6, CI5 and GEN(generic)
51 1.1 mycroft # PREFIX is a string that begins a temporary label in the assembler
52 1.1 mycroft # R3V6 uses 'L%', CI5 likes '.L'
53 1.1 mycroft #
54 1.1 mycroft #SYS = R3V6
55 1.1 mycroft #PREFIX = L%%
56 1.1 mycroft #
57 1.1 mycroft #SYS = CI5
58 1.1 mycroft #PREFIX = .L
59 1.1 mycroft #
60 1.2 mycroft #SYS = GEN
61 1.2 mycroft #PREFIX = L_
62 1.2 mycroft #
63 1.2 mycroft SYS = GCC
64 1.1 mycroft PREFIX = L_
65 1.1 mycroft
66 1.2 mycroft .SUFFIXES: .o .s .sa .defs .h
67 1.1 mycroft
68 1.1 mycroft .sa.s:
69 1.2 mycroft sh ${.CURDIR}/asm2gas ${.CURDIR}/$*.sa >$*.s
70 1.2 mycroft .h.defs:
71 1.2 mycroft sh ${.CURDIR}/asm2gas ${.CURDIR}/$*.h >$*.defs
72 1.2 mycroft .s.o:
73 1.2 mycroft $(AS) -o $*.o $*.s
74 1.1 mycroft
75 1.2 mycroft H_FILES = \
76 1.2 mycroft fpsp.defs \
77 1.2 mycroft l_fpsp.defs
78 1.1 mycroft
79 1.2 mycroft O_FILES = \
80 1.2 mycroft netbsd.o \
81 1.2 mycroft bindec.o \
82 1.2 mycroft binstr.o \
83 1.2 mycroft decbin.o \
84 1.2 mycroft do_func.o \
85 1.2 mycroft gen_except.o \
86 1.2 mycroft get_op.o \
87 1.2 mycroft kernel_ex.o \
88 1.2 mycroft res_func.o \
89 1.2 mycroft round.o \
90 1.2 mycroft sacos.o \
91 1.2 mycroft sasin.o \
92 1.2 mycroft satan.o \
93 1.2 mycroft satanh.o \
94 1.2 mycroft scosh.o \
95 1.2 mycroft setox.o \
96 1.2 mycroft sgetem.o \
97 1.2 mycroft sint.o \
98 1.2 mycroft slogn.o \
99 1.2 mycroft slog2.o \
100 1.2 mycroft smovecr.o \
101 1.2 mycroft srem_mod.o \
102 1.2 mycroft scale.o \
103 1.2 mycroft ssin.o \
104 1.2 mycroft ssinh.o \
105 1.2 mycroft stan.o \
106 1.2 mycroft stanh.o \
107 1.2 mycroft sto_res.o \
108 1.2 mycroft stwotox.o \
109 1.2 mycroft tbldo.o \
110 1.2 mycroft util.o \
111 1.2 mycroft x_bsun.o \
112 1.2 mycroft x_fline.o \
113 1.2 mycroft x_operr.o \
114 1.2 mycroft x_ovfl.o \
115 1.2 mycroft x_snan.o \
116 1.2 mycroft x_store.o \
117 1.2 mycroft x_unfl.o \
118 1.2 mycroft x_unimp.o \
119 1.2 mycroft x_unsupp.o \
120 1.2 mycroft bugfix.o
121 1.2 mycroft
122 1.2 mycroft LIB_O_FILES = \
123 1.2 mycroft l_entry.o \
124 1.2 mycroft l_do_func.o \
125 1.2 mycroft l_round.o \
126 1.2 mycroft l_sacos.o \
127 1.2 mycroft l_sasin.o \
128 1.2 mycroft l_satan.o \
129 1.2 mycroft l_satanh.o \
130 1.2 mycroft l_scale.o \
131 1.2 mycroft l_scosh.o \
132 1.2 mycroft l_setox.o \
133 1.2 mycroft l_sgetem.o \
134 1.2 mycroft l_sint.o \
135 1.2 mycroft l_slog2.o \
136 1.2 mycroft l_slogn.o \
137 1.2 mycroft l_srem_mod.o \
138 1.2 mycroft l_ssin.o \
139 1.2 mycroft l_ssinh.o \
140 1.2 mycroft l_stan.o \
141 1.2 mycroft l_stanh.o \
142 1.2 mycroft l_stwotox.o \
143 1.2 mycroft l_support.o
144 1.1 mycroft
145 1.2 mycroft S_FILES = \
146 1.2 mycroft netbsd.s \
147 1.1 mycroft bindec.s \
148 1.1 mycroft binstr.s \
149 1.1 mycroft decbin.s \
150 1.1 mycroft do_func.s \
151 1.1 mycroft get_op.s \
152 1.1 mycroft gen_except.s \
153 1.1 mycroft kernel_ex.s \
154 1.1 mycroft res_func.s \
155 1.1 mycroft round.s \
156 1.1 mycroft sacos.s \
157 1.1 mycroft sasin.s \
158 1.1 mycroft satan.s \
159 1.1 mycroft satanh.s \
160 1.1 mycroft scosh.s \
161 1.1 mycroft setox.s \
162 1.1 mycroft sgetem.s \
163 1.1 mycroft sint.s \
164 1.1 mycroft slogn.s \
165 1.1 mycroft slog2.s \
166 1.1 mycroft smovecr.s \
167 1.1 mycroft srem_mod.s \
168 1.1 mycroft scale.s \
169 1.1 mycroft ssin.s \
170 1.1 mycroft ssinh.s \
171 1.1 mycroft stan.s \
172 1.1 mycroft stanh.s \
173 1.1 mycroft sto_res.s \
174 1.1 mycroft stwotox.s \
175 1.1 mycroft tbldo.s \
176 1.1 mycroft util.s \
177 1.1 mycroft x_bsun.s \
178 1.1 mycroft x_fline.s \
179 1.1 mycroft x_operr.s \
180 1.1 mycroft x_ovfl.s \
181 1.1 mycroft x_snan.s \
182 1.1 mycroft x_store.s \
183 1.1 mycroft x_unfl.s \
184 1.1 mycroft x_unimp.s \
185 1.1 mycroft x_unsupp.s \
186 1.2 mycroft bugfix.s
187 1.2 mycroft
188 1.2 mycroft LIB_S_FILES = \
189 1.2 mycroft l_entry.sa l_entry.s \
190 1.1 mycroft l_do_func.s \
191 1.1 mycroft l_round.s \
192 1.1 mycroft l_sacos.s \
193 1.1 mycroft l_sasin.s \
194 1.1 mycroft l_satan.s \
195 1.1 mycroft l_satanh.s \
196 1.1 mycroft l_scale.s \
197 1.1 mycroft l_scosh.s \
198 1.1 mycroft l_setox.s \
199 1.1 mycroft l_sgetem.s \
200 1.1 mycroft l_sint.s \
201 1.1 mycroft l_slog2.s \
202 1.1 mycroft l_slogn.s \
203 1.1 mycroft l_srem_mod.s \
204 1.1 mycroft l_ssin.s \
205 1.1 mycroft l_ssinh.s \
206 1.1 mycroft l_stan.s \
207 1.1 mycroft l_stanh.s \
208 1.1 mycroft l_stwotox.s \
209 1.2 mycroft l_support.s
210 1.1 mycroft
211 1.1 mycroft #
212 1.1 mycroft # Build the target object. The linkfile is created on the fly.
213 1.1 mycroft # Change the SEG directives to suit your system.
214 1.1 mycroft #
215 1.2 mycroft $(TARGET).o: $(O_FILES)
216 1.2 mycroft $(LD) -r -o $(TARGET).o $(O_FILES)
217 1.1 mycroft
218 1.1 mycroft #
219 1.1 mycroft # Just about every file needs fpsp.h so:
220 1.1 mycroft #
221 1.2 mycroft $(O_FILES): fpsp.defs
222 1.1 mycroft
223 1.1 mycroft #
224 1.1 mycroft #-----------------------------------------------------------------------
225 1.1 mycroft #
226 1.1 mycroft # For making a library version of the FPSP:
227 1.1 mycroft #
228 1.1 mycroft library: $(LIB_TARGET)
229 1.1 mycroft
230 1.2 mycroft $(LIB_TARGET): $(LIB_O_FILES)
231 1.1 mycroft rm -f $(LIB_TARGET)
232 1.2 mycroft $(AR) crv $(LIB_TARGET) $(LIB_O_FILES)
233 1.1 mycroft
234 1.2 mycroft $(LIB_O_FILES): l_fpsp.defs
235 1.1 mycroft
236 1.1 mycroft #
237 1.1 mycroft # The entry points to the library version are created here
238 1.1 mycroft # by using two template files an awk script and a list of
239 1.1 mycroft # the entry routines for each function.
240 1.1 mycroft #
241 1.1 mycroft l_entry.sa: L_ENTRY.AWK L_LIST MONADIC.$(SYS) DYADIC.$(SYS) l_fpsp.h
242 1.1 mycroft awk -f L_ENTRY.AWK SYS=$(SYS) PREFIX=$(PREFIX) - <L_LIST|sh>l_entry.sa
243 1.1 mycroft
244 1.1 mycroft #
245 1.1 mycroft # Do_func.sa and round.sa need special editing to remove references that
246 1.1 mycroft # aren't needed in the library version. Beware that changes in
247 1.1 mycroft # the source code may cause this editing to break....
248 1.1 mycroft #
249 1.2 mycroft l_do_func.s: do_func.s
250 1.2 mycroft $(LIB_FILTER) do_func.s >l_do_func.s
251 1.2 mycroft echo '/global.*do_func/,/^ rts/d' >.SCRIPT
252 1.1 mycroft echo 'g/smovcr/d' >>.SCRIPT
253 1.1 mycroft echo 'g/tblpre/d' >>.SCRIPT
254 1.1 mycroft echo 'w' >>.SCRIPT
255 1.1 mycroft echo 'q' >>.SCRIPT
256 1.2 mycroft ed - l_do_func.s <.SCRIPT
257 1.1 mycroft rm .SCRIPT
258 1.1 mycroft
259 1.2 mycroft l_round.s: round.s
260 1.2 mycroft $(LIB_FILTER) round.s >l_round.s
261 1.1 mycroft echo '/^not_E3:/-6,/^not_E3:/d' >.SCRIPT
262 1.1 mycroft echo 'w' >>.SCRIPT
263 1.1 mycroft echo 'q' >>.SCRIPT
264 1.2 mycroft ed - l_round.s <.SCRIPT
265 1.1 mycroft rm .SCRIPT
266 1.1 mycroft
267 1.2 mycroft l_sacos.s: sacos.s
268 1.2 mycroft $(LIB_FILTER) sacos.s >l_sacos.s
269 1.1 mycroft
270 1.2 mycroft l_sasin.s: sasin.s
271 1.2 mycroft $(LIB_FILTER) sasin.s >l_sasin.s
272 1.1 mycroft
273 1.2 mycroft l_satan.s: satan.s
274 1.2 mycroft $(LIB_FILTER) satan.s >l_satan.s
275 1.1 mycroft
276 1.2 mycroft l_satanh.s: satanh.s
277 1.2 mycroft $(LIB_FILTER) satanh.s >l_satanh.s
278 1.1 mycroft
279 1.2 mycroft l_scale.s: scale.s
280 1.2 mycroft $(LIB_FILTER) scale.s >l_scale.s
281 1.1 mycroft
282 1.2 mycroft l_scosh.s: scosh.s
283 1.2 mycroft $(LIB_FILTER) scosh.s >l_scosh.s
284 1.1 mycroft
285 1.2 mycroft l_setox.s: setox.s
286 1.2 mycroft $(LIB_FILTER) setox.s >l_setox.s
287 1.1 mycroft
288 1.2 mycroft l_sgetem.s: sgetem.s
289 1.2 mycroft $(LIB_FILTER) sgetem.s >l_sgetem.s
290 1.1 mycroft
291 1.2 mycroft l_sint.s: sint.s
292 1.2 mycroft $(LIB_FILTER) sint.s >l_sint.s
293 1.1 mycroft
294 1.2 mycroft l_slog2.s: slog2.s
295 1.2 mycroft $(LIB_FILTER) slog2.s >l_slog2.s
296 1.1 mycroft
297 1.2 mycroft l_slogn.s: slogn.s
298 1.2 mycroft $(LIB_FILTER) slogn.s >l_slogn.s
299 1.1 mycroft
300 1.2 mycroft l_srem_mod.s: srem_mod.s
301 1.2 mycroft $(LIB_FILTER) srem_mod.s >l_srem_mod.s
302 1.1 mycroft
303 1.2 mycroft l_ssin.s: ssin.s
304 1.2 mycroft $(LIB_FILTER) ssin.s >l_ssin.s
305 1.1 mycroft
306 1.2 mycroft l_ssinh.s: ssinh.s
307 1.2 mycroft $(LIB_FILTER) ssinh.s >l_ssinh.s
308 1.1 mycroft
309 1.2 mycroft l_stan.s: stan.s
310 1.2 mycroft $(LIB_FILTER) stan.s >l_stan.s
311 1.1 mycroft
312 1.2 mycroft l_stanh.s: stanh.s
313 1.2 mycroft $(LIB_FILTER) stanh.s >l_stanh.s
314 1.1 mycroft
315 1.2 mycroft l_stwotox.s: stwotox.s
316 1.2 mycroft $(LIB_FILTER) stwotox.s >l_stwotox.s
317 1.1 mycroft
318 1.1 mycroft #
319 1.1 mycroft # Extract all files from SCCS directory
320 1.1 mycroft #
321 1.1 mycroft clean:
322 1.2 mycroft rm -f $(H_FILES)
323 1.2 mycroft rm -f $(S_FILES)
324 1.2 mycroft rm -f $(O_FILES)
325 1.2 mycroft rm -f $(TARGET).o
326 1.2 mycroft rm -f $(LIB_S_FILES)
327 1.2 mycroft rm -f $(LIB_O_FILES)
328 1.2 mycroft rm -f $(LIB_TARGET)
329 1.1 mycroft
330 1.1 mycroft clobber: clean
331 1.1 mycroft
332