IN=$(srcdir)
OUT=$(axiom_targetdir)/algebra
DOC=$(axiom_target_docdir)/src/algebra
OUTSRC=$(axiom_target_srcdir)/algebra
INPUT=../input

## We use interpsys, built from previous stage, to bootstrap the algebra
## files.  In fact, we use interpsys to build everything.
COMPILE_LISP = $(INTERPSYS) --compile --output=$@ $<


INTERPSYS = ../interp/interpsys$(EXEEXT) -- --system="$(AXIOM)" \
		--sysalg="$(axiom_src_datadir)/algebra/"


SPADFILES= \
 ${OUTSRC}/acplot.spad ${OUTSRC}/aggcat2.spad ${OUTSRC}/aggcat.spad \
 ${OUTSRC}/algcat.spad ${OUTSRC}/algext.spad ${OUTSRC}/algfact.spad \
 ${OUTSRC}/algfunc.spad ${OUTSRC}/allfact.spad ${OUTSRC}/alql.spad \
 ${OUTSRC}/annacat.spad ${OUTSRC}/any.spad ${OUTSRC}/array1.spad \
 ${OUTSRC}/array2.spad ${OUTSRC}/asp.spad ${OUTSRC}/attreg.spad \
 ${OUTSRC}/bags.spad ${OUTSRC}/bezout.spad ${OUTSRC}/boolean.spad \
 ${OUTSRC}/brill.spad \
 ${OUTSRC}/c02.spad ${OUTSRC}/c05.spad ${OUTSRC}/c06.spad \
 ${OUTSRC}/card.spad ${OUTSRC}/carten.spad ${OUTSRC}/catdef.spad \
 ${OUTSRC}/cden.spad ${OUTSRC}/clifford.spad ${OUTSRC}/clip.spad \
 ${OUTSRC}/cmplxrt.spad ${OUTSRC}/coerce.spad ${OUTSRC}/color.spad \
 ${OUTSRC}/combfunc.spad ${OUTSRC}/combinat.spad ${OUTSRC}/complet.spad \
 ${OUTSRC}/constant.spad ${OUTSRC}/contfrac.spad ${OUTSRC}/cont.spad \
 ${OUTSRC}/coordsys.spad ${OUTSRC}/cra.spad ${OUTSRC}/crfp.spad \
 ${OUTSRC}/curve.spad ${OUTSRC}/cycles.spad ${OUTSRC}/cyclotom.spad \
 ${OUTSRC}/d01agents.spad ${OUTSRC}/d01Package.spad \
 ${OUTSRC}/d01routine.spad ${OUTSRC}/d01.spad ${OUTSRC}/d01transform.spad \
 ${OUTSRC}/d01weights.spad ${OUTSRC}/d02agents.spad \
 ${OUTSRC}/d02Package.spad ${OUTSRC}/d02routine.spad ${OUTSRC}/d02.spad \
 ${OUTSRC}/d03agents.spad ${OUTSRC}/d03Package.spad \
 ${OUTSRC}/d03routine.spad ${OUTSRC}/d03.spad ${OUTSRC}/ddfact.spad \
 ${OUTSRC}/defaults.spad ${OUTSRC}/defintef.spad ${OUTSRC}/defintrf.spad \
 ${OUTSRC}/degred.spad ${OUTSRC}/derham.spad ${OUTSRC}/dhmatrix.spad \
 ${OUTSRC}/divisor.spad ${OUTSRC}/dpolcat.spad ${OUTSRC}/drawopt.spad \
 ${OUTSRC}/drawpak.spad ${OUTSRC}/draw.spad \
 ${OUTSRC}/e01.spad ${OUTSRC}/e02.spad ${OUTSRC}/e04agents.spad \
 ${OUTSRC}/e04Package.spad ${OUTSRC}/e04routine.spad ${OUTSRC}/e04.spad \
 ${OUTSRC}/efstruc.spad ${OUTSRC}/efuls.spad ${OUTSRC}/efupxs.spad \
 ${OUTSRC}/eigen.spad ${OUTSRC}/elemntry.spad ${OUTSRC}/elfuts.spad \
 ${OUTSRC}/equation1.spad ${OUTSRC}/equation2.spad ${OUTSRC}/error.spad \
 ${OUTSRC}/expexpan.spad ${OUTSRC}/expr2ups.spad \
 ${OUTSRC}/exprode.spad ${OUTSRC}/expr.spad \
 ${OUTSRC}/f01.spad ${OUTSRC}/f02.spad ${OUTSRC}/f04.spad \
 ${OUTSRC}/f07.spad ${OUTSRC}/facutil.spad ${OUTSRC}/ffcat.spad \
 ${OUTSRC}/ffcg.spad ${OUTSRC}/fff.spad ${OUTSRC}/ffhom.spad \
 ${OUTSRC}/ffnb.spad ${OUTSRC}/ffpoly2.spad ${OUTSRC}/ffpoly.spad \
 ${OUTSRC}/ffp.spad ${OUTSRC}/ffx.spad \
 ${OUTSRC}/files.spad ${OUTSRC}/float.spad ${OUTSRC}/fmod.spad \
 ${OUTSRC}/fname.spad ${OUTSRC}/fnla.spad ${OUTSRC}/formula.spad \
 ${OUTSRC}/fortcat.spad ${OUTSRC}/fortmac.spad ${OUTSRC}/fortpak.spad \
 ${OUTSRC}/fortran.spad ${OUTSRC}/forttyp.spad ${OUTSRC}/fourier.spad \
 ${OUTSRC}/fparfrac.spad ${OUTSRC}/fraction.spad ${OUTSRC}/free.spad \
 ${OUTSRC}/fr.spad ${OUTSRC}/fs2expxp.spad ${OUTSRC}/fs2ups.spad \
 ${OUTSRC}/fspace.spad ${OUTSRC}/funcpkgs.spad ${OUTSRC}/functions.spad \
 ${OUTSRC}/galfact.spad ${OUTSRC}/galfactu.spad ${OUTSRC}/galpolyu.spad \
 ${OUTSRC}/galutil.spad ${OUTSRC}/gaussfac.spad ${OUTSRC}/gaussian.spad \
 ${OUTSRC}/gbeuclid.spad ${OUTSRC}/gbintern.spad ${OUTSRC}/gb.spad \
 ${OUTSRC}/gdirprod.spad ${OUTSRC}/gdpoly.spad ${OUTSRC}/geneez.spad \
 ${OUTSRC}/generic.spad ${OUTSRC}/genufact.spad ${OUTSRC}/genups.spad \
 ${OUTSRC}/ghensel.spad ${OUTSRC}/gpgcd.spad ${OUTSRC}/gpol.spad \
 ${OUTSRC}/grdef.spad ${OUTSRC}/groebf.spad ${OUTSRC}/groebsol.spad \
 ${OUTSRC}/gseries.spad \
 ${OUTSRC}/ideal.spad ${OUTSRC}/idecomp.spad ${OUTSRC}/indexedp.spad \
 ${OUTSRC}/infprod.spad ${OUTSRC}/intaf.spad ${OUTSRC}/intalg.spad \
 ${OUTSRC}/intaux.spad ${OUTSRC}/intclos.spad ${OUTSRC}/intef.spad \
 ${OUTSRC}/integer.spad ${OUTSRC}/integrat.spad \
 ${OUTSRC}/interval.spad \
 ${OUTSRC}/intfact.spad ${OUTSRC}/intpm.spad \
 ${OUTSRC}/intrf.spad \
 ${OUTSRC}/irexpand.spad \
 ${OUTSRC}/irsn.spad ${OUTSRC}/ituple.spad \
 ${OUTSRC}/kl.spad ${OUTSRC}/kovacic.spad \
 ${OUTSRC}/laplace.spad ${OUTSRC}/laurent.spad ${OUTSRC}/leadcdet.spad \
 ${OUTSRC}/lie.spad ${OUTSRC}/limitps.spad ${OUTSRC}/lindep.spad \
 ${OUTSRC}/lingrob.spad ${OUTSRC}/liouv.spad ${OUTSRC}/listgcd.spad \
 ${OUTSRC}/list.spad ${OUTSRC}/lmdict.spad ${OUTSRC}/lodof.spad \
 ${OUTSRC}/lodop.spad ${OUTSRC}/lodo.spad \
 ${OUTSRC}/manip.spad ${OUTSRC}/mappkg.spad ${OUTSRC}/matcat.spad \
 ${OUTSRC}/matfuns.spad ${OUTSRC}/mathml.spad \
 ${OUTSRC}/matrix.spad ${OUTSRC}/matstor.spad \
 ${OUTSRC}/mesh.spad ${OUTSRC}/mfinfact.spad ${OUTSRC}/misc.spad \
 ${OUTSRC}/mkfunc.spad ${OUTSRC}/mkrecord.spad \
 ${OUTSRC}/mlift.spad ${OUTSRC}/moddfact.spad ${OUTSRC}/modgcd.spad \
 ${OUTSRC}/modmonom.spad ${OUTSRC}/modmon.spad ${OUTSRC}/modring.spad \
 ${OUTSRC}/moebius.spad ${OUTSRC}/mring.spad ${OUTSRC}/mset.spad \
 ${OUTSRC}/mts.spad ${OUTSRC}/multfact.spad ${OUTSRC}/multpoly.spad \
 ${OUTSRC}/multsqfr.spad \
 ${OUTSRC}/naalgc.spad ${OUTSRC}/naalg.spad \
 ${OUTSRC}/newdata.spad ${OUTSRC}/newpoint.spad \
 ${OUTSRC}/newpoly.spad ${OUTSRC}/nlinsol.spad ${OUTSRC}/nlode.spad \
 ${OUTSRC}/npcoef.spad \
 ${OUTSRC}/nregset.spad \
 ${OUTSRC}/nsregset.spad ${OUTSRC}/numeigen.spad ${OUTSRC}/numeric.spad \
 ${OUTSRC}/numode.spad ${OUTSRC}/numquad.spad ${OUTSRC}/numsolve.spad \
 ${OUTSRC}/numtheor.spad \
 ${OUTSRC}/oct.spad ${OUTSRC}/odealg.spad ${OUTSRC}/odeef.spad \
 ${OUTSRC}/oderf.spad ${OUTSRC}/omcat.spad ${OUTSRC}/omdev.spad \
 ${OUTSRC}/omerror.spad ${OUTSRC}/omserver.spad ${OUTSRC}/opalg.spad \
 ${OUTSRC}/openmath.spad ${OUTSRC}/op.spad ${OUTSRC}/ore.spad \
 ${OUTSRC}/outform.spad ${OUTSRC}/out.spad \
 ${OUTSRC}/pade.spad ${OUTSRC}/padiclib.spad ${OUTSRC}/padic.spad \
 ${OUTSRC}/paramete.spad ${OUTSRC}/partperm.spad ${OUTSRC}/patmatch1.spad \
 ${OUTSRC}/patmatch2.spad ${OUTSRC}/pattern.spad ${OUTSRC}/pcurve.spad \
 ${OUTSRC}/pdecomp.spad ${OUTSRC}/perman.spad ${OUTSRC}/permgrps.spad \
 ${OUTSRC}/perm.spad ${OUTSRC}/pfbr.spad ${OUTSRC}/pfo.spad \
 ${OUTSRC}/pfr.spad ${OUTSRC}/pf.spad ${OUTSRC}/pgcd.spad \
 ${OUTSRC}/pgrobner.spad ${OUTSRC}/pinterp.spad ${OUTSRC}/pleqn.spad \
 ${OUTSRC}/plot3d.spad ${OUTSRC}/plot.spad ${OUTSRC}/plottool.spad \
 ${OUTSRC}/polset.spad ${OUTSRC}/poltopol.spad ${OUTSRC}/polycat.spad \
 ${OUTSRC}/poly.spad ${OUTSRC}/primelt.spad ${OUTSRC}/print.spad \
 ${OUTSRC}/product.spad ${OUTSRC}/prs.spad ${OUTSRC}/prtition.spad \
 ${OUTSRC}/pscat.spad ${OUTSRC}/pseudolin.spad ${OUTSRC}/ptranfn.spad \
 ${OUTSRC}/puiseux.spad \
 ${OUTSRC}/qalgset.spad ${OUTSRC}/quat.spad \
 ${OUTSRC}/radeigen.spad ${OUTSRC}/radix.spad ${OUTSRC}/random.spad \
 ${OUTSRC}/ratfact.spad ${OUTSRC}/rdeef.spad ${OUTSRC}/rderf.spad \
 ${OUTSRC}/rdesys.spad ${OUTSRC}/real0q.spad ${OUTSRC}/realzero.spad \
 ${OUTSRC}/reclos.spad ${OUTSRC}/regset.spad ${OUTSRC}/rep1.spad \
 ${OUTSRC}/rep2.spad ${OUTSRC}/resring.spad ${OUTSRC}/retract.spad \
 ${OUTSRC}/rf.spad ${OUTSRC}/riccati.spad ${OUTSRC}/rinterp.spad \
 ${OUTSRC}/routines.spad \
 ${OUTSRC}/rule.spad \
 ${OUTSRC}/seg.spad ${OUTSRC}/setorder.spad ${OUTSRC}/sets.spad \
 ${OUTSRC}/sex.spad ${OUTSRC}/sf.spad ${OUTSRC}/sgcf.spad \
 ${OUTSRC}/sign.spad ${OUTSRC}/si.spad ${OUTSRC}/smith.spad \
 ${OUTSRC}/solvedio.spad ${OUTSRC}/solvefor.spad ${OUTSRC}/solvelin.spad \
 ${OUTSRC}/solverad.spad ${OUTSRC}/sortpak.spad ${OUTSRC}/space.spad \
 ${OUTSRC}/special.spad ${OUTSRC}/sregset.spad ${OUTSRC}/s.spad \
 ${OUTSRC}/stream.spad ${OUTSRC}/string.spad ${OUTSRC}/sttaylor.spad \
 ${OUTSRC}/sttf.spad ${OUTSRC}/sturm.spad ${OUTSRC}/suchthat.spad \
 ${OUTSRC}/suls.spad ${OUTSRC}/sum.spad ${OUTSRC}/sups.spad \
 ${OUTSRC}/supxs.spad ${OUTSRC}/suts.spad ${OUTSRC}/symbol.spad \
 ${OUTSRC}/syssolp.spad ${OUTSRC}/system.spad \
 ${OUTSRC}/tableau.spad ${OUTSRC}/table.spad ${OUTSRC}/taylor.spad \
 ${OUTSRC}/tex.spad ${OUTSRC}/tools.spad ${OUTSRC}/transsolve.spad \
 ${OUTSRC}/tree.spad ${OUTSRC}/trigcat.spad ${OUTSRC}/triset.spad \
 ${OUTSRC}/tube.spad ${OUTSRC}/twofact.spad \
 ${OUTSRC}/unifact.spad ${OUTSRC}/updecomp.spad ${OUTSRC}/updivp.spad \
 ${OUTSRC}/utsode.spad \
 ${OUTSRC}/variable.spad ${OUTSRC}/vector.spad ${OUTSRC}/view2D.spad \
 ${OUTSRC}/view3D.spad ${OUTSRC}/viewDef.spad ${OUTSRC}/viewpack.spad \
 ${OUTSRC}/void.spad \
 ${OUTSRC}/weier.spad ${OUTSRC}/wtpol.spad \
 ${OUTSRC}/xlpoly.spad ${OUTSRC}/xpoly.spad \
 ${OUTSRC}/ystream.spad \
 ${OUTSRC}/zerodim.spad


