1

I recently switched to Slackware to learn how to use a more advanced Linux distro. It had GNU Guile 2.0 installed by default, but I built Guile 3.0 from source code. When I attempted to build guile-json, I was given this message when I ran the configure script. The directions say to run ./configure --prefix=<guile-prefix>. What would the prefix be for what I am trying to do, or how would I find it?

checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: checking for guile 3.0
configure: checking for guile 2.2
configure: checking for guile 2.0
configure: found guile 2.0
checking for guile-2.0... no
checking for guile2.0... no
checking for guile-2... no
checking for guile2... no
checking for guile... /usr/local/bin/guile
configure: error: found development files for Guile 2.0, but /usr/local/bin/guile has effective version 3.0
km15236
  • 11
  • 1

1 Answers1

3

The readme tells you to use ./configure --prefix=<guile-prefix>. In general, what is meant by that is that you use the same prefix value as you used to build guile, so /usr/local. This is already the default value with the autotools, so I don't think this is going to help you in any way.

Your issue is that the configure script detects the system guile libraries, which are 2.0, but your guile 3.0 is the first in the $PATH, which is incompatible. You should make sure the configure script is able to find the proper version of guile, by setting a couple environment variables:

export GUILE_LOAD_PATH=/usr/local/share/guile/site/3.0
export GUILE_LOAD_COMPILED_PATH=/usr/local/lib/guile/3.0/site-ccache
./configure --prefix=/usr/local

Obviously adjust the values so that they correspond to the actual location you installed the libraries in.

You should probably add these variables to your .profile or something, so that they are always defined correctly when you run guile.

roptat
  • 31
  • 1