xref: /dragonfly/gnu/usr.bin/gmp/Makefile (revision c6ecc293)
1d8170990Szrj# if wrapper mode
2d8170990Szrj.if (defined(NO_CROSSTOOLS) && defined(BOOTSTRAPPING)) || \
3d8170990Szrj    (!defined(BOOTSTRAPPING) && defined(NO_TOOLCHAIN))
4d8170990Szrj.include "Makefile.zhack"
5d8170990Szrj.else
6d8170990Szrj
7d8170990Szrj# normal mode
82290a76eSJohn MarinoLIB=	gmp
92290a76eSJohn MarinoINTERNALLIB=	# yes
102290a76eSJohn Marino
112290a76eSJohn MarinoCONTRIBDIR=	${.CURDIR}/../../../contrib/gmp
122290a76eSJohn Marino.PATH:	${CONTRIBDIR}
132290a76eSJohn Marino
142290a76eSJohn Marino.include "${.CURDIR}/Makefile.${MACHINE_ARCH}"
152290a76eSJohn Marino
162290a76eSJohn MarinoCFLAGS+=	-D__GMP_WITHIN_GMP -I${CONTRIBDIR} -I${.OBJDIR} -I${.CURDIR}
172290a76eSJohn MarinoCFLAGS+=	-I${CONTRIBDIR}/mpn/generic
182290a76eSJohn MarinoCFLAGS+=	-D__LONG_INT_BYTES=${LONG_INT_BYTES}
192290a76eSJohn MarinoCFLAGS+=	-D__INT_BITS=${INT_BITS}
202290a76eSJohn MarinoCFLAGS+=	-DHAVE_HOST_CPU_FAMILY_${CPU_FAMILY}=1
212290a76eSJohn Marino
222290a76eSJohn Marino
232290a76eSJohn Marino# The following comes verbatim from Makefile.am
242290a76eSJohn Marino
252290a76eSJohn MarinoMPF_OBJECTS = mpf/init$U.lo mpf/init2$U.lo mpf/inits$U.lo mpf/set$U.lo	    \
262290a76eSJohn Marino  mpf/set_ui$U.lo mpf/set_si$U.lo mpf/set_str$U.lo mpf/set_d$U.lo	    \
272290a76eSJohn Marino  mpf/set_z$U.lo mpf/iset$U.lo mpf/iset_ui$U.lo mpf/iset_si$U.lo	    \
282290a76eSJohn Marino  mpf/iset_str$U.lo mpf/iset_d$U.lo mpf/clear$U.lo mpf/clears$U.lo	    \
292290a76eSJohn Marino  mpf/get_str$U.lo mpf/dump$U.lo mpf/size$U.lo mpf/eq$U.lo mpf/reldiff$U.lo \
302290a76eSJohn Marino  mpf/sqrt$U.lo mpf/random2$U.lo mpf/inp_str$U.lo mpf/out_str$U.lo	    \
312290a76eSJohn Marino  mpf/add$U.lo mpf/add_ui$U.lo mpf/sub$U.lo mpf/sub_ui$U.lo mpf/ui_sub$U.lo \
322290a76eSJohn Marino  mpf/mul$U.lo mpf/mul_ui$U.lo mpf/div$U.lo mpf/div_ui$U.lo		    \
332290a76eSJohn Marino  mpf/cmp$U.lo mpf/cmp_d$U.lo mpf/cmp_ui$U.lo mpf/cmp_si$U.lo		    \
342290a76eSJohn Marino  mpf/mul_2exp$U.lo mpf/div_2exp$U.lo mpf/abs$U.lo mpf/neg$U.lo		    \
352290a76eSJohn Marino  mpf/set_q$U.lo mpf/get_d$U.lo mpf/get_d_2exp$U.lo mpf/set_dfl_prec$U.lo   \
362290a76eSJohn Marino  mpf/set_prc$U.lo mpf/set_prc_raw$U.lo mpf/get_dfl_prec$U.lo               \
372290a76eSJohn Marino  mpf/get_prc$U.lo mpf/ui_div$U.lo mpf/sqrt_ui$U.lo                         \
382290a76eSJohn Marino  mpf/ceilfloor$U.lo mpf/trunc$U.lo mpf/pow_ui$U.lo			    \
392290a76eSJohn Marino  mpf/urandomb$U.lo mpf/swap$U.lo					    \
402290a76eSJohn Marino  mpf/fits_sint$U.lo mpf/fits_slong$U.lo mpf/fits_sshort$U.lo		    \
412290a76eSJohn Marino  mpf/fits_uint$U.lo mpf/fits_ulong$U.lo mpf/fits_ushort$U.lo		    \
422290a76eSJohn Marino  mpf/get_si$U.lo mpf/get_ui$U.lo					    \
432290a76eSJohn Marino  mpf/int_p$U.lo
442290a76eSJohn Marino
452290a76eSJohn MarinoMPZ_OBJECTS = mpz/abs$U.lo mpz/add$U.lo mpz/add_ui$U.lo			\
462290a76eSJohn Marino  mpz/aorsmul$U.lo mpz/aorsmul_i$U.lo mpz/and$U.lo mpz/array_init$U.lo	\
472290a76eSJohn Marino  mpz/bin_ui$U.lo mpz/bin_uiui$U.lo					\
482290a76eSJohn Marino  mpz/cdiv_q$U.lo mpz/cdiv_q_ui$U.lo					\
492290a76eSJohn Marino  mpz/cdiv_qr$U.lo mpz/cdiv_qr_ui$U.lo					\
502290a76eSJohn Marino  mpz/cdiv_r$U.lo mpz/cdiv_r_ui$U.lo mpz/cdiv_ui$U.lo			\
512290a76eSJohn Marino  mpz/cfdiv_q_2exp$U.lo mpz/cfdiv_r_2exp$U.lo				\
522290a76eSJohn Marino  mpz/clear$U.lo mpz/clears$U.lo mpz/clrbit$U.lo			\
532290a76eSJohn Marino  mpz/cmp$U.lo mpz/cmp_d$U.lo mpz/cmp_si$U.lo mpz/cmp_ui$U.lo		\
542290a76eSJohn Marino  mpz/cmpabs$U.lo mpz/cmpabs_d$U.lo mpz/cmpabs_ui$U.lo			\
552290a76eSJohn Marino  mpz/com$U.lo mpz/combit$U.lo						\
562290a76eSJohn Marino  mpz/cong$U.lo mpz/cong_2exp$U.lo mpz/cong_ui$U.lo			\
572290a76eSJohn Marino  mpz/divexact$U.lo mpz/divegcd$U.lo mpz/dive_ui$U.lo			\
582290a76eSJohn Marino  mpz/divis$U.lo mpz/divis_ui$U.lo mpz/divis_2exp$U.lo mpz/dump$U.lo	\
592290a76eSJohn Marino  mpz/export$U.lo mpz/fac_ui$U.lo mpz/fdiv_q$U.lo			\
602290a76eSJohn Marino  mpz/fdiv_q_ui$U.lo mpz/fdiv_qr$U.lo mpz/fdiv_qr_ui$U.lo		\
612290a76eSJohn Marino  mpz/fdiv_r$U.lo mpz/fdiv_r_ui$U.lo					\
622290a76eSJohn Marino  mpz/fdiv_ui$U.lo mpz/fib_ui$U.lo mpz/fib2_ui$U.lo mpz/fits_sint$U.lo	\
632290a76eSJohn Marino  mpz/fits_slong$U.lo mpz/fits_sshort$U.lo mpz/fits_uint$U.lo		\
642290a76eSJohn Marino  mpz/fits_ulong$U.lo mpz/fits_ushort$U.lo mpz/gcd$U.lo			\
652290a76eSJohn Marino  mpz/gcd_ui$U.lo mpz/gcdext$U.lo mpz/get_d$U.lo mpz/get_d_2exp$U.lo	\
662290a76eSJohn Marino  mpz/get_si$U.lo mpz/get_str$U.lo mpz/get_ui$U.lo mpz/getlimbn$U.lo	\
672290a76eSJohn Marino  mpz/hamdist$U.lo							\
682290a76eSJohn Marino  mpz/import$U.lo mpz/init$U.lo mpz/init2$U.lo mpz/inits$U.lo 		\
692290a76eSJohn Marino  mpz/inp_raw$U.lo mpz/inp_str$U.lo mpz/invert$U.lo			\
702290a76eSJohn Marino  mpz/ior$U.lo mpz/iset$U.lo mpz/iset_d$U.lo mpz/iset_si$U.lo		\
712290a76eSJohn Marino  mpz/iset_str$U.lo mpz/iset_ui$U.lo mpz/jacobi$U.lo mpz/kronsz$U.lo	\
722290a76eSJohn Marino  mpz/kronuz$U.lo mpz/kronzs$U.lo mpz/kronzu$U.lo			\
732290a76eSJohn Marino  mpz/lcm$U.lo mpz/lcm_ui$U.lo mpz/lucnum_ui$U.lo mpz/lucnum2_ui$U.lo	\
742290a76eSJohn Marino  mpz/millerrabin$U.lo mpz/mod$U.lo mpz/mul$U.lo mpz/mul_2exp$U.lo	\
752290a76eSJohn Marino  mpz/mul_si$U.lo mpz/mul_ui$U.lo					\
762290a76eSJohn Marino  mpz/n_pow_ui$U.lo mpz/neg$U.lo mpz/nextprime$U.lo			\
772290a76eSJohn Marino  mpz/out_raw$U.lo mpz/out_str$U.lo mpz/perfpow$U.lo mpz/perfsqr$U.lo	\
782290a76eSJohn Marino  mpz/popcount$U.lo mpz/pow_ui$U.lo mpz/powm$U.lo mpz/powm_sec$U.lo	\
792290a76eSJohn Marino  mpz/powm_ui$U.lo mpz/pprime_p$U.lo mpz/random$U.lo mpz/random2$U.lo	\
802290a76eSJohn Marino  mpz/realloc$U.lo mpz/realloc2$U.lo mpz/remove$U.lo			\
812290a76eSJohn Marino  mpz/root$U.lo mpz/rootrem$U.lo mpz/rrandomb$U.lo mpz/scan0$U.lo	\
822290a76eSJohn Marino  mpz/scan1$U.lo mpz/set$U.lo mpz/set_d$U.lo mpz/set_f$U.lo		\
832290a76eSJohn Marino  mpz/set_q$U.lo mpz/set_si$U.lo mpz/set_str$U.lo mpz/set_ui$U.lo	\
842290a76eSJohn Marino  mpz/setbit$U.lo							\
852290a76eSJohn Marino  mpz/size$U.lo mpz/sizeinbase$U.lo mpz/sqrt$U.lo			\
862290a76eSJohn Marino  mpz/sqrtrem$U.lo mpz/sub$U.lo mpz/sub_ui$U.lo mpz/swap$U.lo		\
872290a76eSJohn Marino  mpz/tdiv_ui$U.lo mpz/tdiv_q$U.lo mpz/tdiv_q_2exp$U.lo			\
882290a76eSJohn Marino  mpz/tdiv_q_ui$U.lo mpz/tdiv_qr$U.lo mpz/tdiv_qr_ui$U.lo		\
892290a76eSJohn Marino  mpz/tdiv_r$U.lo mpz/tdiv_r_2exp$U.lo mpz/tdiv_r_ui$U.lo		\
902290a76eSJohn Marino  mpz/tstbit$U.lo mpz/ui_pow_ui$U.lo mpz/ui_sub$U.lo mpz/urandomb$U.lo	\
912290a76eSJohn Marino  mpz/urandomm$U.lo mpz/xor$U.lo
922290a76eSJohn Marino
932290a76eSJohn MarinoMPQ_OBJECTS = mpq/abs$U.lo mpq/aors$U.lo				\
942290a76eSJohn Marino  mpq/canonicalize$U.lo mpq/clear$U.lo mpq/clears$U.lo			\
952290a76eSJohn Marino  mpq/cmp$U.lo mpq/cmp_si$U.lo mpq/cmp_ui$U.lo mpq/div$U.lo		\
962290a76eSJohn Marino  mpq/get_d$U.lo mpq/get_den$U.lo mpq/get_num$U.lo mpq/get_str$U.lo	\
972290a76eSJohn Marino  mpq/init$U.lo mpq/inits$U.lo mpq/inp_str$U.lo mpq/inv$U.lo		\
982290a76eSJohn Marino  mpq/md_2exp$U.lo mpq/mul$U.lo mpq/neg$U.lo mpq/out_str$U.lo		\
992290a76eSJohn Marino  mpq/set$U.lo mpq/set_den$U.lo mpq/set_num$U.lo			\
1002290a76eSJohn Marino  mpq/set_si$U.lo mpq/set_str$U.lo mpq/set_ui$U.lo			\
1012290a76eSJohn Marino  mpq/equal$U.lo mpq/set_z$U.lo mpq/set_d$U.lo				\
1022290a76eSJohn Marino  mpq/set_f$U.lo mpq/swap$U.lo
1032290a76eSJohn Marino
1042290a76eSJohn MarinoMPN_OBJECTS = mpn/fib_table$U.lo mpn/mp_bases$U.lo
1052290a76eSJohn Marino
1062290a76eSJohn MarinoPRINTF_OBJECTS =							\
1072290a76eSJohn Marino  printf/asprintf$U.lo printf/asprntffuns$U.lo				\
1082290a76eSJohn Marino  printf/doprnt$U.lo printf/doprntf$U.lo printf/doprnti$U.lo		\
1092290a76eSJohn Marino  printf/fprintf$U.lo							\
1102290a76eSJohn Marino  printf/printf$U.lo printf/printffuns$U.lo				\
1112290a76eSJohn Marino  printf/snprintf$U.lo printf/snprntffuns$U.lo				\
1122290a76eSJohn Marino  printf/sprintf$U.lo printf/sprintffuns$U.lo				\
1132290a76eSJohn Marino  printf/vasprintf$U.lo printf/vfprintf$U.lo printf/vprintf$U.lo	\
114a74bcbdeSzrj  printf/vsnprintf$U.lo printf/vsprintf$U.lo
115a74bcbdeSzrj
116a74bcbdeSzrj# only when HAVE_OBSTACK_VPRINTF
117a74bcbdeSzrj#PRINTF_OBJECTS +=							\
118a74bcbdeSzrj  printf/obprintf$U.lo printf/obvprintf$U.lo printf/obprntffuns$U.lo
119a74bcbdeSzrj
120a74bcbdeSzrj# only when ! HAVE_VSNPRINTF (when don't have vsnprintf)
121a74bcbdeSzrj#PRINTF_OBJECTS += 							\
1222290a76eSJohn Marino  printf/repl-vsnprintf$U.lo
1232290a76eSJohn Marino
1242290a76eSJohn MarinoSCANF_OBJECTS =							\
1252290a76eSJohn Marino  scanf/doscan$U.lo scanf/fscanf$U.lo scanf/fscanffuns$U.lo	\
1262290a76eSJohn Marino  scanf/scanf$U.lo scanf/sscanf$U.lo scanf/sscanffuns$U.lo	\
1272290a76eSJohn Marino  scanf/vfscanf$U.lo scanf/vscanf$U.lo scanf/vsscanf$U.lo
1282290a76eSJohn Marino
1292290a76eSJohn Marinolibgmp_la_SOURCES = gmp-impl.h longlong.h randmt.h			\
1302290a76eSJohn Marino  assert.c compat.c errno.c extract-dbl.c invalid.c memory.c		\
131a74bcbdeSzrj  mp_bpl.c mp_dv_tab.c mp_minv_tab.c mp_get_fns.c mp_set_fns.c		\
1322290a76eSJohn Marino  rand.c randclr.c randdef.c randiset.c randlc2s.c randlc2x.c randmt.c	\
1332290a76eSJohn Marino  randmts.c rands.c randsd.c randsdui.c randbui.c randmui.c version.c	\
1342290a76eSJohn Marino  nextprime.c
1352290a76eSJohn Marino
136a74bcbdeSzrj# only when COUNT_LEADING_ZEROS_NEED_CLZ_TAB
137a74bcbdeSzrj#libgmp_la_SOURCES = mp_clz_tab.c
138a74bcbdeSzrj
1392290a76eSJohn Marino# From configure.in
1402290a76eSJohn Marinogmp_mpn_functions_optional=umul udiv					\
1412290a76eSJohn Marino  invert_limb sqr_diagonal						\
1422290a76eSJohn Marino  mul_2 mul_3 mul_4							\
1432290a76eSJohn Marino  addmul_2 addmul_3 addmul_4 addmul_5 addmul_6 addmul_7 addmul_8	\
1442290a76eSJohn Marino  addlsh1_n sublsh1_n rsblsh1_n rsh1add_n rsh1sub_n			\
1452290a76eSJohn Marino  addlsh2_n sublsh2_n rsblsh2_n						\
1462290a76eSJohn Marino  addlsh_n sublsh_n rsblsh_n						\
1472290a76eSJohn Marino  add_n_sub_n addaddmul_1msb0
1482290a76eSJohn Marino
1492290a76eSJohn Marinogmp_mpn_functions=${extra_functions}					   \
1502290a76eSJohn Marino  add add_1 add_n sub sub_1 sub_n neg com mul_1 addmul_1		   \
1512290a76eSJohn Marino  submul_1 lshift rshift dive_1 diveby3 divis divrem divrem_1 divrem_2     \
1522290a76eSJohn Marino  fib2_ui mod_1 mod_34lsub1 mode1o pre_divrem_1 pre_mod_1 dump		   \
1532290a76eSJohn Marino  mod_1_1 mod_1_2 mod_1_3 mod_1_4 lshiftc				   \
1542290a76eSJohn Marino  mul mul_fft mul_n sqr mul_basecase sqr_basecase nussbaumer_mul	   \
1552290a76eSJohn Marino  random random2 pow_1							   \
1562290a76eSJohn Marino  rootrem sqrtrem get_str set_str scan0 scan1 popcount hamdist cmp	   \
1572290a76eSJohn Marino  perfsqr perfpow							   \
1582290a76eSJohn Marino  gcd_1 gcd gcdext_1 gcdext gcd_lehmer gcd_subdiv_step			   \
1592290a76eSJohn Marino  gcdext_lehmer gcdext_subdiv_step					   \
1602290a76eSJohn Marino  div_q tdiv_qr jacbase get_d						   \
1612290a76eSJohn Marino  matrix22_mul hgcd2 hgcd mullo_n mullo_basecase			   \
1622290a76eSJohn Marino  toom22_mul toom32_mul toom42_mul toom52_mul toom62_mul		   \
1632290a76eSJohn Marino  toom33_mul toom43_mul toom53_mul toom63_mul				   \
1642290a76eSJohn Marino  toom44_mul								   \
1652290a76eSJohn Marino  toom6h_mul toom6_sqr toom8h_mul toom8_sqr				   \
1662290a76eSJohn Marino  toom_couple_handling							   \
1672290a76eSJohn Marino  toom2_sqr toom3_sqr toom4_sqr						   \
1682290a76eSJohn Marino  toom_eval_dgr3_pm1 toom_eval_dgr3_pm2 				   \
1692290a76eSJohn Marino  toom_eval_pm1 toom_eval_pm2 toom_eval_pm2exp toom_eval_pm2rexp	   \
1702290a76eSJohn Marino  toom_interpolate_5pts toom_interpolate_6pts toom_interpolate_7pts	   \
1712290a76eSJohn Marino  toom_interpolate_8pts toom_interpolate_12pts toom_interpolate_16pts	   \
1722290a76eSJohn Marino  invertappr invert binvert mulmod_bnm1 sqrmod_bnm1			   \
1732290a76eSJohn Marino  sbpi1_div_q sbpi1_div_qr sbpi1_divappr_q				   \
1742290a76eSJohn Marino  dcpi1_div_q dcpi1_div_qr dcpi1_divappr_q				   \
1752290a76eSJohn Marino  mu_div_qr mu_divappr_q mu_div_q					   \
1762290a76eSJohn Marino  bdiv_q_1								   \
1772290a76eSJohn Marino  sbpi1_bdiv_q sbpi1_bdiv_qr						   \
1782290a76eSJohn Marino  dcpi1_bdiv_q dcpi1_bdiv_qr						   \
1792290a76eSJohn Marino  mu_bdiv_q mu_bdiv_qr							   \
1802290a76eSJohn Marino  bdiv_q bdiv_qr							   \
1812290a76eSJohn Marino  divexact bdiv_dbm1c redc_1 redc_2 redc_n powm powlo powm_sec subcnd_n	   \
1822290a76eSJohn Marino  redc_1_sec trialdiv remove						   \
1832290a76eSJohn Marino  and_n andn_n nand_n ior_n iorn_n nior_n xor_n xnor_n			   \
1842290a76eSJohn Marino  copyi copyd zero							   \
1852290a76eSJohn Marino  ${gmp_mpn_functions_optional}
1862290a76eSJohn Marino
1872290a76eSJohn Marino# end verbatim copy
1882290a76eSJohn Marino
1892290a76eSJohn MarinoMULFUNC_add_n=	aors_n
1902290a76eSJohn MarinoMULFUNC_sub_n=	aors_n
1912290a76eSJohn MarinoMULFUNC_addmul_1=	aorsmul_1
1922290a76eSJohn MarinoMULFUNC_submul_1=	aorsmul_1
1932290a76eSJohn MarinoMULFUNC_popcount=	popham
1942290a76eSJohn MarinoMULFUNC_hamdist=	popham
1952290a76eSJohn MarinoMULFUNC_and_n=	logops_n
1962290a76eSJohn MarinoMULFUNC_andn_n=	logops_n
1972290a76eSJohn MarinoMULFUNC_nand_n=	logops_n
1982290a76eSJohn MarinoMULFUNC_ior_n=	logops_n
1992290a76eSJohn MarinoMULFUNC_iorn_n=	logops_n
2002290a76eSJohn MarinoMULFUNC_nior_n=	logops_n
2012290a76eSJohn MarinoMULFUNC_xor_n=	logops_n
2022290a76eSJohn MarinoMULFUNC_xnor_n=	logops_n
2032290a76eSJohn MarinoMULFUNC_lshift=	lorrshift
2042290a76eSJohn MarinoMULFUNC_rshift=	lorrshift
2052290a76eSJohn MarinoMULFUNC_addlsh1_n=	aorslsh1_n
2062290a76eSJohn MarinoMULFUNC_sublsh1_n=	aorslsh1_n
2072290a76eSJohn MarinoMULFUNC_rsh1add_n=	rsh1aors_n
2082290a76eSJohn MarinoMULFUNC_rsh1sub_n=	rsh1aors_n
2092290a76eSJohn Marino
2102290a76eSJohn Marino
2112290a76eSJohn MarinoU=
2122290a76eSJohn Marinoextra_functions=
2132290a76eSJohn MarinoLO_OBJECTS=	${MPF_OBJECTS} ${MPZ_OBJECTS} ${MPQ_OBJECTS} ${MPN_OBJECTS} \
2142290a76eSJohn Marino		${PRINTF_OBJECTS} ${SCANF_OBJECTS}
2152290a76eSJohn Marino
2162290a76eSJohn Marino.for func in ${gmp_mpn_functions}
2172290a76eSJohn Marino.for mapfunc in ${func} ${MULFUNC_${func}}
2182290a76eSJohn Marino.for mapsource in mpn/generic/${mapfunc}.c
2192290a76eSJohn Marino.for source in mpn/generic/${func}.c
2202290a76eSJohn Marino.if exists(${mapsource}) && empty(MPNSRC:M${source})
2212290a76eSJohn Marino
2222290a76eSJohn Marino.if !exists(${source})
2232290a76eSJohn Marino${source}: ${mapsource} mkdirs
2242290a76eSJohn Marino	cp ${.ALLSRC:Nmkdirs} ${.TARGET}
2252290a76eSJohn MarinoCLEANFILES+=	${source}
2262290a76eSJohn Marino.ORDER: mkdirs ${source}
2272290a76eSJohn Marino.endif
2282290a76eSJohn Marino
2292290a76eSJohn MarinoMPNSRC+=	${source}
2302290a76eSJohn Marino${source:.c=.o}: ${source}
2312290a76eSJohn Marino	${CC} -o ${.TARGET} ${CFLAGS} -DOPERATION_${func} -c ${.ALLSRC}
2322290a76eSJohn Marino.endif
2332290a76eSJohn Marino.endfor
2342290a76eSJohn Marino.endfor
2352290a76eSJohn Marino.endfor
2362290a76eSJohn Marino.endfor
2372290a76eSJohn Marino
2382290a76eSJohn MarinoSRCS=	${LO_OBJECTS:.lo=.c} ${libgmp_la_SOURCES} ${MPNSRC}
2392290a76eSJohn MarinoSRCS+=	tal-reent.c
2402290a76eSJohn Marino
2412290a76eSJohn Marino# the following are generated sources, so we have to add them
2422290a76eSJohn Marino# explicitly to SRCS
2432290a76eSJohn MarinoGENSRC=	fac_ui.h fib_table.h mpn/fib_table.c mp_bases.h perfsqr.h
2442290a76eSJohn MarinoGENSRC+= trialdivtab.h
2452290a76eSJohn MarinoSRCS+=	${GENSRC}
2462290a76eSJohn MarinoCLEANFILES+=	${GENSRC}
2472290a76eSJohn Marino
2482290a76eSJohn Marino
2492290a76eSJohn Marinofac_ui.h: gen-fac_ui.nx
2502290a76eSJohn Marino	${.OBJDIR}/gen-fac_ui.nx ${LONG_INT_BITS} 0 > ${.TARGET}
2512290a76eSJohn Marino
2522290a76eSJohn Marinofib_table.h: gen-fib.nx
2532290a76eSJohn Marino	${.OBJDIR}/gen-fib.nx header ${LONG_INT_BITS} 0 > ${.TARGET}
2542290a76eSJohn Marino
2552290a76eSJohn Marinompn/fib_table.c: gen-fib.nx
2562290a76eSJohn Marino	${.OBJDIR}/gen-fib.nx table ${LONG_INT_BITS} 0 > ${.TARGET}
2572290a76eSJohn Marino
2582290a76eSJohn Marinomp_bases.h: gen-bases.nx
2592290a76eSJohn Marino	${.OBJDIR}/gen-bases.nx header ${LONG_INT_BITS} 0 > ${.TARGET}
2602290a76eSJohn Marino
2612290a76eSJohn Marinompn/mp_bases.c: gen-bases.nx
2622290a76eSJohn Marino	${.OBJDIR}/gen-bases.nx table ${LONG_INT_BITS} 0 > ${.TARGET}
2632290a76eSJohn Marino
2642290a76eSJohn Marinoperfsqr.h: gen-psqr.nx
2652290a76eSJohn Marino	${.OBJDIR}/gen-psqr.nx ${LONG_INT_BITS} 0 > ${.TARGET}
2662290a76eSJohn Marino
2672290a76eSJohn Marinotrialdivtab.h: gen-trialdivtab.nx
268*c6ecc293SAaron LI	${.OBJDIR}/gen-trialdivtab.nx ${LONG_INT_BITS} 8000 > ${.TARGET}
2692290a76eSJohn Marino
2702290a76eSJohn Marino.for _gen in fac_ui fib bases psqr trialdivtab
2712290a76eSJohn Marinogen-${_gen}.nx: gen-${_gen}.c dumbmp.c
2722290a76eSJohn Marino	${NXCC} ${.ALLSRC:M*/gen-*} -o ${.TARGET} -lm
2732290a76eSJohn MarinoCLEANFILES+=	gen-${_gen}.nx
2742290a76eSJohn Marino.endfor
2752290a76eSJohn Marino
2762290a76eSJohn MarinoGENDIRS=	mpf mpz mpq mpn mpn/generic printf scanf
2772290a76eSJohn MarinoCLEANDIRS+=	${GENDIRS}
2782290a76eSJohn Marinobeforedepend: mkdirs
2792290a76eSJohn Marinomkdirs:
2802290a76eSJohn Marino	mkdir -p ${GENDIRS}
2812290a76eSJohn Marino
2822290a76eSJohn Marino.include <bsd.lib.mk>
283d8170990Szrj.endif
284