ALDORFILES= \
	axtimer.as \
	ffrac.as \
	herm.as \
	interval.as \
	invnode.as \
	invrender.as \
	invtypes.as \
	invutils.as \
	iviews.as \
	ndftip.as \
	nepip.as \
	noptip.as nqip.as \
	nrc.as nsfip.as 


DOCFILES= \
 ${DOC}/acplot.spad.dvi ${DOC}/aggcat2.spad.dvi ${DOC}/aggcat.spad.dvi \
 ${DOC}/algcat.spad.dvi ${DOC}/algext.spad.dvi ${DOC}/algfact.spad.dvi \
 ${DOC}/algfunc.spad.dvi ${DOC}/allfact.spad.dvi ${DOC}/alql.spad.dvi \
 ${DOC}/annacat.spad.dvi ${DOC}/any.spad.dvi ${DOC}/array1.spad.dvi \
 ${DOC}/array2.spad.dvi ${DOC}/asp.spad.dvi ${DOC}/attreg.spad.dvi \
 ${DOC}/axtimer.as.dvi \
 ${DOC}/bags.spad.dvi ${DOC}/bezout.spad.dvi ${DOC}/boolean.spad.dvi \
 ${DOC}/brill.spad.dvi \
 ${DOC}/c02.spad.dvi ${DOC}/c05.spad.dvi ${DOC}/c06.spad.dvi \
 ${DOC}/card.spad.dvi ${DOC}/carten.spad.dvi ${DOC}/catdef.spad.dvi \
 ${DOC}/cden.spad.dvi ${DOC}/clifford.spad.dvi ${DOC}/clip.spad.dvi \
 ${DOC}/cmplxrt.spad.dvi ${DOC}/coerce.spad.dvi ${DOC}/color.spad.dvi \
 ${DOC}/combfunc.spad.dvi ${DOC}/combinat.spad.dvi ${DOC}/complet.spad.dvi \
 ${DOC}/constant.spad.dvi ${DOC}/contfrac.spad.dvi ${DOC}/cont.spad.dvi \
 ${DOC}/coordsys.spad.dvi ${DOC}/cra.spad.dvi ${DOC}/crfp.spad.dvi \
 ${DOC}/curve.spad.dvi ${DOC}/cycles.spad.dvi ${DOC}/cyclotom.spad.dvi \
 ${DOC}/d01agents.spad.dvi ${DOC}/d01Package.spad.dvi \
 ${DOC}/d01routine.spad.dvi ${DOC}/d01.spad.dvi ${DOC}/d01transform.spad.dvi \
 ${DOC}/d01weights.spad.dvi ${DOC}/d02agents.spad.dvi \
 ${DOC}/d02Package.spad.dvi ${DOC}/d02routine.spad.dvi ${DOC}/d02.spad.dvi \
 ${DOC}/d03agents.spad.dvi ${DOC}/d03Package.spad.dvi \
 ${DOC}/d03routine.spad.dvi ${DOC}/d03.spad.dvi ${DOC}/ddfact.spad.dvi \
 ${DOC}/defaults.spad.dvi ${DOC}/defintef.spad.dvi ${DOC}/defintrf.spad.dvi \
 ${DOC}/degred.spad.dvi ${DOC}/derham.spad.dvi ${DOC}/dhmatrix.spad.dvi \
 ${DOC}/divisor.spad.dvi ${DOC}/dpolcat.spad.dvi ${DOC}/drawopt.spad.dvi \
 ${DOC}/drawpak.spad.dvi ${DOC}/draw.spad.dvi \
 ${DOC}/e01.spad.dvi ${DOC}/e02.spad.dvi ${DOC}/e04agents.spad.dvi \
 ${DOC}/e04Package.spad.dvi ${DOC}/e04routine.spad.dvi ${DOC}/e04.spad.dvi \
 ${DOC}/efstruc.spad.dvi ${DOC}/efuls.spad.dvi ${DOC}/efupxs.spad.dvi \
 ${DOC}/eigen.spad.dvi ${DOC}/elemntry.spad.dvi ${DOC}/elfuts.spad.dvi \
 ${DOC}/equation1.spad.dvi ${DOC}/equation2.spad.dvi ${DOC}/error.spad.dvi \
 ${DOC}/expexpan.spad.dvi ${DOC}/exposed.lsp.dvi ${DOC}/expr2ups.spad.dvi \
 ${DOC}/exprode.spad.dvi ${DOC}/expr.spad.dvi \
 ${DOC}/f01.spad.dvi ${DOC}/f02.spad.dvi ${DOC}/f04.spad.dvi \
 ${DOC}/f07.spad.dvi ${DOC}/facutil.spad.dvi ${DOC}/ffcat.spad.dvi \
 ${DOC}/ffcg.spad.dvi ${DOC}/fff.spad.dvi ${DOC}/ffhom.spad.dvi \
 ${DOC}/ffnb.spad.dvi ${DOC}/ffpoly2.spad.dvi ${DOC}/ffpoly.spad.dvi \
 ${DOC}/ffp.spad.dvi ${DOC}/ffrac.as.dvi ${DOC}/ffx.spad.dvi \
 ${DOC}/files.spad.dvi ${DOC}/float.spad.dvi ${DOC}/fmod.spad.dvi \
 ${DOC}/fname.spad.dvi ${DOC}/fnla.spad.dvi ${DOC}/formula.spad.dvi \
 ${DOC}/fortcat.spad.dvi ${DOC}/fortmac.spad.dvi ${DOC}/fortpak.spad.dvi \
 ${DOC}/fortran.spad.dvi ${DOC}/forttyp.spad.dvi ${DOC}/fourier.spad.dvi \
 ${DOC}/fparfrac.spad.dvi ${DOC}/fraction.spad.dvi ${DOC}/free.spad.dvi \
 ${DOC}/fr.spad.dvi ${DOC}/fs2expxp.spad.dvi ${DOC}/fs2ups.spad.dvi \
 ${DOC}/fspace.spad.dvi ${DOC}/funcpkgs.spad.dvi ${DOC}/functions.spad.dvi \
 ${DOC}/galfact.spad.dvi ${DOC}/galfactu.spad.dvi ${DOC}/galpolyu.spad.dvi \
 ${DOC}/galutil.spad.dvi ${DOC}/gaussfac.spad.dvi ${DOC}/gaussian.spad.dvi \
 ${DOC}/gbeuclid.spad.dvi ${DOC}/gbintern.spad.dvi ${DOC}/gb.spad.dvi \
 ${DOC}/gdirprod.spad.dvi ${DOC}/gdpoly.spad.dvi ${DOC}/geneez.spad.dvi \
 ${DOC}/generic.spad.dvi ${DOC}/genufact.spad.dvi ${DOC}/genups.spad.dvi \
 ${DOC}/ghensel.spad.dvi ${DOC}/gpgcd.spad.dvi ${DOC}/gpol.spad.dvi \
 ${DOC}/grdef.spad.dvi ${DOC}/groebf.spad.dvi ${DOC}/groebsol.spad.dvi \
 ${DOC}/gseries.spad.dvi \
 ${DOC}/herm.as.dvi \
 ${DOC}/ideal.spad.dvi ${DOC}/idecomp.spad.dvi ${DOC}/indexedp.spad.dvi \
 ${DOC}/infprod.spad.dvi ${DOC}/intaf.spad.dvi ${DOC}/intalg.spad.dvi \
 ${DOC}/intaux.spad.dvi ${DOC}/intclos.spad.dvi ${DOC}/intef.spad.dvi \
 ${DOC}/integer.spad.dvi ${DOC}/integrat.spad.dvi \
 ${DOC}/interval.as.dvi ${DOC}/interval.spad.dvi \
 ${DOC}/intfact.spad.dvi ${DOC}/intpm.spad.dvi \
 ${DOC}/intrf.spad.dvi ${DOC}/invnode.as.dvi ${DOC}/invrender.as.dvi \
 ${DOC}/invtypes.as.dvi ${DOC}/invutils.as.dvi ${DOC}/irexpand.spad.dvi \
 ${DOC}/irsn.spad.dvi ${DOC}/ituple.spad.dvi ${DOC}/iviews.as.dvi \
 ${DOC}/kl.spad.dvi ${DOC}/kovacic.spad.dvi \
 ${DOC}/laplace.spad.dvi ${DOC}/laurent.spad.dvi ${DOC}/leadcdet.spad.dvi \
 ${DOC}/lie.spad.dvi ${DOC}/limitps.spad.dvi ${DOC}/lindep.spad.dvi \
 ${DOC}/lingrob.spad.dvi ${DOC}/liouv.spad.dvi ${DOC}/listgcd.spad.dvi \
 ${DOC}/list.spad.dvi ${DOC}/lmdict.spad.dvi ${DOC}/lodof.spad.dvi \
 ${DOC}/lodop.spad.dvi ${DOC}/lodo.spad.dvi \
 ${DOC}/manip.spad.dvi ${DOC}/mappkg.spad.dvi ${DOC}/matcat.spad.dvi \
 ${DOC}/matfuns.spad.dvi ${DOC}/mathml.spad.dvi \
 ${DOC}/matrix.spad.dvi ${DOC}/matstor.spad.dvi \
 ${DOC}/mesh.spad.dvi ${DOC}/mfinfact.spad.dvi ${DOC}/misc.spad.dvi \
 ${DOC}/mkfunc.spad.dvi ${DOC}/mkrecord.spad.dvi ${DOC}/mlift.spad.jhd.dvi \
 ${DOC}/mlift.spad.dvi ${DOC}/moddfact.spad.dvi ${DOC}/modgcd.spad.dvi \
 ${DOC}/modmonom.spad.dvi ${DOC}/modmon.spad.dvi ${DOC}/modring.spad.dvi \
 ${DOC}/moebius.spad.dvi ${DOC}/mring.spad.dvi ${DOC}/mset.spad.dvi \
 ${DOC}/mts.spad.dvi ${DOC}/multfact.spad.dvi ${DOC}/multpoly.spad.dvi \
 ${DOC}/multsqfr.spad.dvi \
 ${DOC}/naalgc.spad.dvi ${DOC}/naalg.spad.dvi ${DOC}/ndftip.as.dvi \
 ${DOC}/nepip.as.dvi ${DOC}/newdata.spad.dvi ${DOC}/newpoint.spad.dvi \
 ${DOC}/newpoly.spad.dvi ${DOC}/nlinsol.spad.dvi ${DOC}/nlode.spad.dvi \
 ${DOC}/noptip.as.dvi ${DOC}/npcoef.spad.dvi ${DOC}/nqip.as.dvi \
 ${DOC}/nrc.as.dvi ${DOC}/nregset.spad.dvi ${DOC}/nsfip.as.dvi \
 ${DOC}/nsregset.spad.dvi ${DOC}/numeigen.spad.dvi ${DOC}/numeric.spad.dvi \
 ${DOC}/numode.spad.dvi ${DOC}/numquad.spad.dvi ${DOC}/numsolve.spad.dvi \
 ${DOC}/numtheor.spad.dvi \
 ${DOC}/oct.spad.dvi ${DOC}/odealg.spad.dvi ${DOC}/odeef.spad.dvi \
 ${DOC}/oderf.spad.dvi ${DOC}/omcat.spad.dvi ${DOC}/omdev.spad.dvi \
 ${DOC}/omerror.spad.dvi ${DOC}/omserver.spad.dvi ${DOC}/opalg.spad.dvi \
 ${DOC}/openmath.spad.dvi ${DOC}/op.spad.dvi ${DOC}/ore.spad.dvi \
 ${DOC}/outform.spad.dvi ${DOC}/out.spad.dvi \
 ${DOC}/pade.spad.dvi ${DOC}/padiclib.spad.dvi ${DOC}/padic.spad.dvi \
 ${DOC}/paramete.spad.dvi ${DOC}/partperm.spad.dvi ${DOC}/patmatch1.spad.dvi \
 ${DOC}/patmatch2.spad.dvi ${DOC}/pattern.spad.dvi ${DOC}/pcurve.spad.dvi \
 ${DOC}/pdecomp.spad.dvi ${DOC}/perman.spad.dvi ${DOC}/permgrps.spad.dvi \
 ${DOC}/perm.spad.dvi ${DOC}/pfbr.spad.dvi ${DOC}/pfo.spad.dvi \
 ${DOC}/pfr.spad.dvi ${DOC}/pf.spad.dvi ${DOC}/pgcd.spad.dvi \
 ${DOC}/pgrobner.spad.dvi ${DOC}/pinterp.spad.dvi ${DOC}/pleqn.spad.dvi \
 ${DOC}/plot3d.spad.dvi ${DOC}/plot.spad.dvi ${DOC}/plottool.spad.dvi \
 ${DOC}/polset.spad.dvi ${DOC}/poltopol.spad.dvi ${DOC}/polycat.spad.dvi \
 ${DOC}/poly.spad.dvi ${DOC}/primelt.spad.dvi ${DOC}/print.spad.dvi \
 ${DOC}/product.spad.dvi ${DOC}/prs.spad.dvi ${DOC}/prtition.spad.dvi \
 ${DOC}/pscat.spad.dvi ${DOC}/pseudolin.spad.dvi ${DOC}/ptranfn.spad.dvi \
 ${DOC}/puiseux.spad.dvi \
 ${DOC}/qalgset.spad.dvi ${DOC}/quat.spad.dvi \
 ${DOC}/radeigen.spad.dvi ${DOC}/radix.spad.dvi ${DOC}/random.spad.dvi \
 ${DOC}/ratfact.spad.dvi ${DOC}/rdeef.spad.dvi ${DOC}/rderf.spad.dvi \
 ${DOC}/rdesys.spad.dvi ${DOC}/real0q.spad.dvi ${DOC}/realzero.spad.dvi \
 ${DOC}/reclos.spad.dvi ${DOC}/regset.spad.dvi ${DOC}/rep1.spad.dvi \
 ${DOC}/rep2.spad.dvi ${DOC}/resring.spad.dvi ${DOC}/retract.spad.dvi \
 ${DOC}/rf.spad.dvi ${DOC}/riccati.spad.dvi ${DOC}/rinterp.spad.dvi \
 ${DOC}/routines.spad.dvi \
 ${DOC}/rule.spad.dvi \
 ${DOC}/seg.spad.dvi ${DOC}/setorder.spad.dvi ${DOC}/sets.spad.dvi \
 ${DOC}/sex.spad.dvi ${DOC}/sf.spad.dvi ${DOC}/sgcf.spad.dvi \
 ${DOC}/sign.spad.dvi ${DOC}/si.spad.dvi ${DOC}/smith.spad.dvi \
 ${DOC}/solvedio.spad.dvi ${DOC}/solvefor.spad.dvi ${DOC}/solvelin.spad.dvi \
 ${DOC}/solverad.spad.dvi ${DOC}/sortpak.spad.dvi ${DOC}/space.spad.dvi \
 ${DOC}/special.spad.dvi ${DOC}/sregset.spad.dvi ${DOC}/s.spad.dvi \
 ${DOC}/stream.spad.dvi ${DOC}/string.spad.dvi ${DOC}/sttaylor.spad.dvi \
 ${DOC}/sttf.spad.dvi ${DOC}/sturm.spad.dvi ${DOC}/suchthat.spad.dvi \
 ${DOC}/suls.spad.dvi ${DOC}/sum.spad.dvi ${DOC}/sups.spad.dvi \
 ${DOC}/supxs.spad.dvi ${DOC}/suts.spad.dvi ${DOC}/symbol.spad.dvi \
 ${DOC}/syssolp.spad.dvi ${DOC}/system.spad.dvi \
 ${DOC}/tableau.spad.dvi ${DOC}/table.spad.dvi ${DOC}/taylor.spad.dvi \
 ${DOC}/tex.spad.dvi ${DOC}/tools.spad.dvi ${DOC}/transsolve.spad.dvi \
 ${DOC}/tree.spad.dvi ${DOC}/trigcat.spad.dvi ${DOC}/triset.spad.dvi \
 ${DOC}/tube.spad.dvi ${DOC}/twofact.spad.dvi \
 ${DOC}/unifact.spad.dvi ${DOC}/updecomp.spad.dvi ${DOC}/updivp.spad.dvi \
 ${DOC}/utsode.spad.dvi \
 ${DOC}/variable.spad.dvi ${DOC}/vector.spad.dvi ${DOC}/view2D.spad.dvi \
 ${DOC}/view3D.spad.dvi ${DOC}/viewDef.spad.dvi ${DOC}/viewpack.spad.dvi \
 ${DOC}/void.spad.dvi \
 ${DOC}/weier.spad.dvi ${DOC}/wtpol.spad.dvi \
 ${DOC}/xlpoly.spad.dvi ${DOC}/xpoly.spad.dvi \
 ${DOC}/ystream.spad.dvi \
 ${DOC}/zerodim.spad.dvi


