summary refs log tree commit diff
path: root/guile-vm.am
diff options
context:
space:
mode:
authorLudovic Courtès2009-03-24 23:28:06 +0100
committerLudovic Courtès2009-03-24 23:28:58 +0100
commitf37487368372c5ab6207e756b4b4ae89c6d145c3 (patch)
treeb9097bfdc18502f1c8bad33c8ca630fba20f54f5 /guile-vm.am
parent3a72d5b1cf38fc3c579336e76e2b0354dcd4c4ae (diff)
downloadskribilo-f37487368372c5ab6207e756b4b4ae89c6d145c3.tar.gz
skribilo-f37487368372c5ab6207e756b4b4ae89c6d145c3.tar.lz
skribilo-f37487368372c5ab6207e756b4b4ae89c6d145c3.zip
Add experimental `--enable-guile-vm' configure option.
* configure.ac (--enable-guile-vm): New option.
  (ENABLE_GUILE_VM): New Automake conditional.

* guile-vm.am: New file.

* src/guile/Makefile.am (SOURCES): New variable, formerly
  `nobase_dist_module_DATA'.
  (SOURCES_NOT_COMPILED): New.
  Include `guile-vm.am'.

* NEWS: Update.
Diffstat (limited to 'guile-vm.am')
-rw-r--r--guile-vm.am30
1 files changed, 30 insertions, 0 deletions
diff --git a/guile-vm.am b/guile-vm.am
new file mode 100644
index 0000000..14b146f
--- /dev/null
+++ b/guile-vm.am
@@ -0,0 +1,30 @@
+# Compilation with Guile-VM's compiler (aka. Guile 2.x).
+
+if ENABLE_GUILE_VM
+
+# XXX: This expression relies on a GNU extension.
+GOBJECTS = $(SOURCES:%.scm=%.go)
+
+nobase_nodist_module_DATA =				\
+  $(SOURCES) $(GOBJECTS) $(SOURCES_NOT_COMPILED)
+
+.scm.go:
+	$(MKDIR_P) `dirname $@`
+	$(GUILE) -L $(srcdir)				\
+	  -c "(use-modules (system base compile)	\
+	                   (skribilo condition))	\
+	      (read-set! keywords 'prefix)		\
+	      (call-with-skribilo-error-catch/exit	\
+	        (lambda ()				\
+	          (compile-file \"$<\" \"$@\")))"
+
+CLEANFILES += $(GOBJECTS)
+
+SUFFIXES += .go
+
+else !ENABLE_GUILE_VM
+
+nobase_nodist_module_DATA =			\
+  $(SOURCES) $(SOURCES_NOT_COMPILED)
+
+endif !ENABLE_GUILE_VM