summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher R. Nelson <christopher.nelson@languidnights.com>2024-01-17 21:13:48 -0500
committerChristopher R. Nelson <christopher.nelson@languidnights.com>2024-01-21 09:59:05 -0500
commitb2c4d5b69d64bde980b7b318ef992524921c603b (patch)
treeb3315f039cd1a6c67da571e9ae4ff34326e55018
parent6294af2472ff9798f46f01acf49b39f50f0375ec (diff)
Commit (current) autotools files
Normally, you don't commit generated files to vcs. In this case, we are doing so because many/most users won't have guile-hall installed, and we'd rather not force users to install a development dependency when they can install just autotools. .gitignore: rh-server && rh-client are built by make
-rw-r--r--.gitignore4
-rw-r--r--Makefile.am84
-rwxr-xr-xautogen.sh3
-rw-r--r--configure.ac35
-rw-r--r--pre-inst-env.in13
5 files changed, 139 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index ba1d131..72062e9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
+# build files
+scripts/rh-server
+scripts/rh-client
+
# hall-added files
*.eps
*.go
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..41661d1
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,84 @@
+bin_SCRIPTS = scripts/rh-server \
+ scripts/rh-client
+
+# Handle substitution of fully-expanded Autoconf variables.
+do_subst = $(SED) \
+ -e 's,[@]GUILE[@],$(GUILE),g' \
+ -e 's,[@]guilemoduledir[@],$(guilemoduledir),g' \
+ -e 's,[@]guileobjectdir[@],$(guileobjectdir),g' \
+ -e 's,[@]localedir[@],$(localedir),g'
+
+nodist_noinst_SCRIPTS = pre-inst-env
+
+GOBJECTS = $(SOURCES:%.scm=%.go)
+
+moddir=$(prefix)/share/guile/site/$(GUILE_EFFECTIVE_VERSION)
+godir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
+ccachedir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
+
+nobase_mod_DATA = $(SOURCES) $(NOCOMP_SOURCES)
+nobase_go_DATA = $(GOBJECTS)
+
+# Make sure source files are installed first, so that the mtime of
+# installed compiled files is greater than that of installed source
+# files. See
+# <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
+# for details.
+guile_install_go_files = install-nobase_goDATA
+$(guile_install_go_files): install-nobase_modDATA
+
+EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
+GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
+SUFFIXES = .scm .go
+.scm.go:
+ $(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
+
+SOURCES = reading-heap/zmq.scm \
+ reading-heap/media.scm \
+ reading-heap/heap.scm \
+ reading-heap/hconfig.scm.hall \
+ reading-heap.scm
+
+TESTS =
+
+TEST_EXTENSIONS = .scm
+SCM_LOG_DRIVER = \
+ $(top_builddir)/pre-inst-env \
+ $(GUILE) --no-auto-compile -e main \
+ $(top_srcdir)/build-aux/test-driver.scm
+
+# Tell 'build-aux/test-driver.scm' to display only source file names,
+# not indivdual test names.
+AM_SCM_LOG_DRIVER_FLAGS = --brief=yes
+
+AM_SCM_LOG_FLAGS = --no-auto-compile -L "$(top_srcdir)"
+
+AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)"
+
+info_TEXINFOS = doc/reading-heap.texi
+dvi: # Don't build dvi docs
+
+EXTRA_DIST += AUTHORS \
+ ChangeLog \
+ COPYING \
+ HACKING \
+ NEWS \
+ README \
+ README.org \
+ hall.scm \
+ .gitignore \
+ guix.scm \
+ manifest.scm \
+ autogen.sh \
+ build-aux/test-driver.scm \
+ $(TESTS)
+
+ACLOCAL_AMFLAGS = -I m4
+
+clean-go:
+ -$(RM) $(GOBJECTS)
+.PHONY: clean-go
+
+CLEANFILES = \
+ $(GOBJECTS) \
+ $(TESTS:tests/%.scm=%.log)
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..bbb4008
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+autoreconf --install || exit 1
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..d4275ff
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,35 @@
+dnl -*- Autoconf -*-
+
+AC_INIT(guile-reading-heap, 0.1)
+AC_SUBST(HVERSION, "\"0.1\"")
+AC_SUBST(AUTHOR, "\"Christopher R. Nelson\"")
+AC_SUBST(COPYRIGHT, "'(2024)")
+AC_SUBST(LICENSE, agpl3+)
+AC_CONFIG_SRCDIR(reading-heap.scm)
+AC_CONFIG_AUX_DIR([build-aux])
+AM_INIT_AUTOMAKE([1.12 gnu silent-rules subdir-objects color-tests parallel-tests -Woverride -Wno-portability])
+AM_SILENT_RULES([yes])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])
+AC_CONFIG_FILES([scripts/rh-server],[chmod +x scripts/rh-server])
+AC_CONFIG_FILES([scripts/rh-client],[chmod +x scripts/rh-client])
+dnl Search for 'guile' and 'guild'. This macro defines
+dnl 'GUILE_EFFECTIVE_VERSION'.
+GUILE_PKG([3.0 2.2 2.0])
+GUILE_PROGS
+GUILE_SITE_DIR
+if test "x$GUILD" = "x"; then
+ AC_MSG_ERROR(['guild' binary not found; please check your guile-2.x installation.])
+fi
+
+dnl Hall auto-generated guile-module dependencies
+GUILE_MODULE_REQUIRED([hall common])
+
+dnl Installation directories for .scm and .go files.
+guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
+guileobjectdir="${libdir}/guile/$GUILE_EFFECTIVE_VERSION/site-ccache"
+AC_SUBST([guilemoduledir])
+AC_SUBST([guileobjectdir])
+
+AC_OUTPUT
diff --git a/pre-inst-env.in b/pre-inst-env.in
new file mode 100644
index 0000000..31c499d
--- /dev/null
+++ b/pre-inst-env.in
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+abs_top_srcdir="`cd "@abs_top_srcdir@" > /dev/null; pwd`"
+abs_top_builddir="`cd "@abs_top_builddir@" > /dev/null; pwd`"
+
+GUILE_LOAD_COMPILED_PATH="$abs_top_builddir${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
+GUILE_LOAD_PATH="$abs_top_builddir:$abs_top_srcdir${GUILE_LOAD_PATH:+:}:$GUILE_LOAD_PATH"
+export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH
+
+PATH="$abs_top_builddir/scripts:$PATH"
+export PATH
+
+exec "$@"