summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2022-07-07 21:56:17 -0400
committerDavid Thompson <dthompson2@worcester.edu>2022-07-07 21:56:17 -0400
commita090d0a7c9168ca6292c6cdf1b8c27c5a067c085 (patch)
tree5542cf5c17662acd570fb9f892ced59b84ca5c33 /configure.ac
parentddefe10ba133c8397ddf46c15e2614c1748ddf99 (diff)
Automatically add Haunt's modules to Guile's load path at startup.
This fixes a longstanding usability issue where people would install Haunt to /usr/local and then wonder why Haunt doesn't work, which was because Guile's default load path is /usr and thus could not find the newly installed modules in /usr/local. I received several emails about this over the years and didn't know to deal with it. Many thanks to Daniel Meißner for pointing out that Guix had already found a solution to this problem because of course Guix would have this problem solved! Ludovic is an autotools wizard.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac10
1 files changed, 10 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index da381d3..67e287c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,6 +14,16 @@ AC_CONFIG_FILES([scripts/haunt], [chmod +x scripts/haunt])
GUILE_PKG([3.0 2.2 2.0])
GUILE_PROGS
+dnl Compute complete installation directories for .scm and .go files
+dnl so that the Haunt executable can automagically add them to Guile's
+dnl load path.
+haunt_prefix="`eval echo $prefix | sed -e"s|NONE|/usr/local|g"`"
+haunt_libdir="`eval echo $libdir | sed -e"s|NONE|$haunt_prefix|g"`"
+guilemoduledir="`eval echo ${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION | sed -e"s|NONE|$haunt_prefix|g"`"
+guileobjectdir="`eval echo ${libdir}/guile/$GUILE_EFFECTIVE_VERSION/site-ccache | sed -e"s|NONE|$haunt_prefix|g"`"
+AC_SUBST([guilemoduledir])
+AC_SUBST([guileobjectdir])
+
dnl Guile-reader is needed for Skribe support
GUILE_MODULE_AVAILABLE([have_guile_reader], [(system reader)])
AM_CONDITIONAL([HAVE_GUILE_READER], [test "x$have_guile_reader" = "xyes"])