TESTS=${INPUT}/INTHEORY.input ${INPUT}/VIEW2D.input ${INPUT}/TESTFR.input


subdir = src/algebra/

# The list of objects necessary to bootstrap the whole algebra library.
axiom_algebra_layer_strap = \
	$(addprefix strap/,$(axiom_algebra_bootstrap))

axiom_algebra_layer_strap_objects = \
	$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_strap))


axiom_algebra_bootstrap = \
  ABELGRP  ABELGRP- ABELMON  ABELMON- \
  ABELSG   ABELSG-  ALAGG    BOOLEAN  \
  CABMON   CHAR     CLAGG    CLAGG-   \
  COMRING  DFLOAT   DIFRING  DIFRING- \
  DIVRING  DIVRING- ENTIRER  ES       \
  ES-      EUCDOM   EUCDOM-  FFIELDC  \
  FFIELDC- FPS      FPS-     GCDDOM   \
  GCDDOM-  HOAGG    HOAGG-   ILIST    \
  INS      INS-     INT      INTDOM   \
  INTDOM-  ISTRING  LIST     LNAGG    \
  LNAGG-   LSAGG    LSAGG-   MONOID   \
  MONOID-  MTSCAT   NNI      OINTDOM  \
  ORDRING  ORDRING- OUTFORM  PI       \
  PRIMARR  POLYCAT  POLYCAT- PSETCAT  \
  PSETCAT- QFCAT    QFCAT-   RCAGG    \
  RCAGG-   REF      RING     RING-    \
  RNG      RNS      RNS-     SETAGG   \
  SETAGG-  SETCAT   SETCAT-  SINT     \
  STAGG    STAGG-   SYMBOL   TSETCAT  \
  TSETCAT- UFD      UFD-     ULSCAT   \
  UPOLYC   UPOLYC-  URAGG    URAGG-   \
  VECTOR

