guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 01/04: Rework bootstrap to be reproducible


From: Andy Wingo
Subject: [Guile-commits] 01/04: Rework bootstrap to be reproducible
Date: Tue, 1 Feb 2022 12:27:16 -0500 (EST)

wingo pushed a commit to branch main
in repository guile.

commit 9b9149a5bf6206c9f01bcc59c9d297364a6c1ccf
Author: Andy Wingo <wingo@pobox.com>
AuthorDate: Tue Feb 1 12:13:13 2022 +0100

    Rework bootstrap to be reproducible
    
    * configure.ac:
    * Makefile.am (SUBDIRS): Replace bootstrap/ with stage0, stage1, and
    stage2.
    * am/bootstrap.am: Include all files and all rules.
    * meta/build-env.in (GUILE_AUTO_COMPILE): Always turn off
    auto-compilation.  Take a GUILE_BOOTSTRAP_STAGE argument, which can be
    stage0, stage1, stage2, or unset.  Adapt the load-compiled path
    accordingly.
    * meta/uninstalled-env.in: Include .go files from stage2.
    * module/Makefile.am: Rework to use boostrap.am.
    * module/system/base/optimize.scm (available-optimizations): Punt the
    inlinable-exports machinery to -O2.
    * stage0/Makefile.am:
    * stage1/Makefile.am:
    * stage2/Makefile.am: New files.
---
 Makefile.am                     |   6 +-
 am/bootstrap.am                 | 424 +++++++++++++++++++++++++++++++++-------
 configure.ac                    |   4 +-
 meta/build-env.in               |  10 +-
 meta/uninstalled-env.in         |   4 +-
 module/Makefile.am              | 405 +-------------------------------------
 module/system/base/optimize.scm |   6 +-
 stage0/Makefile.am              |  36 ++++
 stage1/Makefile.am              |  28 +++
 stage2/Makefile.am              |  31 +++
 10 files changed, 474 insertions(+), 480 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index ebbf6d476..399946e4b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,7 @@
 ##
 ##     Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006, 2007,
 ##        2008, 2009, 2010, 2011, 2012, 2013,
-##        2014, 2015, 2016 Free Software Foundation, Inc.
+##        2014, 2015, 2016, 2022 Free Software Foundation, Inc.
 ##
 ##   This file is part of GUILE.
 ##
@@ -30,8 +30,10 @@ SUBDIRS =                                    \
        lib                                     \
        meta                                    \
        libguile                                \
-       bootstrap                               \
        module                                  \
+       stage0                                  \
+       stage1                                  \
+       stage2                                  \
        guile-readline                          \
        examples                                \
        emacs                                   \
diff --git a/am/bootstrap.am b/am/bootstrap.am
index 06acd81fe..0257d53dc 100644
--- a/am/bootstrap.am
+++ b/am/bootstrap.am
@@ -1,4 +1,4 @@
-##     Copyright (C) 2009-2021 Free Software Foundation, Inc.
+##     Copyright (C) 2009-2022 Free Software Foundation, Inc.
 ##
 ##   This file is part of GNU Guile.
 ##
@@ -21,9 +21,9 @@
 GUILE_WARNINGS ?= -W1
 GUILE_OPTIMIZATIONS ?= -O2
 GUILE_TARGET ?= $(host)
-GUILE_BUILD_TAG ?= BOOTSTRAP
+GUILE_BUILD_TAG ?= BOOTSTRAP($(GUILE_BOOTSTRAP_STAGE))
 
-GOBJECTS = $(SOURCES:%.scm=%.go)
+GOBJECTS = $(SOURCES:%.scm=%.go) $(ELISP_SOURCES:%.el=%.go)
 nobase_noinst_DATA = $(GOBJECTS)
 CLEANFILES = $(GOBJECTS)
 
@@ -35,30 +35,43 @@ AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))
 AM_V_GUILEC_0 = @echo "  $(GUILE_BUILD_TAG) GUILEC" $@;
 
 vpath %.scm @top_srcdir@/module
+vpath %.el @top_srcdir@/module
 
-SUFFIXES = .scm .go
+SUFFIXES = .scm .el .go
 
-.scm.go:
-       $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0                      \
+COMPILE = $(AM_V_GUILEC)                                       \
+       GUILE_BOOTSTRAP_STAGE=$(GUILE_BOOTSTRAP_STAGE)          \
        $(top_builddir)/meta/build-env                          \
        guild compile --target="$(GUILE_TARGET)"                \
           $(GUILE_WARNINGS) $(GUILE_OPTIMIZATIONS)              \
-         -L "$(abs_top_srcdir)/module"                         \
-         -L "$(abs_top_srcdir)/guile-readline"                 \
-         -o "$@" "$<"
+         -L "$(abs_top_srcdir)/module"
+
+.scm.go:
+       $(COMPILE) -o "$@" "$<"
+
+.el.go:
+       $(COMPILE) --from=elisp -o "$@" "$<"
+
+ice-9/boot-9.go: ice-9/boot-9.scm ice-9/quasisyntax.scm 
ice-9/r6rs-libraries.scm ice-9/r7rs-libraries.scm ice-9/read.scm
+ice-9/match.go: ice-9/match.scm ice-9/match.upstream.scm
+srfi/srfi-64.go: srfi/srfi-64.scm srfi/srfi-64/testing.scm
 
-# A subset of sources that are used by the compiler.  We can compile
-# these in any order; the order below is designed to hopefully result in
-# the lowest total compile time.
+# Keep this rule in sync with that in `am/guilec'.
+ice-9/psyntax-pp.go: ice-9/psyntax.scm ice-9/psyntax-pp.scm
+       $(COMPILE) -o "$@" "$<"
+
+# All sources.  We can compile these in any order; the order below is
+# designed to hopefully result in the lowest total compile time.
 SOURCES =                                      \
   ice-9/eval.scm                               \
   ice-9/psyntax-pp.scm                         \
-  language/tree-il/compile-bytecode.scm                \
   ice-9/boot-9.scm                             \
-  srfi/srfi-1.scm                              \
                                                \
   language/tree-il.scm                         \
   language/tree-il/analyze.scm                 \
+  language/tree-il/compile-bytecode.scm                \
+  language/tree-il/compile-cps.scm             \
+  language/tree-il/cps-primitives.scm          \
   language/tree-il/debug.scm                   \
   language/tree-il/effects.scm                 \
   language/tree-il/eta-expand.scm              \
