Makefile.am 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. ## Process this file with automake to produce Makefile.in.
  2. ##
  3. ## Copyright (C) 2016 Free Software Foundation, Inc.
  4. ##
  5. ## This file is part of GNU Guile.
  6. ##
  7. ## GNU Guile is free software; you can redistribute it and/or modify
  8. ## it under the terms of the GNU Lesser General Public License as
  9. ## published by the Free Software Foundation; either version 3, or (at
  10. ## your option) any later version.
  11. ##
  12. ## GNU Guile is distributed in the hope that it will be useful, but
  13. ## WITHOUT ANY WARRANTY; without even the implied warranty of
  14. ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. ## GNU Lesser General Public License for more details.
  16. ##
  17. ## You should have received a copy of the GNU Lesser General Public
  18. ## License along with GNU Guile; see the file COPYING.LESSER. If not,
  19. ## write to the Free Software Foundation, Inc., 51 Franklin Street,
  20. ## Fifth Floor, Boston, MA 02110-1301 USA
  21. # Guile Scheme is mostly written in Guile Scheme. Its compiler is
  22. # written in Guile Scheme, and its interpreter too. However, it is not
  23. # bootstrapped from itself: Guile includes a minimal interpreter written
  24. # in C as well which can load the compiler, enough to compile the
  25. # interpreter written in Scheme. That compiled interpreter written in
  26. # Scheme is then used to compile the rest of Guile, including the
  27. # compiler itself.
  28. #
  29. # The problem is, this process takes a long time, and for people
  30. # installing Guile from source, it's their first experience of Guile: an
  31. # hour-long bootstrap. It's not the nicest experience. To avoid this,
  32. # in our tarballs we pre-build object files for the essential parts of
  33. # the compiler.
  34. #
  35. # In the future we will do native compilation and so we will need to
  36. # precompile object files for all common host types. Still, since we
  37. # use ELF everywhere, there will be many host types whose compiled files
  38. # are the same: because Guile incorporates its own linker and loader for
  39. # compiled Scheme files, any AArch64 machine, for example, is going to
  40. # have the same compiled files. So, for the variants that will be the
  41. # same, we compile one target triple, and symlink the similar targets to
  42. # that directory.
  43. #
  44. # The current situation though is that we compile to bytecode, and there
  45. # are only four variants of that bytecode: big- or little-endian, and
  46. # 32- or 64-bit. The strategy is the same, only that now
  47. # arm64-unknown-linux-gnu will link to x86_64-unknown-linux-gnu, as they
  48. # have the same word size and endianness. A pending issue to resolve is
  49. # how this wil deal with architectures where longs are 32 bits and
  50. # pointers are 64 bits; we'll let the x32 people deal with that.
  51. SUBDIRS = \
  52. x86_64-unknown-linux-gnu \
  53. i686-pc-linux-gnu \
  54. mips-unknown-linux-gnu