From 5fac1a7ada362d78f13143acbc0ceca7f2f101de Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 3 Dec 2014 18:59:00 +0100 Subject: [PATCH] Add the 'guild' and 'guile' variables to 'guile-2.0.pc'. * 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 | 3 --- doc/ref/libguile-parallel.texi | 19 +++++++++++-- meta/Makefile.am | 49 +++++++++++++++++++++++++--------- meta/guile-2.0.pc.in | 7 +++++ 4 files changed, 60 insertions(+), 18 deletions(-) diff --git a/configure.ac b/configure.ac index 4f40736ab..d3a27ebfa 100644 --- a/configure.ac +++ b/configure.ac @@ -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]) diff --git a/doc/ref/libguile-parallel.texi b/doc/ref/libguile-parallel.texi index 37a713929..50b53390f 100644 --- a/doc/ref/libguile-parallel.texi +++ b/doc/ref/libguile-parallel.texi @@ -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 diff --git a/meta/Makefile.am b/meta/Makefile.am index 57644bcd4..5f19db5c6 100644 --- a/meta/Makefile.am +++ b/meta/Makefile.am @@ -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 diff --git a/meta/guile-2.0.pc.in b/meta/guile-2.0.pc.in index 1bda73449..c8f485bc1 100644 --- a/meta/guile-2.0.pc.in +++ b/meta/guile-2.0.pc.in @@ -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@ -- 2.20.1