@@ -71,15 +84,269 @@ SOURCES =                                  \
   language/tree-il/resolve-free-vars.scm       \
   language/tree-il/spec.scm                    \
                                                \
-  language/scheme/spec.scm                     \
-  language/scheme/compile-tree-il.scm          \
-  language/scheme/decompile-tree-il.scm                \
+  language/cps.scm                             \
+  language/cps/closure-conversion.scm          \
+  language/cps/compile-bytecode.scm            \
+  language/cps/contification.scm               \
+  language/cps/cse.scm                         \
+  language/cps/dce.scm                         \
+  language/cps/devirtualize-integers.scm       \
+  language/cps/dump.scm                                \
+  language/cps/elide-arity-checks.scm          \
+  language/cps/effects-analysis.scm            \
+  language/cps/graphs.scm                      \
+  language/cps/intmap.scm                      \
+  language/cps/intset.scm                      \
+  language/cps/licm.scm                                \
+  language/cps/loop-instrumentation.scm                \
+  language/cps/optimize.scm                    \
+  language/cps/peel-loops.scm                  \
+  language/cps/prune-top-level-scopes.scm      \
+  language/cps/reify-primitives.scm            \
+  language/cps/renumber.scm                    \
+  language/cps/return-types.scm                        \
+  language/cps/rotate-loops.scm                        \
+  language/cps/self-references.scm             \
+  language/cps/simplify.scm                    \
+  language/cps/slot-allocation.scm             \
+  language/cps/spec.scm                                \
+  language/cps/specialize-primcalls.scm                \
+  language/cps/specialize-numbers.scm          \
+  language/cps/split-rec.scm                   \
+  language/cps/switch.scm                      \
+  language/cps/type-checks.scm                 \
+  language/cps/type-fold.scm                   \
+  language/cps/types.scm                       \
+  language/cps/utils.scm                       \
+  language/cps/verify.scm                      \
+  language/cps/with-cps.scm                    \
+                                               \
+  ice-9/and-let-star.scm                       \
+  ice-9/arrays.scm                             \
+  ice-9/atomic.scm                             \
+  ice-9/binary-ports.scm                       \
+  ice-9/buffered-input.scm                     \
+  ice-9/calling.scm                            \
+  ice-9/command-line.scm                       \
+  ice-9/common-list.scm                                \
+  ice-9/control.scm                            \
+  ice-9/copy-tree.scm                          \
+  ice-9/curried-definitions.scm                        \
+  ice-9/deprecated.scm                         \
+  ice-9/documentation.scm                      \
+  ice-9/eval-string.scm                                \
+  ice-9/exceptions.scm                         \
+  ice-9/expect.scm                             \
+  ice-9/fdes-finalizers.scm                    \
+  ice-9/format.scm                             \
+  ice-9/ftw.scm                                        \
+  ice-9/futures.scm                            \
+  ice-9/gap-buffer.scm                         \
+  ice-9/getopt-long.scm                                \
+  ice-9/hash-table.scm                         \
+  ice-9/hcons.scm                              \
+  ice-9/history.scm                            \
+  ice-9/i18n.scm                               \
+  ice-9/iconv.scm                              \
+  ice-9/lineio.scm                             \
+  ice-9/list.scm                               \
+  ice-9/local-eval.scm                         \
+  ice-9/ls.scm                                 \
+  ice-9/match.scm                              \
+  ice-9/networking.scm                         \
+  ice-9/null.scm                               \
+  ice-9/occam-channel.scm                      \
+  ice-9/optargs.scm                            \
+  ice-9/peg.scm                                        \
+  ice-9/peg/cache.scm                          \
+  ice-9/peg/codegen.scm                                \
+  ice-9/peg/simplify-tree.scm                  \
+  ice-9/peg/string-peg.scm                     \
+  ice-9/peg/using-parsers.scm                  \
+  ice-9/poe.scm                                        \
+  ice-9/poll.scm                               \
+  ice-9/popen.scm                              \
+  ice-9/ports.scm                              \
+  ice-9/posix.scm                              \
+  ice-9/pretty-print.scm                       \
+  ice-9/q.scm                                  \
+  ice-9/r5rs.scm                               \
+  ice-9/rdelim.scm                             \
+  ice-9/receive.scm                            \
+  ice-9/regex.scm                              \
+  ice-9/runq.scm                               \
+  ice-9/rw.scm                                 \
+  ice-9/safe-r5rs.scm                          \
+  ice-9/safe.scm                               \
+  ice-9/sandbox.scm                            \
+  ice-9/save-stack.scm                         \
+  ice-9/scm-style-repl.scm                     \
+  ice-9/serialize.scm                          \
+  ice-9/session.scm                            \
+  ice-9/slib.scm                               \
+  ice-9/stack-catch.scm                                \
+  ice-9/streams.scm                            \
+  ice-9/string-fun.scm                         \
+  ice-9/suspendable-ports.scm                  \
+  ice-9/textual-ports.scm                      \
+  ice-9/threads.scm                            \
+  ice-9/time.scm                               \
+  ice-9/top-repl.scm                           \
+  ice-9/unicode.scm                            \
+  ice-9/vlist.scm                              \
+  ice-9/weak-vector.scm                                \
+                                               \
+  language/brainfuck/parse.scm                 \
+  language/brainfuck/compile-scheme.scm                \
+  language/brainfuck/compile-tree-il.scm       \
+  language/brainfuck/spec.scm                  \
                                                \
   language/bytecode.scm                                \
   language/bytecode/spec.scm                   \
                                                \
+  language/ecmascript/tokenize.scm             \
+  language/ecmascript/parse.scm                        \
+  language/ecmascript/impl.scm                 \
+  language/ecmascript/base.scm                 \
+  language/ecmascript/function.scm             \
+  language/ecmascript/array.scm                        \
+  language/ecmascript/compile-tree-il.scm      \
+  language/ecmascript/spec.scm                 \
+                                               \
+  language/elisp/falias.scm                    \
+  language/elisp/lexer.scm                     \
+  language/elisp/parser.scm                    \
+  language/elisp/bindings.scm                  \
+  language/elisp/compile-tree-il.scm           \
+  language/elisp/runtime.scm                   \
+  language/elisp/runtime/function-slot.scm     \
+  language/elisp/runtime/value-slot.scm                \
+  language/elisp/spec.scm                      \
+                                               \
+  language/scheme/compile-tree-il.scm          \
+  language/scheme/decompile-tree-il.scm                \
+  language/scheme/spec.scm                     \
+                                               \
   language/value/spec.scm                      \
                                                \
