aboutsummaryrefslogtreecommitdiffstats
path: root/chapter08/ncurses.xml
diff options
context:
space:
mode:
authorPierre Labastie <pierre.labastie@neuf.fr>2022-06-29 14:08:29 +0200
committerPierre Labastie <pierre.labastie@neuf.fr>2022-06-29 14:08:29 +0200
commitf8b27abcda6fd5beaaf3f57ae31da4878b5aca0e (patch)
tree592e996961a363d8988f5de512e56499d3f9fac2 /chapter08/ncurses.xml
parentbfc6495520f79cc627206abe295a979655cbe871 (diff)
Generate shared C++ bindings for ncurses
Presently we let the build system generate static C++ bindings, and then we remove them. Note that we could also prevent generating any C++ binding, since nothing in LFS/BLFS use them, but it seems to me that generating the shared ones is closer to what is done for other packages.
Diffstat (limited to 'chapter08/ncurses.xml')
-rw-r--r--chapter08/ncurses.xml50
1 files changed, 37 insertions, 13 deletions
diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml
index 64e7c7653..31cd65a6c 100644
--- a/chapter08/ncurses.xml
+++ b/chapter08/ncurses.xml
@@ -48,6 +48,7 @@
--with-shared \
--without-debug \
--without-normal \
+ --with-cxx-shared \
--enable-pc-files \
--enable-widec \
--with-pkg-config-libdir=/usr/lib/pkgconfig</userinput></screen>
@@ -56,16 +57,33 @@
<title>The meaning of the new configure options:</title>
<varlistentry>
- <term><parameter>--enable-widec</parameter></term>
+ <term><parameter>--with-shared</parameter></term>
<listitem>
- <para>This switch causes wide-character libraries (e.g., <filename
- class="libraryfile">libncursesw.so.&ncurses-version;</filename>)
- to be built instead of normal ones (e.g., <filename
- class="libraryfile">libncurses.so.&ncurses-version;</filename>).
- These wide-character libraries are usable in both multibyte and
- traditional 8-bit locales, while normal libraries work properly
- only in 8-bit locales. Wide-character and normal libraries are
- source-compatible, but not binary-compatible.</para>
+ <para>This makes Ncurses build and install shared C libraries.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--without-normal</parameter></term>
+ <listitem>
+ <para>This prevents Ncurses building and installing static C
+ libraries.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--without-debug</parameter></term>
+ <listitem>
+ <para>This prevents Ncurses building and installing debug
+ libraries.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--with-cxx-shared</parameter></term>
+ <listitem>
+ <para>This makes Ncurses build and install shared C++ bindings. It
+ also prevents it building and installing static C++ bindings.</para>
</listitem>
</varlistentry>
@@ -78,10 +96,16 @@
</varlistentry>
<varlistentry>
- <term><parameter>--without-normal</parameter></term>
+ <term><parameter>--enable-widec</parameter></term>
<listitem>
- <para>This switch disables building and installing most static libraries.
- </para>
+ <para>This switch causes wide-character libraries (e.g., <filename
+ class="libraryfile">libncursesw.so.&ncurses-version;</filename>)
+ to be built instead of normal ones (e.g., <filename
+ class="libraryfile">libncurses.so.&ncurses-version;</filename>).
+ These wide-character libraries are usable in both multibyte and
+ traditional 8-bit locales, while normal libraries work properly
+ only in 8-bit locales. Wide-character and normal libraries are
+ source-compatible, but not binary-compatible.</para>
</listitem>
</varlistentry>
@@ -112,7 +136,7 @@
<screen><userinput remap="install">make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib
-rm -v dest/usr/lib/{libncursesw.so.&ncurses-version;,libncurses++w.a}
+rm -v dest/usr/lib/libncursesw.so.&ncurses-version;
cp -av dest/* /</userinput></screen>
<para>Many applications still expect the linker to be able to find