diff --git a/Makefile.am b/Makefile.am index 1090cea7e..3105af74b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,10 +1,4 @@ -SUBDIRS = src doc testsuite -DIST_SUBDIRS = src module doc testsuite - -# FIXME: The `module' directory is removed from `SUBDIRS' until it can -# actually be built. - -EXTRA_DIST = acconfig.h +SUBDIRS = src module doc testsuite MAINTAINERCLEANFILES = COPYING INSTALL config.guess config.sub ltconfig \ ltmain.sh Makefile.in aclocal.m4 config.h.in stamp-h.in \ diff --git a/guilec.mk b/guilec.mk new file mode 100644 index 000000000..57336c151 --- /dev/null +++ b/guilec.mk @@ -0,0 +1,10 @@ +GOBJECTS = $(SOURCES:%.scm=%.go) + +mod_DATA = $(SOURCES) $(NOCOMP_SOURCES) $(GOBJECTS) +EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES) + +CLEANFILES = $(GOBJECTS) + +SUFFIXES = .scm .go +.scm.go: + $(GUILEC) $< diff --git a/module/language/scheme/Makefile.am b/module/language/scheme/Makefile.am index 2762c9616..62385e0bb 100644 --- a/module/language/scheme/Makefile.am +++ b/module/language/scheme/Makefile.am @@ -1,12 +1,3 @@ SOURCES = translate.scm spec.scm -## FIXME: There's a bug showing up when compiling `translate.scm'. -GOBJECTS = $(SOURCES:%.scm=%.go) - -vmdir = $(guiledir)/language/scheme -vm_DATA = $(SOURCES) $(GOBJECTS) - -CLEANFILES = $(GOBJECTS) - -SUFFIXES = .scm .go -%.go: %.scm - $(GUILEC) $< +moddir = $(guiledir)/language/scheme +include $(top_srcdir)/guilec.mk diff --git a/module/system/base/Makefile.am b/module/system/base/Makefile.am index c6c5722cc..853876fcb 100644 --- a/module/system/base/Makefile.am +++ b/module/system/base/Makefile.am @@ -1,11 +1,3 @@ SOURCES = pmatch.scm syntax.scm compile.scm language.scm -GOBJECTS = $(SOURCES:%.scm=%.go) - -vmdir = $(guiledir)/system/vm -vm_DATA = $(SOURCES) $(GOBJECTS) - -CLEANFILES = $(GOBJECTS) - -SUFFIXES = .scm .go -%.go: %.scm - $(GUILEC) $< +moddir = $(guiledir)/system/base +include $(top_srcdir)/guilec.mk diff --git a/module/system/base/compile.scm b/module/system/base/compile.scm index e73c09274..173f36a70 100644 --- a/module/system/base/compile.scm +++ b/module/system/base/compile.scm @@ -101,8 +101,9 @@ (apply load-source-file file opts)))) (define (compiled-file-name file) - (let ((m (string-match "\\.[^.]*$" file))) - (string-append (if m (match:prefix m) file) ".go"))) + (let ((base (basename file))) + (let ((m (string-match "\\.scm$" base))) + (string-append (if m (match:prefix m) base) ".go")))) (define (scheme-eval x e) (vm-load (the-vm) (compile-in x e (scheme)))) diff --git a/module/system/il/Makefile.am b/module/system/il/Makefile.am index d1bc50c41..ddd91bd5f 100644 --- a/module/system/il/Makefile.am +++ b/module/system/il/Makefile.am @@ -1,13 +1,3 @@ SOURCES = glil.scm macros.scm ghil.scm compile.scm -## FIXME: There's a bug showing up when compiling `ghil.scm' and -## `compile.scm'! -GOBJECTS = $(SOURCES:%.scm=%.go) - -vmdir = $(guiledir)/system/il -vm_DATA = $(SOURCES) $(GOBJECTS) - -CLEANFILES = $(GOBJECTS) - -SUFFIXES = .scm .go -%.go: %.scm - $(GUILEC) $< +moddir = $(guiledir)/system/il +include $(top_srcdir)/guilec.mk diff --git a/module/system/repl/Makefile.am b/module/system/repl/Makefile.am index d5a9f68fb..c7d0553fb 100644 --- a/module/system/repl/Makefile.am +++ b/module/system/repl/Makefile.am @@ -1,12 +1,4 @@ NOCOMP_SOURCES = describe.scm SOURCES = repl.scm common.scm command.scm -GOBJECTS = $(SOURCES:%.scm=%.go) - -vmdir = $(guiledir)/system/repl -vm_DATA = $(SOURCES) $(NOCOMP_SOURCES) $(GOBJECTS) - -CLEANFILES = $(GOBJECTS) - -SUFFIXES = .scm .go -%.go: %.scm - $(GUILEC) $< +moddir = $(guiledir)/system/repl +include $(top_srcdir)/guilec.mk diff --git a/module/system/vm/Makefile.am b/module/system/vm/Makefile.am index e1ba6333c..4fbf336e6 100644 --- a/module/system/vm/Makefile.am +++ b/module/system/vm/Makefile.am @@ -1,12 +1,4 @@ SOURCES = assemble.scm conv.scm core.scm debug.scm \ disasm.scm frame.scm profile.scm trace.scm -GOBJECTS = $(SOURCES:%.scm=%.go) - -vmdir = $(guiledir)/system/vm -vm_DATA = $(SOURCES) $(GOBJECTS) - -CLEANFILES = $(GOBJECTS) - -SUFFIXES = .scm .go -%.go: %.scm - $(GUILEC) $< +moddir = $(guiledir)/system/vm +include $(top_srcdir)/guilec.mk