Generate shared C++ bindings for ncurses

This commit is contained in:
Vladimir Pertsev 2022-06-29 22:44:40 +05:00
parent de9758f017
commit 0ca9077cbe
3 changed files with 82 additions and 24 deletions

View File

@ -39,6 +39,16 @@
appropriate for the entry or if needed the entire day's listitem.
-->
<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>

View File

@ -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>
@ -77,11 +78,41 @@ popd</userinput></screen>
<varlistentry>
<term><parameter>--with-manpage-format=normal</parameter></term>
<listitem>
<para>Этот аргумент предотвращает установку Ncurses сжатых страниц руководства, что
<para>Этот аргумент предотвращает установку Ncurses сжатых страниц руководства, это
может произойти, если сам дистрибутив хоста содержит сжатые страницы руководства.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-shared</parameter></term>
<listitem>
<para>Этот аргумент позволяет Ncurses собирать и устанавливать разделяемые библиотеки C.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-normal</parameter></term>
<listitem>
<para>Этот аргумент предотвращает сборку и установку статических библиотек C.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-debug</parameter></term>
<listitem>
<para>Этот аргумент предотвращает сборку и установку отладочных
библиотек.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-cxx-shared</parameter></term>
<listitem>
<para>Это аргумент позволяет Ncurses собирать и устанавливать общие привязки C++. А также
предотвращает сборку и установку статических привязок C++.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-ada</parameter></term>
<listitem>
@ -111,14 +142,7 @@ popd</userinput></screen>
традиционной 8-битной локали, в то время как обычные библиотеки корректно работают
только в 8-битных локалях. Библиотеки расширенных символов и обычные совместимы на
уровне исходного кода, но не совместимы в двоичном.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-normal</parameter></term>
<listitem>
<para>Этот аргумент отключает сборку и установку большинства статических библиотек
</para>
</listitem>
</varlistentry>
@ -132,12 +156,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>Удалите ненужную статическую библиотеку, не обрабатываемую скриптом
<command>configure</command>:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/libncurses++w.a</userinput></screen>
-->
<variablelist>
<title>Значение параметров установки:</title>

View File

@ -47,6 +47,7 @@
--with-shared \
--without-debug \
--without-normal \
--with-cxx-shared \
--enable-pc-files \
--enable-widec \
--with-pkg-config-libdir=/usr/lib/pkgconfig</userinput></screen>
@ -55,16 +56,33 @@
<title>Значение новых параметров настройки:</title>
<varlistentry>
<term><parameter>--enable-widec</parameter></term>
<term><parameter>--with-shared</parameter></term>
<listitem>
<para>Этот параметр указывает, что при сборке пакета вместо обычных библиотек
(например, <filename class="libraryfile">libncurses.so.&ncurses-version;</filename>)
будут использоваться библиотеки с расширенным набором символов (например, <filename
class="libraryfile">libncursesw.so.&ncurses-version;</filename>). Библиотеки с
расширенным набором символов могут использоваться как с многобайтовыми локалями,
так и с традиционными 8-битовыми локалями, тогда как обычные библиотеки работают
только с 8-битовыми локалями. Библиотеки с расширенным набором символов и обычные
библиотеки совместимы на уровне исходного кода, но не совместимыми на уровне двоичного. </para>
<para>Этот параметр позволяет Ncurses собирать и устанавливать общие библиотеки C.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-normal</parameter></term>
<listitem>
<para>Этот параметр отключает сборку и установку большинства статических библиотек C.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-debug</parameter></term>
<listitem>
<para>Этот параметр предотвращает сборку и установку отладочных
библиотек.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-cxx-shared</parameter></term>
<listitem>
<para>Это аргумент позволяет Ncurses собирать и устанавливать общие привязки C++. А также
предотвращает сборку и установку статических привязок C++.</para>
</listitem>
</varlistentry>
@ -77,10 +95,16 @@
</varlistentry>
<varlistentry>
<term><parameter>--without-normal</parameter></term>
<term><parameter>--enable-widec</parameter></term>
<listitem>
<para>Этот параметр отключает сборку и установку большинства статических библиотек.
</para>
<para>Этот параметр указывает, что при сборке пакета вместо обычных библиотек
(например, <filename class="libraryfile">libncurses.so.&ncurses-version;</filename>)
будут использоваться библиотеки с расширенным набором символов (например, <filename
class="libraryfile">libncursesw.so.&ncurses-version;</filename>). Библиотеки с
расширенным набором символов могут использоваться как с многобайтовыми локалями,
так и с традиционными 8-битовыми локалями, тогда как обычные библиотеки работают
только с 8-битовыми локалями. Библиотеки с расширенным набором символов и обычные
библиотеки совместимы на уровне исходного кода, но не совместимыми на уровне двоичного.</para>
</listitem>
</varlistentry>
@ -111,7 +135,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>Многие приложения ожидают, что компоновщик сможет найти библиотеки Ncurses,