AXIOM_LOCAL_LISP_sources = initial-env.lisp AXIOM_LOCAL_LISP = ../lisp/base-lisp$(EXEEXT) PROCLAIMS=(load "$(srcdir)/boot-proclaims.lisp") boot_objects = initial-env.$(FASLEXT) $(boot_sources:.boot=.$(FASLEXT)) boot_SOURCES = \ initial-env.lisp.pamphlet \ $(addsuffix .pamphlet, $(boot_sources)) pamphlets = Makefile.pamphlet $(boot_SOURCES) boot_sources = tokens.boot includer.boot scanner.boot \ pile.boot ast.boot parser.boot translator.boot boot_clisp = $(boot_sources:.boot=.clisp) boot_data = $(boot_sources:.boot=.data) boot_fn = $(boot_sources:.boot=.fn) boot_cached_clisp = $(boot_sources:.boot=.clisp) COMPILE_LISP = \ $(axiom_build_document) --tag=lisp --mode=compile --output=$@ BOOT_TO_LISP = \ $(axiom_build_document) --tag=boot --mode=translate \ --use=./prev-stage/bootsys $< subdir = src/boot/ .PHONY: all-ax all-boot all: all-ax all-boot all-ax all-boot: stamp stamp: $(axiom_build_bindir)/bootsys$(EXEEXT) @rm -f stamp $(STAMP) $@ $(axiom_build_bindir)/bootsys$(EXEEXT): stage2/bootsys$(EXEEXT) $(mkinstalldirs) $(axiom_build_bindir) $(INSTALL_PROGRAM) stage2/bootsys$(EXEEXT) $(axiom_build_bindir) .PRECIOUS: stage0/%.clisp .PRECIOUS: stage0/%.$(FASLEXT) stage0_boot_clisp = $(addprefix stage0/, $(boot_clisp)) stage0_boot_objects = $(addprefix stage0/, $(boot_objects)) stage0/stamp: stage0/bootsys$(EXEEXT) @rm -f $@ @$(STAMP) $@ stage0/bootsys$(EXEEXT): $(stage0_boot_objects) $(AXIOM_LOCAL_LISP) -- --make --main="|AxiomCore|::|topLevel|"\ --output=$@ --load-directory=stage0 \ $(stage0_boot_objects) .PRECIOUS: %/.started %/.started: $(mkinstalldirs) $* $(STAMP) $@ $(stage0_boot_objects): $(AXIOM_LOCAL_LISP) stage0/%.$(FASLEXT): stage0/%.clisp $(AXIOM_LOCAL_LISP) -- --compile \ --load-directory=stage0 --output=$@ $< stage0/%.clisp: $(srcdir)/%.boot.pamphlet stage0/.started $(axiom_build_document) --tangle=$*.clisp --output=$@ $< %/initial-env.$(FASLEXT): initial-env.lisp %/.started $(AXIOM_LOCAL_LISP) -- --compile --output=$@ $< .PRECIOUS: stage1/%.$(FASLEXT) .PRECIOUS: stage1/%.clisp stage1/stamp: stage1/bootsys$(EXEEXT) rm -f $@ $(STAMP) $@ stage1/bootsys$(EXEEXT): $(addprefix stage1/, $(boot_objects)) $(AXIOM_LOCAL_LISP) -- --make --main="|AxiomCore|::|topLevel|" \ --output=$@ --load-directory=stage1 \ $(addprefix stage1/, $(boot_objects)) stage1/%.$(FASLEXT): stage1/%.clisp $(AXIOM_LOCAL_LISP) -- --compile \ --load-directory=stage1 $< stage1/%.clisp: %.boot stage0/stamp stage1/.started stage0/bootsys -- --translate --output=$@ $< .PRECIOUS: stage2/%.$(FASLEXT) .PRECIOUS: stage2/%.clisp stage2/stamp: stage2/bootsys$(EXEEXT) @echo Building stage 2 $(STAMP) $@ stage2/bootsys$(EXEEXT): $(addprefix stage2/, $(boot_objects)) $(AXIOM_LOCAL_LISP) -- --make --main="|AxiomCore|::|topLevel|" \ --output=$@ --load-directory=stage2 \ $(addprefix stage2/, $(boot_objects)) stage2/%.$(FASLEXT): stage2/%.clisp $(AXIOM_LOCAL_LISP) -- --compile \ --load-directory=stage2 $< stage2/%.clisp: %.boot stage1/stamp stage2/.started stage1/bootsys -- --translate --output=$@ $< ## Dependency for various modules. ## FIXME: This should be automatically extracted from the ## Boot source file at packaging time. %/tokens.($FASLEXT): %/initial-env.$(FASLEXT) %/includer.$(FASLEXT): %/tokens.$(FASLEXT) %/scanner.$(FASLEXT): %/tokens.$(FASLEXT) %/includer.$(FASLEXT) %/pile.$(FASLEXT): %/scanner.$(FASLEXT) %/includer.$(FASLEXT) %/ast.$(FASLEXT): %/includer.$(FASLEXT) %/parser.$(FASLEXT): %/ast.$(FASLEXT) %/scanner.$(FASLEXT) %/includer.$(FASLEXT) %/translator.$(FASLEXT): %/parser.$(FASLEXT) %/ast.$(FASLEXT) \ %/pile.$(FASLEXT) %/scanner.$(FASLEXT) \ %/includer.$(FASLEXT) .PRECIOUS: %.boot %.boot: $(srcdir)/%.boot.pamphlet $(axiom_build_document) --tangle $< .PRECIOUS: %.boot %.boot: $(srcdir)/%.boot.pamphlet $(axiom_build_document) --tangle $< .PRECIOUS: %.lisp initial-env.lisp: initial-env.lisp.pamphlet $(axiom_build_document) --tangle $< mostlyclean-local: @rm -f $(AXIOM_LOCAL_LISP) @rm -f $(axiom_build_bindir)/bootsys$(EXEEXT) @rm -rf prev-stage @rm -rf stage0 stage1 stage2 @rm -f *.data *.fn @rm -f stamp clean-local: mostlyclean-local @rm -f $(boot_sources) @rm -f *.clisp *.lisp distclean-local: clean-local