diff options
Diffstat (limited to 'chapter07/ncurses.xml')
-rw-r--r-- | chapter07/ncurses.xml | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/chapter07/ncurses.xml b/chapter07/ncurses.xml new file mode 100644 index 000000000..e2455eb7a --- /dev/null +++ b/chapter07/ncurses.xml @@ -0,0 +1,157 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="ch-tools-ncurses" role="wrap"> + <?dbhtml filename="ncurses.html"?> + + <sect1info condition="script"> + <productname>ncurses</productname> + <productnumber>&ncurses-version;</productnumber> + <address>&ncurses-url;</address> + </sect1info> + + <title>Ncurses-&ncurses-version;</title> + + <indexterm zone="ch-tools-ncurses"> + <primary sortas="a-Ncurses">Ncurses</primary> + <secondary>tools</secondary> + </indexterm> + + <sect2 role="package"> + <title/> + + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" + href="../chapter06/ncurses.xml" + xpointer="xpointer(/sect1/sect2[1]/para[1])"/> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&ncurses-ch5-sbu;</seg> + <seg>&ncurses-ch5-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Ncurses</title> + + <para>First, ensure that <command>gawk</command> is found first during configuration:</para> + +<screen><userinput remap="pre">sed -i s/mawk// configure</userinput></screen> + + <para>Then, run the following commands to build the <quote>tic</quote> + program on the build host:</para> + +<screen><userinput remap="pre">mkdir build +cd build +../configure +make -C include +make -C progs tic +cd ..</userinput></screen> + + <para>Prepare Ncurses for compilation:</para> + +<screen><userinput remap="configure">./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(./config.guess) \ + --mandir=/usr/share/man \ + --with-shared \ + --without-debug \ + --without-ada \ + --without-normal \ + --enable-widec \ + --enable-pc-files</userinput></screen> + + <variablelist> + <title>The meaning of the new configure options:</title> + + <varlistentry> + <term><parameter>--without-ada</parameter></term> + <listitem> + <para>This ensures that Ncurses does not build support for the Ada + compiler which may be present on the host but will not be available + once we enter the <command>chroot</command> environment.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>--enable-widec</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> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>--enable-pc-files</parameter></term> + <listitem> + <para>This switch generates and installs .pc files for pkg-config. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>--without-normal</parameter></term> + <listitem> + <para>This switch disables building and installing most static libraries. + </para> + </listitem> + </varlistentry> + <!-- + <varlistentry> + <term><parameter>- -disable-db-install</parameter></term> + <listitem> + <para>This switch disables building the terminfo database: it is not + needed at this stage, and if <command>tic</command> is too old, + it cannot compile recent databases.</para> + </listitem> + </varlistentry> + --> + </variablelist> + + <para>Compile the package:</para> + +<screen><userinput remap="make">make</userinput></screen> + + <para>Install the package:</para> +<!-- TODO: check and document --> +<screen><userinput remap="install">make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install +ln -s libncursesw.so $LFS/usr/lib/libncurses.so</userinput></screen> + + <para>Move the shared libraries to the + <filename class="directory">/lib</filename> directory, where they are + expected to reside:</para> + +<screen><userinput remap="install">mv -v $LFS/usr/lib/libncursesw.so.6* $LFS/lib</userinput></screen> + + <para>Because the libraries have been moved, one symlink points to + a non-existent file. Recreate it:</para> + +<screen><userinput remap="install">ln -sfv ../../lib/$(readlink $LFS/usr/lib/libncursesw.so) $LFS/usr/lib/libncursesw.so</userinput></screen> + + + </sect2> + + <sect2 role="content"> + <title/> + + <para>Details on this package are located in + <xref linkend="contents-ncurses" role="."/></para> + + </sect2> + +</sect1> |