* Merged newxml into HEAD
[linux_from_scratch.git] / newxml / chapter06 / autoconf.xml
blob07b6b5cbee4eb3d102bdb173561daf78bbf78164
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
3   <!ENTITY % general-entities SYSTEM "../general.ent">
4   %general-entities;
5 ]>
6 <sect1 id="ch-system-autoconf" xreflabel="Autoconf">
7 <title>Autoconf-&autoconf-version;</title>
8 <?dbhtml filename="autoconf.html"?>
10 <indexterm zone="ch-system-autoconf"><primary sortas="a-Autoconf">Autoconf</primary></indexterm>
12 <para>The Autoconf package contains programs for producing shell scripts that
13 can automatically configure source code.</para>
15 <screen>&buildtime; 0.5 SBU
16 &diskspace; 7.7 MB</screen>
18 <para>Autoconf installation depends on: Bash, Coreutils, Diffutils, Grep,
19 M4, Make, Perl, Sed.</para>
22 <sect2>
23 <title>Installation of Autoconf</title>
25 <para>Prepare Autoconf for compilation:</para>
27 <screen><userinput>./configure --prefix=/usr</userinput></screen>
29 <para>Compile the package:</para>
31 <screen><userinput>make</userinput></screen>
33 <para>To test the results, issue:
34 <userinput>make check</userinput>. This takes a long time, about 2 SBUs.</para>
36 <para>Install the package:</para>
38 <screen><userinput>make install</userinput></screen>
40 </sect2>
43 <sect2 id="contents-autoconf"><title>Contents of Autoconf</title>
45 <para><emphasis>Installed programs</emphasis>: autoconf, autoheader, autom4te,
46 autoreconf, autoscan, autoupdate and ifnames</para>
48 </sect2>
50 <sect2><title>Short descriptions</title>
52 <indexterm zone="ch-system-autoconf autoconf"><primary sortas="b-autoconf">autoconf</primary></indexterm>
53 <para id="autoconf"><command>autoconf</command> is a tool for producing shell scripts
54 that automatically configure software source code packages to adapt to many
55 kinds of Unix-like systems. The configuration scripts it produces are
56 independent -- running them does not require the autoconf program.</para>
58 <indexterm zone="ch-system-autoconf autoheader"><primary sortas="b-autoheader">autoheader</primary></indexterm>
59 <para id="autoheader"><command>autoheader</command> is a tool for creating template files
60 of C #define statements for configure to use.</para>
62 <indexterm zone="ch-system-autoconf autom4te"><primary sortas="b-autom4te">autom4te</primary></indexterm>
63 <para id="autom4te"><command>autom4te</command> is a wrapper for the M4 macro
64 processor.</para>
66 <indexterm zone="ch-system-autoconf autoreconf"><primary sortas="b-autoreconf">autoreconf</primary></indexterm>
67 <para id="autoreconf"><command>autoreconf</command> comes in handy when there are a lot
68 of autoconf-generated configure scripts around. The program runs autoconf and
69 autoheader repeatedly (where appropriate) to remake the autoconf configure
70 scripts and configuration header templates in a given directory tree.</para>
72 <indexterm zone="ch-system-autoconf autoscan"><primary sortas="b-autoscan">autoscan</primary></indexterm>
73 <para id="autoscan"><command>autoscan</command> can help to create a
74 <filename>configure.in</filename> file for a software package. It examines
75 the source files in a directory tree, searching them for common portability
76 problems and creates a <filename>configure.scan</filename> file that serves as
77 as a preliminary <filename>configure.in</filename> for the package.</para>
79 <indexterm zone="ch-system-autoconf autoupdate"><primary sortas="b-autoupdate">autoupdate</primary></indexterm>
80 <para id="autoupdate"><command>autoupdate</command> modifies a
81 <filename>configure.in</filename> file that still calls autoconf macros
82 by their old names to use the current macro names.</para>
84 <indexterm zone="ch-system-autoconf ifnames"><primary sortas="b-ifnames">ifnames</primary></indexterm>
85 <para id="ifnames"><command>ifnames</command> can be helpful when writing a
86 <filename>configure.in</filename> for a software package. It prints the
87 identifiers that the package uses in C preprocessor conditionals. If a package
88 has already been set up to have some portability, this program can help to
89 determine what <command>configure</command> needs to check. It can fill
90 in some gaps in a <filename>configure.in</filename> file generated by
91 autoscan.</para>
93 </sect2>
97 </sect1>