1178525Sjb#	$NetBSD: Makefile.inc,v 1.1 2011/06/29 02:56:24 mrg Exp $
2178525Sjb
3178525SjbSRCS+= \
4178525Sjb	random.c \
5178525Sjb	divrem_2.c \
6178525Sjb	toom_interpolate_7pts.c \
7178525Sjb	sbpi1_divappr_q.c \
8178525Sjb	random2.c \
9178525Sjb	mu_bdiv_q.c \
10178525Sjb	toom32_mul.c \
11178525Sjb	toom44_mul.c \
12178525Sjb	toom8h_mul.c \
13178525Sjb	toom2_sqr.c \
14178525Sjb	zero.c \
15178525Sjb	mod_1_4.c \
16178525Sjb	gcdext.c \
17178525Sjb	binvert.c \
18178525Sjb	mu_div_q.c \
19178525Sjb	invertappr.c \
20178525Sjb	dump.c \
21178525Sjb	mu_divappr_q.c \
22178525Sjb	dcpi1_div_qr.c \
23178525Sjb	redc_1_sec.c \
24178525Sjb	toom6_sqr.c \
25178525Sjb	divrem_1.c \
26178525Sjb	mod_1.c \
27178525Sjb	divexact.c \
28178525Sjb	powlo.c \
29178525Sjb	mul.c \
30178525Sjb	set_str.c \
31178525Sjb	toom42_mul.c \
32178525Sjb	toom_interpolate_6pts.c \
33178525Sjb	dcpi1_divappr_q.c \
34178525Sjb	toom_eval_dgr3_pm2.c \
35178525Sjb	mod_1_3.c \
36178525Sjb	com.c \
37178525Sjb	toom_couple_handling.c \
38178525Sjb	add.c \
39178525Sjb	toom_interpolate_12pts.c \
40178525Sjb	perfsqr.c \
41178525Sjb	toom53_mul.c \
42178525Sjb	toom_eval_pm2exp.c \
43178525Sjb	mu_div_qr.c \
44178525Sjb	toom_interpolate_16pts.c \
45178525Sjb	mod_34lsub1.c \
46178525Sjb	bdiv_q.c \
47178525Sjb	toom22_mul.c \
48178525Sjb	toom4_sqr.c \
49178525Sjb	div_q.c \
50178525Sjb	jacbase.c \
51178525Sjb	gcdext_subdiv_step.c \
52178525Sjb	mullo_n.c \
53178525Sjb	toom33_mul.c \
54178525Sjb	toom_eval_dgr3_pm1.c \
55178525Sjb	mod_1_2.c \
56	sub_1.c \
57	trialdiv.c \
58	add_1.c \
59	sqr_basecase.c \
60	toom_interpolate_5pts.c \
61	sbpi1_bdiv_q.c \
62	pre_mod_1.c \
63	hgcd.c \
64	bdiv_dbm1c.c \
65	sqrtrem.c \
66	bdiv_q_1.c \
67	gcdext_1.c \
68	toom63_mul.c \
69	mul_basecase.c \
70	toom8_sqr.c \
71	neg.c \
72	gcdext_lehmer.c \
73	divis.c \
74	dcpi1_div_q.c \
75	subcnd_n.c \
76	toom_eval_pm2.c \
77	hgcd2.c \
78	toom62_mul.c \
79	sbpi1_bdiv_qr.c \
80	scan1.c \
81	pre_divrem_1.c \
82	perfpow.c \
83	get_str.c \
84	mullo_basecase.c \
85	mulmod_bnm1.c \
86	tdiv_qr.c \
87	toom43_mul.c \
88	mod_1_1.c \
89	matrix22_mul.c \
90	powm_sec.c \
91	divrem.c \
92	gcd_1.c \
93	dcpi1_bdiv_qr.c \
94	mul_n.c \
95	redc_2.c \
96	toom6h_mul.c \
97	mul_fft.c \
98	sqrmod_bnm1.c \
99	powm.c \
100	rootrem.c \
101	mode1o.c \
102	toom_interpolate_8pts.c \
103	remove.c \
104	lshiftc.c \
105	dive_1.c \
106	cmp.c \
107	toom_eval_pm1.c \
108	scan0.c \
109	gcd_subdiv_step.c \
110	sbpi1_div_qr.c \
111	invert.c \
112	sub.c \
113	toom_eval_pm2rexp.c \
114	dcpi1_bdiv_q.c \
115	redc_1.c \
116	sqr.c \
117	nussbaumer_mul.c \
118	mu_bdiv_qr.c \
119	pow_1.c \
120	gcd_lehmer.c \
121	get_d.c \
122	toom52_mul.c \
123	sbpi1_div_q.c \
124	diveby3.c \
125	fib2_ui.c \
126	bdiv_qr.c \
127	toom3_sqr.c \
128	gcd.c \
129	redc_n.c \
130
131# XXX hand generated
132C_SRCS_LIST= \
133	popcount.c		mpn/generic/popham.c \
134	hamdist.c		mpn/generic/popham.c \
135	and_n.c			mpn/generic/logops_n.c \
136	andn_n.c		mpn/generic/logops_n.c \
137	nand_n.c		mpn/generic/logops_n.c \
138	ior_n.c			mpn/generic/logops_n.c \
139	iorn_n.c		mpn/generic/logops_n.c \
140	nior_n.c		mpn/generic/logops_n.c \
141	xor_n.c			mpn/generic/logops_n.c \
142	xnor_n.c		mpn/generic/logops_n.c \
143
144
145ASM_SRCS_LIST= \
146	sqr_diagonal.asm	mpn/sparc64/sqr_diagonal.asm \
147	add_n.asm		mpn/sparc64/add_n.asm \
148	addmul_2.asm		mpn/sparc64/addmul_2.asm \
149	submul_1.asm		mpn/sparc64/submul_1.asm \
150	lshift.asm		mpn/sparc64/lshift.asm \
151	mul_1.asm		mpn/sparc64/mul_1.asm \
152	copyd.asm		mpn/sparc64/copyd.asm \
153	copyi.asm		mpn/sparc64/copyi.asm \
154	rshift.asm		mpn/sparc64/rshift.asm \
155	addmul_1.asm		mpn/sparc64/addmul_1.asm \
156	sub_n.asm		mpn/sparc64/sub_n.asm \
157
158gen-trialdivtab: gen-trialdivtab.c
159	${HOST_CC} -o ${.OBJDIR}/gen-trialdivtab ${.ALLSRC} -lm
160
161# XXX
162GMP_LIMB_BITS=64
163
164trialdiv.c: trialdivtab.h
165trialdivtab.h: gen-trialdivtab
166	${.OBJDIR}/gen-trialdivtab $(GMP_LIMB_BITS) 8000 > ${.OBJDIR}/trialdivtab.h
167
168CLEANFILES+=	trialdivtab.h
169
170# XXX stuff looks for "../config.m4"
171dummy:
172	mkdir dummy
173${.OBJDIR}/config.m4: ${.CURDIR}/arch/${MACHINE_ARCH}/config.m4
174	cp ${.CURDIR}/arch/${MACHINE_ARCH}/config.m4 ${.TARGET}
175
176.for _build _src in ${ASM_SRCS_LIST}
177${_build:R}.s: Makefile dummy ${.OBJDIR}/config.m4
178	${TOOL_M4} -DCONFIG_TOP_SRCDIR=${DIST} -I${.CURDIR} -I${.OBJDIR}/dummy -I${DIST}/ -I${DIST}/mpn -DOPERATION_${.TARGET:R} ${DIST}/${_src} > ${.TARGET}
179
180SRCS+=		${_build:R}.s
181CLEANFILES+=	${_build:R}.s
182
183.endfor
184
185.for _build _src in ${C_SRCS_LIST}
186mpn_${_build}: Makefile
187	echo '#include "${_src}"' > ${.TARGET}
188
189CPPFLAGS.mpn_${_build}+= -DOPERATION_${_build:R}
190
191SRCS+=		mpn_${_build}
192CLEANFILES+=	mpn_${_build}
193.endfor
194
195