subdir = src/interp/ DOC=$(fricas_target_docdir)/src/interp fricas_debug_compiler=@fricas_debug_compiler@ # Command to translate Boot to Common Lisp BOOT_TO_LISP = $(fricas_build_helper) \ --translate_boot --debug=$(fricas_debug_compiler) \ --use=$(BOOTSYS) --output=$@ $< # Command to translate Common Lisp to native object code COMPILE_LISP = $(fricas_build_helper) \ --compile_lisp --debug=$(fricas_debug_compiler) \ --use=$(LOADSYS) --output=$@ $< BOOTSYS= $(fricas_build_bindir)/bootsys LOADSYS= $(fricas_build_bindir)/lisp$(EXEEXT) SAVESYS= $(fricas_build_bindir)/interpsys$(EXEEXT) FRICASSYS= $(fricas_target_bindir)/FRICASsys$(EXEEXT) OBJ_files= macros setq \ buildom cattable clam clammed \ compat compress cparse cstream database \ format g-boot g-cndata g-error g-opt \ g-timer g-util hypertex i-analy \ i-coerce i-coerfn i-eval i-funsel i-intern \ i-map i-output i-resolv i-spec1 i-spec2 i-syscmd \ i-toplev incl interop int-top lisplib macex match \ msg msgdb nlib nrunfast \ nrungo nrunopt pathname pf2sex pile \ posit property ptrees rulesets scan \ serror server setvars sfsfun simpbool slam \ spad termrw trace \ daase ncomp parsing \ parse postpar setvart s-parser scwrap2 spaderror OCOBJ_files= apply c-doc c-util category compiler \ define functor info iterator modemap nruncomp \ package htcheck BROBJ_files= bc-matrix bc-misc bc-solve ht-util htsetvar \ ht-root br-con br-data showimp br-op1 br-op2 \ br-search br-util br-saturn ASCOMP_files= hashcode as foam_l # hashcode must be before interop ALL_OBJ_files = vmlisp ${ASCOMP_files} ${OBJ_files} ax ${BROBJ_files} \ ${OCOBJ_files} ALL_OBJS = $(patsubst %, %.$(LISPOBJEXT), $(ALL_OBJ_files)) .PRECIOUS: ${SAVESYS} .PRECIOUS: ${FRICASSYS} PROCLAIMS=(progn (load "$(srcdir)/interp-proclaims.lisp")) .SUFFIXES: .SUFFIXES: .boot .clisp .lisp .PHONY: all all-ax all-interpsys all-fricassys all: all-ax all-ax: stamp @echo finished $(srcdir) stamp: remove-stamp build-images $(STAMP) stamp .PHONY: remove-stamp remove-stamp: -rm -f stamp .PHONY: build-images build-images: remove-stamp all-interpsys all-interpsys: $(SAVESYS) clean: @echo 619 cleaning $(builddir) .PRECIOUS: %.clisp %.clisp: $(srcdir)/%.boot $(BOOT_TO_LISP) .PRECIOUS: %.$(LISPOBJEXT) %.$(LISPOBJEXT): %.clisp $(COMPILE_LISP) # Compile the part of the interpreter written in Common Lisp .PRECIOUS: %.lisp %.$(LISPOBJEXT): $(srcdir)/%.lisp $(COMPILE_LISP) mostlyclean-local: rm -f *.fn *.data *.lib *.$(LISPOBJEXT) clean-local: mostlyclean-local rm -f *.clisp \ makedep.lisp makedep2.lisp makedep2.lst makeint.lisp \ exposed.lsp database.date distclean-local: clean-local ${SAVESYS} ${FRICASSYS}: makeint.lisp \ ${ALL_OBJS} util.$(LISPOBJEXT) \ database.date ${LOADSYS} \ $(fricas_targetdir)/algebra/exposed.$(FASLEXT) \ $(fricas_src_datadir)/doc/msgs/s2-us.msgs makeint.lisp: ../boot/lobj_lst @ echo 5 invoking make in `pwd` with parms: @ echo SRC= $(fricas_src_srcdir) @ echo BYE=${BYE} cp $(fricas_src_datadir)/doc/msgs/s2-us.msgs \ $(fricas_target_datadir)/msgs/s2-us.msgs @ echo '${PROCLAIMS}' > makeint.lisp echo '(load #-:ecl "util" #+:ecl "$(srcdir)/util.lisp")' >> makeint.lisp @ echo '(in-package "BOOT")' >> makeint.lisp @ echo '(progn (setq boot::|$$build_date| "${BUILD_DATE}")' \ ' (setq boot::|$$build_version| "${VERSION}"))' \ >> makeint.lisp echo '#+:ecl(setf fricas-lisp::*fricas-initial-lisp-objects*' \ '(append fricas-lisp::*fricas-initial-lisp-objects*' \ ' (quote (' >> makeint.lisp cat ../boot/lobj_lst >> makeint.lisp echo '))))' >> makeint.lisp echo '(build-interpsys' \ '(quote ($(patsubst %, "%", ${ALL_OBJS})))' \ '"${FRICAS}")' >> makeint.lisp @ echo '(in-package "BOOT")' >> makeint.lisp echo '#-:ecl(|clearClams|)' >> makeint.lisp @ echo '#+:GCL (setq compiler::*suppress-compiler-notes* t)' >> makeint.lisp @ echo '#+:GCL (si::gbc-time 0)' >> makeint.lisp ${SAVESYS}: echo '(load "makeint.lisp") #-:ecl(BOOT::reclaim)' \ '#+:ecl(FRICAS-LISP::make-program "$(BASE)$@" nil)' \ '#-:ecl(BOOT::spad-save "$(BASE)$@" t)' | \ DAASE='$(fricas_src_datadir)' ${BOOTSYS} ls $@ @ echo 6 ${SAVESYS} created .PHONY: all-fricassys all-fricassys: ${FRICASSYS} ${FRICASSYS}: ../etc/stamp-databases echo '(defparameter FRICAS-LISP::*building-fricassys* t)' \ '(load "makeint.lisp") #-:ecl(BOOT::reclaim)' \ '#+:cmu (setf (ext:search-list "libspad:")' \ '(list "${FRICAS}/lib/" "${libdir}/fricas/target/${target}/lib/"))' \ '#+:cmu (setq ext:*top-level-auto-declare* t)' \ '#+:cmu (setq *compile-verbose* nil)' \ '#+:cmu (setq *compile-print* nil)' \ '#+:cmu (declaim (optimize (ext:inhibit-warnings 3)))' \ '#+:ecl(FRICAS-LISP::make-program "$(BASE)$@" nil)' \ '#-:ecl(BOOT::spad-save "$(BASE)$@" t)' \ | DAASE="$(BASE)$(fricas_targetdir)" ${BOOTSYS} @ echo 6a ${FRICASSYS} created exposed.lsp: $(fricas_src_algdir)/exposed.lsp @ echo 615 making $@ from $< cp $< $@ $(fricas_targetdir)/algebra/exposed.$(FASLEXT) : exposed.lsp @ echo 616 making $@ from exposed.lsp echo '(progn (compile-file "exposed.lsp" :output-file' \ ' "$(BASE)$(fricas_targetdir)/algebra/exposed.$(FASLEXT)") (${BYE}))' \ | ${LOADSYS} database.date: @ echo 617 the database was updated...remaking interpsys touch database.date clammed.clisp: $(srcdir)/clammed.boot echo '(progn (boottran::bootclam "$<" "$@") (${BYE}))' | ${BOOTSYS}