+  rnrs/base.scm                                        \
+  rnrs/conditions.scm                          \
+  rnrs/control.scm                             \
+  rnrs/enums.scm                               \
+  rnrs/eval.scm                                        \
+  rnrs/exceptions.scm                          \
+  rnrs/files.scm                               \
+  rnrs/hashtables.scm                          \
+  rnrs/lists.scm                               \
+  rnrs/mutable-pairs.scm                       \
+  rnrs/mutable-strings.scm                     \
+  rnrs/programs.scm                            \
+  rnrs/r5rs.scm                                        \
+  rnrs/sorting.scm                             \
+  rnrs/syntax-case.scm                         \
+  rnrs/unicode.scm                             \
+  rnrs/arithmetic/bitwise.scm                  \
+  rnrs/arithmetic/fixnums.scm                  \
+  rnrs/arithmetic/flonums.scm                  \
+  rnrs/bytevectors.scm                         \
+  rnrs/io/simple.scm                           \
+  rnrs/io/ports.scm                            \
+  rnrs/records/inspection.scm                  \
+  rnrs/records/procedural.scm                  \
+  rnrs/records/syntactic.scm                   \
+  rnrs.scm                                     \
+                                               \
+  oop/goops.scm                                        \
+  oop/goops/active-slot.scm                    \
+  oop/goops/composite-slot.scm                 \
+  oop/goops/describe.scm                       \
+  oop/goops/internal.scm                       \
+  oop/goops/save.scm                           \
+  oop/goops/stklos.scm                         \
+  oop/goops/accessors.scm                      \
+  oop/goops/simple.scm                         \
+                                               \
+  scheme/base.scm                              \
+  scheme/case-lambda.scm                       \
+  scheme/char.scm                              \
+  scheme/complex.scm                           \
+  scheme/cxr.scm                               \
+  scheme/eval.scm                              \
+  scheme/file.scm                              \
+  scheme/inexact.scm                           \
+  scheme/lazy.scm                              \
+  scheme/load.scm                              \
+  scheme/process-context.scm                   \
+  scheme/r5rs.scm                              \
+  scheme/read.scm                              \
+  scheme/repl.scm                              \
+  scheme/time.scm                              \
+  scheme/write.scm                             \
+                                               \
+  scripts/compile.scm                          \
+  scripts/disassemble.scm                      \
+  scripts/display-commentary.scm               \
+  scripts/doc-snarf.scm                                \
+  scripts/frisk.scm                            \
+  scripts/generate-autoload.scm                        \
+  scripts/help.scm                             \
+  scripts/lint.scm                             \
+  scripts/list.scm                             \
+  scripts/punify.scm                           \
+  scripts/read-scheme-source.scm               \
+  scripts/read-text-outline.scm                        \
+  scripts/use2dot.scm                          \
+  scripts/snarf-check-and-output-texi.scm      \
+  scripts/summarize-guile-TODO.scm             \
+  scripts/api-diff.scm                         \
+  scripts/read-rfc822.scm                      \
+  scripts/snarf-guile-m4-docs.scm              \
+  scripts/autofrisk.scm                                \
+  scripts/scan-api.scm                         \
+                                               \
+  srfi/srfi-1.scm                              \
+  srfi/srfi-2.scm                              \
+  srfi/srfi-4.scm                              \
+  srfi/srfi-4/gnu.scm                          \
+  srfi/srfi-6.scm                              \
+  srfi/srfi-8.scm                              \
+  srfi/srfi-9.scm                              \
+  srfi/srfi-9/gnu.scm                          \
+  srfi/srfi-10.scm                             \
+  srfi/srfi-11.scm                             \
+  srfi/srfi-13.scm                             \
+  srfi/srfi-14.scm                             \
+  srfi/srfi-16.scm                             \
+  srfi/srfi-17.scm                             \
+  srfi/srfi-18.scm                             \
+  srfi/srfi-19.scm                             \
+  srfi/srfi-26.scm                             \
+  srfi/srfi-27.scm                             \
+  srfi/srfi-28.scm                             \
+  srfi/srfi-31.scm                             \
+  srfi/srfi-34.scm                             \
+  srfi/srfi-35.scm                             \
+  srfi/srfi-37.scm                             \
+  srfi/srfi-38.scm                             \
+  srfi/srfi-41.scm                             \
+  srfi/srfi-42.scm                             \
+  srfi/srfi-43.scm                             \
+  srfi/srfi-39.scm                             \
+  srfi/srfi-45.scm                             \
+  srfi/srfi-60.scm                             \
+  srfi/srfi-64.scm                             \
+  srfi/srfi-67.scm                             \
+  srfi/srfi-69.scm                             \
+  srfi/srfi-71.scm                             \
+  srfi/srfi-88.scm                             \
+  srfi/srfi-98.scm                             \
+  srfi/srfi-111.scm                            \
+  srfi/srfi-171.scm                             \
+  srfi/srfi-171/gnu.scm                         \
+  srfi/srfi-171/meta.scm                        \
+                                               \
+  statprof.scm                                 \
+                                               \
   system/base/pmatch.scm                       \
   system/base/syntax.scm                       \
   system/base/compile.scm                      \
@@ -92,73 +359,82 @@ SOURCES =                                  \
   system/base/types/internal.scm               \
   system/base/ck.scm                           \
                                                \
-  ice-9/ports.scm                              \
-  ice-9/r5rs.scm                               \
-  ice-9/deprecated.scm                         \
-  ice-9/binary-ports.scm                       \
-  ice-9/command-line.scm                       \
-  ice-9/control.scm                            \
-  ice-9/format.scm                             \
-  ice-9/getopt-long.scm                                \
-  ice-9/i18n.scm                               \
-  ice-9/match.scm                              \
-  ice-9/networking.scm                         \
-  ice-9/posix.scm                              \
-  ice-9/rdelim.scm                             \
-  ice-9/receive.scm                            \
-  ice-9/regex.scm                              \
-  ice-9/session.scm                            \
-  ice-9/pretty-print.scm                       \
-  ice-9/vlist.scm                              \
+  system/foreign.scm                           \
+  system/foreign-library.scm                   \
+  system/foreign-object.scm                    \
+                                               \
+  system/repl/debug.scm                                \
+  system/repl/error-handling.scm               \
+  system/repl/common.scm                       \
+  system/repl/command.scm                      \
+  system/repl/repl.scm                         \
+  system/repl/server.scm                       \
+  system/repl/coop-server.scm                  \
                                                \
   system/vm/assembler.scm                      \
