xref: /original-bsd/usr.bin/f77/libF77/Makefile (revision 29f0621e)
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