diff options
author | BT Templeton <bpt@hcoop.net> | 2011-06-12 17:19:02 -0400 |
---|---|---|
committer | BT Templeton <bpt@hcoop.net> | 2011-11-22 15:06:12 -0500 |
commit | 6937c7aa8b36037a546e0825fafc933dbd5cf90b (patch) | |
tree | 72c592df55e00b010f1d82a36fcfeafc2f726272 | |
parent | 5d351f0b9b77d0ba38e6da4604470472ab2ce165 (diff) | |
download | guile-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/guilec | 16 | ||||
-rw-r--r-- | module/Makefile.am | 3 | ||||
-rw-r--r-- | module/language/elisp/boot.el | 20 | ||||
-rw-r--r-- | module/language/elisp/spec.scm | 4 |
4 files changed, 38 insertions, 5 deletions
@@ -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) |