aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/autoconf.xml
blob: 07b6b5cbee4eb3d102bdb173561daf78bbf78164 (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?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-autoconf" xreflabel="Autoconf">
<title>Autoconf-&autoconf-version;</title>
<?dbhtml filename="autoconf.html"?>

<indexterm zone="ch-system-autoconf"><primary sortas="a-Autoconf">Autoconf</primary></indexterm>

<para>The Autoconf package contains programs for producing shell scripts that
can automatically configure source code.</para>

<screen>&buildtime; 0.5 SBU
&diskspace; 7.7 MB</screen>

<para>Autoconf installation depends on: Bash, Coreutils, Diffutils, Grep,
M4, Make, Perl, Sed.</para>


<sect2>
<title>Installation of Autoconf</title>

<para>Prepare Autoconf 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>. This takes a long time, about 2 SBUs.</para>

<para>Install the package:</para>

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

</sect2>


<sect2 id="contents-autoconf"><title>Contents of Autoconf</title>

<para><emphasis>Installed programs</emphasis>: autoconf, autoheader, autom4te,
autoreconf, autoscan, autoupdate and ifnames</para>

</sect2>

<sect2><title>Short descriptions</title>

<indexterm zone="ch-system-autoconf autoconf"><primary sortas="b-autoconf">autoconf</primary></indexterm>
<para id="autoconf"><command>autoconf</command> is a tool for producing shell scripts
that automatically configure software source code packages to adapt to many
kinds of Unix-like systems. The configuration scripts it produces are
independent -- running them does not require the autoconf program.</para>

<indexterm zone="ch-system-autoconf autoheader"><primary sortas="b-autoheader">autoheader</primary></indexterm>
<para id="autoheader"><command>autoheader</command> is a tool for creating template files
of C #define statements for configure to use.</para>

<indexterm zone="ch-system-autoconf autom4te"><primary sortas="b-autom4te">autom4te</primary></indexterm>
<para id="autom4te"><command>autom4te</command> is a wrapper for the M4 macro
processor.</para>

<indexterm zone="ch-system-autoconf autoreconf"><primary sortas="b-autoreconf">autoreconf</primary></indexterm>
<para id="autoreconf"><command>autoreconf</command> comes in handy when there are a lot
of autoconf-generated configure scripts around. The program runs autoconf and
autoheader repeatedly (where appropriate) to remake the autoconf configure
scripts and configuration header templates in a given directory tree.</para>

<indexterm zone="ch-system-autoconf autoscan"><primary sortas="b-autoscan">autoscan</primary></indexterm>
<para id="autoscan"><command>autoscan</command> can help to create a
<filename>configure.in</filename> file for a software package. It examines
the source files in a directory tree, searching them for common portability
problems and creates a <filename>configure.scan</filename> file that serves as
as a preliminary <filename>configure.in</filename> for the package.</para>

<indexterm zone="ch-system-autoconf autoupdate"><primary sortas="b-autoupdate">autoupdate</primary></indexterm>
<para id="autoupdate"><command>autoupdate</command> modifies a
<filename>configure.in</filename> file that still calls autoconf macros
by their old names to use the current macro names.</para>

<indexterm zone="ch-system-autoconf ifnames"><primary sortas="b-ifnames">ifnames</primary></indexterm>
<para id="ifnames"><command>ifnames</command> can be helpful when writing a
<filename>configure.in</filename> for a software package. It prints the
identifiers that the package uses in C preprocessor conditionals. If a package
has already been set up to have some portability, this program can help to
determine what <command>configure</command> needs to check. It can fill
in some gaps in a <filename>configure.in</filename> file generated by
autoscan.</para>

</sect2>



</sect1>