123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
- <!ENTITY % general-entities SYSTEM "../general.ent">
- %general-entities;
- ]>
- <sect1 id="ch-system-flex" xreflabel="Flex" role="wrap">
- <title>Flex-&flex-version;</title>
- <?dbhtml filename="flex.html"?>
- <indexterm zone="ch-system-flex"><primary sortas="a-Flex">Flex</primary></indexterm>
- <sect2 role="package"><title/>
- <para>The Flex package contains a utility for generating programs that
- recognize patterns in text.</para>
- <segmentedlist>
- <segtitle>&buildtime;</segtitle>
- <segtitle>&diskspace;</segtitle>
- <seglistitem><seg>0.1 SBU</seg><seg>3.4 MB</seg></seglistitem>
- </segmentedlist>
- <segmentedlist>
- <segtitle>Flex installation depends on</segtitle>
- <seglistitem><seg>Bash, Binutils, Bison, Coreutils, Diffutils,
- GCC, Gettext, Glibc, Grep, M4, Make, Sed</seg></seglistitem>
- </segmentedlist>
- </sect2>
- <sect2 role="installation">
- <title>Installation of Flex</title>
- <para>Flex contains several known bugs. Fix these with the following patch:</para>
- <screen><userinput>patch -Np1 -i ../flex-&flex-version;-debian_fixes-2.patch</userinput></screen>
- <para>The GNU autotools detects that the Flex source code has been modified by
- the previous patch, and tries to update the manual page accordingly, but this
- breaks on many systems, and the default page is fine, so make sure it doesn't
- get regenerated:</para>
- <screen><userinput>touch doc/flex.1</userinput></screen>
- <para>Now prepare Flex for compilation:</para>
- <screen><userinput>./configure --prefix=/usr</userinput></screen>
- <para>Compile the package:</para>
- <screen><userinput>make</userinput></screen>
- <para>To test the results, issue:
- <userinput>make check</userinput>.</para>
- <para>Now install the package:</para>
- <screen><userinput>make install</userinput></screen>
- <para>There are some packages that expect to find the <emphasis>lex</emphasis>
- library in <filename>/usr/lib</filename>. Create a symlink to account for
- this:</para>
- <screen><userinput>ln -s libfl.a /usr/lib/libl.a</userinput></screen>
- <para>A few programs don't know about <command>flex</command> yet and try
- to run its predecessor <command>lex</command>. To support those programs,
- create a wrapper script named <filename>lex</filename> that calls
- <command>flex</command> in <emphasis>lex</emphasis> emulation mode:</para>
- <screen><userinput>cat > /usr/bin/lex << "EOF"</userinput>
- #!/bin/sh
- # Begin /usr/bin/lex
- exec /usr/bin/flex -l "$@"
- # End /usr/bin/lex
- <userinput>EOF
- chmod 755 /usr/bin/lex</userinput></screen>
- </sect2>
- <sect2 id="contents-flex" role="content"><title>Contents of Flex</title>
- <segmentedlist>
- <segtitle>Installed programs</segtitle>
- <segtitle>Installed library</segtitle>
- <seglistitem><seg>flex, flex++ (link to flex) and lex</seg>
- <seg>libfl.a</seg></seglistitem>
- </segmentedlist>
- <variablelist><title>Short descriptions</title>
- <varlistentry id="flex">
- <term><command>flex</command></term>
- <listitem>
- <indexterm zone="ch-system-flex flex"><primary sortas="b-flex">flex</primary></indexterm>
- <para>is a tool for generating programs that
- recognize patterns in text. Pattern recognition is useful in many applications.
- From a set of rules on what to look for, <command>flex</command> makes a program that looks for
- those patterns. The reason to use <command>flex</command> is that it is much easier to specify
- the rules for a pattern-finding program than to write the program.</para>
- </listitem>
- </varlistentry>
- <varlistentry id="flex-">
- <term><command>flex++</command></term>
- <listitem>
- <indexterm zone="ch-system-flex flex-"><primary sortas="b-flex++">flex++</primary></indexterm>
- <para>invokes a version of <command>flex</command> that is used exclusively for C++ scanners.</para>
- </listitem>
- </varlistentry>
- <varlistentry id="libfl.a">
- <term><filename class="libraryfile">libfl.a</filename></term>
- <listitem>
- <indexterm zone="ch-system-flex libfl.a"><primary sortas="c-libfl.a">libfl.a</primary></indexterm>
- <para>is the flex library.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
|