+### Representation of multiprecision integers.
+
+## 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 $@";
+MPGEN = $(AM_V_MPGEN)$(PYTHON) $(mpgen)
+
+## The type information collected by `configure'.
+CLEANFILES += typeinfo.py
+EXTRA_DIST += typeinfo.py.in
+typeinfo.py: $(srcdir)/typeinfo.py.in Makefile
+ $(SUBST) $(srcdir)/typeinfo.py.in >typeinfo.py.new \
+ type_bits="@type_bits@" \
+ limits="@limits@" && \
+ mv typeinfo.py.new typeinfo.py
+
+## The header file containing our representation choices.
+BUILT_SOURCES += mptypes.h
+CLEANFILES += mptypes.h
+nodist_archinclude_HEADERS += mptypes.h
+mptypes.h: $(mpgen) typeinfo.py
+ $(MPGEN) mptypes >mptypes.h.in && mv mptypes.h.in mptypes.h
+
+## Limits of C types as multiprecision integers.
+BUILT_SOURCES += mplimits.h mplimits.c
+CLEANFILES += mplimits.h mplimits.c
+nodist_archinclude_HEADERS += mplimits.h
+nodist_libmath_la_SOURCES += mplimits.c
+mplimits.h: $(mpgen) typeinfo.py
+ $(MPGEN) mplimits_h >mplimits.h.in && mv mplimits.h.in mplimits.h
+mplimits.c: $(mpgen) typeinfo.py
+ $(MPGEN) mplimits_c >mplimits.c.in && mv mplimits.c.in mplimits.c