xref: /netbsd-src/external/lgpl3/mpfr/lib/libmpfr/Makefile (revision 9ac63422b666fbe53a067de74d8af2aa4e45a08b)
1#	$NetBSD: Makefile,v 1.9 2011/09/21 02:06:42 mrg 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	buildopt.c \
38	cache.c \
39	cbrt.c \
40	check.c \
41	clear.c \
42	clears.c \
43	cmp.c \
44	cmp2.c \
45	cmp_abs.c \
46	cmp_d.c \
47	cmp_ld.c \
48	cmp_si.c \
49	cmp_ui.c \
50	comparisons.c \
51	const_catalan.c \
52	const_euler.c \
53	const_log2.c \
54	const_pi.c \
55	constant.c \
56	copysign.c \
57	cos.c \
58	cosh.c \
59	cot.c \
60	coth.c \
61	csc.c \
62	csch.c \
63	d_div.c \
64	d_sub.c \
65	digamma.c \
66	dim.c \
67	div.c \
68	div_2exp.c \
69	div_2si.c \
70	div_2ui.c \
71	div_d.c \
72	div_ui.c \
73	dump.c \
74	eint.c \
75	eq.c \
76	erf.c \
77	erfc.c \
78	exp.c \
79	exp10.c \
80	exp2.c \
81	exp3.c \
82	exp_2.c \
83	expm1.c \
84	factorial.c \
85	fits_intmax.c \
86	fits_sint.c \
87	fits_slong.c \
88	fits_sshort.c \
89	fits_uint.c \
90	fits_uintmax.c \
91	fits_ulong.c \
92	fits_ushort.c \
93	fma.c \
94	fms.c \
95	frac.c \
96	free_cache.c \
97	gamma.c \
98	gammaonethird.c \
99	get_d.c \
100	get_d64.c \
101	get_exp.c \
102	get_f.c \
103	get_flt.c \
104	get_ld.c \
105	get_patches.c \
106	get_si.c \
107	get_sj.c \
108	get_str.c \
109	get_ui.c \
110	get_uj.c \
111	get_z.c \
112	get_z_exp.c \
113	gmp_op.c \
114	hypot.c \
115	init.c \
116	init2.c \
117	inits.c \
118	inits2.c \
119	inp_str.c \
120	int_ceil_log2.c \
121	isinf.c \
122	isinteger.c \
123	isnan.c \
124	isnum.c \
125	isqrt.c \
126	isregular.c \
127	iszero.c \
128	jn.c \
129	li2.c \
130	lngamma.c \
131	log.c \
132	log10.c \
133	log1p.c \
134	log2.c \
135	logging.c \
136	min_prec.c \
137	minmax.c \
138	modf.c \
139	mp_clz_tab.c \
140	mpfr-gmp.c \
141	mpn_exp.c \
142	mul.c \
143	mul_2exp.c \
144	mul_2si.c \
145	mul_2ui.c \
146	mul_d.c \
147	mul_ui.c \
148	mulders.c \
149	neg.c \
150	next.c \
151	out_str.c \
152	pow.c \
153	pow_si.c \
154	pow_ui.c \
155	pow_z.c \
156	powerof2.c \
157	print_raw.c \
158	print_rnd_mode.c \
159	printf.c \
160	rec_sqrt.c \
161	reldiff.c \
162	rem1.c \
163	rint.c \
164	root.c \
165	round_near_x.c \
166	round_p.c \
167	round_prec.c \
168	scale2.c \
169	sec.c \
170	sech.c \
171	set.c \
172	set_d.c \
173	set_d64.c \
174	set_dfl_prec.c \
175	set_exp.c \
176	set_f.c \
177	set_flt.c \
178	set_inf.c \
179	set_ld.c \
180	set_nan.c \
181	set_prc_raw.c \
182	set_prec.c \
183	set_q.c \
184	set_rnd.c \
185	set_si.c \
186	set_si_2exp.c \
187	set_sj.c \
188	set_str.c \
189	set_str_raw.c \
190	set_ui.c \
191	set_ui_2exp.c \
192	set_uj.c \
193	set_z.c \
194	set_z_exp.c \
195	set_zero.c \
196	setmax.c \
197	setmin.c \
198	setsign.c \
199	sgn.c \
200	si_op.c \
201	signbit.c \
202	sin.c \
203	sin_cos.c \
204	sinh.c \
205	sinh_cosh.c \
206	sqr.c \
207	sqrt.c \
208	sqrt_ui.c \
209	stack_interface.c \
210	strtofr.c \
211	sub.c \
212	sub1.c \
213	sub1sp.c \
214	sub_d.c \
215	sub_ui.c \
216	subnormal.c \
217	sum.c \
218	swap.c \
219	tan.c \
220	tanh.c \
221	uceil_log2.c \
222	ufloor_log2.c \
223	ui_div.c \
224	ui_pow.c \
225	ui_pow_ui.c \
226	ui_sub.c \
227	urandom.c \
228	urandomb.c \
229	vasprintf.c \
230	version.c \
231	volatile.c \
232	yn.c \
233	zeta.c \
234	zeta_ui.c
235
236SRCS+=	\
237	exceptions.c \
238	extract.c \
239	uceil_exp2.c \
240	uceil_log2.c \
241	ufloor_log2.c \
242	add.c \
243	add1.c \
244	add_ui.c \
245	agm.c \
246	clear.c \
247	cmp.c \
248	cmp_abs.c \
249	cmp_si.c \
250	cmp_ui.c \
251	comparisons.c \
252	div_2exp.c \
253	div_2si.c \
254	div_2ui.c \
255	div.c \
256	div_ui.c \
257	dump.c \
258	eq.c \
259	exp10.c \
260	exp2.c \
261	exp3.c \
262	exp.c \
263	frac.c \
264	get_d.c \
265	get_exp.c \
266	get_str.c \
267	init.c \
268	inp_str.c \
269	isinteger.c \
270	isinf.c \
271	isnan.c \
272	isnum.c \
273	const_log2.c \
274	log.c \
275	modf.c \
276	mul_2exp.c \
277	mul_2si.c \
278	mul_2ui.c \
279	mul.c \
280	mul_ui.c \
281	neg.c \
282	next.c \
283	out_str.c \
284	printf.c \
285	vasprintf.c \
286	const_pi.c \
287	pow.c \
288	pow_si.c \
289	pow_ui.c \
290	print_raw.c \
291	print_rnd_mode.c \
292	reldiff.c \
293	round_prec.c \
294	set.c \
295	setmax.c \
296	setmin.c \
297	set_d.c \
298	set_dfl_prec.c \
299	set_exp.c \
300	set_rnd.c \
301	set_f.c \
302	set_prc_raw.c \
303	set_prec.c \
304	set_q.c \
305	set_si.c \
306	set_str.c \
307	set_str_raw.c \
308	set_ui.c \
309	set_z.c \
310	sqrt.c \
311	sqrt_ui.c \
312	sub.c \
313	sub1.c \
314	sub_ui.c \
315	rint.c \
316	ui_div.c \
317	ui_sub.c \
318	urandom.c \
319	urandomb.c \
320	get_z_exp.c \
321	swap.c \
322	factorial.c \
323	cosh.c \
324	sinh.c \
325	tanh.c \
326	sinh_cosh.c \
327	acosh.c \
328	asinh.c \
329	atanh.c \
330	atan.c \
331	cmp2.c \
332	exp_2.c \
333	asin.c \
334	const_euler.c \
335	cos.c \
336	sin.c \
337	tan.c \
338	fma.c \
339	fms.c \
340	hypot.c \
341	log1p.c \
342	expm1.c \
343	log2.c \
344	log10.c \
345	ui_pow.c \
346	ui_pow_ui.c \
347	minmax.c \
348	dim.c \
349	signbit.c \
350	copysign.c \
351	setsign.c \
352	gmp_op.c \
353	init2.c \
354	acos.c \
355	sin_cos.c \
356	set_nan.c \
357	set_inf.c \
358	set_zero.c \
359	powerof2.c \
360	gamma.c \
361	set_ld.c \
362	get_ld.c \
363	cbrt.c \
364	volatile.c \
365	fits_sshort.c \
366	fits_sint.c \
367	fits_slong.c \
368	fits_ushort.c \
369	fits_uint.c \
370	fits_ulong.c \
371	fits_uintmax.c \
372	fits_intmax.c \
373	get_si.c \
374	get_ui.c \
375	zeta.c \
376	cmp_d.c \
377	erf.c \
378	inits.c \
379	inits2.c \
380	clears.c \
381	sgn.c \
382	check.c \
383	sub1sp.c \
384	version.c \
385	mpn_exp.c \
386	mpfr-gmp.c \
387	mp_clz_tab.c \
388	sum.c \
389	add1sp.c \
390	free_cache.c \
391	si_op.c \
392	cmp_ld.c \
393	set_ui_2exp.c \
394	set_si_2exp.c \
395	set_uj.c \
396	set_sj.c \
397	get_sj.c \
398	get_uj.c \
399	get_z.c \
400	iszero.c \
401	cache.c \
402	sqr.c \
403	int_ceil_log2.c \
404	isqrt.c \
405	strtofr.c \
406	pow_z.c \
407	logging.c \
408	mulders.c \
409	get_f.c \
410	round_p.c \
411	erfc.c \
412	atan2.c \
413	subnormal.c \
414	const_catalan.c \
415	root.c \
416	sec.c \
417	csc.c \
418	cot.c \
419	eint.c \
420	sech.c \
421	csch.c \
422	coth.c \
423	round_near_x.c \
424	constant.c \
425	abort_prec_max.c \
426	stack_interface.c \
427	lngamma.c \
428	zeta_ui.c \
429	set_d64.c \
430	get_d64.c \
431	jn.c \
432	yn.c \
433	rem1.c \
434	get_patches.c \
435	add_d.c \
436	sub_d.c \
437	d_sub.c \
438	mul_d.c \
439	div_d.c \
440	d_div.c \
441	li2.c \
442	rec_sqrt.c \
443	min_prec.c \
444	buildopt.c \
445	digamma.c \
446	bernoulli.c \
447	isregular.c \
448	set_flt.c \
449	get_flt.c \
450	scale2.c \
451	set_z_exp.c \
452	ai.c \
453	gammaonethird.c
454
455CPPFLAGS+=	-I. \
456		-DHAVE_INTTYPES_H=1 \
457		-DHAVE_STDINT_H=1 \
458		-DTIME_WITH_SYS_TIME=1 \
459		-DHAVE_LOCALE_H=1 \
460		-DHAVE_WCHAR_H=1 \
461		-DHAVE_STDARG=1 \
462		-DHAVE_SYS_TIME_H=1 \
463		-DHAVE_STDINT_H=1 \
464		-DHAVE_VA_COPY=1 \
465		-DHAVE_SETLOCALE=1 \
466		-DHAVE_GETTIMEOFDAY=1 \
467		-DHAVE_LONG_LONG=1 \
468		-DHAVE_INTMAX_T=1 \
469		-DMPFR_HAVE_INTMAX_MAX=1 \
470		-DMPFR_HAVE_FESETROUND=1 \
471		-DHAVE_DENORMS=1 \
472		-DHAVE_ROUND=1 \
473		-DHAVE_TRUNC=1 \
474		-DHAVE_FLOOR=1 \
475		-DHAVE_CEIL=1 \
476		-DHAVE_ATTRIBUTE_MODE=1
477
478# Find <gmp.h>
479CPPFLAGS+=	-I${NETBSDSRCDIR}/external/lgpl3/gmp/lib/libgmp/arch/${MACHINE_ARCH}
480
481# XXX
482# XXX XXX check mips*
483# XXX XXX do something more, more ports!!
484# XXX
485# XXX missing: arm* sparc sh3* m68k/m68000 (powerpc64/ia64)
486
487# IEEE FP support.  No VAX here.
488.if ${MACHINE_ARCH} == "x86_64" || \
489    ${MACHINE_ARCH} == "i386"
490    ${MACHINE_ARCH} == "mipsel"
491CPPFLAGS+=	-DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1
492.endif
493
494.if ${MACHINE_ARCH} == "mips64el"
495CPPFLAGS+=	-DHAVE_LDOUBLE_IEEE_QUAD_LITTLE=1
496.endif
497
498.if ${MACHINE_ARCH} == "sparc64" || \
499    ${MACHINE_ARCH} == "powerpc" || \
500    ${MACHINE_ARCH} == "powerpc64" || \
501    ${MACHINE_ARCH} == "mips64eb"
502CPPFLAGS+=	-DHAVE_LDOUBLE_IEEE_QUAD_BIG=1
503.endif
504
505WITHOUT_MAN=	yes
506
507.include <bsd.lib.mk>
508
509mparam.h: mparam_h.in
510	cp ${.ALLSRC} ${.TARGET}
511
512${SRCS}: mparam.h
513CLEANFILES+= mparam.h
514
515.PATH: ${.CURDIR}/../../dist
516
517.if ${MACHINE_ARCH} == "vax"
518COPTS.set_ld.c+=	-Wno-error
519.endif
520
521# Don't warn about functions which cannot be stack smash protected as
522# there are a lot of them.
523.if defined(HAVE_GCC) || defined(HAVE_PCC)
524COPTS += -Wno-stack-protector
525.endif
526