diff options
author | Christopher R. Nelson <christopher.nelson@languidnights.com> | 2024-01-17 21:13:48 -0500 |
---|---|---|
committer | Christopher R. Nelson <christopher.nelson@languidnights.com> | 2024-01-21 09:59:05 -0500 |
commit | b2c4d5b69d64bde980b7b318ef992524921c603b (patch) | |
tree | b3315f039cd1a6c67da571e9ae4ff34326e55018 | |
parent | 6294af2472ff9798f46f01acf49b39f50f0375ec (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-- | .gitignore | 4 | ||||
-rw-r--r-- | Makefile.am | 84 | ||||
-rwxr-xr-x | autogen.sh | 3 | ||||
-rw-r--r-- | configure.ac | 35 | ||||
-rw-r--r-- | pre-inst-env.in | 13 |
5 files changed, 139 insertions, 0 deletions
@@ -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 "$@" |