aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/flex.xml
blob: ff36d5748e58d11e2b575b36621d1c2731e05d6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<sect1 id="ch-system-flex" xreflabel="Flex">
<title>Installing Flex-&flex-version;</title>
<?dbhtml filename="flex.html" dir="chapter06"?>

<para>The Flex package contains a utility for generating programs that
recognize patterns in text.</para>

<screen>&buildtime; &flex-time;
&diskspace; &flex-compsize;</screen>

&aa-flex-down;
&aa-flex-dep;

<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>

<sect2>
<title>Installation of Flex</title>

<para>Prepare Flex for compilation:</para>

<screen><userinput>./configure --prefix=/usr</userinput></screen>

<para>Compile the package:</para>

<screen><userinput>make</userinput></screen>

<para>This package has a test suite available which can perform a number of
checks to ensure it built correctly.  Should you choose to run it, the 
following command will do so:</para>

<screen><userinput>make bigcheck</userinput></screen>

<para>And install the package:</para>

<screen><userinput>make install</userinput></screen>

<para>There are some packages that expect to find the Lex 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 <userinput>flex</userinput> yet and try
to run its predecessor <userinput>lex</userinput>. To support those programs,
create a shell script named <filename>lex</filename> that calls
<userinput>flex</userinput> in Lex emulation mode:</para>

<screen><userinput>cat &gt; /usr/bin/lex &lt;&lt; "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>

&aa-flex-shortdesc;
&aa-flex-desc;

</sect1>