1# 2# Copyright (c) 1980 Regents of the University of California. 3# All rights reserved. The Berkeley software License Agreement 4# specifies the terms and conditions for redistribution. 5# 6# @(#)Makefile 5.7 (Berkeley) 09/14/87 7# 8# Makefile for f77 math & startup lib, libF77.a 9 10CFLAGS = -O 11 12DEST = $(DESTDIR)/usr/lib 13 14DESTDIR = 15 16EXTHDRS = 17 18FFLAGS = -O 19 20HDRS = opcodes.h 21 22LIBRARY = libF77.a 23 24LIBRARY_P = libF77_p.a 25 26MAKEFILE = Makefile 27 28OBJS = abort_.o \ 29 besj0_.o \ 30 besj1_.o \ 31 besjn_.o \ 32 besy0_.o \ 33 besy1_.o \ 34 besyn_.o \ 35 c_abs.o \ 36 c_cos.o \ 37 c_div.o \ 38 c_exp.o \ 39 c_log.o \ 40 c_sin.o \ 41 c_sqrt.o \ 42 d_abs.o \ 43 d_acos.o \ 44 d_asin.o \ 45 d_atan.o \ 46 d_atn2.o \ 47 d_cnjg.o \ 48 d_cos.o \ 49 d_cosh.o \ 50 d_dim.o \ 51 d_dprod.o \ 52 d_exp.o \ 53 d_imag.o \ 54 d_int.o \ 55 d_lg10.o \ 56 d_log.o \ 57 d_mod.o \ 58 d_nint.o \ 59 d_prod.o \ 60 d_sign.o \ 61 d_sin.o \ 62 d_sinh.o \ 63 d_tan.o \ 64 d_tanh.o \ 65 dbesj0_.o \ 66 dbesj1_.o \ 67 dbesjn_.o \ 68 dbesy0_.o \ 69 dbesy1_.o \ 70 dbesyn_.o \ 71 derf_.o \ 72 derfc_.o \ 73 ef1asc_.o \ 74 ef1cmc_.o \ 75 erf_.o \ 76 erfc_.o \ 77 exit_.o \ 78 h_abs.o \ 79 h_dim.o \ 80 h_dnnt.o \ 81 h_indx.o \ 82 h_len.o \ 83 h_mod.o \ 84 h_nint.o \ 85 h_sign.o \ 86 hl_ge.o \ 87 hl_gt.o \ 88 hl_le.o \ 89 hl_lt.o \ 90 i_abs.o \ 91 i_dim.o \ 92 i_dnnt.o \ 93 i_indx.o \ 94 i_len.o \ 95 i_mod.o \ 96 i_nint.o \ 97 i_sign.o \ 98 l_ge.o \ 99 l_gt.o \ 100 l_le.o \ 101 l_lt.o \ 102 lnblnk_.o \ 103 long_.o \ 104 main.o \ 105 pow_ci.o \ 106 pow_dd.o \ 107 pow_di.o \ 108 pow_hh.o \ 109 pow_ii.o \ 110 pow_ri.o \ 111 pow_zi.o \ 112 pow_zz.o \ 113 r_abs.o \ 114 r_acos.o \ 115 r_asin.o \ 116 r_atan.o \ 117 r_atn2.o \ 118 r_cnjg.o \ 119 r_cos.o \ 120 r_cosh.o \ 121 r_dim.o \ 122 r_exp.o \ 123 r_imag.o \ 124 r_int.o \ 125 r_lg10.o \ 126 r_log.o \ 127 r_mod.o \ 128 r_nint.o \ 129 r_sign.o \ 130 r_sin.o \ 131 r_sinh.o \ 132 r_sqrt.o \ 133 r_tan.o \ 134 r_tanh.o \ 135 rand_.o \ 136 random_.o \ 137 range.o \ 138 rindex_.o \ 139 s_cat.o \ 140 s_cmp.o \ 141 s_copy.o \ 142 s_paus.o \ 143 s_rnge.o \ 144 s_stop.o \ 145 short_.o \ 146 signal_.o \ 147 subout.o \ 148 traper_.o \ 149 trapov_.o \ 150 trpfpe_.o \ 151 z_cos.o \ 152 z_div.o \ 153 z_exp.o \ 154 z_log.o \ 155 z_sin.o \ 156 z_sqrt.o 157 158OLDDIR = $(DESTDIR)/usr/old/lib 159 160OPTIONS = -DUCBVAX 161 162PRINT = pr 163 164SRCS = abort_.c \ 165 besj0_.c \ 166 besj1_.c \ 167 besjn_.c \ 168 besy0_.c \ 169 besy1_.c \ 170 besyn_.c \ 171 c_abs.c \ 172 c_cos.c \ 173 c_div.c \ 174 c_exp.c \ 175 c_log.c \ 176 c_sin.c \ 177 c_sqrt.c \ 178 d_abs.c \ 179 d_acos.c \ 180 d_asin.c \ 181 d_atan.c \ 182 d_atn2.c \ 183 d_cnjg.c \ 184 d_cos.c \ 185 d_cosh.c \ 186 d_dim.c \ 187 d_dprod.c \ 188 d_exp.c \ 189 d_imag.c \ 190 d_int.c \ 191 d_lg10.c \ 192 d_log.c \ 193 d_mod.c \ 194 d_nint.c \ 195 d_prod.c \ 196 d_sign.c \ 197 d_sin.c \ 198 d_sinh.c \ 199 d_tan.c \ 200 d_tanh.c \ 201 dbesj0_.c \ 202 dbesj1_.c \ 203 dbesjn_.c \ 204 dbesy0_.c \ 205 dbesy1_.c \ 206 dbesyn_.c \ 207 derf_.c \ 208 derfc_.c \ 209 ef1asc_.c \ 210 ef1cmc_.c \ 211 erf_.c \ 212 erfc_.c \ 213 exit_.c \ 214 h_abs.c \ 215 h_dim.c \ 216 h_dnnt.c \ 217 h_indx.c \ 218 h_len.c \ 219 h_mod.c \ 220 h_nint.c \ 221 h_sign.c \ 222 hl_ge.c \ 223 hl_gt.c \ 224 hl_le.c \ 225 hl_lt.c \ 226 i_abs.c \ 227 i_dim.c \ 228 i_dnnt.c \ 229 i_indx.c \ 230 i_len.c \ 231 i_mod.c \ 232 i_nint.c \ 233 i_sign.c \ 234 l_ge.c \ 235 l_gt.c \ 236 l_le.c \ 237 l_lt.c \ 238 lnblnk_.c \ 239 long_.c \ 240 main.c \ 241 pow_ci.c \ 242 pow_dd.c \ 243 pow_di.c \ 244 pow_hh.c \ 245 pow_ii.c \ 246 pow_ri.c \ 247 pow_zi.c \ 248 pow_zz.c \ 249 r_abs.c \ 250 r_acos.c \ 251 r_asin.c \ 252 r_atan.c \ 253 r_atn2.c \ 254 r_cnjg.c \ 255 r_cos.c \ 256 r_cosh.c \ 257 r_dim.c \ 258 r_exp.c \ 259 r_imag.c \ 260 r_int.c \ 261 r_lg10.c \ 262 r_log.c \ 263 r_mod.c \ 264 r_nint.c \ 265 r_sign.c \ 266 r_sin.c \ 267 r_sinh.c \ 268 r_sqrt.c \ 269 r_tan.c \ 270 r_tanh.c \ 271 rand_.c \ 272 random_.c \ 273 range.c \ 274 rindex_.c \ 275 s_cat.c \ 276 s_cmp.c \ 277 s_copy.c \ 278 s_paus.c \ 279 s_rnge.c \ 280 s_stop.c \ 281 short_.c \ 282 signal_.c \ 283 subout.c \ 284 traper_.c \ 285 trapov_.c \ 286 trpfpe_.c \ 287 z_cos.c \ 288 z_div.c \ 289 z_exp.c \ 290 z_log.c \ 291 z_sin.c \ 292 z_sqrt.c 293 294all: $(LIBRARY) $(LIBRARY_P) 295 296$(LIBRARY): $(OBJS) Version 297 @echo -n "Loading $(LIBRARY) ... " 298 @ar cru $(LIBRARY) $(OBJS) Version 299 @ranlib $(LIBRARY) 300 @echo "done" 301 302$(LIBRARY_P): $(OBJS) Version 303 @echo -n "Loading $(LIBRARY_P) ... " 304 @cd profiled; ar cru ../$(LIBRARY_P) $(OBJS) Version 305 @ranlib $(LIBRARY_P) 306 @echo "done" 307 308Version: $(SRCS) mkvers 309 @rm -f Version.c 310 ./mkvers $(LIBRARY) $(SRCS) > Version.c 311 $(CC) -c Version.c 312 mv -f Version.o Version 313 @rm -f profiled/Version 314 ln Version profiled/Version 315 316mkvers: mkvers.c 317 @$(CC) mkvers.c -o mkvers 318 319clean:; @rm -f $(OBJS) Usef profiled/*.o $(LIBRARY) $(LIBRARY_P) Usef mkvers 320 321depend:; @echo Construct dependencies manually 322 323extract:; @ar xo $(DEST)/$(LIBRARY); rm -f __.SYMDEF 324 @cd profiled; -ar xo $(DEST)/$(LIBRARY_P); rm -f __.SYMDEF 325 326index:; @ctags -wx $(HDRS) $(SRCS) 327 328install: $(LIBRARY) $(LIBRARY_P) 329 @-mv $(DEST)/$(LIBRARY) $(OLDDIR)/$(LIBRARY) 330 install -m 644 $(LIBRARY) $(DEST)/$(LIBRARY) 331 ranlib $(DEST)/$(LIBRARY) 332 @-mv $(DEST)/$(LIBRARY_P) $(OLDDIR)/$(LIBRARY_P) 333 install -m 644 $(LIBRARY_P) $(DEST)/$(LIBRARY_P) 334 ranlib $(DEST)/$(LIBRARY_P) 335 336library: $(LIBRARY) $(LIBRARY_P) 337 338print:; @$(PRINT) $(HDRS) $(SRCS) 339 340tags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS) 341 342update: $(DEST)/$(LIBRARY) 343 344$(DEST)/$(LIBRARY): $(SRCS) $(HDRS) $(EXTHDRS) 345 @-ar xo $(DEST)/$(LIBRARY) 346 @cd profiled; -ar xo $(DEST)/$(LIBRARY_P) 347 @make -f $(MAKEFILE) DEST=$(DEST) install clean 348 349trapov_.o: trapov_.c 350 cc -S $(OPTIONS) trapov_.c; 351 (echo "g/.set L[0-9][0-9]*,0x0$$/s/0x0/0xf10/"; echo "x") \ 352 | ex - trapov_.s; 353 as trapov_.s -o trapov_.o; 354 mv trapov_.o profiled/trapov_.o 355 rm trapov_.s 356 cc -S $(OPTIONS) trapov_.c 357 (echo "g/.set L[0-9][0-9]*,0x0$$/s/0x0/0xf10/"; echo "x") \ 358 | ex - trapov_.s 359 as trapov_.s -o trapov_.o 360 rm trapov_.s 361 362# 'Usef' is part of a kuldge to get around a bug in the C compiler. 363# C (sec. 9.10 of C ref manual) should round the return value of 364# functions of type float from double to float. It doesn't, so f77 365# truncates it losing a half bit of accuracy. See file Test_float 366# for a test. When it is fixed, get rid of Usef & the extraneous stores 367# in pow_ri, r_dim, r_mod, r_nint . 368 369$(OBJS): Usef 370 371Usef: Usef.c 372 cc -O Usef.c -o Usef 373 374.c.o: 375 $(CC) -p `Usef $*` $(CFLAGS) -c $*.c 376 -ld -x -r $*.o 377 mv a.out profiled/$*.o 378 $(CC) `Usef $*` $(CFLAGS) -c $*.c 379 -ld -x -r $*.o 380 mv a.out $*.o 381