aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2022-06-30 20:02:07 +0800
committerXi Ruoyao <xry111@xry111.site>2022-06-30 20:02:07 +0800
commite4d72ed3dbd8e865a916d1d613f12dd083f42fb1 (patch)
treea136b3cd0f149e05932d771576d586e33f81ff36
parentf7c33596090837392bda93032a034253bc94b6e7 (diff)
parentf8b27abcda6fd5beaaf3f57ae31da4878b5aca0e (diff)
Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng
-rw-r--r--chapter01/changelog.xml10
-rw-r--r--chapter06/ncurses.xml46
-rw-r--r--chapter08/ncurses.xml50
3 files changed, 82 insertions, 24 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index c1ac5a88c..73d614768 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -41,6 +41,16 @@
-->
<listitem>
+ <para>2022-06-29</para>
+ <itemizedlist>
+ <listitem>
+ <para>[pierre] - Generate shared C++ bindings for ncurses, instead
+ of generating and then removing the static ones.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
<para>2022-06-14</para>
<itemizedlist>
<listitem>
diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml
index 34426d4b7..d9457c081 100644
--- a/chapter06/ncurses.xml
+++ b/chapter06/ncurses.xml
@@ -65,9 +65,10 @@ popd</userinput></screen>
--mandir=/usr/share/man \
--with-manpage-format=normal \
--with-shared \
+ --without-normal \
+ --with-cxx-shared \
--without-debug \
--without-ada \
- --without-normal \
--disable-stripping \
--enable-widec</userinput></screen>
@@ -84,6 +85,37 @@ popd</userinput></screen>
</varlistentry>
<varlistentry>
+ <term><parameter>--with-shared</parameter></term>
+ <listitem>
+ <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>
+
+ <varlistentry>
<term><parameter>--without-ada</parameter></term>
<listitem>
<para>This ensures that Ncurses does not build support for the Ada
@@ -115,14 +147,6 @@ popd</userinput></screen>
</listitem>
</varlistentry>
- <varlistentry>
- <term><parameter>--without-normal</parameter></term>
- <listitem>
- <para>This switch disables building and installing most static libraries.
- </para>
- </listitem>
- </varlistentry>
-
</variablelist>
<para>Compile the package:</para>
@@ -133,12 +157,12 @@ popd</userinput></screen>
<screen><userinput remap="install">make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so</userinput></screen>
-
+<!--
<para>Remove an unneeded static library not handled by
<command>configure</command>:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/libncurses++w.a</userinput></screen>
-
+-->
<variablelist>
<title>The meaning of the install options:</title>
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