axiom_algebra_bootstrap_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_bootstrap))

axiom_algebra_bootstrap_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT), $(axiom_algebra_bootstrap)))

axiom_algebra_layer_0 = \
  AHYP     ATTREG   CFCAT    ELTAB    KOERCE   KONVERT  \
  KRCFROM  KVTFROM                                      \
  MSYSCMD           OM       OMCONN   OMDEV    OUT      \
  PRIMCAT  PRINT    PTRANFN  SPFCAT   TYPE     UTYPE    \
           PROPERTY BASTYPE  BASTYPE-          LMODULE  \
  RMODULE  FINITE   STEP     SGROUP   SGROUP-  ABELSG   \
  ABELSG-  ORDSET   ORDSET-           FILECAT  SEXCAT   \
  MKBCFUNC MKRECORD MKUCFUNC DROPT1   PLOT1    ITFUN2   \
  ITFUN3   STREAM1  STREAM2  STREAM3  ANY1     SEGBIND2 \
  COMBOPC  EQ2      NONE1    CONDUIT  IOMODE   CTORKIND

axiom_algebra_layer_0_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_0))

axiom_algebra_layer_0_objects = \
	$(addprefix $(OUT)/, \
           $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_0))) 
axiom_algebra_layer_1 = \
  AGG      AGG-     IEVALAB  IEVALAB- FORTCAT   ITUPLE   \
  PATAB    PPCURVE  PSCURVE  REAL     RESLATC   RETRACT  \
  RETRACT- SEGCAT   BINDING           BMODULE   LOGIC    \
  LOGIC-   EVALAB   EVALAB-  FEVALAB  FEVALAB-           \
  OSGROUP  MAYBE    DATAARY  PROPLOG  HOMOTOP

axiom_algebra_layer_1_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_1))

axiom_algebra_layer_1_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_1)))
axiom_algebra_layer_2 = \
  ELTAGG   ELTAGG- FMC      FMFUN   FORTFN   FVC     \
  SYNTAX   FVFUN   INTRET   IXAGG   IXAGG-   SEGXCAT \
  CONTOUR  LIST3   MKFUNC   OASGP   KTVLOGIC FNCAT   \
  BYTE     IDENT

