bootstrap.am 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. ## Copyright (C) 2009, 2010, 2011, 2012, 2013,
  2. ## 2014, 2015, 2017, 2018 Free Software Foundation, Inc.
  3. ##
  4. ## This file is part of GNU Guile.
  5. ##
  6. ## GNU Guile is free software; you can redistribute it and/or modify
  7. ## it under the terms of the GNU Lesser General Public License as
  8. ## published by the Free Software Foundation; either version 3, or (at
  9. ## your option) any later version.
  10. ##
  11. ## GNU Guile is distributed in the hope that it will be useful, but
  12. ## WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. ## GNU Lesser General Public License for more details.
  15. ##
  16. ## You should have received a copy of the GNU Lesser General Public
  17. ## License along with GNU Guile; see the file COPYING.LESSER. If not,
  18. ## write to the Free Software Foundation, Inc., 51 Franklin Street,
  19. ## Fifth Floor, Boston, MA 02110-1301 USA
  20. # These variables can be set before you include bootstrap.am.
  21. GUILE_WARNINGS ?= -Wunbound-variable -Warity-mismatch -Wformat
  22. GUILE_OPTIMIZATIONS ?= -O2
  23. GUILE_TARGET ?= $(host)
  24. GUILE_BUILD_TAG ?= BOOTSTRAP
  25. GOBJECTS = $(SOURCES:%.scm=%.go)
  26. nobase_noinst_DATA = $(GOBJECTS)
  27. CLEANFILES = $(GOBJECTS)
  28. VM_TARGETS = system/vm/assembler.go system/vm/disassembler.go
  29. $(VM_TARGETS): $(top_builddir)/libguile/vm-operations.h
  30. AM_V_GUILEC = $(AM_V_GUILEC_$(V))
  31. AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))
  32. AM_V_GUILEC_0 = @echo " $(GUILE_BUILD_TAG) GUILEC" $@;
  33. vpath %.scm @top_srcdir@/module
  34. SUFFIXES = .scm .go
  35. .scm.go:
  36. $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \
  37. $(top_builddir)/meta/build-env \
  38. guild compile --target="$(GUILE_TARGET)" \
  39. $(GUILE_WARNINGS) $(GUILE_OPTIMIZATIONS) \
  40. -L "$(abs_top_srcdir)/module" \
  41. -L "$(abs_top_srcdir)/guile-readline" \
  42. -o "$@" "$<"
  43. # A subset of sources that are used by the compiler. We can compile
  44. # these in any order; the order below is designed to hopefully result in
  45. # the lowest total compile time.
  46. SOURCES = \
  47. ice-9/eval.scm \
  48. ice-9/psyntax-pp.scm \
  49. language/cps/intmap.scm \
  50. language/cps/intset.scm \
  51. language/cps/utils.scm \
  52. ice-9/vlist.scm \
  53. srfi/srfi-1.scm \
  54. \
  55. language/tree-il.scm \
  56. language/tree-il/analyze.scm \
  57. language/tree-il/canonicalize.scm \
  58. language/tree-il/compile-cps.scm \
  59. language/tree-il/cps-primitives.scm \
  60. language/tree-il/debug.scm \
  61. language/tree-il/effects.scm \
  62. language/tree-il/fix-letrec.scm \
  63. language/tree-il/optimize.scm \
  64. language/tree-il/peval.scm \
  65. language/tree-il/primitives.scm \
  66. language/tree-il/spec.scm \
  67. \
  68. language/cps.scm \
  69. language/cps/closure-conversion.scm \
  70. language/cps/compile-bytecode.scm \
  71. language/cps/contification.scm \
  72. language/cps/cse.scm \
  73. language/cps/dce.scm \
  74. language/cps/devirtualize-integers.scm \
  75. language/cps/effects-analysis.scm \
  76. language/cps/licm.scm \
  77. language/cps/loop-instrumentation.scm \
  78. language/cps/peel-loops.scm \
  79. language/cps/prune-top-level-scopes.scm \
  80. language/cps/reify-primitives.scm \
  81. language/cps/renumber.scm \
  82. language/cps/rotate-loops.scm \
  83. language/cps/optimize.scm \
  84. language/cps/simplify.scm \
  85. language/cps/self-references.scm \
  86. language/cps/slot-allocation.scm \
  87. language/cps/spec.scm \
  88. language/cps/specialize-primcalls.scm \
  89. language/cps/specialize-numbers.scm \
  90. language/cps/split-rec.scm \
  91. language/cps/type-checks.scm \
  92. language/cps/type-fold.scm \
  93. language/cps/types.scm \
  94. language/cps/verify.scm \
  95. language/cps/with-cps.scm \
  96. \
  97. language/scheme/spec.scm \
  98. language/scheme/compile-tree-il.scm \
  99. language/scheme/decompile-tree-il.scm \
  100. \
  101. language/bytecode.scm \
  102. language/bytecode/spec.scm \
  103. \
  104. language/value/spec.scm \
  105. \
  106. system/base/pmatch.scm \
  107. system/base/syntax.scm \
  108. system/base/compile.scm \
  109. system/base/optimize.scm \
  110. system/base/language.scm \
  111. system/base/lalr.scm \
  112. system/base/message.scm \
  113. system/base/target.scm \
  114. system/base/types.scm \
  115. system/base/types/internal.scm \
  116. system/base/ck.scm \
  117. \
  118. ice-9/boot-9.scm \
  119. ice-9/ports.scm \
  120. ice-9/r5rs.scm \
  121. ice-9/deprecated.scm \
  122. ice-9/binary-ports.scm \
  123. ice-9/command-line.scm \
  124. ice-9/control.scm \
  125. ice-9/format.scm \
  126. ice-9/getopt-long.scm \
  127. ice-9/i18n.scm \
  128. ice-9/match.scm \
  129. ice-9/networking.scm \
  130. ice-9/posix.scm \
  131. ice-9/rdelim.scm \
  132. ice-9/receive.scm \
  133. ice-9/regex.scm \
  134. ice-9/session.scm \
  135. ice-9/pretty-print.scm \
  136. \
  137. system/vm/assembler.scm \
  138. system/vm/debug.scm \
  139. system/vm/disassembler.scm \
  140. system/vm/dwarf.scm \
  141. system/vm/elf.scm \
  142. system/vm/frame.scm \
  143. system/vm/linker.scm \
  144. system/vm/loader.scm \
  145. system/vm/program.scm \
  146. system/vm/vm.scm \
  147. system/foreign.scm