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