+  system/vm/coverage.scm                       \
   system/vm/debug.scm                          \
   system/vm/disassembler.scm                   \
   system/vm/dwarf.scm                          \
   system/vm/elf.scm                            \
   system/vm/frame.scm                          \
+  system/vm/inspect.scm                                \
   system/vm/linker.scm                         \
   system/vm/loader.scm                         \
   system/vm/program.scm                                \
+  system/vm/trace.scm                          \
+  system/vm/trap-state.scm                     \
+  system/vm/traps.scm                          \
   system/vm/vm.scm                             \
-  system/foreign.scm                           \
-  system/foreign-library.scm                   \
                                                \
-  language/tree-il/compile-cps.scm             \
-  language/tree-il/cps-primitives.scm          \
+  system/syntax.scm                            \
                                                \
-  language/cps.scm                             \
-  language/cps/closure-conversion.scm          \
-  language/cps/compile-bytecode.scm            \
-  language/cps/contification.scm               \
-  language/cps/cse.scm                         \
-  language/cps/dce.scm                         \
-  language/cps/devirtualize-integers.scm       \
-  language/cps/effects-analysis.scm            \
-  language/cps/elide-arity-checks.scm          \
-  language/cps/intmap.scm                      \
-  language/cps/intset.scm                      \
-  language/cps/graphs.scm                      \
-  language/cps/licm.scm                                \
-  language/cps/loop-instrumentation.scm                \
-  language/cps/peel-loops.scm                  \
-  language/cps/prune-top-level-scopes.scm      \
-  language/cps/reify-primitives.scm            \
-  language/cps/renumber.scm                    \
-  language/cps/return-types.scm                        \
-  language/cps/rotate-loops.scm                        \
-  language/cps/optimize.scm                    \
-  language/cps/simplify.scm                    \
-  language/cps/self-references.scm             \
-  language/cps/slot-allocation.scm             \
-  language/cps/spec.scm                                \
-  language/cps/specialize-primcalls.scm                \
-  language/cps/specialize-numbers.scm          \
-  language/cps/split-rec.scm                   \
-  language/cps/switch.scm                      \
-  language/cps/type-checks.scm                 \
-  language/cps/type-fold.scm                   \
-  language/cps/types.scm                       \
-  language/cps/utils.scm                       \
-  language/cps/verify.scm                      \
-  language/cps/with-cps.scm
+  system/xref.scm                              \
+                                               \
+  sxml/apply-templates.scm                     \
+  sxml/fold.scm                                        \
+  sxml/match.scm                               \
+  sxml/simple.scm                              \
+  sxml/ssax/input-parse.scm                    \
+  sxml/ssax.scm                                        \
+  sxml/transform.scm                           \
+  sxml/xpath.scm                               \
+                                               \
+  texinfo.scm                                  \
+  texinfo/docbook.scm                          \
+  texinfo/html.scm                             \
+  texinfo/indexing.scm                         \
+  texinfo/string-utils.scm                     \
+  texinfo/plain-text.scm                       \
+  texinfo/reflection.scm                       \
+  texinfo/serialize.scm                                \
+                                               \
+  web/client.scm                               \
+  web/http.scm                                 \
+  web/request.scm                              \
+  web/response.scm                             \
+  web/server.scm                               \
+  web/server/http.scm                          \
+  web/uri.scm
+
+ELISP_SOURCES =                                        \
+  language/elisp/boot.el
+
+NOCOMP_SOURCES =                               \
+  ice-9/match.upstream.scm                     \
+  ice-9/psyntax.scm                            \
+  ice-9/read.scm                               \
+  ice-9/r6rs-libraries.scm                     \
+  ice-9/r7rs-libraries.scm                     \
+  ice-9/quasisyntax.scm                                \
+  srfi/srfi-42/ec.scm                          \
+  srfi/srfi-64/testing.scm                     \
+  srfi/srfi-67/compare.scm                     \
+  system/base/lalr.upstream.scm                        \
+  system/repl/describe.scm                     \
+  sxml/sxml-match.ss                           \
+  sxml/upstream/SSAX.scm                       \
+  sxml/upstream/SXML-tree-trans.scm            \
+  sxml/upstream/SXPath-old.scm                 \
+  sxml/upstream/assert.scm                     \
+  sxml/upstream/input-parse.scm
diff --git a/configure.ac b/configure.ac
index 2f4e48bae..827e1c09d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1492,8 +1492,10 @@ AC_CONFIG_FILES([
   test-suite/Makefile
   test-suite/standalone/Makefile
   meta/Makefile
-  bootstrap/Makefile
   module/Makefile
+  stage0/Makefile
+  stage1/Makefile
+  stage2/Makefile
   prebuilt/Makefile
   prebuilt/x86_64-unknown-linux-gnu/Makefile
   prebuilt/i686-pc-linux-gnu/Makefile
diff --git a/meta/build-env.in b/meta/build-env.in
index b48f9c245..bdc88ded4 100644
--- a/meta/build-env.in
+++ b/meta/build-env.in
@@ -40,6 +40,9 @@ top_builddir="@top_builddir_absolute@"
     exit 1
 }
 
+GUILE_AUTO_COMPILE=0
+export GUILE_AUTO_COMPILE
+
 # When cross-compiling, let $GUILE_FOR_BUILD use its own .go files since
 # the ones that are being built may be incompatible ($GUILE_FOR_BUILD is
 # typically used to run `guild compile --target=$host'.)  Likewise,
@@ -54,7 +57,12 @@ then
         
GUILE_LOAD_PATH="$GUILE_LOAD_PATH:${top_builddir}/module:${top_builddir}/guile-readline"
     fi
     export GUILE_LOAD_PATH
-    
GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/bootstrap:${top_srcdir}/prebuilt/@SCM_PREBUILT_BINARIES@:${top_builddir}/guile-readline"
+    case "$GUILE_BOOTSTRAP_STAGE" in
+        stage0) 
GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage0:${top_srcdir}/prebuilt/@SCM_PREBUILT_BINARIES@"
 ;;
