Guile Reference Manual
33.1 Configuration, Build and Installation
The following procedures and variables provide information about how
Guile was configured, built and installed on your system.
- Scheme Procedure: version
- Scheme Procedure: effective-version
- Scheme Procedure: major-version
- Scheme Procedure: minor-version
- Scheme Procedure: micro-version
- C Function: scm_version ()
- C Function: scm_effective_version ()
- C Function: scm_major_version ()
- C Function: scm_minor_version ()
- C Function: scm_micro_version ()
- Return a string describing Guile's full version number, effective
version number, major, minor or micro version number, respectively.
effective-version function returns the version name that
should remain unchanged during a stable series. Currently that means
that it omits the micro version. The effective version should be used
for items like the versioned share directory name
(version) => "1.6.0"
(effective-version) => "1.6"
(major-version) => "1"
(minor-version) => "6"
(micro-version) => "0"
- Scheme Procedure: %package-data-dir
- C Function: scm_sys_package_data_dir ()
- Return the name of the directory under which Guile Scheme files in
general are stored. On Unix-like systems, this is usually
`/usr/local/share/guile' or `/usr/share/guile'.
- Scheme Procedure: %library-dir
- C Function: scm_sys_library_dir ()
- Return the name of the directory where the Guile Scheme files that
belong to the core Guile installation (as opposed to files from a 3rd
party package) are installed. On Unix-like systems, this is usually
`/usr/share/guile/<GUILE_EFFECTIVE_VERSION>', for example:
- Scheme Procedure: %site-dir
- C Function: scm_sys_site_dir ()
- Return the name of the directory where Guile Scheme files specific to
your site should be installed. On Unix-like systems, this is usually
`/usr/local/share/guile/site' or `/usr/share/guile/site'.
- Variable: %load-path
- List of directories which should be searched for Scheme modules and
%load-path is initialized when Guile starts up to
(list (%site-dir) (%library-dir) (%package-data-dir) "."),
prepended with the contents of the GUILE_LOAD_PATH environment variable,
if it is set.
- Scheme Procedure: parse-path path [tail]
- C Function: scm_parse_path (path, tail)
- Parse path, which is expected to be a colon-separated
string, into a list and return the resulting list with
tail appended. If path is
- Scheme Procedure: search-path path filename [extensions]
- C Function: scm_search_path (path, filename, extensions)
- Search path for a directory containing a file named
filename. The file must be readable, and not a directory.
If we find one, return its full filename; otherwise, return
#f. If filename is absolute, return it unchanged.
If given, extensions is a list of strings; for each
directory in path, we search for filename
concatenated with each extension.
- Variable: %guile-build-info
- Alist of information collected during the building of a particular
Guile. Entries can be grouped into one of several categories:
directories, env vars, and versioning info.
Briefly, here are the keys in
%guile-build-info, by group:
- srcdir, top_srcdir, prefix, exec_prefix, bindir, sbindir, libexecdir,
datadir, sysconfdir, sharedstatedir, localstatedir, libdir, infodir,
mandir, includedir, pkgdatadir, pkglibdir, pkgincludedir
- env vars
- versioning info
- guileversion, libguileinterface, buildstamp
Values are all strings. The value for
LIBS is typically found
also as a part of "guile-config link" output. The value for
guileversion has form X.Y.Z, and should be the same as returned
(version). The value for
libguileinterface is libtool
compatible and has form CURRENT:REVISION:AGE. The value for
buildstamp is the output of the date(1) command.
In the source,
%guile-build-info is initialized from
libguile/libpath.h, which is completely generated, so deleting this file
before a build guarantees up-to-date values for that build.