1### ==================================================================== 2 3AR = ar 4 5CFLAGS = -g 6 7LIBS = -lm 8 9LST = lst 10 11MYEXPM1SUFFIXES = 5i 5i2 mm n pade pade2 r rt rtx t 12 13MYLOG1PSUFFIXES = 8i 8i2 8i3 at d dd ddd hp mm n t 14 15MYDEXPM1SUFFIXES = 5i 5i2 mm n pade pade2 r rt rtx t 16 17MYDLOG1PSUFFIXES = 8i 8i2 8i3 at hp mm n t 18 19MYQEXPM1SUFFIXES = 5i n pade pade2 r rt rtx t 20 21MYQLOG1PSUFFIXES = at hp n t 22 23NAME = xxx 24 25OUT = $(LST)-$(NAME) 26 27P = my 28P = 29 30RANLIB = ranlib 31 32RM = /bin/rm -f 33 34S = r 35S = 36 37SHELL = /bin/sh 38 39TIME = 40TIME = time 41 42TLOGLIB = libtlog.a 43 44TMP = 45 46TRUE = true 47 48### ==================================================================== 49 50TEXPM1OBJS = mexpm1.o texpm1.o ${P}expm1${S}.o sran.o srandl.o macharf.o storef.o initseed.o maxtest.o 51TDEXPM1OBJS = mdexpm1.o tdexpm1.o ${P}dexpm1${S}.o ran.o randl.o machar.o store.o initseed.o maxtest.o 52TQEXPM1OBJS = mqexpm1.o tqexpm1.o ${P}qexpm1${S}.o qran.o qrandl.o macharl.o storel.o initseed.o maxtest.o 53 54TALOG1POBJS = malog1p.o talog1p.o ${P}alog1p${S}.o sran.o srandl.o macharf.o storef.o initseed.o maxtest.o 55TDLOG1POBJS = mdlog1p.o tdlog1p.o ${P}dlog1p${S}.o ran.o randl.o machar.o store.o initseed.o maxtest.o 56TQLOG1POBJS = mqlog1p.o tqlog1p.o ${P}qlog1p${S}.o qran.o qrandl.o macharl.o storel.o initseed.o maxtest.o 57 58TIMOPSOBJS = ${TMP}timops.o nanos.o nanosc.o ${P}expm1${S}.o expm1c.o sran.o initseed.o 59DTIMOPSOBJS = ${TMP}dtimops.o nanos.o nanosc.o ${P}dexpm1${S}.o dexpm1c.o ran.o initseed.o 60QTIMOPSOBJS = ${TMP}qtimops.o nanos.o nanosc.o ${P}qexpm1${S}.o qexpm1c.o qran.o initseed.o 61 62### ==================================================================== 63 64.SUFFIXES: .i .lst .s 65 66.c.i: 67 $(CC) $(CFLAGS) -E $< > $@ 68 69.c.s: 70 $(CC) $(CFLAGS) -S $< > $@ 71 72### ==================================================================== 73 74all: all-dp 75 76all2: all-sp all-dp 77 78all3: all2 all-qp 79 80all-sp: texpm1.lst talog1p.lst all-myalog1p all-myexpm1 81 82all-dp: tdexpm1.lst tdlog1p.lst all-mydalog1p all-mydexpm1 83 84all-qp: tqexpm1.lst tqlog1p.lst all-myqalog1p all-myqexpm1 85 86all-myalog1p: 87 for s in $(MYLOG1PSUFFIXES) ; \ 88 do \ 89 $(RM) talog1p ; \ 90 $(MAKE) NAME=$$s P=my S=$$s talog1p.lst-$$s ; \ 91 done 92 93all-myexpm1: 94 for s in $(MYEXPM1SUFFIXES) ; \ 95 do \ 96 $(RM) texpm1 ; \ 97 $(MAKE) NAME=$$s P=my S=$$s texpm1.lst-$$s ; \ 98 done 99 100all-mydalog1p: 101 for s in $(MYDLOG1PSUFFIXES) ; \ 102 do \ 103 $(RM) tdlog1p ; \ 104 $(MAKE) NAME=$$s P=my S=$$s tdlog1p.lst-$$s ; \ 105 done 106 107all-mydexpm1: 108 for s in $(MYDEXPM1SUFFIXES) ; \ 109 do \ 110 $(RM) tdexpm1 ; \ 111 $(MAKE) NAME=$$s P=my S=$$s tdexpm1.lst-$$s ; \ 112 done 113 114all-myqalog1p: 115 for s in $(MYQLOG1PSUFFIXES) ; \ 116 do \ 117 $(RM) tqlog1p ; \ 118 $(MAKE) NAME=$$s P=my S=$$s tqlog1p.lst-$$s ; \ 119 done 120 121all-myqexpm1: 122 for s in $(MYQEXPM1SUFFIXES) ; \ 123 do \ 124 $(RM) tqexpm1 ; \ 125 $(MAKE) NAME=$$s P=my S=$$s tqexpm1.lst-$$s ; \ 126 done 127 128clean: 129 -$(RM) $(TLOGLIB) 130 -$(RM) *.i 131 -$(RM) *.log 132 -$(RM) *.o 133 -$(RM) *.s 134 -$(RM) *~ 135 -$(RM) \#* 136 -$(RM) a.out 137 -$(RM) core 138 139clobber: distclean 140 141distclean: mostlyclean 142 -$(RM) talog1p tdlog1p tqlog1p 143 -$(RM) texpm1 tdexpm1 tqexpm1 144 -$(RM) dtimops qtimops timops 145 146dtimops: $(DTIMOPSOBJS) 147 $(CC) $(CFLAGS) -o $@ $(DTIMOPSOBJS) $(LIBS) 148 149dtimops.lst: dtimops 150 $(TIME) ./$? > $@ 151 152maintainer-clean: distclean 153 @echo "This command is intended for maintainers to use;" 154 @echo "it deletes files that may require special tools to rebuild." 155 156mostlyclean: clean 157 -$(RM) *.$(LST) *.$(LST)-* *.$(OUT) 158 159qtimops: $(QTIMOPSOBJS) 160 $(CC) $(CFLAGS) -o $@ $(QTIMOPSOBJS) $(LIBS) 161 162qtimops.lst: qtimops 163 $(TIME) ./$? > $@ 164 165talog1p: $(TALOG1POBJS) 166 $(CC) $(CFLAGS) -o $@ $(TALOG1POBJS) $(LIBS) 167 168talog1p.lst talog1p.$(OUT): talog1p 169 $(TIME) ./$? > $@ 170 171texpm1: $(TEXPM1OBJS) 172 $(CC) $(CFLAGS) -o $@ $(TEXPM1OBJS) $(LIBS) 173 174texpm1.lst texpm1.$(OUT): texpm1 175 $(TIME) ./$? > $@ 176 177tdexpm1: $(TDEXPM1OBJS) 178 $(CC) $(CFLAGS) -o $@ $(TDEXPM1OBJS) $(LIBS) 179 180tdexpm1.lst tdexpm1.$(OUT): tdexpm1 181 $(TIME) ./$? > $@ 182 183tdlog1p: $(TDLOG1POBJS) 184 $(CC) $(CFLAGS) -o $@ $(TDLOG1POBJS) $(LIBS) 185 186tdlog1p.lst tdlog1p.$(OUT): tdlog1p 187 $(TIME) ./$? > $@ 188 189timops: $(TIMOPSOBJS) 190 $(CC) $(CFLAGS) -o $@ $(TIMOPSOBJS) $(LIBS) 191 192timops.lst: timops 193 $(TIME) ./$? > $@ 194 195### We need the C interface for the log1p() family in a load library 196### to avoid link-time duplicate symbol failures for loading the .o 197### files directly, sigh... 198 199$(TLOGLIB): alog1pc.o dlog1pc.o 200 $(AR) r $@ alog1pc.o dlog1pc.o 201 $(MAKE) qlog1pc.o && $(AR) r $@ qlog1pc.o 202 $(RANLIB) $@ || $(TRUE) 203 204tqexpm1: $(TQEXPM1OBJS) 205 $(CC) $(CFLAGS) -o $@ $(TQEXPM1OBJS) $(LIBS) 206 207tqexpm1.lst tqexpm1.$(OUT): tqexpm1 208 $(TIME) ./$? > $@ 209 210tqlog1p: $(TQLOG1POBJS) 211 $(CC) $(CFLAGS) -o $@ $(TQLOG1POBJS) $(LIBS) 212 213tqlog1p.lst tqlog1p.$(OUT): tqlog1p 214 $(TIME) ./$? > $@ 215