+        stage1) 
GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage1:${top_builddir}/stage0" ;;
+        stage2) GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage1" ;;
+        *) 
GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage2:${top_builddir}/guile-readline"
 ;;
+    esac
     export GUILE_LOAD_COMPILED_PATH
 
     # Don't look in installed dirs for guile modules
diff --git a/meta/uninstalled-env.in b/meta/uninstalled-env.in
index ed932d0cb..2531e25cb 100644
--- a/meta/uninstalled-env.in
+++ b/meta/uninstalled-env.in
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-#      Copyright (C) 2003, 2006, 2008, 2009, 2010, 2011, 2012, 2015, 2017 Free 
Software Foundation
+#      Copyright (C) 2003, 2006, 2008, 2009, 2010, 2011, 2012, 2015, 2017, 
2022 Free Software Foundation
 #
 #   This file is part of GUILE.
 #
@@ -80,7 +80,7 @@ then
     fi
     export GUILE_LOAD_PATH
 
-    for d in "/prebuilt/@SCM_PREBUILT_BINARIES@" "/bootstrap" "/module" 
"/guile-readline"
+    for d in "/prebuilt/@SCM_PREBUILT_BINARIES@" "/stage2" "/guile-readline"
     do
         # This hair prevents double inclusion.
         # The ":" prevents prefix aliasing.
diff --git a/module/Makefile.am b/module/Makefile.am
index f6f5a9bb8..de9d1e5a6 100644
--- a/module/Makefile.am
+++ b/module/Makefile.am
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in.
 ##
-##   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+##   Copyright (C) 2009-2022 Free Software Foundation, Inc.
 ##
 ##   This file is part of GUILE.
 ##
@@ -19,404 +19,15 @@
 ##   write to the Free Software Foundation, Inc., 51 Franklin Street,
 ##   Fifth Floor, Boston, MA 02110-1301 USA
 
-include $(top_srcdir)/am/guilec
+include $(top_srcdir)/am/bootstrap.am
 
-# We're at the root of the module hierarchy.
-modpath =
+moddir = $(pkgdatadir)/$(GUILE_EFFECTIVE_VERSION)
+nobase_mod_DATA = $(SOURCES) $(ELISP_SOURCES) $(NOCOMP_SOURCES)
+EXTRA_DIST = $(SOURCES) $(ELISP_SOURCES) $(NOCOMP_SOURCES)
+ETAGS_ARGS = $(SOURCES) $(ELISP_SOURCES) $(NOCOMP_SOURCES)
 