axiom_algebra_layer_2_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_2))

axiom_algebra_layer_2_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_2)))
axiom_algebra_layer_3 = \
   GRDEF     SCOPE    MAPHACK1 MAPHACK2 MAPHACK3 MAPPKG1  \
   MAPPKG2   MAPPKG3  INTBIT   MONAD    MONAD-   



axiom_algebra_layer_3_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_3))

axiom_algebra_layer_3_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_3)))
axiom_algebra_layer_4 = \
  ANON              COMM     COMPPROP ESCONT1  EXIT     \
  FAMONC   FORMULA1 IDPC              NONE     NUMINT   \
  ODECAT            OMENC    ONECOMP2 OPTCAT            \
  PALETTE  PARPCURV PARPC2   PARSCURV PARSC2   PARSURF  \
  PARSU2   PATMAB   PATRES2  PATTERN1 PDECAT            \
  REPSQ    REPDB    RFDIST   RIDIST   SPACEC   SPLNODE  \
  SUCH     TEX1     UDVO     YSTREAM  PAIR     ENV      \
  ATRIG    ATRIG-   GROUP    GROUP-   LALG     LALG-    \
  OAMON    BGAGG    BGAGG-   BRAGG    BRAGG-   ELAGG    \
  ELAGG-  DLAGG     MODULE  MODULE-  


axiom_algebra_layer_4_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_4))

axiom_algebra_layer_4_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_4)))
axiom_algebra_layer_5 = \
  CACHSET  CHARNZ   CHARZ    DVARCAT  DVARCAT- ELEMFUN  \
  ELEMFUN- ESTOOLS2 FCOMP    FPATMAB  IDPAM    IDPO     \
  INCRMAPS KERNEL2  LINEXP   MODMONOM MONADWU  MONADWU- \
  MRF2     NARNG    NARNG-   NSUP2    ODVAR    OPQUERY  \
  ORDFIN   ORDMON   PATMATCH PERMCAT  PDRING   PDRING-  \
  SDVAR    SUP2     TRIGCAT  TRIGCAT- ULS2     UP2      \
  ELABEXPR OCAMON   

axiom_algebra_layer_5_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_5))

axiom_algebra_layer_5_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_5)))
axiom_algebra_layer_6 = \
  ALGEBRA ALGEBRA- AUTOMOR  CARTEN2 CHARPOL  COMPLEX2 \
  DIFEXT  DIFEXT-  ES1      ES2     GRMOD    GRMOD-   \
  HYPCAT  HYPCAT-  MKCHSET  MODRING NASRING  NASRING- \
  SORTPAK ZMOD     PRQAGG   QUAGG   SKAGG    DQAGG    \
  PID     OAGROUP  OAMONS

axiom_algebra_layer_6_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_6))
axiom_algebra_layer_6_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_6)))
axiom_algebra_layer_7 = \
  BTCAT  BTCAT-  LNAGG    LNAGG-   FMCAT   IDPOAM   \
  IFAMON GRALG   GRALG-   FLAGG    FLAGG-             

axiom_algebra_layer_7_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_7))

axiom_algebra_layer_7_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_7)))
axiom_algebra_layer_8 = \
  BSTREE  BTOURN   CARD     DRAWHACK  FACTFUNC FMTC  \
  FR2     FRAC2    FRUTIL   ITAYLOR   MLO      NAALG \
  NAALG-  OP       ORDCOMP2 RANDSRC   UNISEG2  XALG  \
  FIELD   FIELD-   A1AGG    A1AGG-    ARR2CAT  ARR2CAT-

axiom_algebra_layer_8_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_8))

axiom_algebra_layer_8_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_8)))
axiom_algebra_layer_9 = \
  AMR      AMR-     DEGRED   DLP      EAB      ESTOOLS1 \
  FAGROUP  FAMONOID FLINEXP  FLINEXP- FRETRCT  FRETRCT- \
  FSERIES  FT       IDPAG    IDPOAMS  INFINITY LA       \
  OMLO     ORTHPOL  PRODUCT  PADICCT  PMPRED   PMASS    \
  PTFUNC2  RADCAT   RADCAT-  RATRET   RADUTIL  UPXS2    \
  XFALG    ZLINDEP  BBTREE   LSAGG    LSAGG-   SRAGG    \
  SRAGG-   STRICAT  ODEIFTBL NIPROB   ODEPROB  OPTPROB  \
  PDEPROB  COLOR    SIG


axiom_algebra_layer_9_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_9))

axiom_algebra_layer_9_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_9)))
axiom_algebra_layer_10 = \
  ASP34    BFUNCT   BPADIC   \
  BTREE    CRAPACK  DEQUEUE  DLIST    \
  DRAWCX   D01GBFA  D02EJFA  D03FAFA  \
  DRAWPT   FAMR     FAMR-    FLASORT  \
  FLAGG2   FGROUP   FM       FM1      \
  FPC      FPC-     FMONOID  INDE     \
  IPADIC   IROOT    IR2      LEXP     \
  LIECAT   LIECAT-  LIST2    LIST2MAP \
  LMOPS    LZSTAGG  LZSTAGG- MAGMA    \
  MESH     MOEBIUS  MODFIELD MODOP    \
  MRING    MTHING   NCNTFRAC NCODIV   \
  NUMTUBE  ODR      OFMONOID ONECOMP  \
  ORDCOMP  OREPCAT  OREPCAT- OWP      \
  PADIC    PATTERN2 PATLRES  PARTPERM \
  PBWLB    PENDTREE PGE      PGROEB   \
  PINTERP  PLOTTOOL PFR      PMDOWN   \
  PRTITION PMINS    PMLSAGG  PMTOOLS  \
  PSCAT    PSCAT-   QFORM    QUEUE    \
  SCACHE   SEG      SEG2     SEXOF    \
  STACK    STTAYLOR TABLBUMP TABLEAU  \
  TOPSP    TRANFUN  TRANFUN- TUBE     \
  UDPO     UNISEG   VIEW     VSPACE   \
  VSPACE-  XPOLYC   XPR    BTAGG    BTAGG-  


axiom_algebra_layer_10_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_10))

axiom_algebra_layer_10_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_10)))
axiom_algebra_layer_11 = \
  STRING   \
  APPLYORE ARRAY1   ARRAY12  ARRAY2   \
  ASTACK   COMBINAT \
  CSTTOOLS D01FCFA  E04MBFA  FARRAY   \
  FLALG    GALUTIL  HEAP     IARRAY1  \
  IARRAY2  IFARRAY  INTCAT   INTHEORY \
  IRREDFFX LFCAT    LODOCAT  LODOCAT- \
  LWORD    MATCAT   MATCAT-  MATSTOR  \
  ORESUP   OREPCTO  OREUP    PLOT3D   \
  PR       PREASSOC PRIMARR2 REDORDER \
  STREAM   SYMPOLY  \
  TS       TUPLE    UPSCAT   UPSCAT-  \
  VECTCAT  VECTCAT- XDPOLY   XEXPPKG  \
  XF       XF-      XPBWPOLY XPOLY    \
  XRPOLY   

axiom_algebra_layer_11_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_11))

axiom_algebra_layer_11_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_11)))
axiom_algebra_layer_12 = \
  DIOPS    DIOPS-  DIAGG   DIAGG-  BITS     DIRPROD2 IMATRIX \
  IVECTOR  LPOLY   LSMP    LSMP1   MATCAT2  PTCAT    TRIMAT  \
  FSAGG    FSAGG-  SYSTEM  HOSTNAME PORTNUM

axiom_algebra_layer_12_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_12))

axiom_algebra_layer_12_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_12)))
axiom_algebra_layer_13 = \
  KDAGG    KDAGG-   \
  ASSOCEQ  CARTEN   CLIF     CLIP     \
  COORDSYS DBASE    DHMATRIX DIOSP    \
  DIRPCAT  DIRPCAT- D02BBFA  D02BHFA  \
  D02CJFA  FAXF     FAXF-    FFPOLY2  \
  FNLA     GRAY     HB       IRSN     \
  MCALCFN  MHROWRED NUMODE   NUMQUAD  \
  ODESYS   ODETOOLS ORDFUNS  PERMAN   \
  PFECAT   PFECAT-  POINT    PSEUDLIN \
  PTPACK   REP2     SETMN    SEX      \
  SYMFUNC  VECTOR2     CHAR  \
  INBCON   INBCON-  OUTBCON  OUTBCON-

axiom_algebra_layer_13_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_13))

