## Main user-visible multiprecision arithmetic.
pkginclude_HEADERS += mp.h
libmath_la_SOURCES += mp-arith.c
-TESTS += mp-arith.$t
+TESTS += mp-arith.t$(EXEEXT)
libmath_la_SOURCES += mp-const.c
libmath_la_SOURCES += mp-exp.c mp-exp.h
libmath_la_SOURCES += mp-gcd.c
-TESTS += mp-gcd.$t
+TESTS += mp-gcd.t$(EXEEXT)
libmath_la_SOURCES += mp-io.c
libmath_la_SOURCES += mp-jacobi.c
-TESTS += mp-jacobi.$t
+TESTS += mp-jacobi.t$(EXEEXT)
libmath_la_SOURCES += mp-mem.c
libmath_la_SOURCES += mp-misc.c
libmath_la_SOURCES += mp-modexp.c
-TESTS += mp-modexp.$t
+TESTS += mp-modexp.t$(EXEEXT)
libmath_la_SOURCES += mp-modsqrt.c
-TESTS += mp-modsqrt.$t
+TESTS += mp-modsqrt.t$(EXEEXT)
libmath_la_SOURCES += mp-sqrt.c
-TESTS += mp-sqrt.$t
+TESTS += mp-sqrt.t$(EXEEXT)
libmath_la_SOURCES += mp-test.c
EXTRA_DIST += t/mp
## Computing Fibonacci numbers.
pkginclude_HEADERS += mp-fibonacci.h
libmath_la_SOURCES += mp-fibonacci.c
-TESTS += mp-fibonacci.$t
+TESTS += mp-fibonacci.t$(EXEEXT)
## Special memory allocation for multiprecision integers.
pkginclude_HEADERS += mparena.h
## Barrett reduction, an efficient method for modular reduction.
pkginclude_HEADERS += mpbarrett.h
libmath_la_SOURCES += mpbarrett.c
-TESTS += mpbarrett.$t
+TESTS += mpbarrett.t$(EXEEXT)
libmath_la_SOURCES += mpbarrett-exp.c mpbarrett-mexp.c mpbarrett-exp.h
-TESTS += mpbarrett-exp.$t mpbarrett-mexp.$t
-TESTS += mpbarrett.$t
+TESTS += mpbarrett-exp.t$(EXEEXT) mpbarrett-mexp.t$(EXEEXT)
+TESTS += mpbarrett.t$(EXEEXT)
EXTRA_DIST += t/mpbarrett
## Solving congruences using the Chinese Remainder Theorem.
pkginclude_HEADERS += mpcrt.h
libmath_la_SOURCES += mpcrt.c
-TESTS += mpcrt.$t
+TESTS += mpcrt.t$(EXEEXT)
EXTRA_DIST += t/mpcrt
## Conversions between machine-native and multiprecision integers.
pkginclude_HEADERS += mpint.h
libmath_la_SOURCES += mpint.c
-TESTS += mpint.$t
+TESTS += mpint.t$(EXEEXT)
EXTRA_DIST += t/mpint
## Montgomery reduction, a clever method for modular arithmetic.
pkginclude_HEADERS += mpmont.h
libmath_la_SOURCES += mpmont.c
-TESTS += mpmont.$t
+TESTS += mpmont.t$(EXEEXT)
libmath_la_SOURCES += mpmont-exp.c mpmont-mexp.c mpmont-exp.h
-TESTS += mpmont-exp.$t mpmont-mexp.$t
+TESTS += mpmont-exp.t$(EXEEXT) mpmont-mexp.t$(EXEEXT)
EXTRA_DIST += t/mpmont
## Efficient multiplication of many small numbers.
pkginclude_HEADERS += mpmul.h
libmath_la_SOURCES += mpmul.c
-TESTS += mpmul.$t
+TESTS += mpmul.t$(EXEEXT)
## Generating random numbers.
pkginclude_HEADERS += mprand.h
## representations.
pkginclude_HEADERS += mpreduce.h
libmath_la_SOURCES += mpreduce.c mpreduce-exp.h
-TESTS += mpreduce.$t
+TESTS += mpreduce.t$(EXEEXT)
EXTRA_DIST += t/mpreduce
## Iteratiion over the bianry representation of multiprecision integers.
## representations.
pkginclude_HEADERS += mptext.h
libmath_la_SOURCES += mptext.c
-TESTS += mptext.$t
+TESTS += mptext.t$(EXEEXT)
libmath_la_SOURCES += mptext-dstr.c
libmath_la_SOURCES += mptext-file.c
libmath_la_SOURCES += mptext-len.c
## Low-level multiprecision arithmetic.
pkginclude_HEADERS += mpx.h bitops.h mpw.h
libmath_la_SOURCES += mpx.c
-TESTS += mpx.$t
+TESTS += mpx.t$(EXEEXT)
libmath_la_SOURCES += karatsuba.h mpx-kmul.c mpx-ksqr.c
-TESTS += mpx-kmul.$t mpx-ksqr.$t
+TESTS += mpx-kmul.t$(EXEEXT) mpx-ksqr.t$(EXEEXT)
noinst_PROGRAMS += bittest
TESTS += bittest
EXTRA_DIST += t/mpx
+if CPUFAM_X86
+MPX_MUL4_SOURCES = mpx-mul4-x86-sse2.S
+check_PROGRAMS += mpx-mul4.t
+TESTS += mpx-mul4.t$(EXEEXT)
+endif
+if CPUFAM_AMD64
+MPX_MUL4_SOURCES = mpx-mul4-amd64-sse2.S
+check_PROGRAMS += mpx-mul4.t
+TESTS += mpx-mul4.t$(EXEEXT)
+endif
+libmath_la_SOURCES += $(MPX_MUL4_SOURCES)
+mpx_mul4_t_SOURCES = mpx-mul4-test.c $(MPX_MUL4_SOURCES)
+mpx_mul4_t_CPPFLAGS = \
+ $(AM_CPPFLAGS) \
+ -DTEST_MUL4 -DSRCDIR="\"$(srcdir)\""
+mpx_mul4_t_LDADD = $(top_builddir)/libcatacomb.la $(mLib_LIBS)
+EXTRA_DIST += t/mpx-mul4
+
## A quick-and-dirty parser, used for parsing descriptions of groups, fields,
## etc.
pkginclude_HEADERS += qdparse.h
## Pollard's `rho' algorithm for determining discrete logarithms.
pkginclude_HEADERS += rho.h
libmath_la_SOURCES += rho.c
-TESTS += rho.$t
+TESTS += rho.t$(EXEEXT)
###--------------------------------------------------------------------------
### Prime number checking, searching, and related jobs.
$(precomp)/math/primetab.h: $(precomp)/math/primetab.c
$(precomp)/math/primetab.c:
$(AM_V_at)$(MKDIR_P) $(precomp)/math
- $(AM_V_at)$(MAKE) genprimes$e
+ $(AM_V_at)$(MAKE) genprimes$(EXEEXT)
$(AM_V_GEN)./genprimes -sCATACOMB_PRIMETAB_H \
-h$(precomp)/math/primetab.h -c$(precomp)/math/primetab.c \
-n256 -t"unsigned short" -iprimetab
libmath_la_SOURCES += pgen-gcd.c
libmath_la_SOURCES += pgen-simul.c
libmath_la_SOURCES += pgen-stdev.c
-TESTS += pgen.$t
+TESTS += pgen.t$(EXEEXT)
EXTRA_DIST += t/pgen
## Finding primitive elements in finite fields.
## Iterating over all prime numbers from a given starting point.
pkginclude_HEADERS += primeiter.h
libmath_la_SOURCES += primeiter.c
-TESTS += primeiter.$t
+TESTS += primeiter.t$(EXEEXT)
primeiter.lo: $(precomp)/math/wheel.h
## The Miller--Rabin primality test.
$(precomp)/math/wheel.h: $(precomp)/math/wheel.c
$(precomp)/math/wheel.c:
$(AM_V_at)$(MKDIR_P) $(precomp)/math
- $(AM_V_at)$(MAKE) genwheel$e
+ $(AM_V_at)$(MAKE) genwheel$(EXEEXT)
$(AM_V_GEN)./genwheel -sCATACOMB_WHEEL_H \
-h$(precomp)/math/wheel.h -c$(precomp)/math/wheel.c \
-n5 -t"unsigned char" -iwheel
## User-visible binary polynomial arithmetic.
pkginclude_HEADERS += gf.h
libmath_la_SOURCES += gf-arith.c
-TESTS += gf-arith.$t
+TESTS += gf-arith.t$(EXEEXT)
libmath_la_SOURCES += gf-exp.c gf-exp.h
libmath_la_SOURCES += gf-gcd.c
-TESTS += gf-gcd.$t
+TESTS += gf-gcd.t$(EXEEXT)
EXTRA_DIST += t/gf
## Low-level binary polynomial arithmetic.
pkginclude_HEADERS += gfx.h
libmath_la_SOURCES += gfx.c
-TESTS += gfx.$t
+TESTS += gfx.t$(EXEEXT)
libmath_la_SOURCES += gfx-kmul.c
-TESTS += gfx-kmul.$t
+TESTS += gfx-kmul.t$(EXEEXT)
libmath_la_SOURCES += gfx-sqr.c
nodist_libmath_la_SOURCES += ../precomp/math/gfx-sqrtab.c
PRECOMPS += $(precomp)/math/gfx-sqrtab.c
if !CROSS_COMPILING
$(precomp)/math/gfx-sqrtab.c:
$(AM_V_at)$(MKDIR_P) $(precomp)/math
- $(AM_V_at)$(MAKE) gfx-sqr-mktab$e
+ $(AM_V_at)$(MAKE) gfx-sqr-mktab$(EXEEXT)
$(AM_V_GEN)./gfx-sqr-mktab >$(precomp)/math/gfx-sqrtab.c.new && \
mv $(precomp)/math/gfx-sqrtab.c.new \
$(precomp)/math/gfx-sqrtab.c
endif
-TESTS += gfx-sqr.$t
+TESTS += gfx-sqr.t$(EXEEXT)
EXTRA_DIST += t/gfx
## Conversions between normal and polynomial basis representations for binary
## fields.
pkginclude_HEADERS += gfn.h
libmath_la_SOURCES += gfn.c
-TESTS += gfn.$t
+TESTS += gfn.t$(EXEEXT)
EXTRA_DIST += t/gfn
## Efficient reduction modulo sparse polynomials.
pkginclude_HEADERS += gfreduce.h
libmath_la_SOURCES += gfreduce.c gfreduce-exp.h
-TESTS += gfreduce.$t
+TESTS += gfreduce.t$(EXEEXT)
EXTRA_DIST += t/gfreduce
###--------------------------------------------------------------------------
libmath_la_SOURCES += g-prime.c
libmath_la_SOURCES += g-ec.c
EXTRA_DIST += group-test.c
-TESTS += group-test.$t
+TESTS += group-test.t$(EXEEXT)
EXTRA_DIST += t/group
## Abstract finite fields.
libmath_la_SOURCES += ec.c
libmath_la_SOURCES += ec-exp.c ec-exp.h
libmath_la_SOURCES += ec-info.c
-TESTS += ec-info.$t
+TESTS += ec-info.t$(EXEEXT)
libmath_la_SOURCES += ec-bin.c
-TESTS += ec-bin.$t
+TESTS += ec-bin.t$(EXEEXT)
libmath_la_SOURCES += ec-prime.c
-TESTS += ec-prime.$t
+TESTS += ec-prime.t$(EXEEXT)
EXTRA_DIST += t/ec
## The standard `raw' encoding (`EC2OSP') of elliptic curve points.
## Test infrastructure for elliptic curves.
pkginclude_HEADERS += ec-test.h
libmath_la_SOURCES += ec-test.c
-TESTS += ec-test.$t
+TESTS += ec-test.t$(EXEEXT)
## Table of built-in elliptic-curve groups.
pkginclude_HEADERS += ectab.h
$(MPGEN) ectab $(srcdir)/ectab.in >ectab.c.new && \
mv ectab.c.new ectab.c
+###--------------------------------------------------------------------------
+### Other strange things.
+
+pkginclude_HEADERS += qfarith.h
+
+pkginclude_HEADERS += f25519.h
+libmath_la_SOURCES += f25519.c
+TESTS += f25519.t$(EXEEXT)
+TESTS += f25519-p10.t$(EXEEXT)
+EXTRA_DIST += t/f25519
+
+check_PROGRAMS += f25519-p10.t
+f25519_p10_t_SOURCES = f25519.c
+f25519_p10_t_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_RIG -DSRCDIR="\"$(srcdir)\""
+f25519_p10_t_CPPFLAGS += -DF25519_IMPL=10
+f25519_p10_t_LDADD = $(TEST_LIBS) $(top_builddir)/libcatacomb.la
+f25519_p10_t_LDADD += $(mLib_LIBS) $(CATACOMB_LIBS) $(LIBS)
+
+pkginclude_HEADERS += fgoldi.h
+libmath_la_SOURCES += fgoldi.c
+TESTS += fgoldi.t$(EXEEXT)
+TESTS += fgoldi-p12.t$(EXEEXT)
+EXTRA_DIST += t/fgoldi
+
+check_PROGRAMS += fgoldi-p12.t
+fgoldi_p12_t_SOURCES = fgoldi.c
+fgoldi_p12_t_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_RIG -DSRCDIR="\"$(srcdir)\""
+fgoldi_p12_t_CPPFLAGS += -DFGOLDI_IMPL=12
+fgoldi_p12_t_LDADD = $(TEST_LIBS) $(top_builddir)/libcatacomb.la
+fgoldi_p12_t_LDADD += $(mLib_LIBS) $(CATACOMB_LIBS) $(LIBS)
+
+pkginclude_HEADERS += scaf.h
+libmath_la_SOURCES += scaf.c
+
+pkginclude_HEADERS += montladder.h
+
###----- That's all, folks --------------------------------------------------