Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Gerwitz <gerwitm@lovullo.com>2015-07-09 17:01:41 -0400
committerMike Gerwitz <gerwitm@lovullo.com>2015-07-10 12:46:59 -0400
commitdd563bba4706545698e94db6b7298a3300a32989 (patch)
treeb65d2b58da91f3716f57850fa918b83fa3262ce9
parent507664b0c7935f2e3d1632fe60d2ea382f568689 (diff)
parent55cfeac10af402f9bd7f4aad1fbe6ebb6076c31c (diff)
downloadtame-dd563bba4706545698e94db6b7298a3300a32989.tar.gz
tame-dd563bba4706545698e94db6b7298a3300a32989.tar.bz2
tame-dd563bba4706545698e94db6b7298a3300a32989.zip
hoxsl build integration
This does not include hoxsl as a submodule; I want to move away from doing that. Instead, it recognizes the `HOXSL` environment variable.
-rw-r--r--.gitignore1
-rw-r--r--Makefile.am30
-rw-r--r--conf.xsl.in29
-rw-r--r--configure.ac13
4 files changed, 68 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 25d3c42..a17eae1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
/test/index.html
/test/**/xspec/
/src/**/*.texi
+/conf.xsl
*.apply
*.info
diff --git a/Makefile.am b/Makefile.am
index 7b81cae..0566e6d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -18,12 +18,34 @@
SUBDIRS = doc
-path_src := src
-path_test := test
+path_src = src
+path_test = test
-.PHONY: check test texis
+# all source files will be run through hoxsl; see `applies' target
+apply_src := $(shell find "$(path_src)" -name '*.xsl')
+apply_dest := $(apply_src:%.xsl=%.xsl.apply)
+
+# needed by test runner
+export SAXON_CP
+
+
+.DELETE_ON_ERROR:
+
+.PHONY: check test texis applies
+
+.DEFAULT_GOAL := applies
test: check
-check:
+check: | applies
$(path_test)/runner
+# the "applies" are hoxsl-generated stylesheets containing definitions to
+# permit partial function application
+applies: $(apply_dest)
+%.apply: %
+ $(JAVA) -jar "$(SAXON_CP)" \
+ -xsl:"$(HOXSL)/transform/apply-gen.xsl" \
+ "$<" > "$@"
+
+clean-local:
+ $(RM) $(apply_dest)
diff --git a/conf.xsl.in b/conf.xsl.in
new file mode 100644
index 0000000..22ed9d8
--- /dev/null
+++ b/conf.xsl.in
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!--
+ General configuration
+
+ Copyright (C) 2015 LoVullo Associates, Inc.
+
+ This file is part of TAME.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+-->
+<stylesheet version="2.0"
+ xmlns="http://www.w3.org/1999/XSL/Transform">
+
+<!-- hoxsl path is configured at build time -->
+<import href="@HOXSL@/apply/thrush.xsl" />
+
+</stylesheet>
diff --git a/configure.ac b/configure.ac
index f3f43bd..432be62 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,6 +23,17 @@ AM_INIT_AUTOMAKE([foreign])
AC_ARG_VAR([JAVA], [The Java executable])
AC_CHECK_PROGS(JAVA, [java])
-AC_CONFIG_FILES([Makefile doc/Makefile])
+AC_ARG_VAR([SAXON_CP], [Saxon class path])
+
+: ${HOXSL=hoxsl}
+AC_ARG_VAR([HOXSL], [Path to hoxsl])
+
+AC_MSG_CHECKING([hoxsl path HOXSL=$HOXSL])
+AS_IF(test ! -d "$HOXSL",
+ AC_MSG_ERROR([hoxsl path '$HOXSL' does not exist!]))
+AC_MSG_RESULT(found)
+
+AC_CONFIG_FILES([Makefile doc/Makefile conf.xsl])
AC_OUTPUT
+