On 11 December 2017 at 10:32, Reuben Thomas <[email protected]> wrote:

> ​Thanks for this, which I have incorporated into a patch for the
> relocatable documentation, attached, along with a minor patch to use better
> tags in a couple of cases in gnulib.texi.
>

​I noticed that of course the AM_CONDITIONAL goes in configure.ac, so
updated patch attached.

-- 
https://rrt.sc3d.org
From 900c8a3494c87bef31176ea724ff1c1e6582a931 Mon Sep 17 00:00:00 2001
From: Reuben Thomas <[email protected]>
Date: Mon, 11 Dec 2017 10:27:52 +0000
Subject: [PATCH 2/2] doc: Improve explanation of supporting relocatable
 libraries.

* doc/relocatable-maint.texi (Supporting Relocation): Explain
properly how to build the relocatable module for
libraries. (Method and example code from Bruno Haible.)
---
 ChangeLog                  |  7 +++++++
 doc/relocatable-maint.texi | 23 ++++++++++++++++++++---
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index fa5e1d8..6242501 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2017-12-11  Reuben Thomas  <[email protected]>
+
+	doc: Improve explanation of supporting relocatable libraries.
+	* doc/relocatable-maint.texi (Supporting Relocation): Explain
+	properly how to build the relocatable module for
+	libraries. (Method and example code from Bruno Haible.)
+
 2017-12-10  Reuben Thomas  <[email protected]>
 
 	Use better texinfo tags in a few cases.
diff --git a/doc/relocatable-maint.texi b/doc/relocatable-maint.texi
index edb4d26..e9897cb 100644
--- a/doc/relocatable-maint.texi
+++ b/doc/relocatable-maint.texi
@@ -56,6 +56,8 @@ You can make your program relocatable by following these steps:
 @item
 Import the @code{relocatable-prog} module.  For libraries, use the
 @code{relocatable-lib} or @code{relocatable-lib-lgpl} module.
+If you need more than one module, or you need to use them with different
+settings, you will need multiple copies of gnulib (@pxref{Multiple instances}).
 
 @item
 In every program, add to @code{main} as the first statement (even
@@ -190,13 +192,28 @@ foo_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
 endif
 @end example
 
-Also in @file{Makefile.am}, for each library @code{libfoo}, you add:
+When building gnulib to use with a relocatable library, you need to
+define the preprocessor symbol @code{IN_LIBRARY}.
+You may also want to build with @code{COSTLY_RELOCATABLE}, in which case
+you will also need to define @code{INSTALLDIR}.
+The following fragment can be added to an override @code{Makefile.am} used
+to build gnulib (@pxref{Modified build rules}).
 
 @example
-libfoo_la_CPPFLAGS = -DIN_LIBRARY
+AM_CPPFLAGS += -DIN_LIBRARY -DENABLE_COSTLY_RELOCATABLE
+
+if SHLIBS_IN_BINDIR
+AM_CPPFLAGS += -DINSTALLDIR=\"$(bindir)\"
+else
+AM_CPPFLAGS += -DINSTALLDIR=\"$(libdir)\"
+endif
 @end example
 
-(Adjust the suffix @code{la} as necessary if you are not using libtool.)
+@code{SHLIBS_IN_BINDIR} is defined in @file{configure.ac} as follows:
+
+@example
+AM_CONDITIONAL([SHLIBS_IN_BINDIR], [case "$host_os" in mingw* | cygwin*) true;; *) false;; esac])
+@end example
 
 @item
 You may also need to add a couple of variable assignments to your
-- 
2.7.4

Reply via email to