diff options
Diffstat (limited to 'src/boot/Makefile.in')
-rw-r--r-- | src/boot/Makefile.in | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/src/boot/Makefile.in b/src/boot/Makefile.in new file mode 100644 index 00000000..444748bf --- /dev/null +++ b/src/boot/Makefile.in @@ -0,0 +1,166 @@ +AXIOM_LOCAL_LISP_sources = initial-env.lisp +AXIOM_LOCAL_LISP = ../lisp/base-lisp$(EXEEXT) +BOOTSYS_FOR_TARGET = $(axiom_target_bindir)/bootsys$(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: $(BOOTSYS_FOR_TARGET) + @rm -f stamp + $(STAMP) $@ + +$(BOOTSYS_FOR_TARGET): stage2/bootsys$(EXEEXT) + $(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) + + +.PHONY: mk-stage0-dir +mk-stage0-dir: + @[ -d stage0 ] || $(mkinstalldirs) stage0 + +$(stage0_boot_objects): $(AXIOM_LOCAL_LISP) + +stage0/%.$(FASLEXT): stage0/%.clisp + $(AXIOM_LOCAL_LISP) -- --compile \ + --load-directory=stage0 --output=$@ $< + + +stage0/%.clisp: $(srcdir)/%.boot.pamphlet mk-stage0-dir + $(axiom_build_document) --tangle=$*.clisp --output=$@ $< + +%/initial-env.$(FASLEXT): initial-env.lisp mk-%-dir + $(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 mk-stage1-dir + stage0/bootsys -- --translate --output=$@ $< + +.PHONY: mk-stage1-dir +mk-stage1-dir: + @[ -d stage1 ] || $(mkinstalldirs) stage1 + +.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 mk-stage2-dir + stage1/bootsys -- --translate --output=$@ $< + +.PHONY: mk-stage2-dir +mk-stage2-dir: + @[ -d stage2 ] || $(mkinstalldirs) stage2 + +## 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 $(BOOTSYS_FOR_TARGET) + @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 |