axiom_algebra_layer_13_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_13)))
axiom_algebra_layer_14 = \
  TBAGG   TBAGG-   ALIST    FS       FS-      ACF      ACF-     \
  ACFS     ACFS-    \
  ASP1     ASP10    ASP24    ASP4     \
  ASP50    ASP6     ASP73    BALFACT  \
  BEZOUT   BINARY   BINFILE  BOUNDZRO \
  BPADICRT BRILL    CDEN     CHVAR    \
  COMMUPC  CONTFRAC CVMP     CYCLOTOM \
  CYCLES   DDFACT   DECIMAL  DIRPROD  DISPLAY  DMP      \
  DPMO     DPOLCAT  DPOLCAT- D01AJFA  \
  D01AKFA  D01ALFA  D01AMFA  D01APFA  \
  D01AQFA  EMR      EQ       ERROR    \
  EVALCYC  E04DGFA  E04FDFA  E04GCFA  \
  E04JAFA  FACUTIL  FF       FFCG     \
  FFCGX    FFHOM    FFNB     FFNBX    \
  FFPOLY   FFX      FFSLPE   FGLMICPK \
  FILE     FINAALG  FINAALG- FINRALG  \
  FINRALG-          FLOATRP  FNAME    \
  FOP      FORMULA  FORT     FRAC     \
  FTEM     GENEEZ   GENMFACT GENPGCD  \
  GALFACTU GALPOLYU GB       GBEUCLID \
  GBF      GBINTERN GHENSEL  GMODPOL  \
  GOSPER   GRIMAGE  GROEBSOL HDMP     \
  HDP      HEXADEC  HEUGCD   IBPTOOLS \
  IFF      IBITS    ICARD    ICDEN    \
  IDECOMP  IIARRAY2 IMATLIN  IMATQF   \
  INMODGCD INNMFACT INPSIGN  INTHERTR \
  INTRAT   INTRF    INTSLPE  INTTR    \
  ISUMP    LAUPOL   LEADCDET LGROBP   \
  LIMITRF  LINDEP   LO       LPEFRAC  \
  LSPP     MATLIN   MCDEN    MDDFACT  \
  MFINFACT MFLOAT   MINT     MLIFT    \
  MMAP     MODMON   MONOTOOL MPCPF    \
  MPC2     MPC3     MPOLY    MPRFF    \
  MRATFAC  MULTSQFR NORMRETR NPCOEF   \
  NSUP     NTPOLFN  ODP      ODEPRIM  \
  ODEPRRIC OMPKG    OMSERVER PADEPAC  \
  PADICRAT PADICRC  PCOMP    PDECOMP  \
  PF       PFBR     PFBRU    PFOTOOLS \
  PFRPAC   PGCD     PINTERPA PLEQN    \
  PMPLCAT  PMQFCAT  PNTHEORY POLUTIL  \
  POLTOPOL POLYCATQ POLYLIFT POLYROOT \
  POLY2    POLY2UP  PRS      PSQFR    \
  PUSHVAR  QALGSET  QFCAT2   RADIX    \
  RATFACT  RCFIELD  RCFIELD- RDETR    \
  RDETRS   REAL0    REAL0Q   REALSOLV \
  RESRING  RETSOL   RF       RFFACTOR \
  RMATCAT  RMATCAT- RRCC     RRCC-    \
  SCPKG    SHDP     SHP      SIGNRF   \
  SMITH    SMP      SMTS     SOLVEFOR \
  SPLTREE  STINPROD STTFNC   SUBRESP  \
  SUMRF    SUP      SUPFRACF TANEXP   \
  TEMUTL   TEX      TEXTFILE TREE     \
  TWOFACT  UNIFACT  UP       UPCDEN   \
  UPDECOMP UPDIVP   UPMP     UPOLYC2  \
  UPXSCAT  UPSQFREE VIEWDEF  VIEW2D   \
  VOID     WEIER    WP       \
 EQTBL  GSTBL   HASHTBL \
  INTABL  INTFTBL  STBL    STRTBL\
  TABLE     FST SYMS     SYMTAB \
  IOBCON


axiom_algebra_layer_14_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_14))

axiom_algebra_layer_14_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_14)))
axiom_algebra_layer_15 = \
  DSMP     EXPUPXS  ARITY            \
  FRAMALG  FRAMALG- MDAGG    ODPOL   \
  PLOT     RMCAT2   ROIRC    SDPOL   \
  SMATCAT  SMATCAT- TUBETOOL UPXSCCA \
  UPXSCCA- JAVACODE POLY       BYTEBUF

axiom_algebra_layer_15_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_15))

axiom_algebra_layer_15_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_15)))
axiom_algebra_layer_16 = \
  DPMM     EFUPXS  FFINTBAS FRIDEAL  OPERCAT  OPERCAT- \
  FRIDEAL2 FRMOD   \
  IBATOOL  INTFACT \
  MSETAGG  MONOGEN MONOGEN- NFINTBAS \
  SPACE3  FFF

axiom_algebra_layer_16_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_16))

axiom_algebra_layer_16_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_16)))
axiom_algebra_layer_17 = \
  CCLASS  FSAGG2  GALFACT IALGFACT CTORCAT  CTORCAT- \
  IBACHIN MMLFORM NORMMA  ODERED  OMSAGG    OPSIG    \
  PERM    PERMGRP PRIMES  PWFFINTB \
  RDIST   SAE     SAEFACT SAERFFC  \
  SGCF VIEW3D 

axiom_algebra_layer_17_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_17))

axiom_algebra_layer_17_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_17)))
axiom_algebra_layer_18 = \
	INTPACK IPF     CATCTOR DOMCTOR   CTORCALL \
  KAFILE  PATRES TBCMPPK 

axiom_algebra_layer_18_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_18))

axiom_algebra_layer_18_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_18)))
axiom_algebra_layer_19 = \
  ACPLOT   ANTISYM \
  ANY               ASP27    ASP28   \
  ASP33    ASP49             ASP7    \
  ASP78             ASP9     ATTRBUT \
  BOP      BOP1     COMMONOP COMPCAT \
  COMPCAT- DRAW     DRAWCFUN DROPT   \
  DROPT0   D01ANFA  D01ASFA  D03AGNT \
  EP       E04AGNT  FCPAK1   FEXPR   \
  FFCAT    FFCAT-   FFCGP    FFNBP   \
  FFP      FLOAT    FPARFRAC FR      \
  FRNAALG  FRNAALG- \
           FUNCTION GDMP     HACKPI  \
  IDEAL    INFORM   INFORM1  IPRNTPK \
  IR       ISUPS    KERNEL   LIB     \
  LMDICT   LODOOPS  MATRIX   MKFLCFN \
  MSET     M3D      NAGC02   NAGC05  \
  NAGC06   NAGD03   NAGE01   NAGE02  \
  NAGE04   NAGF07   NAGS     NAGSP   \
  NREP     NUMFMT   OC       OC-     \
  ODEPACK  ODERAT   OMERR    OMERRK  \
  OPTPACK  OSI      PATTERN  OVAR    \
  PMKERNEL PMSYM             PRIMELT \
  QALGSET2 QEQUAT   RECLOS   REP1    \
  RESULT   QUATCAT  QUATCAT- RFFACT  \
  RMATRIX  ROMAN    ROUTINE  RPOLCAT \
  RPOLCAT- RULECOLD SAOS     SEGBIND \
  SET      SPECOUT  SQMATRIX SWITCH  \
                    SYSSOLP  UTSCAT  \
  UTSCAT-  VARIABLE WFFINTBS SPADPRSR \
  PARSER   PROPFRML

axiom_algebra_layer_19_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_19))

axiom_algebra_layer_19_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_19)))
axiom_algebra_layer_20 = \
  AF       ALGFACT  ASP12    ASP55    ASP8 \
  ALGFF    ALGMANIP ALGMFACT ALGPKG   \
  ALGSC    AN       APPRULE  ASP19    \
  ASP20    ASP30    ASP31    ASP35    \
  ASP41    ASP42    ASP74    ASP77    \
  ASP80    CINTSLPE COMPFACT COMPLEX  \
  COMPLPAT CMPLXRT  CPMATCH  CRFP     \
  CTRIGMNP D01WGTS  D02AGNT  D03EEFA  \
  DBLRESP  DERHAM   DFSFUN   DRAWCURV \
  E04NAFA  E04UCFA  EF       EFSTRUC  \
  ELFUTS   ESTOOLS  EXPEXPAN EXPRODE  \
  EXPRTUBE EXPR2    FC       FDIVCAT  \
  FDIVCAT- FDIV2    FFCAT2   FLOATCP  \
  FORDER   FORTRAN  FSRED    FSUPFACT \
  FRNAAF2  FSPECF   FS2      FS2UPS   \
  GAUSSFAC GCNAALG  GENUFACT GENUPS   \
  GTSET    GPOLSET  IAN      INEP     \
  INFPROD0 INFSP    INPRODFF INPRODPF \
  INTAF    INTALG   INTEF    INTG0    \
  INTHERAL INTPAF   INTPM    INTTOOLS \
  ITRIGMNP JORDAN   KOVACIC  LF       \
  LIE      LODOF    LSQM     OMEXPR   \
  MCMPLX   MULTFACT NAGD01   NAGD02   \
  NAGF01   NAGF02   NAGF04   NCEP     \
  NLINSOL  NSMP     NUMERIC  OCT      \
  OCTCT2   ODEPAL   ODERTRIC PADE     \
  PAN2EXPR PDEPACK  PFO      PFOQ     \
  PICOERCE PMASSFS  PMFS     PMPREDFS \
  PSETPK   QUAT     QUATCT2  RADFF    \
  RDEEF    RDEEFS   RDIV     RSETCAT  \
  RSETCAT- RULE     RULESET  SIMPAN   \
  SFORT    SOLVESER SUMFS    SUTS     \
  TOOLSIGN TRIGMNIP TRMANIP  ULSCCAT  \
  ULSCCAT- UPXSSING UTSODE   UTSODETL \
  UTS2     WUTSET   

