Add the 'guild' and 'guile' variables to 'guile-2.0.pc'.
authorLudovic Courtès <ludo@gnu.org>
Wed, 3 Dec 2014 17:59:00 +0000 (18:59 +0100)
committerLudovic Courtès <ludo@gnu.org>
Wed, 3 Dec 2014 17:59:36 +0000 (18:59 +0100)
* configure.ac: Remove meta/guile-2.0.pc and
  meta/guile-2.0-uninstalled.pc from 'AC_CONFIG_FILES'.
* meta/Makefile.am (substitute): New variable.
  (guile-2.0.pc, guile-2.0-uninstalled.pc): New targets.
  (guile-config, guild): Use $(substitute) instead of duplicated sed
  script.
  (CLEANFILES): Add the .pc files.
* meta/guile-2.0.pc.in (bindir, guild, guile): New variables.
* doc/ref/libguile-parallel.texi (Parallel Installations): Document the
  'guild' and 'guile' pkg-config variables.

configure.ac
doc/ref/libguile-parallel.texi
meta/Makefile.am
meta/guile-2.0.pc.in

index 4f40736..d3a27eb 100644 (file)
@@ -1670,9 +1670,6 @@ AC_CONFIG_FILES([
   module/Makefile
 ])
 
-AC_CONFIG_FILES([meta/guile-2.0.pc])
-AC_CONFIG_FILES([meta/guile-2.0-uninstalled.pc])
-
 GUILE_CONFIG_SCRIPT([check-guile])
 GUILE_CONFIG_SCRIPT([benchmark-guile])
 GUILE_CONFIG_SCRIPT([meta/guile])
index 37a7139..50b5339 100644 (file)
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
-@c Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2010, 2011
-@c   Free Software Foundation, Inc.
+@c Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2010, 2011,
+@c   2014 Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
 @node Parallel Installations
@@ -55,6 +55,21 @@ The default directory where Guile looks for extensions---i.e., shared
 libraries providing additional features (@pxref{Modules and
 Extensions}).  Run @command{pkg-config guile-@value{EFFECTIVE-VERSION}
 --variable=extensiondir} to see its value.
+
+@item guile
+@itemx guild
+@cindex program name transformations, dealing with
+The absolute file name of the @command{guile} and @command{guild}
+commands@footnote{The @code{guile} and @code{guild} variables defined
+starting from Guile version 2.0.12.}.  Run @command{pkg-config
+guile-@value{EFFECTIVE-VERSION} --variable=guile} or
+@code{--variable=guild} to see their value.
+
+These variables allow users to deal with program name transformations
+that may be specified when configuring Guile with
+@code{--program-transform-name}, @code{--program-suffix}, or
+@code{--program-prefix} (@pxref{Transformation Options,,, autoconf, GNU
+Autoconf Manual}).
 @end table
 
 @noindent
index 57644bc..5f19db5 100644 (file)
@@ -44,24 +44,47 @@ pkgconfig_DATA = guile-2.0.pc
 aclocaldir = $(datadir)/aclocal
 aclocal_DATA = guile.m4
 
+# Script to instantiate substitution variables found on the standard
+# input.  We do this from the Makefile because we need things like
+# $(program_transform_name), which are not usable from 'configure.ac'.
+substitute =                                                           \
+  guile="`echo guile | $(SED) -e '$(program_transform_name)'`" ;       \
+  guild="`echo guild | $(SED) -e '$(program_transform_name)'`" ;       \
+  installed_guile="@bindir@/$$guile" ;                                 \
+  $(SED) -e "s,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g"                   \
+        -e "s,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g"          \
+        -e "s,[@]PKG_CONFIG[@],$(PKG_CONFIG),g"                        \
+        -e "s,[@]pkgconfigdir[@],$(pkgconfigdir),g"                    \
+        -e "s,[@]prefix[@],$(prefix),g"                                \
+        -e "s,[@]exec_prefix[@],$(exec_prefix),g"                      \
+        -e "s,[@]bindir[@],$(bindir),g"                                \
+        -e "s,[@]libdir[@],$(libdir),g"                                \
+        -e "s,[@]includedir[@],$(includedir),g"                        \
+        -e "s,[@]datarootdir[@],$(datarootdir),g"                      \
+        -e "s,[@]datadir[@],$(datadir),g"                              \
+        -e "s,[@]sitedir[@],$(sitedir),g"                              \
+        -e "s,[@]guile[@],$$guile,g"                                   \
+        -e "s,[@]guild[@],$$guild,g"                                   \
+        -e "s,[@]installed_guile[@],$$installed_guile,g"
+
+guile-2.0.pc: guile-2.0.pc.in
+       $(substitute) < "$<" > "$@.out"
+       mv "$@.out" "$@"
+
+guile-2.0-uninstalled.pc: guile-2.0-uninstalled.pc.in
+       $(substitute) < "$<" > "$@.out"
+       mv "$@.out" "$@"
+
 guile-config: $(srcdir)/guile-config.in $(top_builddir)/config.status
-       guile="@bindir@/`echo guile | $(SED) -e '$(program_transform_name)'`" ; \
-       $(SED) -e "s,[@]pkgconfigdir[@],$(pkgconfigdir),g"                      \
-              -e "s,[@]PKG_CONFIG[@],$(PKG_CONFIG),g"                          \
-              -e "s,[@]installed_guile[@],$$guile,g"                           \
-         < "$(srcdir)/guile-config.in"                                         \
-         > "$@.out"
+       $(substitute) < "$<" > "$@.out"
        chmod +x "$@.out"
        mv "$@.out" "$@"
 
 guild: $(srcdir)/guild.in $(top_builddir)/config.status
-       guile="@bindir@/`echo guile | $(SED) -e '$(program_transform_name)'`" ; \
-       $(SED) -e "s,[@]installed_guile[@],$$guile,g"                           \
-              -e "s,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g"                      \
-              -e "s,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g"            \
-         < "$(srcdir)/guild.in"                                                \
-         > "$@.out"
+       $(substitute) < "$<" > "$@.out"
        chmod +x "$@.out"
        mv "$@.out" "$@"
 
-CLEANFILES = guile-config guild
+CLEANFILES =                                   \
+  guile-config guild                           \
+  guile-2.0.pc guile-2.0-uninstalled.pc
index 1bda734..c8f485b 100644 (file)
@@ -1,5 +1,6 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
+bindir=@bindir@
 libdir=@libdir@
 includedir=@includedir@
 datarootdir=@datarootdir@
@@ -11,6 +12,12 @@ sitedir=@sitedir@
 extensiondir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/extensions
 libguileinterface=@LIBGUILE_INTERFACE@
 
+# Actual name of the 'guile' and 'guild' programs.  This is
+# particularly useful when '--program-transform-name' or similar has
+# been used.
+guild=${bindir}/@guild@
+guile=${bindir}/@guile@
+
 Name: GNU Guile
 Description: GNU's Ubiquitous Intelligent Language for Extension
 Version: @GUILE_VERSION@