## 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'.
TESTS += mp-modsqrt.t$(EXEEXT)
libmath_la_SOURCES += mp-sqrt.c
TESTS += mp-sqrt.t$(EXEEXT)
+libmath_la_SOURCES += mp-nthrt.c
+TESTS += mp-nthrt.t$(EXEEXT)
libmath_la_SOURCES += mp-test.c
EXTRA_DIST += t/mp
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
+if CPUFAM_ARMEL
+MPX_MUL4_SOURCES = mpx-mul4-arm-neon.S
+check_PROGRAMS += mpx-mul4.t
+TESTS += mpx-mul4.t$(EXEEXT)
+endif
+if CPUFAM_ARM64
+MPX_MUL4_SOURCES = mpx-mul4-arm64-simd.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
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$(EXEEXT)
+TESTS += pgen.t$(EXEEXT) pgen-granfrob.t$(EXEEXT)
EXTRA_DIST += t/pgen
## Finding primitive elements in finite fields.
$(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 --------------------------------------------------