Makefile revision 1.1
1# MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP 2# M68000 Hi-Performance Microprocessor Division 3# M68040 Software Package 4# 5# M68040 Software Package Copyright (c) 1993, 1994 Motorola Inc. 6# All rights reserved. 7# 8# THE SOFTWARE is provided on an "AS IS" basis and without warranty. 9# To the maximum extent permitted by applicable law, 10# MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, 11# INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A 12# PARTICULAR PURPOSE and any warranty against infringement with 13# regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) 14# and any accompanying written materials. 15# 16# To the maximum extent permitted by applicable law, 17# IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER 18# (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS 19# PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR 20# OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE 21# SOFTWARE. Motorola assumes no responsibility for the maintenance 22# and support of the SOFTWARE. 23# 24# You are hereby granted a copyright license to use, modify, and 25# distribute the SOFTWARE so long as this entire notice is retained 26# without alteration in any modified and/or redistributed versions, 27# and that such modified versions are clearly identified as such. 28# No licenses are granted by implication, estoppel or otherwise 29# under any patents or trademarks of Motorola, Inc. 30 31# 32# Makefile 3.3 3/27/91 33# 34# Makefile for 68040 Floating Point Software Package 35# 36 37TARGET = FPSP 38 39ASM = ./pasm 40ASMOPTS = +p=68020/68881 +l +C +M 41PLINK = ./plink 42PLINKOPTS = dummy +q$(TARGET) +w32 +x +i +m$(TARGET).linkmap 43 44# 45# For the Library Version: 46# 47AR = ar 48LIB_FILTER = sed 's/fpsp.h/l_fpsp.h/' 49LIB_TARGET = libFPSP.a 50# 51# SYS selects the template set to use 52# templates are supplied for R3V6, CI5 and GEN(generic) 53# PREFIX is a string that begins a temporary label in the assembler 54# R3V6 uses 'L%', CI5 likes '.L' 55# 56#SYS = R3V6 57#PREFIX = L%% 58# 59#SYS = CI5 60#PREFIX = .L 61# 62SYS = GEN 63PREFIX = L_ 64 65.SUFFIXES: .s .s~ .sa .sa~ .ro .h .h~ 66 67.sa.ro: 68 $(ASM) $(ASMOPTS) $*.sa 69 70.sa~.ro: 71 sccs get SCCS/s.$*.sa 72 $(ASM) $(ASMOPTS) $*.sa 73 rm -f $*.sa 74 75.sa.s: 76 asm2as $*.sa >$*.s 77 78.sa~.sa: 79 sccs get SCCS/s.$*.sa 80 81.s~.s: 82 sccs get SCCS/s.$*.s 83 84.h~.h: 85 sccs get SCCS/s.$*.h 86 87RO_FILES = \ 88 skeleton.ro \ 89 bindec.ro \ 90 binstr.ro \ 91 decbin.ro \ 92 do_func.ro \ 93 gen_except.ro \ 94 get_op.ro \ 95 kernel_ex.ro \ 96 res_func.ro \ 97 round.ro \ 98 sacos.ro \ 99 sasin.ro \ 100 satan.ro \ 101 satanh.ro \ 102 scosh.ro \ 103 setox.ro \ 104 sgetem.ro \ 105 sint.ro \ 106 slogn.ro \ 107 slog2.ro \ 108 smovecr.ro \ 109 srem_mod.ro \ 110 scale.ro \ 111 ssin.ro \ 112 ssinh.ro \ 113 stan.ro \ 114 stanh.ro \ 115 sto_res.ro \ 116 stwotox.ro \ 117 tbldo.ro \ 118 util.ro \ 119 x_bsun.ro \ 120 x_fline.ro \ 121 x_operr.ro \ 122 x_ovfl.ro \ 123 x_snan.ro \ 124 x_store.ro \ 125 x_unfl.ro \ 126 x_unimp.ro \ 127 x_unsupp.ro \ 128 bugfix.ro \ 129 FPSP.ro 130 131LIB_RO_FILES = \ 132 l_entry.ro \ 133 l_do_func.ro \ 134 l_round.ro \ 135 l_sacos.ro \ 136 l_sasin.ro \ 137 l_satan.ro \ 138 l_satanh.ro \ 139 l_scale.ro \ 140 l_scosh.ro \ 141 l_setox.ro \ 142 l_sgetem.ro \ 143 l_sint.ro \ 144 l_slog2.ro \ 145 l_slogn.ro \ 146 l_srem_mod.ro \ 147 l_ssin.ro \ 148 l_ssinh.ro \ 149 l_stan.ro \ 150 l_stanh.ro \ 151 l_stwotox.ro \ 152 l_support.ro 153 154SA_FILES = \ 155 skeleton.sa \ 156 bindec.sa \ 157 binstr.sa \ 158 decbin.sa \ 159 do_func.sa \ 160 get_op.sa \ 161 gen_except.sa \ 162 kernel_ex.sa \ 163 res_func.sa \ 164 round.sa \ 165 sacos.sa \ 166 sasin.sa \ 167 satan.sa \ 168 satanh.sa \ 169 scosh.sa \ 170 setox.sa \ 171 sgetem.sa \ 172 sint.sa \ 173 slogn.sa \ 174 slog2.sa \ 175 smovecr.sa \ 176 srem_mod.sa \ 177 scale.sa \ 178 ssin.sa \ 179 ssinh.sa \ 180 stan.sa \ 181 stanh.sa \ 182 sto_res.sa \ 183 stwotox.sa \ 184 tbldo.sa \ 185 util.sa \ 186 x_bsun.sa \ 187 x_fline.sa \ 188 x_operr.sa \ 189 x_ovfl.sa \ 190 x_snan.sa \ 191 x_store.sa \ 192 x_unfl.sa \ 193 x_unimp.sa \ 194 x_unsupp.sa \ 195 bugfix.sa \ 196 FPSP.sa 197 198LIB_SA_FILES = \ 199 l_entry.sa \ 200 l_do_func.sa \ 201 l_round.sa \ 202 l_sacos.sa \ 203 l_sasin.sa \ 204 l_satan.sa \ 205 l_satanh.sa \ 206 l_scale.sa \ 207 l_scosh.sa \ 208 l_setox.sa \ 209 l_sgetem.sa \ 210 l_sint.sa \ 211 l_slog2.sa \ 212 l_slogn.sa \ 213 l_srem_mod.sa \ 214 l_ssin.sa \ 215 l_ssinh.sa \ 216 l_stan.sa \ 217 l_stanh.sa \ 218 l_stwotox.sa 219 220H_FILES = \ 221 fpsp.h \ 222 l_fpsp.h 223 224U_FILES = \ 225 unix.s \ 226 bindec.s \ 227 binstr.s \ 228 decbin.s \ 229 do_func.s \ 230 get_op.s \ 231 gen_except.s \ 232 kernel_ex.s \ 233 res_func.s \ 234 round.s \ 235 sacos.s \ 236 sasin.s \ 237 satan.s \ 238 satanh.s \ 239 scosh.s \ 240 setox.s \ 241 sgetem.s \ 242 sint.s \ 243 slogn.s \ 244 slog2.s \ 245 smovecr.s \ 246 srem_mod.s \ 247 scale.s \ 248 ssin.s \ 249 ssinh.s \ 250 stan.s \ 251 stanh.s \ 252 sto_res.s \ 253 stwotox.s \ 254 tbldo.s \ 255 util.s \ 256 x_bsun.s \ 257 x_fline.s \ 258 x_operr.s \ 259 x_ovfl.s \ 260 x_snan.s \ 261 x_store.s \ 262 x_unfl.s \ 263 x_unimp.s \ 264 x_unsupp.s \ 265 bugfix.s \ 266 fpsp.mk \ 267 fpsp.defs \ 268 l_entry.s \ 269 l_do_func.s \ 270 l_round.s \ 271 l_sacos.s \ 272 l_sasin.s \ 273 l_satan.s \ 274 l_satanh.s \ 275 l_scale.s \ 276 l_scosh.s \ 277 l_setox.s \ 278 l_sgetem.s \ 279 l_sint.s \ 280 l_slog2.s \ 281 l_slogn.s \ 282 l_srem_mod.s \ 283 l_ssin.s \ 284 l_ssinh.s \ 285 l_stan.s \ 286 l_stanh.s \ 287 l_stwotox.s \ 288 l_support.s \ 289 l_fpsp.defs 290 291# 292# Build the target object. The linkfile is created on the fly. 293# Change the SEG directives to suit your system. 294# 295$(TARGET).mx: $(RO_FILES) 296 rm -f linkfile 297 echo 'IDENT FPSP,2,1,68040 Floating Point Software Package'>linkfile 298 echo 'SEG SEG0(G):7 $$00004000' >>linkfile 299 echo 'SEG SEG1(G):8 $$000D0000' >>linkfile 300 echo 'SEG SEG2(G):15 $$000E0000' >>linkfile 301 echo $(RO_FILES) | tr ' ' '\012' | sed 's/^/INPUT /' >>linkfile 302 echo 'END' >>linkfile 303 $(PLINK) $(PLINKOPTS) <linkfile 304 305# 306# Just about every file needs fpsp.h so: 307# 308$(RO_FILES): fpsp.h 309 310fpsp.defs: fpsp.h 311 asm2as fpsp.h >fpsp.defs 312 313unix.s: 314 sccs get unix.s 315 316fpsp.mk: 317 sccs get fpsp.mk 318 319# 320#----------------------------------------------------------------------- 321# 322# For making a library version of the FPSP: 323# 324library: $(LIB_TARGET) 325 326$(LIB_TARGET): $(LIB_RO_FILES) 327 rm -f $(LIB_TARGET) 328 $(AR) crv $(LIB_TARGET) $(LIB_RO_FILES) 329 330$(LIB_RO_FILES): l_fpsp.h 331 332l_fpsp.defs: l_fpsp.h 333 asm2as l_fpsp.h >l_fpsp.defs 334 335# 336# The entry points to the library version are created here 337# by using two template files an awk script and a list of 338# the entry routines for each function. 339# 340l_entry.sa: L_ENTRY.AWK L_LIST MONADIC.$(SYS) DYADIC.$(SYS) l_fpsp.h 341 awk -f L_ENTRY.AWK SYS=$(SYS) PREFIX=$(PREFIX) - <L_LIST|sh>l_entry.sa 342 343# 344# Do_func.sa and round.sa need special editing to remove references that 345# aren't needed in the library version. Beware that changes in 346# the source code may cause this editing to break.... 347# 348l_do_func.sa: do_func.sa 349 $(LIB_FILTER) do_func.sa >l_do_func.sa 350 echo '/xdef.*do_func/,/^ rts/d' >.SCRIPT 351 echo 'g/smovcr/d' >>.SCRIPT 352 echo 'g/tblpre/d' >>.SCRIPT 353 echo 'w' >>.SCRIPT 354 echo 'q' >>.SCRIPT 355 ed - l_do_func.sa <.SCRIPT 356 rm .SCRIPT 357 358l_round.sa: round.sa 359 $(LIB_FILTER) round.sa >l_round.sa 360 echo '/^not_E3:/-6,/^not_E3:/d' >.SCRIPT 361 echo 'w' >>.SCRIPT 362 echo 'q' >>.SCRIPT 363 ed - l_round.sa <.SCRIPT 364 rm .SCRIPT 365 366l_sacos.sa: sacos.sa 367 $(LIB_FILTER) sacos.sa >l_sacos.sa 368 369l_sasin.sa: sasin.sa 370 $(LIB_FILTER) sasin.sa >l_sasin.sa 371 372l_satan.sa: satan.sa 373 $(LIB_FILTER) satan.sa >l_satan.sa 374 375l_satanh.sa: satanh.sa 376 $(LIB_FILTER) satanh.sa >l_satanh.sa 377 378l_scale.sa: scale.sa 379 $(LIB_FILTER) scale.sa >l_scale.sa 380 381l_scosh.sa: scosh.sa 382 $(LIB_FILTER) scosh.sa >l_scosh.sa 383 384l_setox.sa: setox.sa 385 $(LIB_FILTER) setox.sa >l_setox.sa 386 387l_sgetem.sa: sgetem.sa 388 $(LIB_FILTER) sgetem.sa >l_sgetem.sa 389 390l_sint.sa: sint.sa 391 $(LIB_FILTER) sint.sa >l_sint.sa 392 393l_slog2.sa: slog2.sa 394 $(LIB_FILTER) slog2.sa >l_slog2.sa 395 396l_slogn.sa: slogn.sa 397 $(LIB_FILTER) slogn.sa >l_slogn.sa 398 399l_srem_mod.sa: srem_mod.sa 400 $(LIB_FILTER) srem_mod.sa >l_srem_mod.sa 401 402l_ssin.sa: ssin.sa 403 $(LIB_FILTER) ssin.sa >l_ssin.sa 404 405l_ssinh.sa: ssinh.sa 406 $(LIB_FILTER) ssinh.sa >l_ssinh.sa 407 408l_stan.sa: stan.sa 409 $(LIB_FILTER) stan.sa >l_stan.sa 410 411l_stanh.sa: stanh.sa 412 $(LIB_FILTER) stanh.sa >l_stanh.sa 413 414l_stwotox.sa: stwotox.sa 415 $(LIB_FILTER) stwotox.sa >l_stwotox.sa 416 417# 418# Extract all files from SCCS directory 419# 420getall: $(SA_FILES) $(H_FILES) 421 422convert: $(U_FILES) 423 424clean: 425 rm -f $(RO_FILES) 426 rm -f $(U_FILES) 427 rm -f *.ls linkfile $(TARGET).linkmap 428 rm -f FPSP.mx 429 rm -f $(LIB_TARGET) .SCRIPT 430 rm -f $(LIB_RO_FILES) 431 rm -f $(LIB_SA_FILES) 432 433clobber: clean 434 435