X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/c9cfa678c1bc391d0c270df6fdab7e9d50949b1f..8c5956c14f5834a072e1a9345ae1f356b14164ca:/math/Makefile.am diff --git a/math/Makefile.am b/math/Makefile.am index bca64be3..7c4ffed4 100644 --- a/math/Makefile.am +++ b/math/Makefile.am @@ -39,9 +39,9 @@ TEST_LIBS = libmath.la ## The `mpgen' tool for dealing with these things. mpgen = $(srcdir)/mpgen EXTRA_DIST += mpgen -AM_V_MPGEN = $(AM_V_MPGEN_$(V)) -AM_V_MPGEN_ = $(AM_V_MPGEN_$(AM_DEFAULT_VERBOSITY)) -AM_V_MPGEN_0 = @echo " MPGEN $@"; +AM_V_MPGEN = $(AM_V_MPGEN_@AM_V@) +AM_V_MPGEN_ = $(AM_V_MPGEN_@AM_DEFAULT_V@) +AM_V_MPGEN_0 = @echo " MPGEN $@"; MPGEN = $(AM_V_MPGEN)$(PYTHON) $(mpgen) ## The type information collected by `configure'. @@ -84,29 +84,29 @@ libmath_la_SOURCES += exp.c ## 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 @@ -115,36 +115,36 @@ libmath_la_SOURCES += mparena.c ## 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 @@ -154,7 +154,7 @@ libmath_la_SOURCES += mprand.c ## 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. @@ -165,7 +165,7 @@ libmath_la_SOURCES += mpscan.c ## 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 @@ -175,13 +175,32 @@ EXTRA_DIST += t/mptext ## 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_LDFLAGS = $(TEST_LDFLAGS) +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 @@ -190,7 +209,7 @@ libmath_la_SOURCES += qdparse.c ## 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. @@ -211,7 +230,7 @@ if !CROSS_COMPILING $(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 @@ -227,9 +246,10 @@ libmath_la_SOURCES += pfilt.c pkginclude_HEADERS += pgen.h libmath_la_SOURCES += pgen.c libmath_la_SOURCES += pgen-gcd.c +libmath_la_SOURCES += pgen-granfrob.c libmath_la_SOURCES += pgen-simul.c libmath_la_SOURCES += pgen-stdev.c -TESTS += pgen.$t +TESTS += pgen.t$(EXEEXT) pgen-granfrob.t$(EXEEXT) EXTRA_DIST += t/pgen ## Finding primitive elements in finite fields. @@ -239,7 +259,7 @@ libmath_la_SOURCES += prim.c ## 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. @@ -261,7 +281,7 @@ if !CROSS_COMPILING $(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 @@ -273,18 +293,18 @@ endif ## 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 @@ -292,25 +312,25 @@ PRECOMP_PROGS += gfx-sqr-mktab 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 ###-------------------------------------------------------------------------- @@ -328,7 +348,7 @@ libmath_la_SOURCES += g-bin.c 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. @@ -366,11 +386,11 @@ pkginclude_HEADERS += ec.h ec-guts.h 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. @@ -384,7 +404,7 @@ libmath_la_SOURCES += ec-fetch.c ## 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 @@ -395,4 +415,43 @@ ectab.c: $(mpgen) typeinfo.py ectab.in $(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_LDFLAGS = $(TEST_LDFLAGS) +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_LDFLAGS = $(TEST_LDFLAGS) +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 +pkginclude_HEADERS += scmul.h + ###----- That's all, folks --------------------------------------------------