-VM_TARGETS := system/vm/assembler.go system/vm/disassembler.go
-$(VM_TARGETS): $(top_builddir)/libguile/vm-operations.h
-
-ice-9/boot-9.go: ice-9/boot-9.scm ice-9/quasisyntax.scm 
ice-9/r6rs-libraries.scm ice-9/r7rs-libraries.scm ice-9/read.scm
-ice-9/match.go: ice-9/match.scm ice-9/match.upstream.scm
-srfi/srfi-64.go: srfi/srfi-64.scm srfi/srfi-64/testing.scm
-$(nobase_ccache_DATA): ../bootstrap/ice-9/eval.go
-
-# Keep this rule in sync with that in `am/guilec'.
-ice-9/psyntax-pp.go: ice-9/psyntax.scm ice-9/psyntax-pp.scm
-       $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0                              \
-       $(top_builddir)/meta/build-env                                  \
-       guild compile --target="$(host)" $(GUILE_WARNINGS) 
$(GUILE_OPTIMIZATIONS) \
-         -L "$(abs_srcdir)" -L "$(abs_builddir)"                       \
-         -L "$(abs_top_srcdir)/guile-readline"                         \
-         -o "ice-9/psyntax-pp.go" "$(srcdir)/ice-9/psyntax.scm"
-
-SOURCES =                                      \
-  ice-9/eval.scm                               \
-  ice-9/psyntax-pp.scm                         \
-                                               \
-  language/cps.scm                             \
-  language/cps/closure-conversion.scm          \
-  language/cps/compile-bytecode.scm            \
-  language/cps/contification.scm               \
-  language/cps/cse.scm                         \
-  language/cps/dce.scm                         \
-  language/cps/devirtualize-integers.scm       \
-  language/cps/dump.scm                                \
-  language/cps/elide-arity-checks.scm          \
-  language/cps/effects-analysis.scm            \
-  language/cps/graphs.scm                      \
-  language/cps/intmap.scm                      \
-  language/cps/intset.scm                      \
-  language/cps/licm.scm                                \
-  language/cps/loop-instrumentation.scm                \
-  language/cps/optimize.scm                    \
-  language/cps/peel-loops.scm                  \
-  language/cps/prune-top-level-scopes.scm      \
-  language/cps/reify-primitives.scm            \
-  language/cps/renumber.scm                    \
-  language/cps/return-types.scm                        \
-  language/cps/rotate-loops.scm                        \
-  language/cps/self-references.scm             \
-  language/cps/simplify.scm                    \
-  language/cps/slot-allocation.scm             \
-  language/cps/spec.scm                                \
-  language/cps/specialize-primcalls.scm                \
-  language/cps/specialize-numbers.scm          \
-  language/cps/split-rec.scm                   \
-  language/cps/switch.scm                      \
-  language/cps/type-checks.scm                 \
-  language/cps/type-fold.scm                   \
-  language/cps/types.scm                       \
-  language/cps/utils.scm                       \
-  language/cps/verify.scm                      \
-  language/cps/with-cps.scm                    \
-                                               \
-  language/tree-il.scm                         \
-  language/tree-il/analyze.scm                 \
-  language/tree-il/compile-bytecode.scm                \
-  language/tree-il/compile-cps.scm             \
-  language/tree-il/cps-primitives.scm          \
-  language/tree-il/debug.scm                   \
-  language/tree-il/effects.scm                 \
-  language/tree-il/eta-expand.scm              \
-  language/tree-il/fix-letrec.scm              \
-  language/tree-il/inlinable-exports.scm       \
-  language/tree-il/letrectify.scm              \
-  language/tree-il/optimize.scm                        \
-  language/tree-il/peval.scm                   \
-  language/tree-il/primitives.scm              \
-  language/tree-il/resolve-free-vars.scm       \
-  language/tree-il/spec.scm                    \
-                                               \
-  ice-9/and-let-star.scm                       \
-  ice-9/arrays.scm                             \
-  ice-9/atomic.scm                             \
-  ice-9/binary-ports.scm                       \
-  ice-9/boot-9.scm                             \
-  ice-9/buffered-input.scm                     \
-  ice-9/calling.scm                            \
-  ice-9/command-line.scm                       \
-  ice-9/common-list.scm                                \
-  ice-9/control.scm                            \
-  ice-9/copy-tree.scm                          \
-  ice-9/curried-definitions.scm                        \
-  ice-9/deprecated.scm                         \
-  ice-9/documentation.scm                      \
-  ice-9/eval-string.scm                                \
-  ice-9/exceptions.scm                         \
-  ice-9/expect.scm                             \
-  ice-9/fdes-finalizers.scm                    \
-  ice-9/format.scm                             \
-  ice-9/ftw.scm                                        \
-  ice-9/futures.scm                            \
-  ice-9/gap-buffer.scm                         \
-  ice-9/getopt-long.scm                                \
-  ice-9/hash-table.scm                         \
-  ice-9/hcons.scm                              \
-  ice-9/history.scm                            \
-  ice-9/i18n.scm                               \
-  ice-9/iconv.scm                              \
-  ice-9/lineio.scm                             \
-  ice-9/list.scm                               \
-  ice-9/local-eval.scm                         \
-  ice-9/ls.scm                                 \
-  ice-9/match.scm                              \
-  ice-9/networking.scm                         \
-  ice-9/null.scm                               \
-  ice-9/occam-channel.scm                      \
-  ice-9/optargs.scm                            \
-  ice-9/peg.scm                                        \
-  ice-9/peg/cache.scm                          \
-  ice-9/peg/codegen.scm                                \
-  ice-9/peg/simplify-tree.scm                  \
-  ice-9/peg/string-peg.scm                     \
-  ice-9/peg/using-parsers.scm                  \
-  ice-9/poe.scm                                        \
-  ice-9/poll.scm                               \
-  ice-9/popen.scm                              \
-  ice-9/ports.scm                              \
-  ice-9/posix.scm                              \
-  ice-9/pretty-print.scm                       \
-  ice-9/q.scm                                  \
-  ice-9/r5rs.scm                               \
-  ice-9/rdelim.scm                             \
-  ice-9/receive.scm                            \
-  ice-9/regex.scm                              \
-  ice-9/runq.scm                               \
-  ice-9/rw.scm                                 \
-  ice-9/safe-r5rs.scm                          \
-  ice-9/safe.scm                               \
-  ice-9/sandbox.scm                            \
-  ice-9/save-stack.scm                         \
-  ice-9/scm-style-repl.scm                     \
-  ice-9/serialize.scm                          \
-  ice-9/session.scm                            \
-  ice-9/slib.scm                               \
-  ice-9/stack-catch.scm                                \
-  ice-9/streams.scm                            \
-  ice-9/string-fun.scm                         \
-  ice-9/suspendable-ports.scm                  \
-  ice-9/textual-ports.scm                      \
-  ice-9/threads.scm                            \
-  ice-9/time.scm                               \
-  ice-9/top-repl.scm                           \
-  ice-9/unicode.scm                            \
-  ice-9/vlist.scm                              \
-  ice-9/weak-vector.scm                                \
-                                               \
-  language/brainfuck/parse.scm                 \
-  language/brainfuck/compile-scheme.scm                \
-  language/brainfuck/compile-tree-il.scm       \
-  language/brainfuck/spec.scm                  \
-                                               \
-  language/bytecode.scm                                \
-  language/bytecode/spec.scm                   \
-                                               \
-  language/ecmascript/tokenize.scm             \
-  language/ecmascript/parse.scm                        \
-  language/ecmascript/impl.scm                 \
-  language/ecmascript/base.scm                 \
-  language/ecmascript/function.scm             \
-  language/ecmascript/array.scm                        \
-  language/ecmascript/compile-tree-il.scm      \
-  language/ecmascript/spec.scm                 \
-                                               \
-  language/elisp/falias.scm                    \
-  language/elisp/lexer.scm                     \
-  language/elisp/parser.scm                    \
-  language/elisp/bindings.scm                  \
-  language/elisp/compile-tree-il.scm           \
-  language/elisp/runtime.scm                   \
-  language/elisp/runtime/function-slot.scm     \
-  language/elisp/runtime/value-slot.scm                \
-  language/elisp/spec.scm                      \
-                                               \
-  language/scheme/compile-tree-il.scm          \
-  language/scheme/decompile-tree-il.scm                \
-  language/scheme/spec.scm                     \
-                                               \
-  language/value/spec.scm                      \
-                                               \
-  rnrs/base.scm                                        \
-  rnrs/conditions.scm                          \
-  rnrs/control.scm                             \
-  rnrs/enums.scm                               \
-  rnrs/eval.scm                                        \
-  rnrs/exceptions.scm                          \
-  rnrs/files.scm                               \
-  rnrs/hashtables.scm                          \
-  rnrs/lists.scm                               \
-  rnrs/mutable-pairs.scm                       \
-  rnrs/mutable-strings.scm                     \
-  rnrs/programs.scm                            \
-  rnrs/r5rs.scm                                        \
-  rnrs/sorting.scm                             \
-  rnrs/syntax-case.scm                         \
-  rnrs/unicode.scm                             \
-  rnrs/arithmetic/bitwise.scm                  \
-  rnrs/arithmetic/fixnums.scm                  \
-  rnrs/arithmetic/flonums.scm                  \
-  rnrs/bytevectors.scm                         \
-  rnrs/io/simple.scm                           \
-  rnrs/io/ports.scm                            \
-  rnrs/records/inspection.scm                  \
-  rnrs/records/procedural.scm                  \
-  rnrs/records/syntactic.scm                   \
-  rnrs.scm                                     \
-                                               \
-  oop/goops.scm                                        \
-  oop/goops/active-slot.scm                    \
-  oop/goops/composite-slot.scm                 \
-  oop/goops/describe.scm                       \
-  oop/goops/internal.scm                       \
-  oop/goops/save.scm                           \
-  oop/goops/stklos.scm                         \
-  oop/goops/accessors.scm                      \
-  oop/goops/simple.scm                         \
-                                               \
-  scheme/base.scm                              \
-  scheme/case-lambda.scm                       \
-  scheme/char.scm                              \
-  scheme/complex.scm                           \
-  scheme/cxr.scm                               \
-  scheme/eval.scm                              \
-  scheme/file.scm                              \
-  scheme/inexact.scm                           \
-  scheme/lazy.scm                              \
-  scheme/load.scm                              \
-  scheme/process-context.scm                   \
-  scheme/r5rs.scm                              \
-  scheme/read.scm                              \
-  scheme/repl.scm                              \
-  scheme/time.scm                              \
-  scheme/write.scm                             \
-                                               \
-  scripts/compile.scm                          \
-  scripts/disassemble.scm                      \
-  scripts/display-commentary.scm               \
-  scripts/doc-snarf.scm                                \
-  scripts/frisk.scm                            \
-  scripts/generate-autoload.scm                        \
-  scripts/help.scm                             \
-  scripts/lint.scm                             \
-  scripts/list.scm                             \
-  scripts/punify.scm                           \
-  scripts/read-scheme-source.scm               \
-  scripts/read-text-outline.scm                        \
-  scripts/use2dot.scm                          \
-  scripts/snarf-check-and-output-texi.scm      \
-  scripts/summarize-guile-TODO.scm             \
-  scripts/api-diff.scm                         \
-  scripts/read-rfc822.scm                      \
-  scripts/snarf-guile-m4-docs.scm              \
-  scripts/autofrisk.scm                                \
-  scripts/scan-api.scm                         \
-                                               \
-  srfi/srfi-1.scm                              \
-  srfi/srfi-2.scm                              \
-  srfi/srfi-4.scm                              \
-  srfi/srfi-4/gnu.scm                          \
-  srfi/srfi-6.scm                              \
-  srfi/srfi-8.scm                              \
-  srfi/srfi-9.scm                              \
-  srfi/srfi-9/gnu.scm                          \
-  srfi/srfi-10.scm                             \
-  srfi/srfi-11.scm                             \
-  srfi/srfi-13.scm                             \
-  srfi/srfi-14.scm                             \
-  srfi/srfi-16.scm                             \
-  srfi/srfi-17.scm                             \
-  srfi/srfi-18.scm                             \
-  srfi/srfi-19.scm                             \
-  srfi/srfi-26.scm                             \
-  srfi/srfi-27.scm                             \
-  srfi/srfi-28.scm                             \
-  srfi/srfi-31.scm                             \
-  srfi/srfi-34.scm                             \
-  srfi/srfi-35.scm                             \
-  srfi/srfi-37.scm                             \
-  srfi/srfi-38.scm                             \
-  srfi/srfi-41.scm                             \
-  srfi/srfi-42.scm                             \
-  srfi/srfi-43.scm                             \
-  srfi/srfi-39.scm                             \
-  srfi/srfi-45.scm                             \
-  srfi/srfi-60.scm                             \
-  srfi/srfi-64.scm                             \
-  srfi/srfi-67.scm                             \
-  srfi/srfi-69.scm                             \
-  srfi/srfi-71.scm                             \
-  srfi/srfi-88.scm                             \
-  srfi/srfi-98.scm                             \
-  srfi/srfi-111.scm                            \
-  srfi/srfi-171.scm                             \
-  srfi/srfi-171/gnu.scm                         \
-  srfi/srfi-171/meta.scm                        \
-                                               \
-  statprof.scm                                 \
-                                               \
-  system/base/pmatch.scm                       \
-  system/base/syntax.scm                       \
-  system/base/compile.scm                      \
-  system/base/optimize.scm                     \
-  system/base/language.scm                     \
-  system/base/lalr.scm                         \
-  system/base/message.scm                      \
-  system/base/target.scm                       \
-  system/base/types.scm                                \
-  system/base/types/internal.scm               \
-  system/base/ck.scm                           \
-                                               \
-  system/foreign.scm                           \
-  system/foreign-library.scm                   \
-  system/foreign-object.scm                    \
-                                               \
-  system/repl/debug.scm                                \
-  system/repl/error-handling.scm               \
-  system/repl/common.scm                       \
-  system/repl/command.scm                      \
-  system/repl/repl.scm                         \
-  system/repl/server.scm                       \
-  system/repl/coop-server.scm                  \
-                                               \
-  system/vm/assembler.scm                      \
-  system/vm/coverage.scm                       \
-  system/vm/debug.scm                          \
-  system/vm/disassembler.scm                   \
-  system/vm/dwarf.scm                          \
-  system/vm/elf.scm                            \
-  system/vm/frame.scm                          \
-  system/vm/inspect.scm                                \
-  system/vm/linker.scm                         \
-  system/vm/loader.scm                         \
-  system/vm/program.scm                                \
-  system/vm/trace.scm                          \
-  system/vm/trap-state.scm                     \
-  system/vm/traps.scm                          \
-  system/vm/vm.scm                             \
-                                               \
-  system/syntax.scm                            \
-                                               \
-  system/xref.scm                              \
-                                               \
-  sxml/apply-templates.scm                     \
-  sxml/fold.scm                                        \
-  sxml/match.scm                               \
-  sxml/simple.scm                              \
-  sxml/ssax/input-parse.scm                    \
-  sxml/ssax.scm                                        \
-  sxml/transform.scm                           \
-  sxml/xpath.scm                               \
-                                               \
-  texinfo.scm                                  \
-  texinfo/docbook.scm                          \
-  texinfo/html.scm                             \
-  texinfo/indexing.scm                         \
-  texinfo/string-utils.scm                     \
-  texinfo/plain-text.scm                       \
-  texinfo/reflection.scm                       \
-  texinfo/serialize.scm                                \
-                                               \
-  web/client.scm                               \
-  web/http.scm                                 \
-  web/request.scm                              \
-  web/response.scm                             \
-  web/server.scm                               \
-  web/server/http.scm                          \
-  web/uri.scm
-
-ELISP_SOURCES =                                        \
-  language/elisp/boot.el
-
-NOCOMP_SOURCES =                               \
-  ice-9/match.upstream.scm                     \
-  ice-9/psyntax.scm                            \
-  ice-9/read.scm                               \
-  ice-9/r6rs-libraries.scm                     \
-  ice-9/r7rs-libraries.scm                     \
-  ice-9/quasisyntax.scm                                \
-  srfi/srfi-42/ec.scm                          \
-  srfi/srfi-64/testing.scm                     \
-  srfi/srfi-67/compare.scm                     \
-  system/base/lalr.upstream.scm                        \
-  system/repl/describe.scm                     \
-  sxml/sxml-match.ss                           \
-  sxml/upstream/SSAX.scm                       \
-  sxml/upstream/SXML-tree-trans.scm            \
-  sxml/upstream/SXPath-old.scm                 \
-  sxml/upstream/assert.scm                     \
-  sxml/upstream/input-parse.scm
+# Don't build .go files here.
+nobase_noinst_DATA =
 
 ## ice-9/test.scm is not currently installed.
 EXTRA_DIST +=                                  \
