aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06
diff options
context:
space:
mode:
authorMatthew Burgess <matthew@linuxfromscratch.org>2011-05-22 22:21:37 +0000
committerMatthew Burgess <matthew@linuxfromscratch.org>2011-05-22 22:21:37 +0000
commit47045599e69241222a0288069cd76dc1614aed4d (patch)
tree94efeed21df1866758b8ff1019c57708913a09c6 /chapter06
parentb8d2a723d7581ec19e3bca64954d4d0cd2f4b1f5 (diff)
Upgrade to Pkg-config-0.26 and add PCRE and Glib as required dependencies.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9547 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter06')
-rw-r--r--chapter06/chapter06.xml4
-rw-r--r--chapter06/glib.xml172
-rw-r--r--chapter06/pcre.xml187
-rw-r--r--chapter06/pkg-config.xml8
4 files changed, 369 insertions, 2 deletions
diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml
index f4b21b449..899ab5446 100644
--- a/chapter06/chapter06.xml
+++ b/chapter06/chapter06.xml
@@ -29,6 +29,9 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gcc.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sed.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bzip2.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pcre.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="glib.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pkg-config.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="ncurses.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="util-linux.xml"/>
@@ -47,7 +50,6 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="perl.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="autoconf.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="automake.xml"/>
- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bzip2.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="diffutils.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gawk.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="findutils.xml"/>
diff --git a/chapter06/glib.xml b/chapter06/glib.xml
new file mode 100644
index 000000000..ee5297676
--- /dev/null
+++ b/chapter06/glib.xml
@@ -0,0 +1,172 @@
+<?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-system-glib" role="wrap">
+ <?dbhtml filename="glib.html"?>
+
+ <sect1info condition="script">
+ <productname>glib</productname>
+ <productnumber>&glib-version;</productnumber>
+ <address>&glib-url;</address>
+ </sect1info>
+
+ <title>Glib-&glib-version;</title>
+
+ <indexterm zone="ch-system-glib">
+ <primary sortas="a-Glib">Glib</primary>
+ </indexterm>
+
+ <sect2 role="package">
+ <title/>
+
+ <para>The GLib package contains a low-level core library. This is useful
+ for providing data structure handling for C, portability wrappers and
+ interfaces for such runtime functionality as an event loop, threads,
+ dynamic loading, and an object system.</para>
+
+ <segmentedlist>
+ <segtitle>&buildtime;</segtitle>
+ <segtitle>&diskspace;</segtitle>
+
+ <seglistitem>
+ <seg>&glib-ch6-sbu;</seg>
+ <seg>&glib-ch6-du;</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ </sect2>
+
+ <sect2 role="installation">
+ <title>Installation of Glib</title>
+
+ <para>Prepare Glib for compilation:</para>
+
+<screen><userinput remap="configure">PCRE_LIBS="-L/usr/lib -lpcre" PCRE_CFLAGS="-I/usr/include" ./configure --prefix=/usr --with-pcre=system</userinput></screen>
+
+ <variablelist>
+ <title>The meaning of the configure options:</title>
+
+ <varlistentry>
+ <term><parameter>--with-pcre=system</parameter></term>
+ <listitem>
+ <para>This parameter causes the build to use a system-provided
+ version of the PCRE library instead of an internal version.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Compile the package:</para>
+
+<screen><userinput remap="make">make</userinput></screen>
+
+ <para>Due to dependencies on additional Perl modules and other packages not yet present
+ (e.g. desktop-file-utils and DBus), it is not possible to run Glib's test suite.</para>
+
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ </sect2>
+
+ <sect2 id="contents-glib" role="content">
+ <title>Contents of Glib</title>
+
+ <segmentedlist>
+ <segtitle>Installed programs</segtitle>
+ <segtitle>Installed libraries</segtitle>
+ <segtitle>Installed directories</segtitle>
+
+ <seglistitem>
+ <seg>gio-querymodules, glib-genmarshal, glib-gettextize,
+ glib-mkenums, gobject-query, gtester and gtester-report</seg>
+ <seg>libgio-2.0.so, libglib-2.0.so, libgmodule-2.0.so,
+ libgobject-2.0.so, and libgthread-2.0.so</seg>
+ <seg>/usr/include/{gio-unix-2.0/gio,glib-2.0/{gio,glib,gobject}},
+ /usr/lib/{gio/modules,glib-2.0/include},
+ /usr/share/{gdb/auto-load,glib-2.0/{gdb, gettext/po},gtk-doc/html/{gio,glib,gobject}}</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ <variablelist>
+ <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+ <?dbfo list-presentation="list"?>
+ <?dbhtml list-presentation="table"?>
+
+ <varlistentry id="gio-querymodules">
+ <term><command>gio-querymodules</command></term>
+ <listitem>
+ <para>is a C code marshaller generation utility for GLib
+ closures.</para>
+ <indexterm zone="ch-system-glib gio-querymodules">
+ <primary sortas="b-glib">gio-querymodules</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="glib-gettextize">
+ <term><command>glib-gettextize</command></term>
+ <listitem>
+ <para>is a variant of the gettext internationalization
+ utility.</para>
+ <indexterm zone="ch-system-glib glib-gettextize">
+ <primary sortas="b-glib-gettextize">glib-gettextize</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="glib-mkenums">
+ <term><command>glib-mkenums</command></term>
+ <listitem>
+ <para>is a C language enum description generation utility.</para>
+ <indexterm zone="ch-system-glib glib-mkenums">
+ <primary sortas="b-glib-mkenums">glib-mkenums</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="gobject-query">
+ <term><command>gobject-query</command></term>
+ <listitem>
+ <para>Is a small utility that draws a tree of types.</para>
+ <indexterm zone="ch-system-glib gobject-query">
+ <primary sortas="b-gobject-query">gobject-query</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="gtester">
+ <term><command>gtester</command></term>
+ <listitem>
+ <para>Is a test running utility.</para>
+ <indexterm zone="ch-system-glib gtester">
+ <primary sortas="b-gtester">gtester</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="gtester-report">
+ <term><command>gtester-report</command></term>
+ <listitem>
+ <para>Is a test report formatting utility.</para>
+ <indexterm zone="ch-system-glib gtester-report">
+ <primary sortas="b-gtester-report">gtester-report</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="glib">
+ <term><filename class="libraryfile">Glib libraries</filename></term>
+ <listitem>
+ <para>contain a general purpose low-level core library.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </sect2>
+
+</sect1>
diff --git a/chapter06/pcre.xml b/chapter06/pcre.xml
new file mode 100644
index 000000000..5d04a7f38
--- /dev/null
+++ b/chapter06/pcre.xml
@@ -0,0 +1,187 @@
+<?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-system-pcre" role="wrap">
+ <?dbhtml filename="pcre.html"?>
+
+ <sect1info condition="script">
+ <productname>pcre</productname>
+ <productnumber>&pcre-version;</productnumber>
+ <address>&pcre-url;</address>
+ </sect1info>
+
+ <title>PCRE-&pcre-version;</title>
+
+ <indexterm zone="ch-system-pcre">
+ <primary sortas="a-PCRE">PCRE</primary>
+ </indexterm>
+
+ <sect2 role="package">
+ <title/>
+
+ <para>The PCRE package contains Perl Compatible Regular Expression
+ libraries. These are useful for implementing regular expression pattern
+ matching using the same syntax and semantics as Perl 5.</para>
+
+ <segmentedlist>
+ <segtitle>&buildtime;</segtitle>
+ <segtitle>&diskspace;</segtitle>
+
+ <seglistitem>
+ <seg>&pcre-ch6-sbu;</seg>
+ <seg>&pcre-ch6-du;</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ </sect2>
+
+ <sect2 role="installation">
+ <title>Installation of PCRE</title>
+
+ <para>Prepare PCRE for compilation:</para>
+
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --docdir=/usr/share/doc/pcre-8.10 \
+ --enable-utf8 \
+ --enable-unicode-properties \
+ --enable-pcregrep-libz \
+ --enable-pcregrep-libbz2</userinput></screen>
+
+ <variablelist>
+ <title>The meaning of the configure options:</title>
+
+ <varlistentry>
+ <term><parameter>--enable-utf8</parameter></term>
+ <listitem>
+ <para>This switch includes the code for handling UTF-8 character
+ strings in the library.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--enable-unicode-properties</parameter></term>
+ <listitem>
+ <para>This switch enables Unicode properties support.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--enable-pcregrep-lib*</parameter></term>
+ <listitem>
+ <para>These switches enable the PCRE library to read files compressed
+ with <command>gzip</command> and <command>bzip2</command>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Compile the package:</para>
+
+<screen><userinput remap="make">make</userinput></screen>
+
+ <para>To test the results, issue:</para>
+
+<screen><userinput remap="test">make check</userinput></screen>
+
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ <para>The <command>grep</command> binary will be installed in <filename class="directory">/bin</filename> and will link against the PCRE library; as such,
+move the library to <filename class="directory">/lib</filename>:</para>
+
+<screen><userinput remap="install">mv -v /usr/lib/libpcre.so.* /lib/ &amp;&amp;
+ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so</userinput></screen>
+
+ </sect2>
+
+ <sect2 id="contents-pcre" role="content">
+ <title>Contents of PCRE</title>
+
+ <segmentedlist>
+ <segtitle>Installed programs</segtitle>
+ <segtitle>Installed libraries</segtitle>
+ <segtitle>Installed directories</segtitle>
+
+ <seglistitem>
+ <seg>pcregrep, pcretest, and pcre-config</seg>
+ <seg>libpcre.{so,a}, libpcrecpp.{so,a} and libpcreposix.{so,a}</seg>
+ <seg>/usr/share/doc/pcre-&pcre-version;</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ <variablelist>
+ <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+ <?dbfo list-presentation="list"?>
+ <?dbhtml list-presentation="table"?>
+
+ <varlistentry id="pcregrep">
+ <term><command>pcregrep</command></term>
+ <listitem>
+ <para>A grep that understands Perl compatible regular
+ expressions.</para>
+ <indexterm zone="ch-system-pcre pcregrep">
+ <primary sortas="b-pcre">pcregrep</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="pcretest">
+ <term><command>pcretest</command></term>
+ <listitem>
+ <para>Tests a Perl compatible regular expression.</para>
+ <indexterm zone="ch-system-pcre pcretest">
+ <primary sortas="b-pcretest">pcretest</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="pcre-config">
+ <term><command>pcre-config</command></term>
+ <listitem>
+ <para>Used during the compilation process of programs linking to the
+ PCRE libraries.</para>
+ <indexterm zone="ch-system-pcre pcre-config">
+ <primary sortas="b-pcre-config">pcre-config</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="libpcre">
+ <term><filename class="libraryfile">libpcre</filename></term>
+ <listitem>
+ <para>Provides functions useful for working with regular
+ expressions.</para>
+ <indexterm zone="ch-system-pcre libpcre">
+ <primary sortas="c-libpcre*">libpcre*</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="libpcrecpp">
+ <term><filename class="libraryfile">libpcrecpp</filename></term>
+ <listitem>
+ <para>Provides C++ wrapper functions for the libpcre library.</para>
+ <indexterm zone="ch-system-pcre libpcrecpp">
+ <primary sortas="c-libpcrecpp*">libpcrecpp*</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="libpcreposix">
+ <term><filename class="libraryfile">libpcreposix</filename></term>
+ <listitem>
+ <para>Provides wrapper functions based on the POSIX regular expression
+ API.</para>
+ <indexterm zone="ch-system-pcre libpcreposix">
+ <primary sortas="c-libpcre*">libpcreposix*</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </sect2>
+
+</sect1>
diff --git a/chapter06/pkg-config.xml b/chapter06/pkg-config.xml
index 444a30c9a..12498d289 100644
--- a/chapter06/pkg-config.xml
+++ b/chapter06/pkg-config.xml
@@ -48,9 +48,15 @@
url="&blfs-root;view/svn/general/popt.html">BLFS Popt build
instructions</ulink> before installing Pkg-config.</para></note>
+
+ <para>Fix a problem with one of Pkg-config's tests:</para>
+
+<screen><userinput remap="pre">sed -i -e '21s/EXPECT_RETURN=1/EXPECT_RETURN=0/' check/check-cmd-options</userinput></screen>
+
<para>Prepare Pkg-config for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
+<screen><userinput remap="configure">GLIB_LIBS="-L/usr/lib -lglib-2.0" \
+ GLIB_CFLAGS="-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include" ./configure --prefix=/usr</userinput></screen>
<para>Compile the package:</para>