axiom_algebra_layer_20_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_20))

axiom_algebra_layer_20_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_20)))
axiom_algebra_layer_21 = \
  DEFINTEF DFINTTLS DEFINTRF D01TRNS  \
  EFULS    ESCONT   EXPR     EXPR2UPS \
  FDIV     FSCINT   FSINT    FS2EXPXP \
  GSERIES  HELLFDIV INVLAPLA IR2F     \
  IRRF2F   LAPLACE  LIMITPS  LODEEF   \
  NODE1    ODECONST ODEINT   REP      \
  SOLVERAD SULS     SUPXS    ULS      \
  ULSCONS  UPXS     UPXSCONS UTS 

axiom_algebra_layer_21_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_21))

axiom_algebra_layer_21_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_21)))
axiom_algebra_layer_22 = \
  ASP29    COMBF    D01AGNT  FSPRMELT \
  INBFF    LODO     LODO1    LODO2    \
  NTSCAT   REGSET   RGCHAIN  RSETGCD  \
  RSDCMPK  SFRTCAT  SIGNEF   SNTSCAT  \
  SOLVETRA SRDCMPK  SREGSET  STTF     \
  SUBSPACE ZDSOLVE

axiom_algebra_layer_22_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_22))

axiom_algebra_layer_22_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_22)))
axiom_algebra_layer_23 = \
  CPIMA    IRURPK   LAZM3PK  LEXTRIPK \
  NORMPK   QCMPACK  RURPK    SFRGCD   \
  SFQCMPK  INTRVL   ODEEF    DOMAIN   CATEGORY

axiom_algebra_layer_23_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_23))

axiom_algebra_layer_23_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_23)))
axiom_algebra_layer_user =  \
	RINTERP	 ASTCAT   ASTCAT-  SASTCAT  SASTCAT- HEADAST  \
	LITERAL           TYPEAST  IMPTAST  MAPPAST  ATTRAST  \
	JOINAST  IFAST    RPTAST   WHILEAST INAST    CLLCAST  \
	LSTAST   EXITAST  RETAST   SEGAST   PRTDAST  CRCAST   \
	LETAST   SUCHAST  RDUCEAST COLONAST ADDAST   CAPSLAST \
	CASEAST  HASAST   ISAST    CATAST   WHEREAST COMMAAST \
	QQUTAST  DEFAST   MACROAST SPADXPT  SPADAST           \
	INBFILE  OUTBFILE IOBFILE  RGBCMDL  RGBCSPC           \
        CTOR     IP4ADDR  NETCLT   INETCLTS

axiom_algebra_layer_user_nrlibs = \
	$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_user))

axiom_algebra_layer_user_objects = \
	$(addprefix $(OUT)/, \
	   $(addsuffix .$(FASLEXT),$(axiom_algebra_layer_user)))

SASTCAT.NRLIB/code.$(FASLEXT): $(OUT)/ASTCAT.$(FASLEXT)
LITERAL.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT)
HEADAST.NRLIB/code.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT)
SPADXPT.NRLIB/code.$(FASLEXT): $(OUT)/ASTCAT.$(FASLEXT)
ATTRAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
TYPEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
IMPTAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT)
MAPPAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT)
SIGAST.NRLIB/code.$(FASLEXT): $(OUT)/SIG.$(FASLEXT) $(OUT)/IDENT.$(FASLEXT)
JOINAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT)
IFAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
RPTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
WHILEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
INAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
CLLCTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
LSTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
EXITAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
RETAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
SEGAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
SEQAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
PRTDAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
CRCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
RSTRCAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
LETAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
RDUCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
SUCHTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
COLONAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
ADDAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
CAPSLAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
CASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
HASAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
ISAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
CATAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
WHEREAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
COMMAAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
QQUTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT)
DEFAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
MACROAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
SPADAST.NRLIB/code.$(FASLEXT): \
  $(addprefix $(OUT)/,$(addsuffix .$(FASLEXT), \
     IMPTAST DEFAST MACROAST WHEREAST  CATAST CAPSLAST \
     SIGAST ATTRAST MAPPAST IFAST RPTAST WHILEAST INAST \
     CLLCTAST LSTAST EXITAST RETAST CRCEAST PRTDAST RSTRCAST \
     SEGAST SEQAST LETAST SUCHTAST COLONAST CASEAST HASAST \
     ISAST))

INBFILE.NRLIB/code.$(FASLEXT): $(OUT)/FNAME.$(FASLEXT) \
	$(OUT)/INBCON.$(FASLEXT) $(OUT)/STRING.$(FASLEXT)
OUTBFILE.NRLIB/code.$(FASLEXT): $(OUT)/FNAME.$(FASLEXT) \
	$(OUT)/OUTBCON.$(FASLEXT) $(OUT)/STRING.$(FASLEXT)
IOBFILE.NRLIB/code.$(FASLEXT): $(OUT)/INBFILE.$(FASLEXT) \
	$(OUT)/OUTBFILE.$(FASLEXT)

CTOR.NRLIB/code.$(FASLEXT): $(OUT)/CTORKIND.$(FASLEXT) \
	$(OUT)/IDENT.$(FASLEXT)

NETCLT.NRLIB/code.$(FASLEXT): $(OUT)/IOBCON.$(FASLEXT)
INETCLTS.NRLIB/code.$(FASLEXT): $(OUT)/NETCLT.$(FASLEXT)

.PHONY: all all-algebra mkdir-output-directory
all: all-ax

all-ax all-algebra: stamp
	@ echo finished $(builddir)

stamp: mkdir-output-directory ${SPADFILES} user-stamp ${TESTS}
	-rm -f stamp
	$(STAMP) stamp

mkdir-output-directory:
	$(mkdir_p) $(OUTSRC)

everything: check lib db cmd gloss
	@ echo 4303 invoking make in `pwd` with parms:

check:
	@ echo 4305 Checking that INTERP.EXPOSED and NRLIBs are consistent
	@ echo 4306 libcheck needs to use exposed.lsp, not INTERP.EXPOSED




.PRECIOUS: $(OUT)/%.$(FASLEXT)
${OUT}/%.$(FASLEXT): %.NRLIB/code.$(FASLEXT)
	cp $< $@

.PREVIOUS: %.spad
.PRECIOUS: %.NRLIB/code.$(FASLEXT)
%.NRLIB/code.$(FASLEXT): %.spad
	${INTERPSYS} --strap=strap --system-algebra --optimize=2 --compile $<

# Compile bootstrap file to machine object code, and the result
# immediately available for AXIOMsys consumption.
strap/%.$(FASLEXT): $(srcdir)/strap/%.lsp
	$(COMPILE_LISP)


$(OUTSRC)/%.spad: mk-target-src-algabra-dir

${OUTSRC}/%.spad: $(srcdir)/%.spad.pamphlet
	$(axiom_build_document) --tangle --output=$@ $<

.PHONY: mk-target-src-algabra-dir
mk-target-src-algabra-dir:
	@ [ -d $(OUTSRC) ] || $(mkdir_p) $(OUTSRC)

.PRECIOUS: $(builddir)/%.tex
.PRECIOUS: $(builddir)/%.dvi

$(DOC)/%.dvi:  mk-target-doc-dir

.PHONY: mk-target-doc-dir
mk-target-doc-dir:
	@ [ -d $(DOC) ] || $(mkdir_p) $(DOC)

$(DOC)/%.dvi: $(builddir)/%.dvi
	@cp -p $< $@

$(builddir)/%.dvi: $(axiom_build_texdir)/diagrams.tex \
		   $(axiom_build_texdir)/axiom.sty

$(builddir)/%.dvi: $(builddir)/%.tex
	$(axiom_build_document) --latex $<

$(builddir)/%.tex: $(srcdir)/%.pamphlet
	$(axiom_build_document) --weave --output=$@ $<

$(axiom_build_texdir)/diagrams.tex: $(axiom_src_docdir)/diagrams.tex
	@cp -p $< $@

SPADPRSR.NRLIB/code.$(FASLEXT): spad-parser.spad
	${INTERPSYS} --system-algebra --compile $<

PARSER.NRLIB/code.$(FASLEXT): script-parser.spad
	${INTERPSYS} --system-algebra --compile $<



${INPUT}/TESTFR.input: $(srcdir)/fr.spad.pamphlet
	$(axiom_build_document) --tangle='TEST FR' --output=$@ $<

${INPUT}/INTHEORY.input: $(srcdir)/numtheor.spad.pamphlet
	$(axiom_build_document) --tangle='TEST INTHEORY' --output=$@ $<

${INPUT}/VIEW2D.input: $(srcdir)/view2D.spad.pamphlet
	$(axiom_build_document) --tangle='TEST VIEW2D' --output=$@ $<


${DOC}/diagrams.tex: $(axiom_src_docdir)/diagrams.tex
	@cp -p $< $@
 