diff --git a/module/system/base/optimize.scm b/module/system/base/optimize.scm
index a0eb6edb6..8c36cca07 100644
--- a/module/system/base/optimize.scm
+++ b/module/system/base/optimize.scm
@@ -1,6 +1,6 @@
 ;;; Optimization flags
 
-;; Copyright (C) 2018, 2020, 2021 Free Software Foundation, Inc.
+;; Copyright (C) 2018, 2020-2022 Free Software Foundation, Inc.
 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -28,14 +28,14 @@
   (match lang-name
     ('tree-il
      '((#:cps? 2)
-       (#:resolve-free-vars? 1)
+       (#:resolve-free-vars? 2)
        (#:resolve-primitives? 1)
        (#:expand-primitives? 1)
        (#:letrectify? 2)
        (#:seal-private-bindings? 3)
        (#:partial-eval? 1)
        (#:eta-expand? 2)
-       (#:inlinable-exports? 1)
+       (#:inlinable-exports? 2)
        (#:cross-module-inlining? 2)))
     ('cps
      '( ;; (#:split-rec? #t)
diff --git a/stage0/Makefile.am b/stage0/Makefile.am
new file mode 100644
index 000000000..12029fb45
--- /dev/null
+++ b/stage0/Makefile.am
@@ -0,0 +1,36 @@
+## Process this file with automake to produce Makefile.in.
+##
+##     Copyright (C) 2009, 2010, 2011, 2012, 2013,
+##        2014, 2015, 2018, 2020, 2022 Free Software Foundation, Inc.
+##
+##   This file is part of GUILE.
+##
+##   GUILE is free software; you can redistribute it and/or modify it
+##   under the terms of the GNU Lesser General Public License as
+##   published by the Free Software Foundation; either version 3, or
+##   (at your option) any later version.
+##
+##   GUILE is distributed in the hope that it will be useful, but
+##   WITHOUT ANY WARRANTY; without even the implied warranty of
+##   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+##   GNU Lesser General Public License for more details.
+##
+##   You should have received a copy of the GNU Lesser General Public
+##   License along with GUILE; see the file COPYING.LESSER.  If not,
+##   write to the Free Software Foundation, Inc., 51 Franklin Street,
+##   Fifth Floor, Boston, MA 02110-1301 USA
+
+
+GUILE_WARNINGS = -W0
+GUILE_OPTIMIZATIONS = -O1
+GUILE_BOOTSTRAP_STAGE = stage0
+
+include $(top_srcdir)/am/bootstrap.am
+
+# We must build the evaluator first, so that we can be sure to control
+# the stack. Then, we build the syntax-case macro expander before the
+# rest, in order to speed up parallel builds.
+ice-9/psyntax-pp.go: | ice-9/eval.go
+
+$(filter-out ice-9/eval.go ice-9/psyntax-pp.go, $(GOBJECTS)): | \
+       ice-9/psyntax-pp.go
diff --git a/stage1/Makefile.am b/stage1/Makefile.am
new file mode 100644
index 000000000..a70bdd59f
--- /dev/null
+++ b/stage1/Makefile.am
@@ -0,0 +1,28 @@
+## Process this file with automake to produce Makefile.in.
+##
+##     Copyright (C) 2009, 2010, 2011, 2012, 2013,
+##        2014, 2015, 2018, 2020, 2022 Free Software Foundation, Inc.
+##
+##   This file is part of GUILE.
+##
+##   GUILE is free software; you can redistribute it and/or modify it
+##   under the terms of the GNU Lesser General Public License as
+##   published by the Free Software Foundation; either version 3, or
+##   (at your option) any later version.
+##
+##   GUILE is distributed in the hope that it will be useful, but
+##   WITHOUT ANY WARRANTY; without even the implied warranty of
+##   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+##   GNU Lesser General Public License for more details.
+##
+##   You should have received a copy of the GNU Lesser General Public
+##   License along with GUILE; see the file COPYING.LESSER.  If not,
+##   write to the Free Software Foundation, Inc., 51 Franklin Street,
+##   Fifth Floor, Boston, MA 02110-1301 USA
+
+
+GUILE_WARNINGS = -W1
+GUILE_OPTIMIZATIONS = -O2 -Ono-cross-module-inlining
+GUILE_BOOTSTRAP_STAGE = stage1
+
+include $(top_srcdir)/am/bootstrap.am
diff --git a/stage2/Makefile.am b/stage2/Makefile.am
new file mode 100644
index 000000000..aefe91f00
--- /dev/null
+++ b/stage2/Makefile.am
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in.
+##
+##     Copyright (C) 2009, 2010, 2011, 2012, 2013,
+##        2014, 2015, 2018, 2020, 2022 Free Software Foundation, Inc.
+##
+##   This file is part of GUILE.
+##
+##   GUILE is free software; you can redistribute it and/or modify it
+##   under the terms of the GNU Lesser General Public License as
+##   published by the Free Software Foundation; either version 3, or
+##   (at your option) any later version.
+##
+##   GUILE is distributed in the hope that it will be useful, but
+##   WITHOUT ANY WARRANTY; without even the implied warranty of
+##   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+##   GNU Lesser General Public License for more details.
+##
+##   You should have received a copy of the GNU Lesser General Public
+##   License along with GUILE; see the file COPYING.LESSER.  If not,
+##   write to the Free Software Foundation, Inc., 51 Franklin Street,
+##   Fifth Floor, Boston, MA 02110-1301 USA
+
+
+GUILE_WARNINGS = -W1
+GUILE_OPTIMIZATIONS = -O2
+GUILE_BOOTSTRAP_STAGE = stage2
+
+include $(top_srcdir)/am/bootstrap.am
+
+ccachedir = $(pkglibdir)/$(GUILE_EFFECTIVE_VERSION)/ccache
+nobase_ccache_DATA = $(GOBJECTS)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]