## Copyright (C) 2009-2022 Free Software Foundation, Inc. ## ## This file is part of GNU Guile. ## ## GNU 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. ## ## GNU 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 GNU 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 # These variables can be set before you include bootstrap.am. GUILE_WARNINGS ?= -W1 GUILE_OPTIMIZATIONS ?= -O2 GUILE_TARGET ?= $(host) GUILE_BUILD_TAG ?= BOOTSTRAP($(GUILE_BOOTSTRAP_STAGE)) GOBJECTS = $(SOURCES:%.scm=%.go) $(ELISP_SOURCES:%.el=%.go) nobase_noinst_DATA = $(GOBJECTS) CLEANFILES = $(GOBJECTS) VM_TARGETS = system/vm/assembler.go system/vm/disassembler.go $(VM_TARGETS): $(top_builddir)/libguile/vm-operations.h AM_V_GUILEC = $(AM_V_GUILEC_$(V)) 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 .el .go 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" .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 # 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 \ ice-9/boot-9.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 \ \ 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/bytevectors/gnu.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