$(axiom_algebra_layer_0_objects): strap-stamp
$(axiom_algebra_layer_1_objects): 0-stamp
$(axiom_algebra_layer_2_objects): 1-stamp
$(axiom_algebra_layer_3_objects): 2-stamp
$(axiom_algebra_layer_4_objects): 3-stamp
$(axiom_algebra_layer_5_objects): 4-stamp
$(axiom_algebra_layer_6_objects): 5-stamp
$(axiom_algebra_layer_7_objects): 6-stamp
$(axiom_algebra_layer_8_objects): 7-stamp
$(axiom_algebra_layer_9_objects): 8-stamp
$(axiom_algebra_layer_10_objects): 9-stamp
$(axiom_algebra_layer_11_objects): 10-stamp
$(axiom_algebra_layer_12_objects): 11-stamp
$(axiom_algebra_layer_13_objects): 12-stamp
$(axiom_algebra_layer_14_objects): 13-stamp
$(axiom_algebra_layer_15_objects): 14-stamp
$(axiom_algebra_layer_16_objects): 15-stamp
$(axiom_algebra_layer_17_objects): 16-stamp
$(axiom_algebra_layer_18_objects): 17-stamp
$(axiom_algebra_layer_19_objects): 18-stamp
$(axiom_algebra_layer_20_objects): 19-stamp
$(axiom_algebra_layer_21_objects): 20-stamp
$(axiom_algebra_layer_22_objects): 21-stamp
$(axiom_algebra_layer_23_objects): 22-stamp
$(axiom_algebra_bootstrap_objects): 23-stamp
$(axiom_algebra_layer_user_objects): bootstrap-stamp

strap-stamp: $(axiom_algebra_layer_strap_objects)
	@ rm -f strap-stamp
	@ $(STAMP) strap-stamp
	@ echo =====================================
	@ echo === algebra bootstrap complete ======
	@ echo =====================================

0-stamp: strap-stamp $(axiom_algebra_layer_0_objects)
	@ rm -f 0-stamp
	@ $(STAMP) 0-stamp
	@ echo ==================================
	@ echo === layer 0 of 23 complete ======
	@ echo ==================================

1-stamp: 0-stamp $(axiom_algebra_layer_1_objects)
	@ rm -f 1-stamp
	@ $(STAMP) 1-stamp
	@ echo ==================================
	@ echo === layer 1 of 23 complete ======
	@ echo ==================================

2-stamp: 1-stamp $(axiom_algebra_layer_2_objects)
	@ rm -f 2-stamp
	@ $(STAMP) 2-stamp
	@ echo ==================================
	@ echo === layer 2 of 23 complete ======
	@ echo ==================================

3-stamp: 2-stamp $(axiom_algebra_layer_3_objects)
	@ rm -f 3-stamp
	@ $(STAMP) 3-stamp
	@ echo ==================================
	@ echo === layer 3 of 23 complete ======
	@ echo ==================================

4-stamp: 3-stamp $(axiom_algebra_layer_4_objects)
	@ rm -f 4-stamp
	@ $(STAMP) 4-stamp
	@ echo ==================================
	@ echo === layer 4 of 23 complete ======
	@ echo ==================================

5-stamp: 4-stamp $(axiom_algebra_layer_5_objects)
	@ rm -f 5-stamp
	@ $(STAMP) 5-stamp
	@ echo ==================================
	@ echo === layer 5 of 23 complete ======
	@ echo ==================================

6-stamp: 5-stamp $(axiom_algebra_layer_6_objects)
	@ rm -f 6-stamp
	@ $(STAMP) 6-stamp
	@ echo ==================================
	@ echo === layer 6 of 23 complete ======
	@ echo ==================================

7-stamp: 6-stamp $(axiom_algebra_layer_7_objects)
	@ rm -f 7-stamp
	@ $(STAMP) 7-stamp
	@ echo ==================================
	@ echo === layer 7 of 23 complete ======
	@ echo ==================================

8-stamp: 7-stamp $(axiom_algebra_layer_8_objects)
	@ rm -f 8-stamp
	@ $(STAMP) 8-stamp
	@ echo ==================================
	@ echo === layer 8 of 23 complete ======
	@ echo ==================================

9-stamp: 8-stamp $(axiom_algebra_layer_9_objects)
	@ rm -f 9-stamp
	@ $(STAMP) 9-stamp
	@ echo ==================================
	@ echo === layer 9 of 23 complete ======
	@ echo ==================================

10-stamp: 9-stamp $(axiom_algebra_layer_10_objects)
	@ rm -f 10-stamp
	@ $(STAMP) 10-stamp
	@ echo ==================================
	@ echo === layer 10 of 23 complete ======
	@ echo ==================================

11-stamp: 10-stamp $(axiom_algebra_layer_11_objects)
	@ rm -f 11-stamp
	@ $(STAMP) 11-stamp
	@ echo ==================================
	@ echo === layer 11 of 23 complete ======
	@ echo ==================================

12-stamp: 11-stamp $(axiom_algebra_layer_12_objects)
	@ rm -f 12-stamp
	@ $(STAMP) 12-stamp
	@ echo ==================================
	@ echo === layer 12 of 23 complete ======
	@ echo ==================================

13-stamp: 12-stamp $(axiom_algebra_layer_13_objects)
	@ rm -f 13-stamp
	@ $(STAMP) 13-stamp
	@ echo ==================================
	@ echo === layer 13 of 23 complete ======
	@ echo ==================================

14-stamp: 13-stamp $(axiom_algebra_layer_14_objects)
	@ rm -f 14-stamp
	@ $(STAMP) 14-stamp
	@ echo ==================================
	@ echo === layer 14 of 23 complete ======
	@ echo ==================================

15-stamp: 14-stamp $(axiom_algebra_layer_15_objects)
	@ rm -f 15-stamp
	@ $(STAMP) 15-stamp
	@ echo ==================================
	@ echo === layer 15 of 23 complete ======
	@ echo ==================================

16-stamp: 15-stamp $(axiom_algebra_layer_16_objects)
	@ rm -f 16-stamp
	@ $(STAMP) 16-stamp
	@ echo ==================================
	@ echo === layer 16 of 23 complete ======
	@ echo ==================================

17-stamp: 16-stamp $(axiom_algebra_layer_17_objects)
	@ rm -f 17-stamp
	@ $(STAMP) 17-stamp
	@ echo ==================================
	@ echo === layer 17 of 23 complete ======
	@ echo ==================================

18-stamp: 17-stamp $(axiom_algebra_layer_18_objects)
	@ rm -f 18-stamp
	@ $(STAMP) 18-stamp
	@ echo ==================================
	@ echo === layer 18 of 23 complete ======
	@ echo ==================================

19-stamp: 18-stamp $(axiom_algebra_layer_19_objects)
	@ rm -f 19-stamp
	@ $(STAMP) 19-stamp
	@ echo ==================================
	@ echo === layer 19 of 23 complete ======
	@ echo ==================================

20-stamp: 19-stamp $(axiom_algebra_layer_20_objects)
	@ rm -f 20-stamp
	@ $(STAMP) 20-stamp
	@ echo ==================================
	@ echo === layer 20 of 23 complete ======
	@ echo ==================================

21-stamp: 20-stamp $(axiom_algebra_layer_21_objects)
	@ rm -f 21-stamp
	@ $(STAMP) 21-stamp
	@ echo ==================================
	@ echo === layer 21 of 23 complete ======
	@ echo ==================================

22-stamp: 21-stamp $(axiom_algebra_layer_22_objects)
	@ rm -f 22-stamp
	@ $(STAMP) 22-stamp
	@ echo ==================================
	@ echo === layer 22 of 23 complete ======
	@ echo ==================================

23-stamp: 22-stamp $(axiom_algebra_layer_23_objects)
	@ rm -f 23-stamp
	@ $(STAMP) 23-stamp
	@ echo ==================================
	@ echo === layer 23 of 23 complete ======
	@ echo ==================================

bootstrap-stamp: 23-stamp $(axiom_algebra_bootstrap_objects)
	@ rm -f bootstrap-stamp
	@ $(STAMP) bootstrap-stamp
	@ echo ==================================
	@ echo ===    algebra complete     ======
	@ echo ==================================

user-stamp: $(axiom_algebra_layer_user_objects)
	@ rm -f user-stamp
	@ $(STAMP) user-stamp




.PHONY: all-algstrap
all-algstrap: $(addsuffix .NRLIB/code.lsp,$(axiom_algebra_bootstrap))
	for a in $(axiom_algebra_bootstrap); do \
	  old=$(srcdir)/strap/$$a.lsp; new=$$a.NRLIB/code.lsp; \
	  if cmp -s $$new $$old; then cp -p $$new $$old || exit 1; fi; \
	done

mostlyclean-local:
	@rm -f $(OUT)/*.$(FASLEXT) $(OUT)/*.daase
	@rm -rf *.NRLIB
	@rm -rf *.DAASE *.daase libdb.text
	@rm -rf strap
	@rm -f *stamp

clean-local: mostlyclean-local

distclean-local: clean-local

include extract-spad.mk

.NOTPARALLEL: