diff options
113 files changed, 1933 insertions, 110 deletions
diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..040407f5 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,630 @@ +SUFFIXES = .lisp .clisp .cl .boot .$(FASLEXT) + +FASL_V = $(FASL_V_@AM_V@) +FASL_V_ = $(FASL_V_@AM_DEFAULT_V@) +FASL_V_0 = @echo " FASL " $@; + +OALD_V = $(OALD_V_@AM_V@) +OALD_V_ = $(OALD_V_@AM_DEFAULT_V@) +OALD_V_0 = @echo " OALD " $@; + +DISTCLEANFILES = $(OA_DEPS_FILE) + +noinst_PROGRAMS = +libexec_PROGRAMS = +CLEANFILES = +DRIVER = $(top_builddir)/open-axiom$(EXEEXT) + +bin_PROGRAMS = open-axiom +open_axiom_CPPFLAGS = -I$(srcdir)/src/include +open_axiom_CPPFLAGS += -DOPENAXIOM_ROOT_DIRECTORY="\"$(libexecdir)\"" +open_axiom_SOURCES = \ + src/driver/main.cc \ + src/lib/cfuns-c.cxx \ + src/utils/command.cc + + +libexec_PROGRAMS += session +session_CPPFLAGS = -I$(srcdir)/src/include +session_SOURCES = \ + src/lib/bsdsignal.cxx \ + src/lib/cfuns-c.cxx \ + src/lib/sockio-c.cxx \ + src/sman/session.cc + +libexec_PROGRAMS += sman +sman_CPPFLAGS = -I$(srcdir)/src/include +sman_CPPFLAGS += -DOPENAXIOM_ROOT_DIRECTORY="\"$(libexecdir)\"" +sman_SOURCES = \ + src/lib/bsdsignal.cxx \ + src/lib/cfuns-c.cxx \ + src/lib/sockio-c.cxx \ + src/lib/openpty.cc \ + src/sman/sman.cc \ + src/utils/command.cc + +libexec_PROGRAMS += spadclient +spadclient_CPPFLAGS = -I$(srcdir)/src/include +spadclient_SOURCES = \ + src/lib/bsdsignal.cxx \ + src/lib/cfuns-c.cxx \ + src/lib/sockio-c.cxx \ + src/sman/spadclient.cc + +libexec_PROGRAMS += clef +clef_CPPFLAGS = -I$(srcdir)/src/include +clef_SOURCES = \ + src/clef/edible.cc \ + src/lib/bsdsignal.cxx \ + src/lib/cfuns-c.cxx \ + src/lib/cursor.cc \ + src/lib/edin.cc \ + src/lib/fnct_key.cc \ + src/lib/openpty.cc \ + src/lib/prt.cc \ + src/lib/wct.cc + + +noinst_PROGRAMS += hammer +hammer_CPPFLAGS = -I$(srcdir)/src/include +hammer_SOURCES = \ + src/utils/hammer.cc \ + src/utils/storage.cxx + +noinst_PROGRAMS += oalisp +am_oalisp_OBJECTS = $(oalisp_SOURCES:.lisp=.$(FASLEXT)) +CLEANFILES += $(am_oalisp_OBJECTS) +oalisp_SOURCES = src/lisp/core.lisp +oalisp_LINK = $(OA_LISP) $(OA_LISP_BATCH_FLAGS) $(OA_LISP_EVAL_FLAGS) '(load "$<")' $(OA_LISP_EVAL_FLAGS) '(|AxiomCore|::|link| "$@" (quote nil) "|AxiomCore|::|topLevel|")' \# +src/lisp/core.$(FASLEXT): src/lisp/core.lisp + $(FASL_V)$(OA_LISP) $(OA_LISP_BATCH_FLAGS) $(OA_LISP_EVAL_FLAGS) '(progn (setq *compile-print* nil *compile-verbose* nil) (compile-file "$<") (quit))' + +noinst_PROGRAMS += bootsys0 +bootsys0_LINK = $(DRIVER) --execpath=oalisp$(EXEEXT) --make --main='|AxiomCore|::|topLevel|' --prologue='(pushnew :open-axiom-boot *features*)' --load-directory=$(<D) --output=$@ +am_bootsys0_OBJECTS = $(bootsys0_SOURCES:.clisp=.$(FASLEXT)) +$(am_bootsys0_OBJECTS): $(DRIVER) oalisp$(EXEEXT) +CLEANFILES += $(am_bootsys0_OBJECTS) +# TODO utility.clisp must go first +bootsys0_SOURCES = \ + src/boot/strap/utility.clisp \ + src/boot/strap/ast.clisp \ + src/boot/strap/includer.clisp \ + src/boot/strap/parser.clisp \ + src/boot/strap/pile.clisp \ + src/boot/strap/scanner.clisp \ + src/boot/strap/tokens.clisp \ + src/boot/strap/translator.clisp + +noinst_PROGRAMS += bootsys1 +bootsys1_LINK = $(DRIVER) --execpath=oalisp$(EXEEXT) --make --main='|AxiomCore|::|topLevel|' --prologue='(pushnew :open-axiom-boot *features*)' --load-directory=$(<D) --output=$@ +$(nodist_bootsys1_SOURCES): $(DRIVER) bootsys0$(EXEEXT) +nodist_bootsys1_OBJECTS = $(nodist_bootsys1_SOURCES:.cl=.$(FASLEXT)) +$(nodist_bootsys1_OBJECTS): $(DRIVER) oalisp$(EXEEXT) +CLEANFILES += $(nodist_bootsys1_OBJECTS) $(nodist_bootsys1_SOURCES) +# TODO utility.clisp must go first +nodist_bootsys1_SOURCES = \ + src/boot/stage1/utility.cl \ + src/boot/stage1/ast.cl \ + src/boot/stage1/includer.cl \ + src/boot/stage1/parser.cl \ + src/boot/stage1/pile.cl \ + src/boot/stage1/scanner.cl \ + src/boot/stage1/tokens.cl \ + src/boot/stage1/translator.cl + +# TODO: automatically resolve dependencies? +src/boot/stage1/ast.$(FASLEXT): src/boot/stage1/includer.$(FASLEXT) +src/boot/stage1/includer.$(FASLEXT): src/boot/stage1/tokens.$(FASLEXT) +src/boot/stage1/parser.$(FASLEXT): src/boot/stage1/includer.$(FASLEXT) src/boot/stage1/scanner.$(FASLEXT) src/boot/stage1/ast.$(FASLEXT) +src/boot/stage1/pile.$(FASLEXT): src/boot/stage1/includer.$(FASLEXT) src/boot/stage1/scanner.$(FASLEXT) +src/boot/stage1/scanner.$(FASLEXT): src/boot/stage1/tokens.$(FASLEXT) src/boot/stage1/includer.$(FASLEXT) +src/boot/stage1/tokens.$(FASLEXT): src/boot/stage1/utility.$(FASLEXT) +src/boot/stage1/translator.$(FASLEXT): src/boot/stage1/includer.$(FASLEXT) src/boot/stage1/scanner.$(FASLEXT) src/boot/stage1/pile.$(FASLEXT) src/boot/stage1/parser.$(FASLEXT) src/boot/stage1/ast.$(FASLEXT) + +noinst_PROGRAMS += bootsys +bootsys_LINK = $(DRIVER) --execpath=oalisp$(EXEEXT) --make --main='|AxiomCore|::|topLevel|' --prologue='(pushnew :open-axiom-boot *features*)' --load-directory=$(<D) --output=$@ +bootsys_CLISP = $(bootsys_SOURCES:.boot=.clisp) +$(bootsys_CLISP): $(DRIVER) bootsys1$(EXEEXT) +am_bootsys_OBJECTS = $(bootsys_CLISP:.clisp=.$(FASLEXT)) +$(am_bootsys_OBJECTS): $(DRIVER) oalisp$(EXEEXT) +CLEANFILES += $(am_bootsys_OBJECTS) $(bootsys_CLISP) +# TODO utility.boot must go first +bootsys_SOURCES = \ + src/boot/utility.boot \ + src/boot/ast.boot \ + src/boot/includer.boot \ + src/boot/parser.boot \ + src/boot/pile.boot \ + src/boot/scanner.boot \ + src/boot/tokens.boot \ + src/boot/translator.boot + + +.clisp.$(FASLEXT): + $(FASL_V)$(DRIVER) --execpath=oalisp$(EXEEXT) --compile --load-directory=$(@D) --output=$@ $< + +.boot.cl: + $(AM_V_GEN)$(DRIVER) --execpath=bootsys0$(EXEEXT) --translate --import=skip --output=$@ $< + +.cl.$(FASLEXT): + $(FASL_V)$(DRIVER) --execpath=oalisp$(EXEEXT) --compile --load-directory=$(@D) --output=$@ $< + +.boot.clisp: + $(AM_V_GEN)$(DRIVER) --execpath=bootsys1$(EXEEXT) --translate --import=skip --output=$@ $< + +.boot.$(FASLEXT): + $(FASL_V)$(DRIVER) --execpath=bootsys$(EXEEXT) --compile --load-directory=$(@D) --output=$@ $< + +.lisp.$(FASLEXT): + $(FASL_V)$(DRIVER) --execpath=bootsys$(EXEEXT) --compile --load-directory=$(@D) --output=$@ $< + +noinst_PROGRAMS += interpsys +interpsys_LINK = $(DRIVER) --execpath=bootsys$(EXEEXT) --make --main='BOOT::|systemMain|' --prologue='(pushnew :open-axiom-basic-system *features*)' --load-directory=$(<D) --output=$@ +interpsys_OBJECTS_lisp = $(interpsys_SOURCES:.lisp=.$(FASLEXT)) +am_interpsys_OBJECTS = $(interpsys_OBJECTS_lisp:.boot=.$(FASLEXT)) +$(am_interpsys_OBJECTS): $(DRIVER) bootsys$(EXEEXT) +CLEANFILES += $(am_interpsys_OBJECTS) +# TODO: linking order is important! Make open-axiom reorder objects automatically +interpsys_SOURCES = \ + src/interp/boot-pkg.lisp \ + src/interp/types.boot \ + src/interp/sys-driver.boot \ + src/interp/sys-constants.boot \ + src/interp/hash.lisp \ + src/interp/lisp-backend.boot \ + src/interp/sys-globals.boot \ + src/interp/vmlisp.lisp \ + src/interp/io.boot \ + src/interp/sys-utility.boot \ + src/interp/lexing.boot \ + src/interp/diagnostics.boot \ + src/interp/union.lisp \ + src/interp/sys-macros.lisp \ + src/interp/util.lisp \ + src/interp/unlisp.lisp \ + src/interp/g-util.boot \ + src/interp/g-opt.boot \ + src/interp/c-util.boot \ + src/interp/astr.boot \ + src/interp/ht-util.boot \ + src/interp/bc-util.boot \ + src/interp/br-search.boot \ + src/interp/alql.boot \ + src/interp/buildom.boot \ + src/interp/simpbool.boot \ + src/interp/g-timer.boot \ + src/interp/cattable.boot \ + src/interp/posit.boot \ + src/interp/cformat.boot \ + src/interp/clam.boot \ + src/interp/clammed.boot \ + src/interp/nlib.lisp \ + src/interp/daase.lisp \ + src/interp/pathname.boot \ + src/interp/compat.boot \ + src/interp/serror.boot \ + src/interp/ptrees.boot \ + src/interp/cparse.boot \ + src/interp/cstream.boot \ + src/interp/g-cndata.boot \ + src/interp/database.boot \ + src/interp/debug.lisp \ + src/interp/dq.boot \ + src/interp/fname.lisp \ + src/interp/format.boot \ + src/interp/g-error.boot \ + src/interp/ggreater.lisp \ + src/interp/hypertex.boot \ + src/interp/i-object.boot \ + src/interp/i-analy.boot \ + src/interp/i-resolv.boot \ + src/interp/i-coerfn.boot \ + src/interp/i-coerce.boot \ + src/interp/i-eval.boot \ + src/interp/i-funsel.boot \ + src/interp/i-intern.boot \ + src/interp/i-map.boot \ + src/interp/i-output.boot \ + src/interp/i-special.boot \ + src/interp/i-syscmd.boot \ + src/interp/i-toplev.boot \ + src/interp/i-util.boot \ + src/interp/incl.boot \ + src/interp/int-top.boot \ + src/interp/lisplib.boot \ + src/interp/macex.boot \ + src/interp/match.boot \ + src/interp/monitor.lisp \ + src/interp/msg.boot \ + src/interp/msgdb.boot \ + src/interp/newfort.boot \ + src/interp/nrunfast.boot \ + src/interp/osyscmd.boot \ + src/interp/packtran.boot \ + src/interp/pf2sex.boot \ + src/interp/scan.boot \ + src/interp/pile.boot \ + src/interp/postpar.boot \ + src/interp/parse.boot \ + src/interp/spad-parser.boot \ + src/interp/record.boot \ + src/interp/rulesets.boot \ + src/interp/server.boot \ + src/interp/setvars.boot \ + src/interp/sfsfun.boot \ + src/interp/sfsfun-l.lisp \ + src/interp/slam.boot \ + src/interp/spad.lisp \ + src/interp/termrw.boot \ + src/interp/trace.boot \ + src/interp/word.boot \ + src/interp/fortcall.boot \ + src/interp/i-parser.boot \ + src/interp/category.boot \ + src/interp/define.boot \ + src/interp/compiler.boot \ + src/interp/c-doc.boot \ + src/interp/profile.boot \ + src/interp/functor.boot \ + src/interp/nruncomp.boot \ + src/interp/htcheck.boot \ + src/interp/bc-matrix.boot \ + src/interp/bc-misc.boot \ + src/interp/bc-solve.boot \ + src/interp/htsetvar.boot \ + src/interp/ht-root.boot \ + src/interp/br-con.boot \ + src/interp/br-data.boot \ + src/interp/showimp.boot \ + src/interp/br-op1.boot \ + src/interp/br-op2.boot \ + src/interp/br-util.boot \ + src/interp/topics.boot \ + src/interp/br-prof.boot \ + src/interp/br-saturn.boot \ + src/interp/setvart.boot + +# open-axiom driver may leave these files when compilation fails: +clean-local: + rm -f src/interp/*.clisp + +UNUSED_INTERP_FILES = \ + src/interp/guess.boot \ + src/interp/nhyper.boot \ + src/interp/pf2atree.boot \ + src/interp/sys-os.boot + +ALGEBRA_PAMPHLETS = \ + src/algebra/acplot.spad.pamphlet \ + src/algebra/aggcat2.spad.pamphlet \ + src/algebra/aggcat.spad.pamphlet \ + src/algebra/algcat.spad.pamphlet \ + src/algebra/algext.spad.pamphlet \ + src/algebra/algfact.spad.pamphlet \ + src/algebra/algfunc.spad.pamphlet \ + src/algebra/allfact.spad.pamphlet \ + src/algebra/alql.spad.pamphlet \ + src/algebra/any.spad.pamphlet \ + src/algebra/array1.spad.pamphlet \ + src/algebra/array2.spad.pamphlet \ + src/algebra/attreg.spad.pamphlet \ + src/algebra/bags.spad.pamphlet \ + src/algebra/bezout.spad.pamphlet \ + src/algebra/boolean.spad.pamphlet \ + src/algebra/brill.spad.pamphlet \ + src/algebra/card.spad.pamphlet \ + src/algebra/carten.spad.pamphlet \ + src/algebra/catdef.spad.pamphlet \ + src/algebra/cden.spad.pamphlet \ + src/algebra/clifford.spad.pamphlet \ + src/algebra/clip.spad.pamphlet \ + src/algebra/cmplxrt.spad.pamphlet \ + src/algebra/coerce.spad.pamphlet \ + src/algebra/color.spad.pamphlet \ + src/algebra/combfunc.spad.pamphlet \ + src/algebra/combinat.spad.pamphlet \ + src/algebra/compiler.spad.pamphlet \ + src/algebra/complet.spad.pamphlet \ + src/algebra/constant.spad.pamphlet \ + src/algebra/contfrac.spad.pamphlet \ + src/algebra/coordsys.spad.pamphlet \ + src/algebra/cra.spad.pamphlet \ + src/algebra/crfp.spad.pamphlet \ + src/algebra/curve.spad.pamphlet \ + src/algebra/cycles.spad.pamphlet \ + src/algebra/cyclotom.spad.pamphlet \ + src/algebra/data.spad.pamphlet \ + src/algebra/ddfact.spad.pamphlet \ + src/algebra/defaults.spad.pamphlet \ + src/algebra/defintef.spad.pamphlet \ + src/algebra/defintrf.spad.pamphlet \ + src/algebra/degred.spad.pamphlet \ + src/algebra/derham.spad.pamphlet \ + src/algebra/dhmatrix.spad.pamphlet \ + src/algebra/divisor.spad.pamphlet \ + src/algebra/domain.spad.pamphlet \ + src/algebra/dpolcat.spad.pamphlet \ + src/algebra/drawopt.spad.pamphlet \ + src/algebra/drawpak.spad.pamphlet \ + src/algebra/draw.spad.pamphlet \ + src/algebra/efstruc.spad.pamphlet \ + src/algebra/efuls.spad.pamphlet \ + src/algebra/efupxs.spad.pamphlet \ + src/algebra/eigen.spad.pamphlet \ + src/algebra/elemntry.spad.pamphlet \ + src/algebra/elfuts.spad.pamphlet \ + src/algebra/equation1.spad.pamphlet \ + src/algebra/equation2.spad.pamphlet \ + src/algebra/error.spad.pamphlet \ + src/algebra/expexpan.spad.pamphlet \ + src/algebra/exposed.lsp.pamphlet \ + src/algebra/expr2ups.spad.pamphlet \ + src/algebra/exprode.spad.pamphlet \ + src/algebra/expr.spad.pamphlet \ + src/algebra/facutil.spad.pamphlet \ + src/algebra/ffcat.spad.pamphlet \ + src/algebra/ffcg.spad.pamphlet \ + src/algebra/fff.spad.pamphlet \ + src/algebra/ffhom.spad.pamphlet \ + src/algebra/ffnb.spad.pamphlet \ + src/algebra/ffpoly2.spad.pamphlet \ + src/algebra/ffpoly.spad.pamphlet \ + src/algebra/ffp.spad.pamphlet \ + src/algebra/ffx.spad.pamphlet \ + src/algebra/files.spad.pamphlet \ + src/algebra/float.spad.pamphlet \ + src/algebra/fmod.spad.pamphlet \ + src/algebra/fname.spad.pamphlet \ + src/algebra/fnla.spad.pamphlet \ + src/algebra/forttyp.spad.pamphlet \ + src/algebra/fourier.spad.pamphlet \ + src/algebra/fparfrac.spad.pamphlet \ + src/algebra/fraction.spad.pamphlet \ + src/algebra/free.spad.pamphlet \ + src/algebra/fr.spad.pamphlet \ + src/algebra/fs2expxp.spad.pamphlet \ + src/algebra/fs2ups.spad.pamphlet \ + src/algebra/fspace.spad.pamphlet \ + src/algebra/funcpkgs.spad.pamphlet \ + src/algebra/galfact.spad.pamphlet \ + src/algebra/galfactu.spad.pamphlet \ + src/algebra/galpolyu.spad.pamphlet \ + src/algebra/galutil.spad.pamphlet \ + src/algebra/gaussfac.spad.pamphlet \ + src/algebra/gaussian.spad.pamphlet \ + src/algebra/gbeuclid.spad.pamphlet \ + src/algebra/gbintern.spad.pamphlet \ + src/algebra/gb.spad.pamphlet \ + src/algebra/gdirprod.spad.pamphlet \ + src/algebra/gdpoly.spad.pamphlet \ + src/algebra/geneez.spad.pamphlet \ + src/algebra/generic.spad.pamphlet \ + src/algebra/genufact.spad.pamphlet \ + src/algebra/genups.spad.pamphlet \ + src/algebra/ghensel.spad.pamphlet \ + src/algebra/gpgcd.spad.pamphlet \ + src/algebra/gpol.spad.pamphlet \ + src/algebra/grdef.spad.pamphlet \ + src/algebra/groebf.spad.pamphlet \ + src/algebra/groebsol.spad.pamphlet \ + src/algebra/gseries.spad.pamphlet \ + src/algebra/ideal.spad.pamphlet \ + src/algebra/idecomp.spad.pamphlet \ + src/algebra/indexedp.spad.pamphlet \ + src/algebra/infprod.spad.pamphlet \ + src/algebra/intaf.spad.pamphlet \ + src/algebra/intalg.spad.pamphlet \ + src/algebra/intaux.spad.pamphlet \ + src/algebra/intclos.spad.pamphlet \ + src/algebra/intef.spad.pamphlet \ + src/algebra/integer.spad.pamphlet \ + src/algebra/integrat.spad.pamphlet \ + src/algebra/interval.spad.pamphlet \ + src/algebra/intfact.spad.pamphlet \ + src/algebra/intpm.spad.pamphlet \ + src/algebra/intrf.spad.pamphlet \ + src/algebra/irexpand.spad.pamphlet \ + src/algebra/irsn.spad.pamphlet \ + src/algebra/ituple.spad.pamphlet \ + src/algebra/java.spad.pamphlet \ + src/algebra/kl.spad.pamphlet \ + src/algebra/kovacic.spad.pamphlet \ + src/algebra/laplace.spad.pamphlet \ + src/algebra/laurent.spad.pamphlet \ + src/algebra/leadcdet.spad.pamphlet \ + src/algebra/lie.spad.pamphlet \ + src/algebra/limitps.spad.pamphlet \ + src/algebra/lindep.spad.pamphlet \ + src/algebra/lingrob.spad.pamphlet \ + src/algebra/liouv.spad.pamphlet \ + src/algebra/listgcd.spad.pamphlet \ + src/algebra/list.spad.pamphlet \ + src/algebra/lmdict.spad.pamphlet \ + src/algebra/lodof.spad.pamphlet \ + src/algebra/lodop.spad.pamphlet \ + src/algebra/lodo.spad.pamphlet \ + src/algebra/logic.spad.pamphlet \ + src/algebra/manip.spad.pamphlet \ + src/algebra/mappkg.spad.pamphlet \ + src/algebra/matcat.spad.pamphlet \ + src/algebra/matfuns.spad.pamphlet \ + src/algebra/mathml.spad.pamphlet \ + src/algebra/matrix.spad.pamphlet \ + src/algebra/matstor.spad.pamphlet \ + src/algebra/mesh.spad.pamphlet \ + src/algebra/mfinfact.spad.pamphlet \ + src/algebra/misc.spad.pamphlet \ + src/algebra/mkfunc.spad.pamphlet \ + src/algebra/mkrecord.spad.pamphlet \ + src/algebra/mlift.spad.jhd.pamphlet \ + src/algebra/mlift.spad.pamphlet \ + src/algebra/moddfact.spad.pamphlet \ + src/algebra/modgcd.spad.pamphlet \ + src/algebra/modmonom.spad.pamphlet \ + src/algebra/modmon.spad.pamphlet \ + src/algebra/modring.spad.pamphlet \ + src/algebra/moebius.spad.pamphlet \ + src/algebra/mring.spad.pamphlet \ + src/algebra/mset.spad.pamphlet \ + src/algebra/mts.spad.pamphlet \ + src/algebra/multfact.spad.pamphlet \ + src/algebra/multpoly.spad.pamphlet \ + src/algebra/multsqfr.spad.pamphlet \ + src/algebra/naalgc.spad.pamphlet \ + src/algebra/naalg.spad.pamphlet \ + src/algebra/net.spad.pamphlet \ + src/algebra/newdata.spad.pamphlet \ + src/algebra/newpoint.spad.pamphlet \ + src/algebra/newpoly.spad.pamphlet \ + src/algebra/nlinsol.spad.pamphlet \ + src/algebra/nlode.spad.pamphlet \ + src/algebra/npcoef.spad.pamphlet \ + src/algebra/nregset.spad.pamphlet \ + src/algebra/nsregset.spad.pamphlet \ + src/algebra/numeigen.spad.pamphlet \ + src/algebra/numeric.spad.pamphlet \ + src/algebra/numode.spad.pamphlet \ + src/algebra/numquad.spad.pamphlet \ + src/algebra/numsolve.spad.pamphlet \ + src/algebra/numtheor.spad.pamphlet \ + src/algebra/oct.spad.pamphlet \ + src/algebra/odealg.spad.pamphlet \ + src/algebra/odeef.spad.pamphlet \ + src/algebra/oderf.spad.pamphlet \ + src/algebra/opalg.spad.pamphlet \ + src/algebra/openmath.spad.pamphlet \ + src/algebra/op.spad.pamphlet \ + src/algebra/ore.spad.pamphlet \ + src/algebra/outform.spad.pamphlet \ + src/algebra/out.spad.pamphlet \ + src/algebra/pade.spad.pamphlet \ + src/algebra/padiclib.spad.pamphlet \ + src/algebra/padic.spad.pamphlet \ + src/algebra/paramete.spad.pamphlet \ + src/algebra/parsers.spad.pamphlet \ + src/algebra/partperm.spad.pamphlet \ + src/algebra/patmatch1.spad.pamphlet \ + src/algebra/patmatch2.spad.pamphlet \ + src/algebra/pattern.spad.pamphlet \ + src/algebra/pcurve.spad.pamphlet \ + src/algebra/pdecomp.spad.pamphlet \ + src/algebra/perman.spad.pamphlet \ + src/algebra/permgrps.spad.pamphlet \ + src/algebra/perm.spad.pamphlet \ + src/algebra/pfbr.spad.pamphlet \ + src/algebra/pfo.spad.pamphlet \ + src/algebra/pfr.spad.pamphlet \ + src/algebra/pf.spad.pamphlet \ + src/algebra/pgcd.spad.pamphlet \ + src/algebra/pgrobner.spad.pamphlet \ + src/algebra/pinterp.spad.pamphlet \ + src/algebra/pleqn.spad.pamphlet \ + src/algebra/plot3d.spad.pamphlet \ + src/algebra/plot.spad.pamphlet \ + src/algebra/plottool.spad.pamphlet \ + src/algebra/polset.spad.pamphlet \ + src/algebra/poltopol.spad.pamphlet \ + src/algebra/polycat.spad.pamphlet \ + src/algebra/poly.spad.pamphlet \ + src/algebra/primelt.spad.pamphlet \ + src/algebra/print.spad.pamphlet \ + src/algebra/product.spad.pamphlet \ + src/algebra/prs.spad.pamphlet \ + src/algebra/prtition.spad.pamphlet \ + src/algebra/pscat.spad.pamphlet \ + src/algebra/pseudolin.spad.pamphlet \ + src/algebra/ptranfn.spad.pamphlet \ + src/algebra/puiseux.spad.pamphlet \ + src/algebra/qalgset.spad.pamphlet \ + src/algebra/quat.spad.pamphlet \ + src/algebra/radeigen.spad.pamphlet \ + src/algebra/radix.spad.pamphlet \ + src/algebra/random.spad.pamphlet \ + src/algebra/ratfact.spad.pamphlet \ + src/algebra/rdeef.spad.pamphlet \ + src/algebra/rderf.spad.pamphlet \ + src/algebra/rdesys.spad.pamphlet \ + src/algebra/real0q.spad.pamphlet \ + src/algebra/realzero.spad.pamphlet \ + src/algebra/reclos.spad.pamphlet \ + src/algebra/regset.spad.pamphlet \ + src/algebra/rep1.spad.pamphlet \ + src/algebra/rep2.spad.pamphlet \ + src/algebra/resring.spad.pamphlet \ + src/algebra/retract.spad.pamphlet \ + src/algebra/rf.spad.pamphlet \ + src/algebra/riccati.spad.pamphlet \ + src/algebra/rinterp.spad.pamphlet \ + src/algebra/rule.spad.pamphlet \ + src/algebra/seg.spad.pamphlet \ + src/algebra/setorder.spad.pamphlet \ + src/algebra/sets.spad.pamphlet \ + src/algebra/sex.spad.pamphlet \ + src/algebra/sf.spad.pamphlet \ + src/algebra/sgcf.spad.pamphlet \ + src/algebra/sign.spad.pamphlet \ + src/algebra/si.spad.pamphlet \ + src/algebra/smith.spad.pamphlet \ + src/algebra/solvedio.spad.pamphlet \ + src/algebra/solvefor.spad.pamphlet \ + src/algebra/solvelin.spad.pamphlet \ + src/algebra/solverad.spad.pamphlet \ + src/algebra/sortpak.spad.pamphlet \ + src/algebra/space.spad.pamphlet \ + src/algebra/special.spad.pamphlet \ + src/algebra/sregset.spad.pamphlet \ + src/algebra/s.spad.pamphlet \ + src/algebra/stream.spad.pamphlet \ + src/algebra/string.spad.pamphlet \ + src/algebra/sttaylor.spad.pamphlet \ + src/algebra/sttf.spad.pamphlet \ + src/algebra/sturm.spad.pamphlet \ + src/algebra/suchthat.spad.pamphlet \ + src/algebra/suls.spad.pamphlet \ + src/algebra/sum.spad.pamphlet \ + src/algebra/sups.spad.pamphlet \ + src/algebra/supxs.spad.pamphlet \ + src/algebra/suts.spad.pamphlet \ + src/algebra/symbol.spad.pamphlet \ + src/algebra/syntax.spad.pamphlet \ + src/algebra/syssolp.spad.pamphlet \ + src/algebra/system.spad.pamphlet \ + src/algebra/tableau.spad.pamphlet \ + src/algebra/table.spad.pamphlet \ + src/algebra/taylor.spad.pamphlet \ + src/algebra/term.spad.pamphlet \ + src/algebra/tex.spad.pamphlet \ + src/algebra/tools.spad.pamphlet \ + src/algebra/transsolve.spad.pamphlet \ + src/algebra/tree.spad.pamphlet \ + src/algebra/trigcat.spad.pamphlet \ + src/algebra/triset.spad.pamphlet \ + src/algebra/tube.spad.pamphlet \ + src/algebra/twofact.spad.pamphlet \ + src/algebra/unifact.spad.pamphlet \ + src/algebra/updecomp.spad.pamphlet \ + src/algebra/updivp.spad.pamphlet \ + src/algebra/utsode.spad.pamphlet \ + src/algebra/variable.spad.pamphlet \ + src/algebra/vector.spad.pamphlet \ + src/algebra/view2D.spad.pamphlet \ + src/algebra/view3D.spad.pamphlet \ + src/algebra/viewDef.spad.pamphlet \ + src/algebra/viewpack.spad.pamphlet \ + src/algebra/void.spad.pamphlet \ + src/algebra/weier.spad.pamphlet \ + src/algebra/wtpol.spad.pamphlet \ + src/algebra/xlpoly.spad.pamphlet \ + src/algebra/xpoly.spad.pamphlet \ + src/algebra/young.spad.pamphlet \ + src/algebra/ystream.spad.pamphlet \ + src/algebra/zerodim.spad.pamphlet + + +EXTRA_DIST = \ + $(UNUSED_INTERP_FILES) \ + $(ALGEBRA_PAMPHLETS) \ + STYLES + +@OA_DEPS@ + diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..cad94390 --- /dev/null +++ b/configure.ac @@ -0,0 +1,230 @@ +AC_INIT([Open Axiom], [1.5.1~dev], [pashev.igor@gmail.com]) +AC_CANONICAL_TARGET + +dnl clisp 2.49.92 +dnl sbcl 2.1.1 +dnl gcl 2.6.12 +dnl ecl 20.4.24 + +AC_CONFIG_SRCDIR([src/algebra/boolean.spad.pamphlet]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_HEADERS([config.h]) + +AM_INIT_AUTOMAKE([-Wall dist-xz foreign subdir-objects]) + +dnl **** C++ and libraries **** +AC_PROG_CC +AX_CXX_COMPILE_STDCXX([20], [noext], [mandatory]) +AC_CHECK_SIZEOF([void *]) + +AC_CHECK_HEADERS_ONCE([fcntl.h unistd.h]) +AC_CHECK_HEADERS_ONCE([sys/ioctl.h sys/types.h sys/stat.h]) + +AC_CHECK_DECLS([fork, geteuid, getgid, getuid, mktemp, tempnam]) + +AC_CHECK_HEADERS_ONCE([sys/wait.h]) +AC_CHECK_DECLS([wait], [], [], [[ +#ifdef HAVE_SYS_WAIT_H +#include <sys/wait.h> +#endif +]]) + +AC_CHECK_HEADERS_ONCE([sys/mman.h]) +AC_CHECK_DECLS([MAP_ANONYMOUS, MAP_ANON], [], [], [[ +#ifdef HAVE_SYS_MMAN_H +#include <sys/mman.h> +#endif +]]) + + +AC_CHECK_HEADERS_ONCE([sys/socket.h sys/un.h]) +AC_CHECK_DECLS([AF_LOCAL, AF_UNIX], [], [], [[ +#ifdef HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif +#ifdef HAVE_SYS_UN_H +#include <sys/un.h> +#endif +]]) + +AC_CHECK_HEADERS_ONCE([libutil.h pty.h termios.h util.h]) +AC_CHECK_DECLS([openpty], [], [], [[ +#if HAVE_SYS_IOCTL_H +# include <sys/ioctl.h> +#endif +#if HAVE_SYS_TYPESL_H +# include <sys/types.h> +#endif +#if HAVE_LIBUTIL_H +# include <libutil.h> +#endif +#if HAVE_PTY_H +# include <pty.h> +#endif +#if HAVE_TERMIOS_H +# include <termios.h> +#endif +#if HAVE_UTIL_H +# include <util.h> +#endif +]]) +AC_SEARCH_LIBS([openpty], [util]) + + +dnl **** LISP **** + +AC_ARG_WITH([lisp], + [AS_HELP_STRING([--with-lisp=LISP], [use LISP to build Open Axiom])], + [OA_LISP="$withval"], + [AC_PATH_PROGS([OA_LISP], [sbcl gcl ecl clisp clozure], [none])]) +AS_IF([test "x$OA_LISP" = xnone], [AC_MSG_ERROR([could not find suitable Lisp])]) + +AC_MSG_CHECKING([Lisp]) +AC_MSG_RESULT([$OA_LISP]) + +AC_MSG_CHECKING([for Lisp flavor]) +oa_lisp_impl_type=`echo '(lisp-implementation-type)' | $OA_LISP 2>&AS_MESSAGE_LOG_FD` +AS_CASE([$oa_lisp_impl_type], + [*"SBCL"*], [oa_lisp_flavor="sbcl"], + [*"GNU Common Lisp"*], [oa_lisp_flavor="gcl"], + [*"Embeddable Common-Lisp"*], [oa_lisp_flavor="ecl"], + [*"CLISP"*], [oa_lisp_flavor="clisp"], + [*"Clozure Common Lisp"*], [oa_lisp_flavor="clozure"], + [AC_MSG_RESULT([unknown]) + AC_MSG_ERROR([unsupported Lisp])]) +AC_MSG_RESULT([$oa_lisp_flavor]) + +AS_CASE([$oa_lisp_flavor], + [sbcl], [OA_LISP_BATCH_FLAGS='--noinform --noprint --no-sysinit --no-userinit --disable-debugger' + OA_LISP_EVAL_FLAGS='--eval' + oa_delay_ffi=yes + char_type='char' + double_type='double' + float_type='float' + int_type='int' + pointer_type='(* t)' + string_type='c-string' + void_type='void'], + [gcl], [OA_LISP_BATCH_FLAGS='-batch' + OA_LISP_EVAL_FLAGS='-eval' + oa_delay_ffi=no + void_type='void' + char_type='char' + int_type='int' + float_type='float' + double_type='double' + string_type='string' + AS_IF([test "x$SIZEOF_VOID_P" = x4], [pointer_type='fixnum'], [pointer_type='(signed-integer 64)'])], + [ecl], [OA_LISP_BATCH_FLAGS='--nodebug --norc' + OA_LISP_EVAL_FLAGS='--eval' + oa_delay_ffi=no + void_type=':void' + char_type=':char' + int_type=':int' + float_type=':float' + double_type=':double' + string_type=':cstring' + pointer_type=':pointer-void'], + [clisp], [OA_LISP_BATCH_FLAGS='-q -q -norc' + OA_LISP_EVAL_FLAGS='-x' + oa_delay_ffi=yes + void_type='nil' + char_type='character' + int_type='int' + float_type='single-float' + double_type='double-float' + string_type='c-string' + pointer_type='c-pointer'], + [clozure], [OA_LISP_BATCH_FLAGS='--quiet --no-init' + OA_LISP_EVAL_FLAGS='--eval' + oa_delay_ffi=yes + void_type=':void' + char_type=':unsigned-byte' + int_type=':signed-fullword' + float_type=':single-float' + double_type=':double-float' + string_type=':address' + pointer_type=':address'], + [AC_MSG_ERROR([unsupported Lisp flavor $oa_lisp_flavor])]) + +AC_MSG_CHECKING([how to invoke Lisp]) +AC_MSG_RESULT([$OA_LISP $OA_LISP_BATCH_FLAGS $OA_LISP_EVAL_FLAGS]) + +AC_MSG_CHECKING([for compiled Lisp file extension]) +oa_fasl_type=`$OA_LISP $OA_LISP_BATCH_FLAGS $OA_LISP_EVAL_FLAGS '(progn (format t "oa_fasl_type:~a" (pathname-type (compile-file-pathname "non-existing.lisp"))) (quit))' 2>&AS_MESSAGE_LOG_FD` +AS_IF([test "x$oa_fasl_type" = x], [AC_MSG_RESULT([failed]) + AC_MSG_ERROR([Lisp compiler does not work, see config.log for details])]) +oa_fasl_type=`echo "$oa_fasl_type" | $AWK -F : '/oa_fasl_type:/{print $2}'` +AC_MSG_RESULT([$oa_fasl_type]) + +AC_SUBST([OA_LISP]) +AC_SUBST([OA_LISP_BATCH_FLAGS]) +AC_SUBST([OA_LISP_EVAL_FLAGS]) +AC_SUBST([FASLEXT], [$oa_fasl_type]) +AC_DEFINE_UNQUOTED([FASLEXT], ["$oa_fasl_type"], [Compiled Lisp file extension (usually "fasl").]) +AC_DEFINE_UNQUOTED([OPENAXIOM_BASE_RTS], [Runtime::$oa_lisp_flavor], [The kind of base runtime system for this build.]) + +AC_MSG_CHECKING([Lisp char type]) +AC_MSG_RESULT([$char_type]) +AC_SUBST([char_type]) + +AC_MSG_CHECKING([Lisp double type]) +AC_MSG_RESULT([$double_type]) +AC_SUBST([double_type]) + +AC_SUBST([float_type]) +AC_MSG_CHECKING([Lisp float type]) +AC_MSG_RESULT([$float_type]) + +AC_MSG_CHECKING([Lisp int type]) +AC_MSG_RESULT([$int_type]) +AC_SUBST([int_type]) + +AC_MSG_CHECKING([Lisp pointer type]) +AC_MSG_RESULT([$pointer_type]) +AC_SUBST([pointer_type]) + +AC_MSG_CHECKING([Lisp string type]) +AC_MSG_RESULT([$string_type]) +AC_SUBST([string_type]) + +AC_MSG_CHECKING([Lisp void type]) +AC_MSG_RESULT([$void_type]) +AC_SUBST([void_type]) + + +AC_SUBST([oa_delay_ffi]) +AC_SUBST([oa_editor], [/usr/bin/editor]) +AC_SUBST([oa_enable_profiling], [nil]) +AC_SUBST([oa_keep_files], []) +AC_SUBST([oa_optimize_options], [speed]) +AC_SUBST([oa_standard_linking], [no]) +AC_SUBST([oa_use_llvm], [no]) +AC_SUBST([oa_c_runtime_extra], []) + + +AC_DEFINE_UNQUOTED([OPENAXIOM_EXEEXT], ["$ac_cv_exeext"], [File extensions of the executables (e. g. ".exe").]) +AC_DEFINE_UNQUOTED([OPENAXIOM_USE_GUI], [0], [Whether to use the Qt-base GUI as driver.]) +AC_DEFINE_UNQUOTED([OPENAXIOM_USE_SMAN], [1], [Whether to use the session manager as driver.]) + +OA_DEPS=dependencies.mk +rm -f "$OA_DEPS" +OA_RESOLVE_DEPENDENCIES([src/boot], ["$OA_DEPS"]) +OA_RESOLVE_DEPENDENCIES([src/boot/strap], ["$OA_DEPS"]) +OA_RESOLVE_DEPENDENCIES([src/interp], ["$OA_DEPS"]) +AC_SUBST_FILE([OA_DEPS]) +AC_SUBST([OA_DEPS_FILE], [$OA_DEPS]) + +AC_CONFIG_LINKS([src/boot/stage1/ast.boot:src/boot/ast.boot + src/boot/stage1/includer.boot:src/boot/includer.boot + src/boot/stage1/parser.boot:src/boot/parser.boot + src/boot/stage1/pile.boot:src/boot/pile.boot + src/boot/stage1/scanner.boot:src/boot/scanner.boot + src/boot/stage1/tokens.boot:src/boot/tokens.boot + src/boot/stage1/translator.boot:src/boot/translator.boot + src/boot/stage1/utility.boot:src/boot/utility.boot]) + +AC_CONFIG_FILES([Makefile src/lisp/core.lisp]) +AC_OUTPUT + diff --git a/m4/m4_ax_cxx_compile_stdcxx.m4 b/m4/m4_ax_cxx_compile_stdcxx.m4 new file mode 100644 index 00000000..a3d964c6 --- /dev/null +++ b/m4/m4_ax_cxx_compile_stdcxx.m4 @@ -0,0 +1,1009 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the specified +# version of the C++ standard. If necessary, add switches to CXX and +# CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for +# the respective C++ standard version. +# +# The second argument, if specified, indicates whether you insist on an +# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. +# -std=c++11). If neither is specified, you get whatever works, with +# preference for no added switch, and then for an extended mode. +# +# The third argument, if specified 'mandatory' or if left unspecified, +# indicates that baseline support for the specified C++ standard is +# required and that the macro should error out if no mode with that +# support is found. If specified 'optional', then configuration proceeds +# regardless, after defining HAVE_CXX${VERSION} if and only if a +# supporting mode is found. +# +# LICENSE +# +# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com> +# Copyright (c) 2012 Zack Weinberg <zackw@panix.com> +# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu> +# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com> +# Copyright (c) 2015 Paul Norman <penorman@mac.com> +# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu> +# Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com> +# Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com> +# Copyright (c) 2020 Jason Merrill <jason@redhat.com> +# Copyright (c) 2021 Jörn Heusipp <osmanx@problemloesungsmaschine.de> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 15 + +dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro +dnl (serial version number 13). + +AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl + m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], + [$1], [14], [ax_cxx_compile_alternatives="14 1y"], + [$1], [17], [ax_cxx_compile_alternatives="17 1z"], + [$1], [20], [ax_cxx_compile_alternatives="20"], + [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl + m4_if([$2], [], [], + [$2], [ext], [], + [$2], [noext], [], + [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl + m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], + [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], + [$3], [optional], [ax_cxx_compile_cxx$1_required=false], + [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) + AC_LANG_PUSH([C++])dnl + ac_success=no + + m4_if([$2], [], [dnl + AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, + ax_cv_cxx_compile_cxx$1, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [ax_cv_cxx_compile_cxx$1=yes], + [ax_cv_cxx_compile_cxx$1=no])]) + if test x$ax_cv_cxx_compile_cxx$1 = xyes; then + ac_success=yes + fi]) + + m4_if([$2], [noext], [], [dnl + if test x$ac_success = xno; then + for alternative in ${ax_cxx_compile_alternatives}; do + switch="-std=gnu++${alternative}" + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + fi]) + + m4_if([$2], [ext], [], [dnl + if test x$ac_success = xno; then + dnl HP's aCC needs +std=c++11 according to: + dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf + dnl Cray's crayCC needs "-h std=c++11" + for alternative in ${ax_cxx_compile_alternatives}; do + for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + if test x$ac_success = xyes; then + break + fi + done + fi]) + AC_LANG_POP([C++]) + if test x$ax_cxx_compile_cxx$1_required = xtrue; then + if test x$ac_success = xno; then + AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) + fi + fi + if test x$ac_success = xno; then + HAVE_CXX$1=0 + AC_MSG_NOTICE([No compiler with C++$1 support was found]) + else + HAVE_CXX$1=1 + AC_DEFINE(HAVE_CXX$1,1, + [define if the compiler supports basic C++$1 syntax]) + fi + AC_SUBST(HAVE_CXX$1) +]) + + +dnl Test body for checking C++11 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 +) + +dnl Test body for checking C++14 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 +) + +dnl Test body for checking C++17 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 +) + +dnl Test body for checking C++20 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_20 +) + + +dnl Tests for new features in C++11 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ + +// If the compiler admits that it is not ready for C++11, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +// MSVC always sets __cplusplus to 199711L in older versions; newer versions +// only set it correctly if /Zc:__cplusplus is specified as well as a +// /std:c++NN switch: +// https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ +#elif __cplusplus < 201103L && !defined _MSC_VER + +#error "This is not a C++11 compiler" + +#else + +namespace cxx11 +{ + + namespace test_static_assert + { + + template <typename T> + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + } + + namespace test_final_override + { + + struct Base + { + virtual ~Base() {} + virtual void f() {} + }; + + struct Derived : public Base + { + virtual ~Derived() override {} + virtual void f() override {} + }; + + } + + namespace test_double_right_angle_brackets + { + + template < typename T > + struct check {}; + + typedef check<void> single_type; + typedef check<check<void>> double_type; + typedef check<check<check<void>>> triple_type; + typedef check<check<check<check<void>>>> quadruple_type; + + } + + namespace test_decltype + { + + int + f() + { + int a = 1; + decltype(a) b = 2; + return a + b; + } + + } + + namespace test_type_deduction + { + + template < typename T1, typename T2 > + struct is_same + { + static const bool value = false; + }; + + template < typename T > + struct is_same<T, T> + { + static const bool value = true; + }; + + template < typename T1, typename T2 > + auto + add(T1 a1, T2 a2) -> decltype(a1 + a2) + { + return a1 + a2; + } + + int + test(const int c, volatile int v) + { + static_assert(is_same<int, decltype(0)>::value == true, ""); + static_assert(is_same<int, decltype(c)>::value == false, ""); + static_assert(is_same<int, decltype(v)>::value == false, ""); + auto ac = c; + auto av = v; + auto sumi = ac + av + 'x'; + auto sumf = ac + av + 1.0; + static_assert(is_same<int, decltype(ac)>::value == true, ""); + static_assert(is_same<int, decltype(av)>::value == true, ""); + static_assert(is_same<int, decltype(sumi)>::value == true, ""); + static_assert(is_same<int, decltype(sumf)>::value == false, ""); + static_assert(is_same<int, decltype(add(c, v))>::value == true, ""); + return (sumf > 0.0) ? sumi : add(c, v); + } + + } + + namespace test_noexcept + { + + int f() { return 0; } + int g() noexcept { return 0; } + + static_assert(noexcept(f()) == false, ""); + static_assert(noexcept(g()) == true, ""); + + } + + namespace test_constexpr + { + + template < typename CharT > + unsigned long constexpr + strlen_c_r(const CharT *const s, const unsigned long acc) noexcept + { + return *s ? strlen_c_r(s + 1, acc + 1) : acc; + } + + template < typename CharT > + unsigned long constexpr + strlen_c(const CharT *const s) noexcept + { + return strlen_c_r(s, 0UL); + } + + static_assert(strlen_c("") == 0UL, ""); + static_assert(strlen_c("1") == 1UL, ""); + static_assert(strlen_c("example") == 7UL, ""); + static_assert(strlen_c("another\0example") == 7UL, ""); + + } + + namespace test_rvalue_references + { + + template < int N > + struct answer + { + static constexpr int value = N; + }; + + answer<1> f(int&) { return answer<1>(); } + answer<2> f(const int&) { return answer<2>(); } + answer<3> f(int&&) { return answer<3>(); } + + void + test() + { + int i = 0; + const int c = 0; + static_assert(decltype(f(i))::value == 1, ""); + static_assert(decltype(f(c))::value == 2, ""); + static_assert(decltype(f(0))::value == 3, ""); + } + + } + + namespace test_uniform_initialization + { + + struct test + { + static const int zero {}; + static const int one {1}; + }; + + static_assert(test::zero == 0, ""); + static_assert(test::one == 1, ""); + + } + + namespace test_lambdas + { + + void + test1() + { + auto lambda1 = [](){}; + auto lambda2 = lambda1; + lambda1(); + lambda2(); + } + + int + test2() + { + auto a = [](int i, int j){ return i + j; }(1, 2); + auto b = []() -> int { return '0'; }(); + auto c = [=](){ return a + b; }(); + auto d = [&](){ return c; }(); + auto e = [a, &b](int x) mutable { + const auto identity = [](int y){ return y; }; + for (auto i = 0; i < a; ++i) + a += b--; + return x + identity(a + b); + }(0); + return a + b + c + d + e; + } + + int + test3() + { + const auto nullary = [](){ return 0; }; + const auto unary = [](int x){ return x; }; + using nullary_t = decltype(nullary); + using unary_t = decltype(unary); + const auto higher1st = [](nullary_t f){ return f(); }; + const auto higher2nd = [unary](nullary_t f1){ + return [unary, f1](unary_t f2){ return f2(unary(f1())); }; + }; + return higher1st(nullary) + higher2nd(nullary)(unary); + } + + } + + namespace test_variadic_templates + { + + template <int...> + struct sum; + + template <int N0, int... N1toN> + struct sum<N0, N1toN...> + { + static constexpr auto value = N0 + sum<N1toN...>::value; + }; + + template <> + struct sum<> + { + static constexpr auto value = 0; + }; + + static_assert(sum<>::value == 0, ""); + static_assert(sum<1>::value == 1, ""); + static_assert(sum<23>::value == 23, ""); + static_assert(sum<1, 2>::value == 3, ""); + static_assert(sum<5, 5, 11>::value == 21, ""); + static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); + + } + + // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae + // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function + // because of this. + namespace test_template_alias_sfinae + { + + struct foo {}; + + template<typename T> + using member = typename T::member_type; + + template<typename T> + void func(...) {} + + template<typename T> + void func(member<T>*) {} + + void test(); + + void test() { func<foo>(0); } + + } + +} // namespace cxx11 + +#endif // __cplusplus >= 201103L + +]]) + + +dnl Tests for new features in C++14 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ + +// If the compiler admits that it is not ready for C++14, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201402L && !defined _MSC_VER + +#error "This is not a C++14 compiler" + +#else + +namespace cxx14 +{ + + namespace test_polymorphic_lambdas + { + + int + test() + { + const auto lambda = [](auto&&... args){ + const auto istiny = [](auto x){ + return (sizeof(x) == 1UL) ? 1 : 0; + }; + const int aretiny[] = { istiny(args)... }; + return aretiny[0]; + }; + return lambda(1, 1L, 1.0f, '1'); + } + + } + + namespace test_binary_literals + { + + constexpr auto ivii = 0b0000000000101010; + static_assert(ivii == 42, "wrong value"); + + } + + namespace test_generalized_constexpr + { + + template < typename CharT > + constexpr unsigned long + strlen_c(const CharT *const s) noexcept + { + auto length = 0UL; + for (auto p = s; *p; ++p) + ++length; + return length; + } + + static_assert(strlen_c("") == 0UL, ""); + static_assert(strlen_c("x") == 1UL, ""); + static_assert(strlen_c("test") == 4UL, ""); + static_assert(strlen_c("another\0test") == 7UL, ""); + + } + + namespace test_lambda_init_capture + { + + int + test() + { + auto x = 0; + const auto lambda1 = [a = x](int b){ return a + b; }; + const auto lambda2 = [a = lambda1(x)](){ return a; }; + return lambda2(); + } + + } + + namespace test_digit_separators + { + + constexpr auto ten_million = 100'000'000; + static_assert(ten_million == 100000000, ""); + + } + + namespace test_return_type_deduction + { + + auto f(int& x) { return x; } + decltype(auto) g(int& x) { return x; } + + template < typename T1, typename T2 > + struct is_same + { + static constexpr auto value = false; + }; + + template < typename T > + struct is_same<T, T> + { + static constexpr auto value = true; + }; + + int + test() + { + auto x = 0; + static_assert(is_same<int, decltype(f(x))>::value, ""); + static_assert(is_same<int&, decltype(g(x))>::value, ""); + return x; + } + + } + +} // namespace cxx14 + +#endif // __cplusplus >= 201402L + +]]) + + +dnl Tests for new features in C++17 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ + +// If the compiler admits that it is not ready for C++17, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201703L && !defined _MSC_VER + +#error "This is not a C++17 compiler" + +#else + +#include <initializer_list> +#include <utility> +#include <type_traits> + +namespace cxx17 +{ + + namespace test_constexpr_lambdas + { + + constexpr int foo = [](){return 42;}(); + + } + + namespace test::nested_namespace::definitions + { + + } + + namespace test_fold_expression + { + + template<typename... Args> + int multiply(Args... args) + { + return (args * ... * 1); + } + + template<typename... Args> + bool all(Args... args) + { + return (args && ...); + } + + } + + namespace test_extended_static_assert + { + + static_assert (true); + + } + + namespace test_auto_brace_init_list + { + + auto foo = {5}; + auto bar {5}; + + static_assert(std::is_same<std::initializer_list<int>, decltype(foo)>::value); + static_assert(std::is_same<int, decltype(bar)>::value); + } + + namespace test_typename_in_template_template_parameter + { + + template<template<typename> typename X> struct D; + + } + + namespace test_fallthrough_nodiscard_maybe_unused_attributes + { + + int f1() + { + return 42; + } + + [[nodiscard]] int f2() + { + [[maybe_unused]] auto unused = f1(); + + switch (f1()) + { + case 17: + f1(); + [[fallthrough]]; + case 42: + f1(); + } + return f1(); + } + + } + + namespace test_extended_aggregate_initialization + { + + struct base1 + { + int b1, b2 = 42; + }; + + struct base2 + { + base2() { + b3 = 42; + } + int b3; + }; + + struct derived : base1, base2 + { + int d; + }; + + derived d1 {{1, 2}, {}, 4}; // full initialization + derived d2 {{}, {}, 4}; // value-initialized bases + + } + + namespace test_general_range_based_for_loop + { + + struct iter + { + int i; + + int& operator* () + { + return i; + } + + const int& operator* () const + { + return i; + } + + iter& operator++() + { + ++i; + return *this; + } + }; + + struct sentinel + { + int i; + }; + + bool operator== (const iter& i, const sentinel& s) + { + return i.i == s.i; + } + + bool operator!= (const iter& i, const sentinel& s) + { + return !(i == s); + } + + struct range + { + iter begin() const + { + return {0}; + } + + sentinel end() const + { + return {5}; + } + }; + + void f() + { + range r {}; + + for (auto i : r) + { + [[maybe_unused]] auto v = i; + } + } + + } + + namespace test_lambda_capture_asterisk_this_by_value + { + + struct t + { + int i; + int foo() + { + return [*this]() + { + return i; + }(); + } + }; + + } + + namespace test_enum_class_construction + { + + enum class byte : unsigned char + {}; + + byte foo {42}; + + } + + namespace test_constexpr_if + { + + template <bool cond> + int f () + { + if constexpr(cond) + { + return 13; + } + else + { + return 42; + } + } + + } + + namespace test_selection_statement_with_initializer + { + + int f() + { + return 13; + } + + int f2() + { + if (auto i = f(); i > 0) + { + return 3; + } + + switch (auto i = f(); i + 4) + { + case 17: + return 2; + + default: + return 1; + } + } + + } + + namespace test_template_argument_deduction_for_class_templates + { + + template <typename T1, typename T2> + struct pair + { + pair (T1 p1, T2 p2) + : m1 {p1}, + m2 {p2} + {} + + T1 m1; + T2 m2; + }; + + void f() + { + [[maybe_unused]] auto p = pair{13, 42u}; + } + + } + + namespace test_non_type_auto_template_parameters + { + + template <auto n> + struct B + {}; + + B<5> b1; + B<'a'> b2; + + } + + namespace test_structured_bindings + { + + int arr[2] = { 1, 2 }; + std::pair<int, int> pr = { 1, 2 }; + + auto f1() -> int(&)[2] + { + return arr; + } + + auto f2() -> std::pair<int, int>& + { + return pr; + } + + struct S + { + int x1 : 2; + volatile double y1; + }; + + S f3() + { + return {}; + } + + auto [ x1, y1 ] = f1(); + auto& [ xr1, yr1 ] = f1(); + auto [ x2, y2 ] = f2(); + auto& [ xr2, yr2 ] = f2(); + const auto [ x3, y3 ] = f3(); + + } + + namespace test_exception_spec_type_system + { + + struct Good {}; + struct Bad {}; + + void g1() noexcept; + void g2(); + + template<typename T> + Bad + f(T*, T*); + + template<typename T1, typename T2> + Good + f(T1*, T2*); + + static_assert (std::is_same_v<Good, decltype(f(g1, g2))>); + + } + + namespace test_inline_variables + { + + template<class T> void f(T) + {} + + template<class T> inline T g(T) + { + return T{}; + } + + template<> inline void f<>(int) + {} + + template<> int g<>(int) + { + return 5; + } + + } + +} // namespace cxx17 + +#endif // __cplusplus < 201703L && !defined _MSC_VER + +]]) + + +dnl Tests for new features in C++20 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[ + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 202002L && !defined _MSC_VER + +#error "This is not a C++20 compiler" + +#else + +#include <version> + +namespace cxx20 +{ + +// As C++20 supports feature test macros in the standard, there is no +// immediate need to actually test for feature availability on the +// Autoconf side. + +} // namespace cxx20 + +#endif // __cplusplus < 202002L && !defined _MSC_VER + +]]) diff --git a/m4/open-axiom-deps.m4 b/m4/open-axiom-deps.m4 new file mode 100644 index 00000000..595c6da3 --- /dev/null +++ b/m4/open-axiom-deps.m4 @@ -0,0 +1,28 @@ +# Resolve dependencies between *.boot, *.lisp, *.clisp +# and other OpenAxiom source files within the given directory. +# Dependencies will be written (appended) to the makefile: +# +# OA_RESOLVE_DEPENDENCIES(directory, makefile) +# +# Example: +# +# OA_RESOLVE_DEPENDENCIES([src/boot/strap], [Makefile]) +# +# ----------------------------- +AC_DEFUN([OA_RESOLVE_DEPENDENCIES], +[ AC_MSG_CHECKING([dependencies in $1]) + for f in $1/*.clisp $1/*.lisp $1/*.boot + do + AS_IF([test -f "$f"], + [AS_CASE(["$f"], + [*.boot], [OA_EXTRACT_BOOT([/^import @<:@^ @:>@+$/], [/^import /], [/$/], [$1], ["$f"]) >> $2], + [*.clisp], [OA_EXTRACT_LISP([/\((IMPORT-MODULE|import-module) "/], [/"\)/], [$1], ["$f"]) >> $2], + [*.lisp], [OA_EXTRACT_LISP([/\((IMPORT-MODULE|import-module) "/], [/"\)/], [$1], ["$f"]) >> $2])]) + done + AC_MSG_RESULT([done])]) + +AC_DEFUN([OA_EXTRACT_LISP], [OA_EXTRACT([$1], [$1], [$2], [$3], [$4])]) +AC_DEFUN([OA_EXTRACT_BOOT], [OA_EXTRACT([$1], [$2], [$3], [$4], [$5])]) + +AC_DEFUN([OA_EXTRACT], +[$AWK 'BEGIN {t=ARGV@<:@1@:>@; sub(/\.@<:@^.@:>@+$/,".$(FASLEXT)",t)} $1 {gsub ($2, "$4/"); gsub($3, ".$(FASLEXT)"); gsub(/_-/, "-"); r=r " " @S|@0} END {printf("%s:%s\n", t, r)}' $5]) diff --git a/src/clef/edible.c b/src/clef/edible.cc index c3022060..c3022060 100644 --- a/src/clef/edible.c +++ b/src/clef/edible.cc diff --git a/src/etc/asq.c.pamphlet b/src/etc/asq.c.pamphlet index 0ef9c5ef..98217cae 100644 --- a/src/etc/asq.c.pamphlet +++ b/src/etc/asq.c.pamphlet @@ -524,7 +524,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* printhelp -- print the help info */ /* main */ -#include "openaxiom-c-macros.h" #include <ctype.h> #include <unistd.h> diff --git a/src/graph/Gdraws/Gdraws0.h b/src/graph/Gdraws/Gdraws0.h index 632c3704..88425df1 100644 --- a/src/graph/Gdraws/Gdraws0.h +++ b/src/graph/Gdraws/Gdraws0.h @@ -36,7 +36,6 @@ #ifndef _GDRAWS0_H_ #define _GDRAWS0_H_ 1 -#include "openaxiom-c-macros.h" #include <X11/Xlib.h> diff --git a/src/graph/view2D/buttons2d.c b/src/graph/view2D/buttons2d.c index 1babc196..1f435657 100644 --- a/src/graph/view2D/buttons2d.c +++ b/src/graph/view2D/buttons2d.c @@ -34,7 +34,6 @@ */ #define _BUTTONS2D_C -#include "openaxiom-c-macros.h" #include <string.h> diff --git a/src/graph/view2D/control2d.c b/src/graph/view2D/control2d.c index 051184c4..83be366c 100644 --- a/src/graph/view2D/control2d.c +++ b/src/graph/view2D/control2d.c @@ -34,7 +34,6 @@ */ #define _CONTROL2D_C -#include "openaxiom-c-macros.h" #include <stdlib.h> #include <unistd.h> diff --git a/src/graph/view2D/graph2d.c b/src/graph/view2D/graph2d.c index dadd4008..2e1f9f86 100644 --- a/src/graph/view2D/graph2d.c +++ b/src/graph/view2D/graph2d.c @@ -34,7 +34,6 @@ */ #define _GRAPH2D_C -#include "openaxiom-c-macros.h" #include <stdio.h> #include <unistd.h> diff --git a/src/graph/view2D/main2d.c b/src/graph/view2D/main2d.c index 29c3b3d7..ac8547ee 100644 --- a/src/graph/view2D/main2d.c +++ b/src/graph/view2D/main2d.c @@ -34,7 +34,6 @@ */ #define _MAIN2D_C -#include "openaxiom-c-macros.h" #include <string.h> #include <stdlib.h> diff --git a/src/graph/view2D/pot2d.c b/src/graph/view2D/pot2d.c index 19f34e96..69aa985a 100644 --- a/src/graph/view2D/pot2d.c +++ b/src/graph/view2D/pot2d.c @@ -34,7 +34,6 @@ */ #define _POT2D_C -#include "openaxiom-c-macros.h" #include "header2.h" diff --git a/src/graph/view2D/process2d.c b/src/graph/view2D/process2d.c index 52c326f6..96740d35 100644 --- a/src/graph/view2D/process2d.c +++ b/src/graph/view2D/process2d.c @@ -34,7 +34,6 @@ */ #define _PROCESS2D_C -#include "openaxiom-c-macros.h" #include <string.h> #include <stdio.h> diff --git a/src/graph/view2D/spadAction2d.c b/src/graph/view2D/spadAction2d.c index 60789eb1..bceec18d 100644 --- a/src/graph/view2D/spadAction2d.c +++ b/src/graph/view2D/spadAction2d.c @@ -34,7 +34,6 @@ */ #define _SPADACTION2D_C -#include "openaxiom-c-macros.h" #include <stdio.h> #include <stdlib.h> diff --git a/src/graph/view2D/stuff2d.c b/src/graph/view2D/stuff2d.c index 1674d2f2..49649fdb 100644 --- a/src/graph/view2D/stuff2d.c +++ b/src/graph/view2D/stuff2d.c @@ -34,7 +34,6 @@ */ #define _STUFF2D_C -#include "openaxiom-c-macros.h" #include <unistd.h> #include <stdlib.h> diff --git a/src/graph/view2D/write2d.c b/src/graph/view2D/write2d.c index 395b821a..967dd149 100644 --- a/src/graph/view2D/write2d.c +++ b/src/graph/view2D/write2d.c @@ -34,7 +34,6 @@ */ #define _WRITE2D_C -#include "openaxiom-c-macros.h" #include <stdio.h> #include <stdlib.h> diff --git a/src/graph/view3D/buttons3d.c b/src/graph/view3D/buttons3d.c index d96031b9..1b3c4bcb 100644 --- a/src/graph/view3D/buttons3d.c +++ b/src/graph/view3D/buttons3d.c @@ -34,7 +34,6 @@ */ #define _BUTTONS3D_C -#include "openaxiom-c-macros.h" #include "header.h" #include "cpanel.h" diff --git a/src/graph/view3D/closeView3d.c b/src/graph/view3D/closeView3d.c index 14c64110..af040411 100644 --- a/src/graph/view3D/closeView3d.c +++ b/src/graph/view3D/closeView3d.c @@ -34,7 +34,6 @@ */ #define _CLOSEVIEW3D_C -#include "openaxiom-c-macros.h" #include <stdlib.h> #include "header.h" diff --git a/src/graph/view3D/component3d.c b/src/graph/view3D/component3d.c index 626790be..e45c58cf 100644 --- a/src/graph/view3D/component3d.c +++ b/src/graph/view3D/component3d.c @@ -34,7 +34,6 @@ */ #define _COMPONENT3D_C -#include "openaxiom-c-macros.h" #include "header.h" #include "draw.h" diff --git a/src/graph/view3D/control3d.c b/src/graph/view3D/control3d.c index 2fb407e6..0e59aec5 100644 --- a/src/graph/view3D/control3d.c +++ b/src/graph/view3D/control3d.c @@ -34,7 +34,6 @@ */ #define _CONTROL3D_C -#include "openaxiom-c-macros.h" #include <string.h> #include <stdio.h> diff --git a/src/graph/view3D/illuminate3d.c b/src/graph/view3D/illuminate3d.c index 323e5916..78bec762 100644 --- a/src/graph/view3D/illuminate3d.c +++ b/src/graph/view3D/illuminate3d.c @@ -34,7 +34,6 @@ */ #define _ILLUMINATE3D_C -#include "openaxiom-c-macros.h" #include <math.h> diff --git a/src/graph/view3D/lightbut3d.c b/src/graph/view3D/lightbut3d.c index b15b14da..42eb140b 100644 --- a/src/graph/view3D/lightbut3d.c +++ b/src/graph/view3D/lightbut3d.c @@ -34,7 +34,6 @@ */ #define _LIGHTBUT3D_C -#include "openaxiom-c-macros.h" #include "header.h" #include "cpanel.h" diff --git a/src/graph/view3D/lighting3d.c b/src/graph/view3D/lighting3d.c index 5d0b5489..03438aaa 100644 --- a/src/graph/view3D/lighting3d.c +++ b/src/graph/view3D/lighting3d.c @@ -34,7 +34,6 @@ */ #define _LIGHTING3D_C -#include "openaxiom-c-macros.h" #include <math.h> #include <string.h> diff --git a/src/graph/view3D/main3d.c b/src/graph/view3D/main3d.c index 90616192..a987028f 100644 --- a/src/graph/view3D/main3d.c +++ b/src/graph/view3D/main3d.c @@ -34,7 +34,6 @@ */ #define _MAIN3D_C -#include "openaxiom-c-macros.h" #include <string.h> #include <stdio.h> diff --git a/src/graph/view3D/mesh3d.c b/src/graph/view3D/mesh3d.c index 716cebeb..c1369e3f 100644 --- a/src/graph/view3D/mesh3d.c +++ b/src/graph/view3D/mesh3d.c @@ -34,7 +34,6 @@ */ #define _MESH3D_C -#include "openaxiom-c-macros.h" #include <math.h> diff --git a/src/graph/view3D/msort3d.c b/src/graph/view3D/msort3d.c index f034fe2d..36d2ca43 100644 --- a/src/graph/view3D/msort3d.c +++ b/src/graph/view3D/msort3d.c @@ -34,7 +34,6 @@ */ #define _MSORT3D_C -#include "openaxiom-c-macros.h" /***************************************************** diff --git a/src/graph/view3D/pot3d.c b/src/graph/view3D/pot3d.c index 0e519313..a38b16e9 100644 --- a/src/graph/view3D/pot3d.c +++ b/src/graph/view3D/pot3d.c @@ -34,7 +34,6 @@ */ #define _POT3D_C -#include "openaxiom-c-macros.h" #include "header.h" #include "all_3d.H1" diff --git a/src/graph/view3D/process3d.c b/src/graph/view3D/process3d.c index f5adbf9e..fcceb2e4 100644 --- a/src/graph/view3D/process3d.c +++ b/src/graph/view3D/process3d.c @@ -34,7 +34,6 @@ */ #define _PROCESS3D_C -#include "openaxiom-c-macros.h" #include <string.h> #include <stdlib.h> diff --git a/src/graph/view3D/project3d.c b/src/graph/view3D/project3d.c index f95d12d5..0032953d 100644 --- a/src/graph/view3D/project3d.c +++ b/src/graph/view3D/project3d.c @@ -34,7 +34,6 @@ */ #define _PROJECT3D_C -#include "openaxiom-c-macros.h" #include <string.h> #include "header.h" diff --git a/src/graph/view3D/quit3d.c b/src/graph/view3D/quit3d.c index bcbcd707..3218e00e 100644 --- a/src/graph/view3D/quit3d.c +++ b/src/graph/view3D/quit3d.c @@ -34,7 +34,6 @@ */ #define _QUIT3D_C -#include "openaxiom-c-macros.h" #include <string.h> #include "header.h" diff --git a/src/graph/view3D/quitbut3d.c b/src/graph/view3D/quitbut3d.c index 448d80ed..a4ada8f4 100644 --- a/src/graph/view3D/quitbut3d.c +++ b/src/graph/view3D/quitbut3d.c @@ -34,7 +34,6 @@ */ #define _QUITBUT3D_C -#include "openaxiom-c-macros.h" #include "header.h" #include "cpanel.h" diff --git a/src/graph/view3D/save3d.c b/src/graph/view3D/save3d.c index be86090f..2114668a 100644 --- a/src/graph/view3D/save3d.c +++ b/src/graph/view3D/save3d.c @@ -34,7 +34,6 @@ */ #define _SAVE3D_C -#include "openaxiom-c-macros.h" #include <stdio.h> #include <string.h> diff --git a/src/graph/view3D/savebut3d.c b/src/graph/view3D/savebut3d.c index d6e1e900..f2b80a8d 100644 --- a/src/graph/view3D/savebut3d.c +++ b/src/graph/view3D/savebut3d.c @@ -34,7 +34,6 @@ */ #define _SAVEBUT3D_C -#include "openaxiom-c-macros.h" #include "header.h" #include "cpanel.h" diff --git a/src/graph/view3D/smoothShade3d.c b/src/graph/view3D/smoothShade3d.c index b794f210..bb6a97bd 100644 --- a/src/graph/view3D/smoothShade3d.c +++ b/src/graph/view3D/smoothShade3d.c @@ -34,7 +34,6 @@ */ #define _SMOOTHSHADE_C -#include "openaxiom-c-macros.h" #include <string.h> #include <math.h> diff --git a/src/graph/view3D/spadAction3d.c b/src/graph/view3D/spadAction3d.c index 0c3861f3..e9ce3827 100644 --- a/src/graph/view3D/spadAction3d.c +++ b/src/graph/view3D/spadAction3d.c @@ -34,7 +34,6 @@ */ #define _SPADACTION3D_C -#include "openaxiom-c-macros.h" #include <unistd.h> #include <stdio.h> diff --git a/src/graph/view3D/stuff3d.c b/src/graph/view3D/stuff3d.c index ed466eb3..2362fc74 100644 --- a/src/graph/view3D/stuff3d.c +++ b/src/graph/view3D/stuff3d.c @@ -34,7 +34,6 @@ */ #define _STUFF3D_C -#include "openaxiom-c-macros.h" #include "header.h" diff --git a/src/graph/view3D/surface3d.c b/src/graph/view3D/surface3d.c index 3cff2df6..27647d23 100644 --- a/src/graph/view3D/surface3d.c +++ b/src/graph/view3D/surface3d.c @@ -34,7 +34,6 @@ */ #define _SURFACE3D_C -#include "openaxiom-c-macros.h" #include <string.h> #include <math.h> diff --git a/src/graph/view3D/testcol.c b/src/graph/view3D/testcol.c index 9eaea909..2c576bd6 100644 --- a/src/graph/view3D/testcol.c +++ b/src/graph/view3D/testcol.c @@ -34,7 +34,6 @@ */ #define _MAIN3D_C -#include "openaxiom-c-macros.h" #include <string.h> #include <stdio.h> #include <stdlib.h> diff --git a/src/graph/view3D/transform3d.c b/src/graph/view3D/transform3d.c index 4030e25c..c4390f99 100644 --- a/src/graph/view3D/transform3d.c +++ b/src/graph/view3D/transform3d.c @@ -34,7 +34,6 @@ */ #define _TRANSFORM3D_C -#include "openaxiom-c-macros.h" #include "header.h" diff --git a/src/graph/view3D/viewport3d.c b/src/graph/view3D/viewport3d.c index eed96b72..b0d9cb40 100644 --- a/src/graph/view3D/viewport3d.c +++ b/src/graph/view3D/viewport3d.c @@ -34,7 +34,6 @@ */ #define _VIEWPORT3D_C -#include "openaxiom-c-macros.h" #include <math.h> #include <stdio.h> diff --git a/src/graph/view3D/volume3d.c b/src/graph/view3D/volume3d.c index 87bce529..1794a1d2 100644 --- a/src/graph/view3D/volume3d.c +++ b/src/graph/view3D/volume3d.c @@ -34,7 +34,6 @@ */ #define _VOLUME3D_C -#include "openaxiom-c-macros.h" #include <math.h> #include <string.h> diff --git a/src/graph/view3D/write3d.c b/src/graph/view3D/write3d.c index 7eeaf15b..dd3c9a15 100644 --- a/src/graph/view3D/write3d.c +++ b/src/graph/view3D/write3d.c @@ -34,7 +34,6 @@ */ #define _WRITE3D_C -#include "openaxiom-c-macros.h" #include <stdio.h> #include <stdlib.h> diff --git a/src/graph/viewAlone/viewAlone.c b/src/graph/viewAlone/viewAlone.c index 07f89039..5fb48a93 100644 --- a/src/graph/viewAlone/viewAlone.c +++ b/src/graph/viewAlone/viewAlone.c @@ -34,7 +34,6 @@ */ #define _VIEWALONE_C -#include "openaxiom-c-macros.h" #include <stdlib.h> #include "viewAlone.h" diff --git a/src/graph/viewman/cleanup.c b/src/graph/viewman/cleanup.c index 4dfbc04e..20c4cfa9 100644 --- a/src/graph/viewman/cleanup.c +++ b/src/graph/viewman/cleanup.c @@ -34,7 +34,6 @@ */ #define _CLEANUP_C -#include "openaxiom-c-macros.h" #include <stdlib.h> #include <unistd.h> diff --git a/src/graph/viewman/make2D.c b/src/graph/viewman/make2D.c index 65810003..0cbcf8bc 100644 --- a/src/graph/viewman/make2D.c +++ b/src/graph/viewman/make2D.c @@ -34,7 +34,6 @@ */ #define _MAKE2D_C -#include "openaxiom-c-macros.h" #include "viewman.h" diff --git a/src/graph/viewman/make3D.c b/src/graph/viewman/make3D.c index 30f2e869..2bbaebb9 100644 --- a/src/graph/viewman/make3D.c +++ b/src/graph/viewman/make3D.c @@ -34,7 +34,6 @@ */ #define _MAKE3D_C -#include "openaxiom-c-macros.h" #include <stdlib.h> diff --git a/src/graph/viewman/makeGraph.c b/src/graph/viewman/makeGraph.c index 331d32cf..344144ec 100644 --- a/src/graph/viewman/makeGraph.c +++ b/src/graph/viewman/makeGraph.c @@ -34,7 +34,6 @@ */ #define _MAKEGRAPH_C -#include "openaxiom-c-macros.h" #include <stdlib.h> #include <stdio.h> diff --git a/src/graph/viewman/readView.c b/src/graph/viewman/readView.c index b21cf3df..13745459 100644 --- a/src/graph/viewman/readView.c +++ b/src/graph/viewman/readView.c @@ -34,7 +34,6 @@ */ #define _READVIEW_C -#include "openaxiom-c-macros.h" #include <unistd.h> #include <stdio.h> diff --git a/src/graph/viewman/sselect.c b/src/graph/viewman/sselect.c index 68a3f869..942aa14c 100644 --- a/src/graph/viewman/sselect.c +++ b/src/graph/viewman/sselect.c @@ -34,7 +34,6 @@ */ #define _SSELECT_C -#include "openaxiom-c-macros.h" #include <stdio.h> #include <errno.h> diff --git a/src/graph/viewman/viewman.c b/src/graph/viewman/viewman.c index e5940302..34c48a71 100644 --- a/src/graph/viewman/viewman.c +++ b/src/graph/viewman/viewman.c @@ -34,7 +34,6 @@ */ #define _VIEWMAN_C -#include "openaxiom-c-macros.h" #include <unistd.h> #include <sys/time.h> diff --git a/src/hyper/ReadBitmap.c b/src/hyper/ReadBitmap.c index ee8e89d2..3ecd3bd4 100644 --- a/src/hyper/ReadBitmap.c +++ b/src/hyper/ReadBitmap.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/addfile.c b/src/hyper/addfile.c index 3671b2a5..cac8a957 100644 --- a/src/hyper/addfile.c +++ b/src/hyper/addfile.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include <sys/stat.h> #include <errno.h> diff --git a/src/hyper/cond.c b/src/hyper/cond.c index 1771ca02..4db1f352 100644 --- a/src/hyper/cond.c +++ b/src/hyper/cond.c @@ -41,7 +41,6 @@ * ****************************************************************************/ -#include "openaxiom-c-macros.h" #include "debug.h" #include "sockio.h" #include "halloc.h" diff --git a/src/hyper/debug.c b/src/hyper/debug.c index 7260ca15..c00d53d2 100644 --- a/src/hyper/debug.c +++ b/src/hyper/debug.c @@ -34,7 +34,6 @@ */ #define _DEBUG_C -#include "openaxiom-c-macros.h" #include "debug.h" diff --git a/src/hyper/dialog.c b/src/hyper/dialog.c index e3ae5122..e67ca0fd 100644 --- a/src/hyper/dialog.c +++ b/src/hyper/dialog.c @@ -43,7 +43,6 @@ #include <X11/keysym.h> #define _DIALOG_C -#include "openaxiom-c-macros.h" #include "debug.h" diff --git a/src/hyper/display.c b/src/hyper/display.c index e7d493f6..0bb5fa36 100644 --- a/src/hyper/display.c +++ b/src/hyper/display.c @@ -52,7 +52,6 @@ */ #define _DISPLAY_C -#include "openaxiom-c-macros.h" #include "debug.h" #include "sockio.h" diff --git a/src/hyper/event.c b/src/hyper/event.c index b2217805..8412df23 100644 --- a/src/hyper/event.c +++ b/src/hyper/event.c @@ -35,7 +35,6 @@ #define _EVENT_C -#include "openaxiom-c-macros.h" #include <X11/X.h> #include <X11/Xatom.h> diff --git a/src/hyper/ex2ht.c b/src/hyper/ex2ht.c index 64a55a2e..36042231 100644 --- a/src/hyper/ex2ht.c +++ b/src/hyper/ex2ht.c @@ -36,7 +36,6 @@ /* ex2ht creates a cover page for structured HyperDoc example pages */ -#include "openaxiom-c-macros.h" #include "debug.h" #include <stdio.h> diff --git a/src/hyper/extent.h b/src/hyper/extent.h index efc9ece4..4e1e2425 100644 --- a/src/hyper/extent.h +++ b/src/hyper/extent.h @@ -36,7 +36,6 @@ #ifndef _EXTENT_H_ #define _EXTENT_H_ 1 -#include "openaxiom-c-macros.h" #include "hyper.h" /* diff --git a/src/hyper/extent1.c b/src/hyper/extent1.c index 95766791..46977487 100644 --- a/src/hyper/extent1.c +++ b/src/hyper/extent1.c @@ -41,7 +41,6 @@ * ****************************************************************************/ -#include "openaxiom-c-macros.h" #include "debug.h" #include "sockio.h" #include "extent.h" diff --git a/src/hyper/extent2.c b/src/hyper/extent2.c index 10f7b923..c251e6ac 100644 --- a/src/hyper/extent2.c +++ b/src/hyper/extent2.c @@ -41,7 +41,6 @@ * ****************************************************************************/ -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/form-ext.c b/src/hyper/form-ext.c index 93d8d0b0..24c94a24 100644 --- a/src/hyper/form-ext.c +++ b/src/hyper/form-ext.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include "debug.h" #include "sockio.h" #include "extent.h" diff --git a/src/hyper/group.h b/src/hyper/group.h index 7253cd83..0a1b9d44 100644 --- a/src/hyper/group.h +++ b/src/hyper/group.h @@ -36,7 +36,6 @@ #ifndef _GROUP_H_ #define _GROUP_H_ 1 -#include "openaxiom-c-macros.h" #include "hyper.h" extern void bf_top_group(void ); diff --git a/src/hyper/htadd.c b/src/hyper/htadd.c index b3a5962a..8457885c 100644 --- a/src/hyper/htadd.c +++ b/src/hyper/htadd.c @@ -36,7 +36,6 @@ /* HyperDoc database file manager */ -#include "openaxiom-c-macros.h" #include <errno.h> #include <setjmp.h> diff --git a/src/hyper/hthits.c b/src/hyper/hthits.c index 4e628b16..5f04bdbf 100644 --- a/src/hyper/hthits.c +++ b/src/hyper/hthits.c @@ -49,7 +49,6 @@ * SMW Feb 91 */ -#include "openaxiom-c-macros.h" #include "debug.h" diff --git a/src/hyper/htinp.c b/src/hyper/htinp.c index b44047f8..fafa992a 100644 --- a/src/hyper/htinp.c +++ b/src/hyper/htinp.c @@ -37,7 +37,6 @@ #include <sys/signal.h> #include <setjmp.h> -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/htsearch.cc b/src/hyper/htsearch.cc index b42c0b0f..d521a12f 100644 --- a/src/hyper/htsearch.cc +++ b/src/hyper/htsearch.cc @@ -41,7 +41,6 @@ * result. */ -#include "openaxiom-c-macros.h" #include <stdlib.h> #include <stdio.h> diff --git a/src/hyper/hyper.h b/src/hyper/hyper.h index 67537647..2b4b577d 100644 --- a/src/hyper/hyper.h +++ b/src/hyper/hyper.h @@ -36,7 +36,6 @@ #ifndef _HYPER_H_ #define _HYPER_H_ 1 -#include "openaxiom-c-macros.h" #include <stdio.h> #include <stdlib.h> #include <unistd.h> diff --git a/src/hyper/initx.c b/src/hyper/initx.c index c69c2071..911208c9 100644 --- a/src/hyper/initx.c +++ b/src/hyper/initx.c @@ -43,7 +43,6 @@ /* #define DEBUG 1 */ -#include "openaxiom-c-macros.h" #include <unistd.h> #include <sys/signal.h> diff --git a/src/hyper/input.c b/src/hyper/input.c index 2c645208..cabfdc24 100644 --- a/src/hyper/input.c +++ b/src/hyper/input.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include "debug.h" #include "sockio.h" #include "hyper.h" diff --git a/src/hyper/item.c b/src/hyper/item.c index 7bf7d724..576cc895 100644 --- a/src/hyper/item.c +++ b/src/hyper/item.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include "sockio.h" #include "debug.h" #include "halloc.h" diff --git a/src/hyper/keyin.c b/src/hyper/keyin.c index fa8af8de..e8dbf70d 100644 --- a/src/hyper/keyin.c +++ b/src/hyper/keyin.c @@ -42,7 +42,6 @@ ****************************************************************************/ #include <X11/keysym.h> -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/lex.c b/src/hyper/lex.c index ed281403..9c7edc23 100644 --- a/src/hyper/lex.c +++ b/src/hyper/lex.c @@ -57,7 +57,6 @@ * */ #define _LEX_C -#include "openaxiom-c-macros.h" #include <ctype.h> #include <setjmp.h> diff --git a/src/hyper/macro.c b/src/hyper/macro.c index 7bf0f77b..54e70f09 100644 --- a/src/hyper/macro.c +++ b/src/hyper/macro.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/parse-aux.c b/src/hyper/parse-aux.c index 24efcf89..cbfb2197 100644 --- a/src/hyper/parse-aux.c +++ b/src/hyper/parse-aux.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/parse-input.c b/src/hyper/parse-input.c index 727acc9d..f97a68eb 100644 --- a/src/hyper/parse-input.c +++ b/src/hyper/parse-input.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" /*** Contains all the code needed to parse input items, InputString diff --git a/src/hyper/parse-paste.c b/src/hyper/parse-paste.c index 06d84fa1..58ea290e 100644 --- a/src/hyper/parse-paste.c +++ b/src/hyper/parse-paste.c @@ -41,7 +41,6 @@ * ****************************************************************************/ -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/parse-paste.h b/src/hyper/parse-paste.h index cb0556b9..6b8ba74f 100644 --- a/src/hyper/parse-paste.h +++ b/src/hyper/parse-paste.h @@ -36,7 +36,6 @@ #ifndef _PARSE_PASTE_H_ #define _PARSE_PASTE_H_ 1 -#include "openaxiom-c-macros.h" #include "hyper.h" extern void parse_paste(); diff --git a/src/hyper/parse-types.c b/src/hyper/parse-types.c index e42d93f9..60a25d35 100644 --- a/src/hyper/parse-types.c +++ b/src/hyper/parse-types.c @@ -41,7 +41,6 @@ * ****************************************************************************/ -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/parse.h b/src/hyper/parse.h index 3e2c04b4..20109ba5 100644 --- a/src/hyper/parse.h +++ b/src/hyper/parse.h @@ -36,7 +36,6 @@ #ifndef _PARSE_H_ #define _PARSE_H_ 1 -#include "openaxiom-c-macros.h" #ifdef SUNplatform #include <sys/types.h> diff --git a/src/hyper/scrollbar.c b/src/hyper/scrollbar.c index 92e67ad1..2571d501 100644 --- a/src/hyper/scrollbar.c +++ b/src/hyper/scrollbar.c @@ -41,7 +41,6 @@ * ****************************************************************************/ -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/show-types.c b/src/hyper/show-types.c index e34498d8..31a02a46 100644 --- a/src/hyper/show-types.c +++ b/src/hyper/show-types.c @@ -41,7 +41,6 @@ * ****************************************************************************/ -#include "openaxiom-c-macros.h" #include "debug.h" #include "sockio.h" #include "hyper.h" diff --git a/src/hyper/spadbuf.c b/src/hyper/spadbuf.c index bfb4b377..d6f3e0b1 100644 --- a/src/hyper/spadbuf.c +++ b/src/hyper/spadbuf.c @@ -34,7 +34,6 @@ */ #define _SPADBUF_C -#include "openaxiom-c-macros.h" #include "debug.h" diff --git a/src/hyper/titlebar.c b/src/hyper/titlebar.c index 7cc21822..072284c5 100644 --- a/src/hyper/titlebar.c +++ b/src/hyper/titlebar.c @@ -42,7 +42,6 @@ ****************************************************************************/ #include <stdlib.h> -#include "openaxiom-c-macros.h" #include "debug.h" #include "halloc.h" #include "sockio.h" diff --git a/src/hyper/token.h b/src/hyper/token.h index b40d069a..f6ddbd31 100644 --- a/src/hyper/token.h +++ b/src/hyper/token.h @@ -36,7 +36,6 @@ #ifndef _TOKEN_H_ #define _TOKEN_H_ 1 -#include "openaxiom-c-macros.h" #include <stdio.h> /* diff --git a/src/include/open-axiom.h b/src/include/open-axiom.h index 7d15e4ec..5f173e33 100644 --- a/src/include/open-axiom.h +++ b/src/include/open-axiom.h @@ -34,11 +34,13 @@ #ifndef OPENAXIOM_included #define OPENAXIOM_included +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include <vector> #include <string> -#include "openaxiom-c-macros.h" - /* Annotation to request C calling convention */ #ifdef __cplusplus # define OPENAXIOM_C_CALL extern "C" diff --git a/src/include/open-axiom/storage b/src/include/open-axiom/storage index fe12d1eb..1ac6cbcf 100644 --- a/src/include/open-axiom/storage +++ b/src/include/open-axiom/storage @@ -40,7 +40,6 @@ #ifndef OPENAXIOM_STORAGE_included #define OPENAXIOM_STORAGE_included -#include <open-axiom/config> #include <stddef.h> #include <new> #include <cmath> diff --git a/src/include/sockio.h b/src/include/sockio.h index f77f8d50..4b683105 100644 --- a/src/include/sockio.h +++ b/src/include/sockio.h @@ -50,7 +50,6 @@ # define OPENAXIOM_INVALID_SOCKET (-1) #endif -#include "openaxiom-c-macros.h" #include "open-axiom.h" namespace OpenAxiom { diff --git a/src/lib/XDither.c b/src/lib/XDither.c index d766633d..aac711f8 100644 --- a/src/lib/XDither.c +++ b/src/lib/XDither.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include <stdio.h> #include <stdlib.h> diff --git a/src/lib/XShade.c b/src/lib/XShade.c index 590f2d2f..a5851f69 100644 --- a/src/lib/XShade.c +++ b/src/lib/XShade.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include <stdio.h> #include <stdlib.h> diff --git a/src/lib/XSpadFill.c b/src/lib/XSpadFill.c index 566c57ce..0b2212e5 100644 --- a/src/lib/XSpadFill.c +++ b/src/lib/XSpadFill.c @@ -58,7 +58,6 @@ #include <X11/Intrinsic.h> #include <X11/StringDefs.h> -#include "openaxiom-c-macros.h" #include "spadcolors.h" #include "XSpadFill.h" #include "XShade.h" diff --git a/src/lib/bsdsignal.cxx b/src/lib/bsdsignal.cxx index 07fc6b54..66e4dcd0 100644 --- a/src/lib/bsdsignal.cxx +++ b/src/lib/bsdsignal.cxx @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include <signal.h> #include "bsdsignal.h" diff --git a/src/lib/cfuns-c.cxx b/src/lib/cfuns-c.cxx index 5dbcd6bc..5cb5f338 100644 --- a/src/lib/cfuns-c.cxx +++ b/src/lib/cfuns-c.cxx @@ -34,7 +34,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include <errno.h> #include <limits.h> @@ -501,11 +503,11 @@ oa_acquire_temporary_pathname() { } return strdup(buf); #elif HAVE_DECL_MKTEMP - return mktemp(copy_c_str(std::string{ oa_get_tmpdir() } + "/oa-XXXXXX")); + return mktemp(strdup((std::string{ oa_get_tmpdir() } + "/oa-XXXXXX").c_str())); #elif HAVE_DECL_TEMPNAM return tempnam(oa_get_tmpdir(), "oa-"); #else - return copy_c_str("oa-" + std::to_string(random())); + return strdup(("oa-" + std::to_string(random())).c_str()); #endif } diff --git a/src/lib/cursor.c b/src/lib/cursor.cc index 5413151d..af0b6603 100644 --- a/src/lib/cursor.c +++ b/src/lib/cursor.cc @@ -34,7 +34,6 @@ */ #include <stdlib.h> -#include "openaxiom-c-macros.h" #include "cursor.h" diff --git a/src/lib/edin.c b/src/lib/edin.cc index 568bb77a..7fee5176 100644 --- a/src/lib/edin.c +++ b/src/lib/edin.cc @@ -36,7 +36,6 @@ /* #define debug 1 */ #include <stdlib.h> -#include "openaxiom-c-macros.h" #include <unistd.h> #include <string.h> #include <stdio.h> diff --git a/src/lib/emupty.c b/src/lib/emupty.c index 7ddfbd2d..9b9848c9 100644 --- a/src/lib/emupty.c +++ b/src/lib/emupty.c @@ -31,7 +31,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" /* Here is some code taken from Nick Simicich. It takes an escape sequence diff --git a/src/lib/fnct_key.c b/src/lib/fnct_key.cc index f70bc430..af0d5c28 100644 --- a/src/lib/fnct_key.c +++ b/src/lib/fnct_key.cc @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include <unistd.h> #include <stdlib.h> #include <stdio.h> diff --git a/src/lib/halloc.c b/src/lib/halloc.c index 4b19c60a..fb43d6b3 100644 --- a/src/lib/halloc.c +++ b/src/lib/halloc.c @@ -31,7 +31,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" /* memory allocation used by HyperDoc and addfile */ diff --git a/src/lib/hash.c b/src/lib/hash.c index 837eb8b1..7f727ecf 100644 --- a/src/lib/hash.c +++ b/src/lib/hash.c @@ -32,7 +32,6 @@ */ -#include "openaxiom-c-macros.h" #define _HASH_C #include "debug.h" diff --git a/src/lib/openpty.c b/src/lib/openpty.cc index 5918aa7a..4262832e 100644 --- a/src/lib/openpty.c +++ b/src/lib/openpty.cc @@ -33,7 +33,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include <stdlib.h> #include <unistd.h> #include <stdio.h> diff --git a/src/lib/pixmap.c b/src/lib/pixmap.c index d0ad2097..da169dfb 100644 --- a/src/lib/pixmap.c +++ b/src/lib/pixmap.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include <X11/Xlib.h> #include <X11/Xutil.h> diff --git a/src/lib/prt.c b/src/lib/prt.cc index ee5b3af0..831a199e 100644 --- a/src/lib/prt.c +++ b/src/lib/prt.cc @@ -31,7 +31,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include <string.h> #include <stdio.h> #include <sys/types.h> diff --git a/src/lib/sockio-c.cxx b/src/lib/sockio-c.cxx index dda95ec3..c17c3398 100644 --- a/src/lib/sockio-c.cxx +++ b/src/lib/sockio-c.cxx @@ -70,9 +70,9 @@ namespace OpenAxiom { /* Note that the name AF_LOCAL is more portable than AF_UNIX, but MingW implementation and Windows documentation don't always agree. */ -#if HAVE_AF_LOCAL +#if HAVE_DECL_AF_LOCAL # define OPENAXIOM_AF_LOCAL AF_LOCAL -#elif HAVE_AF_UNIX +#elif HAVE_DECL_AF_UNIX # define OPENAXIOM_AF_LOCAL AF_UNIX #else # error "needs one of AF_LOCAL or AF_UNIX" diff --git a/src/lib/spadcolors.c b/src/lib/spadcolors.c index b8d784f2..8007b450 100644 --- a/src/lib/spadcolors.c +++ b/src/lib/spadcolors.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include "spadcolors.h" #include <X11/Xlib.h> diff --git a/src/lib/util.c b/src/lib/util.c index 198cd3bf..264590ea 100644 --- a/src/lib/util.c +++ b/src/lib/util.c @@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "openaxiom-c-macros.h" #include <unistd.h> #include <sys/types.h> #include <stdio.h> diff --git a/src/lib/wct.c b/src/lib/wct.cc index 44510558..bac8c894 100644 --- a/src/lib/wct.c +++ b/src/lib/wct.cc @@ -41,7 +41,6 @@ * */ -#include "openaxiom-c-macros.h" #include <stdio.h> #include <stdlib.h> diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in index 4fce2768..d5e36548 100644 --- a/src/lisp/core.lisp.in +++ b/src/lisp/core.lisp.in @@ -423,7 +423,10 @@ (eval-when (:compile-toplevel :load-toplevel :execute) (progn (setq *read-default-float-format* 'double-float) - (setq *load-verbose* nil))) + (setq *load-print* nil) + (setq *load-verbose* nil) + (setq *compile-print* nil) + (setq *compile-verbose* nil))) ;; True means that the base Lisp system uses conventional C-style ;; program linking model, whereby programs are constructed by linking @@ -673,6 +676,7 @@ (defun |getFileType|(file) (let ((file-type (pathname-type file))) (cond ((or (equal "clisp" file-type) + (equal "cl" file-type) (equal "lsp" file-type)) |$LispFileType|) (t file-type)))) diff --git a/src/sman/session.c b/src/sman/session.cc index 20a29307..20a29307 100644 --- a/src/sman/session.c +++ b/src/sman/session.cc diff --git a/src/sman/sman.c b/src/sman/sman.cc index ac941266..ac941266 100644 --- a/src/sman/sman.c +++ b/src/sman/sman.cc diff --git a/src/sman/spadclient.c b/src/sman/spadclient.cc index 85b8815e..029d354a 100644 --- a/src/sman/spadclient.c +++ b/src/sman/spadclient.cc @@ -40,7 +40,6 @@ #include <signal.h> #include <stdlib.h> -#include "openaxiom-c-macros.h" #include "sockio.h" #include "com.h" #include "bsdsignal.h" diff --git a/src/utils/command.cc b/src/utils/command.cc index 55716bc1..b0419a99 100644 --- a/src/utils/command.cc +++ b/src/utils/command.cc @@ -234,9 +234,10 @@ build_rts_options(Command* command, Driver driver) break; case Runtime::ecl: - command->rt_args.allocate(2); + command->rt_args.allocate(3); command->rt_args[0] = (char*) "-q"; - command->rt_args[1] = (char*) "-norc"; + command->rt_args[1] = (char*) "--nodebug"; + command->rt_args[1] = (char*) "--norc"; break; default: diff --git a/src/utils/hammer.cc b/src/utils/hammer.cc index 003cd1f8..36193c0b 100644 --- a/src/utils/hammer.cc +++ b/src/utils/hammer.cc @@ -152,7 +152,7 @@ namespace OpenAxiom::Hammer { CompositeText prose; // the prose around the chunks. ChunkTable defs; // chunk definition table. CompositeText* active_chunk; // chunk under construction. - const char8_t* text_start; // begining of current basic text. + const char8_t* text_start; // beginning of current basic text. // Append basic text in the range `[text_start,last)' // to the current chunk. diff --git a/src/utils/storage.cxx b/src/utils/storage.cxx index 98b0a27f..a2eb2919 100644 --- a/src/utils/storage.cxx +++ b/src/utils/storage.cxx @@ -31,6 +31,10 @@ // --%: Gabriel Dos Reis. +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include <open-axiom/storage> #include <open-axiom/FileMapping> #ifdef HAVE_SYS_TYPES_H @@ -56,6 +60,14 @@ #include <stdlib.h> #include <string.h> +#if HAVE_DECL_MAP_ANONYMOUS +# define OPENAXIOM_MM_ANONYMOUS_MAP_FLAG MAP_ANONYMOUS +#elif HAVE_DECL_MAP_ANON +# define OPENAXIOM_MM_ANONYMOUS_MAP_FLAG MAP_ANON +#else +# error MAP_ANONYMOUS or MAP_ANON must be defined +#endif + namespace OpenAxiom { // ---------------- // -- SystemError -- |