xref: /netbsd-src/external/lgpl3/mpfr/lib/libmpfr/Makefile (revision eceb233b9bd0dfebb902ed73b531ae6964fa3f9b)
1#	$NetBSD: Makefile,v 1.20 2020/05/15 14:44:05 joerg Exp $
2
3.include <bsd.init.mk>
4
5# We don't install mpfr, just provide it for GCC.
6LIBISPRIVATE?= yes
7
8.if ${LIBISPRIVATE} != "yes"
9INCS=         mpf2mpfr.h mpfr.h
10INCSDIR=      /usr/include
11.endif
12
13# XXX get_d.c triggers lint div zero errors (which is valid?)
14MKLINT=no
15
16LIB=	mpfr
17
18LIBDPLIBS+= gmp ${.CURDIR}/../../../gmp/lib/libgmp
19
20SRCS=	\
21	abort_prec_max.c \
22	acos.c \
23	acosh.c \
24	add.c \
25	add1.c \
26	add1sp.c \
27	add_d.c \
28	add_ui.c \
29	agm.c \
30	ai.c \
31	asin.c \
32	asinh.c \
33	atan.c \
34	atan2.c \
35	atanh.c \
36	bernoulli.c \
37	beta.c \
38	buildopt.c \
39	cache.c \
40	cbrt.c \
41	check.c \
42	clear.c \
43	clears.c \
44	cmp.c \
45	cmp2.c \
46	cmp_abs.c \
47	cmp_d.c \
48	cmp_ld.c \
49	cmp_si.c \
50	cmp_ui.c \
51	comparisons.c \
52	const_catalan.c \
53	const_euler.c \
54	const_log2.c \
55	const_pi.c \
56	constant.c \
57	copysign.c \
58	cos.c \
59	cosh.c \
60	cot.c \
61	coth.c \
62	csc.c \
63	csch.c \
64	d_div.c \
65	d_sub.c \
66	digamma.c \
67	dim.c \
68	div.c \
69	div_2exp.c \
70	div_2si.c \
71	div_2ui.c \
72	div_d.c \
73	div_ui.c \
74	dump.c \
75	eint.c \
76	eq.c \
77	erf.c \
78	erfc.c \
79	exceptions.c \
80	exp.c \
81	exp10.c \
82	exp2.c \
83	exp3.c \
84	exp_2.c \
85	expm1.c \
86	extract.c \
87	factorial.c \
88	fits_intmax.c \
89	fits_sint.c \
90	fits_slong.c \
91	fits_sshort.c \
92	fits_uint.c \
93	fits_uintmax.c \
94	fits_ulong.c \
95	fits_ushort.c \
96	fma.c \
97	fmma.c \
98	fms.c \
99	fpif.c \
100	frac.c \
101	free_cache.c \
102	frexp.c \
103	gamma.c \
104	gamma_inc.c \
105	gammaonethird.c \
106	get_d.c \
107	get_d64.c \
108	get_exp.c \
109	get_f.c \
110	get_flt.c \
111	get_ld.c \
112	get_patches.c \
113	get_q.c \
114	get_si.c \
115	get_sj.c \
116	get_str.c \
117	get_ui.c \
118	get_uj.c \
119	get_z.c \
120	get_z_exp.c \
121	gmp_op.c \
122	grandom.c \
123	hypot.c \
124	init.c \
125	init2.c \
126	inits.c \
127	inits2.c \
128	inp_str.c \
129	int_ceil_log2.c \
130	isinf.c \
131	isinteger.c \
132	isnan.c \
133	isnum.c \
134	isqrt.c \
135	isregular.c \
136	iszero.c \
137	jn.c \
138	li2.c \
139	lngamma.c \
140	log.c \
141	log10.c \
142	log1p.c \
143	log2.c \
144	log_ui.c \
145	logging.c \
146	min_prec.c \
147	minmax.c \
148	modf.c \
149	mp_clz_tab.c \
150	mpfr-gmp.c \
151	mpn_exp.c \
152	mul.c \
153	mul_2exp.c \
154	mul_2si.c \
155	mul_2ui.c \
156	mul_d.c \
157	mul_ui.c \
158	mulders.c \
159	neg.c \
160	next.c \
161	nrandom.c \
162	odd_p.c \
163	out_str.c \
164	pool.c \
165	pow.c \
166	pow_si.c \
167	pow_ui.c \
168	pow_z.c \
169	powerof2.c \
170	print_raw.c \
171	print_rnd_mode.c \
172	printf.c \
173	random_deviate.c \
174	rec_sqrt.c \
175	reldiff.c \
176	rem1.c \
177	rint.c \
178	rndna.c \
179	root.c \
180	round_near_x.c \
181	round_p.c \
182	round_prec.c \
183	scale2.c \
184	sec.c \
185	sech.c \
186	set.c \
187	set_d.c \
188	set_d64.c \
189	set_dfl_prec.c \
190	set_exp.c \
191	set_f.c \
192	set_float128.c \
193	set_flt.c \
194	set_inf.c \
195	set_ld.c \
196	set_nan.c \
197	set_prc_raw.c \
198	set_prec.c \
199	set_q.c \
200	set_rnd.c \
201	set_si.c \
202	set_si_2exp.c \
203	set_sj.c \
204	set_str.c \
205	set_str_raw.c \
206	set_ui.c \
207	set_ui_2exp.c \
208	set_uj.c \
209	set_z.c \
210	set_z_exp.c \
211	set_zero.c \
212	setmax.c \
213	setmin.c \
214	setsign.c \
215	sgn.c \
216	si_op.c \
217	signbit.c \
218	sin.c \
219	sin_cos.c \
220	sinh.c \
221	sinh_cosh.c \
222	sqr.c \
223	sqrt.c \
224	sqrt_ui.c \
225	stack_interface.c \
226	strtofr.c \
227	sub.c \
228	sub1.c \
229	sub1sp.c \
230	sub_d.c \
231	sub_ui.c \
232	subnormal.c \
233	sum.c \
234	swap.c \
235	tan.c \
236	tanh.c \
237	ubf.c \
238	uceil_exp2.c \
239	uceil_log2.c \
240	ufloor_log2.c \
241	ui_div.c \
242	ui_pow.c \
243	ui_pow_ui.c \
244	ui_sub.c \
245	urandom.c \
246	urandomb.c \
247	vasprintf.c \
248	version.c \
249	volatile.c \
250	yn.c \
251	zeta.c \
252	zeta_ui.c
253
254# not yet
255# float128.c
256
257CPPFLAGS+=	-I. \
258		-DHAVE_INTTYPES_H=1 \
259		-DHAVE_STDINT_H=1 \
260		-DTIME_WITH_SYS_TIME=1 \
261		-DHAVE_LOCALE_H=1 \
262		-DHAVE_WCHAR_H=1 \
263		-DHAVE_STDARG=1 \
264		-DHAVE_SYS_TIME_H=1 \
265		-DHAVE_STDINT_H=1 \
266		-DHAVE_VA_COPY=1 \
267		-DHAVE_SETLOCALE=1 \
268		-DHAVE_GETTIMEOFDAY=1 \
269		-DHAVE_LONG_LONG=1 \
270		-DHAVE_INTMAX_T=1 \
271		-DMPFR_HAVE_INTMAX_MAX=1 \
272		-DMPFR_HAVE_FESETROUND=1 \
273		-DHAVE_DENORMS=1 \
274		-DHAVE_ROUND=1 \
275		-DHAVE_TRUNC=1 \
276		-DHAVE_FLOOR=1 \
277		-DHAVE_CEIL=1 \
278		-DHAVE_ATTRIBUTE_MODE=1
279
280# Find <gmp.h>
281.include "../../../gmp/Makefile.arch"
282CPPFLAGS+=	-I${NETBSDSRCDIR}/external/lgpl3/gmp/lib/libgmp/arch/${GMP_MACHINE_ARCH}
283CPPFLAGS+=	-I${.CURDIR}/../../dist/src
284
285# IEEE FP support.  No VAX here.
286.if ${MACHINE_ARCH} == "x86_64" || \
287    ${MACHINE_ARCH} == "i386"
288    ${MACHINE_ARCH} == "mipsel"
289CPPFLAGS+=	-DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1
290.endif
291
292.if ${MACHINE_ARCH} == "mips64el"
293CPPFLAGS+=	-DHAVE_LDOUBLE_IEEE_QUAD_LITTLE=1
294.endif
295
296.if ${MACHINE_ARCH} == "sparc64" || \
297    ${MACHINE_ARCH} == "powerpc" || \
298    ${MACHINE_ARCH} == "powerpc64" || \
299    ${MACHINE_ARCH} == "mips64eb"
300CPPFLAGS+=	-DHAVE_LDOUBLE_IEEE_QUAD_BIG=1
301.endif
302
303.include <bsd.endian.mk>
304
305.if ${TARGET_ENDIANNESS} == "1234"
306CPPFLAGS+=	-DHAVE_DOUBLE_IEEE_LITTLE_ENDIAN=1
307CPPFLAGS+=	-DHAVE_BIG_ENDIAN=1
308.elif ${TARGET_ENDIANNESS} == "4321"
309CPPFLAGS+=	-DHAVE_DOUBLE_IEEE_BIG_ENDIAN=1
310CPPFLAGS+=	-DHAVE_LITTLE_ENDIAN=1
311.endif
312
313CWARNFLAGS.clang+=	-Wno-error=tautological-constant-out-of-range-compare
314
315WITHOUT_MAN=	yes
316
317.include <bsd.lib.mk>
318
319mparam.h: mparam_h.in
320	rm -f ${.TARGET} && cp ${.ALLSRC} ${.TARGET}
321
322${SRCS}: mparam.h
323CLEANFILES+= mparam.h
324
325.PATH: ${.CURDIR}/../../dist/src
326
327.if !empty(MACHINE_ARCH:M*arm*)
328COPTS += -marm
329.endif
330.if ${MACHINE_ARCH} == "vax"
331COPTS.set_ld.c+=	-Wno-error
332.endif
333
334# Don't warn about functions which cannot be stack smash protected as
335# there are a lot of them.
336COPTS += -Wno-stack-protector
337