From b2c4d5b69d64bde980b7b318ef992524921c603b Mon Sep 17 00:00:00 2001 From: "Christopher R. Nelson" Date: Wed, 17 Jan 2024 21:13:48 -0500 Subject: 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 --- .gitignore | 4 +++ Makefile.am | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ autogen.sh | 3 +++ configure.ac | 35 ++++++++++++++++++++++++ pre-inst-env.in | 13 +++++++++ 5 files changed, 139 insertions(+) create mode 100644 Makefile.am create mode 100755 autogen.sh create mode 100644 configure.ac create mode 100644 pre-inst-env.in 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 +# +# 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 "$@" -- cgit v1.2.3