summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBT Templeton <bpt@hcoop.net>2011-06-12 17:19:02 -0400
committerBT Templeton <bpt@hcoop.net>2011-11-22 15:06:12 -0500
commit6937c7aa8b36037a546e0825fafc933dbd5cf90b (patch)
tree72c592df55e00b010f1d82a36fcfeafc2f726272
parent5d351f0b9b77d0ba38e6da4604470472ab2ce165 (diff)
downloadguile-6937c7aa8b36037a546e0825fafc933dbd5cf90b.tar.gz
load boot.el
* am/guilec: Add support for compiling Elisp files. * module/Makefile.am: New variable ELISP_SOURCES. * module/language/elisp/boot.el: New file. * module/language/elisp/spec.scm: Load boot.el.
-rw-r--r--am/guilec16
-rw-r--r--module/Makefile.am3
-rw-r--r--module/language/elisp/boot.el20
-rw-r--r--module/language/elisp/spec.scm4
4 files changed, 38 insertions, 5 deletions
diff --git a/am/guilec b/am/guilec
index 9af9daf06..b192fc169 100644
--- a/am/guilec
+++ b/am/guilec
@@ -1,14 +1,14 @@
# -*- makefile -*-
-GOBJECTS = $(SOURCES:%.scm=%.go)
+GOBJECTS = $(SOURCES:%.scm=%.go) $(ELISP_SOURCES:%.el=%.go)
GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
moddir = $(pkgdatadir)/$(GUILE_EFFECTIVE_VERSION)/$(modpath)
-nobase_mod_DATA = $(SOURCES) $(NOCOMP_SOURCES)
+nobase_mod_DATA = $(SOURCES) $(ELISP_SOURCES) $(NOCOMP_SOURCES)
ccachedir = $(pkglibdir)/$(GUILE_EFFECTIVE_VERSION)/ccache/$(modpath)
nobase_ccache_DATA = $(GOBJECTS)
-EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
-ETAGS_ARGS = $(SOURCES) $(NOCOMP_SOURCES)
+EXTRA_DIST = $(SOURCES) $(ELISP_SOURCES) $(NOCOMP_SOURCES)
+ETAGS_ARGS = $(SOURCES) $(ELISP_SOURCES) $(NOCOMP_SOURCES)
CLEANFILES = $(GOBJECTS)
@@ -24,8 +24,14 @@ AM_V_GUILEC = $(AM_V_GUILEC_$(V))
AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))
AM_V_GUILEC_0 = @echo " GUILEC" $@;
-SUFFIXES = .scm .go
+SUFFIXES = .scm .el .go
+
.scm.go:
$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \
$(top_builddir)/meta/uninstalled-env \
guild compile --target="$(host)" $(GUILE_WARNINGS) -o "$@" "$<"
+
+.el.go:
+ $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \
+ $(top_builddir)/meta/uninstalled-env \
+ guild compile $(GUILE_WARNINGS) --from=elisp -o "$@" "$<"
diff --git a/module/Makefile.am b/module/Makefile.am
index 2c5e2595d..fa13c6ec4 100644
--- a/module/Makefile.am
+++ b/module/Makefile.am
@@ -370,6 +370,9 @@ WEB_SOURCES = \
EXTRA_DIST += oop/ChangeLog-2008
+ELISP_SOURCES = \
+ language/elisp/boot.el
+
NOCOMP_SOURCES = \
ice-9/match.upstream.scm \
ice-9/psyntax.scm \
diff --git a/module/language/elisp/boot.el b/module/language/elisp/boot.el
new file mode 100644
index 000000000..e8b7607c1
--- /dev/null
+++ b/module/language/elisp/boot.el
@@ -0,0 +1,20 @@
+;;; Guile Emacs Lisp
+
+;;; Copyright (C) 2011 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 License as
+;;; published by the Free Software Foundation; either version 3 of the
+;;; License, or (at your option) any later version.
+;;;
+;;; This library 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 this library; if not, write to the Free Software
+;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+;;; 02110-1301 USA
+
+;;; Code:
diff --git a/module/language/elisp/spec.scm b/module/language/elisp/spec.scm
index 3da368093..38a32c2df 100644
--- a/module/language/elisp/spec.scm
+++ b/module/language/elisp/spec.scm
@@ -22,6 +22,7 @@
#:use-module (language elisp compile-tree-il)
#:use-module (language elisp parser)
#:use-module (system base language)
+ #:use-module (system base compile)
#:export (elisp))
(define-language elisp
@@ -29,3 +30,6 @@
#:reader (lambda (port env) (read-elisp port))
#:printer write
#:compilers `((tree-il . ,compile-tree-il)))
+
+(compile-and-load (%search-load-path "language/elisp/boot.el")
+ #:from 'elisp)