Mention autoreconf, not autoconf
</varlistentry>
<varlistentry>
</varlistentry>
<varlistentry>
- <term>Autoconf</term>
- <indexterm><primary>pre-supposed: Autoconf</primary></indexterm>
- <indexterm><primary>Autoconf, pre-supposed</primary></indexterm>
+ <term>Autoreconf</term>
+ <indexterm><primary>pre-supposed: Autoreconf</primary></indexterm>
+ <indexterm><primary>Autoreconf, pre-supposed</primary></indexterm>
- <para>GNU Autoconf is needed if you intend to build from the
+ <para>GNU Autoreconf is needed if you intend to build from the
CVS sources, it is <emphasis>not</emphasis> needed if you
just intend to build a standard source distribution.</para>
CVS sources, it is <emphasis>not</emphasis> needed if you
just intend to build a standard source distribution.</para>
- <para>Version 2.52 or later of autoconf is required.
+ <para>Version 2.52 or later of autoreconf is required.
NB. vesrion 2.13 will no longer work, as of GHC version
6.1.</para>
NB. vesrion 2.13 will no longer work, as of GHC version
6.1.</para>
- <para>Autoconf builds the <command>configure</command>
+ <para>Autoreconf builds the <command>configure</command>
script from <filename>configure.ac</filename> and
<filename>aclocal.m4</filename>. If you modify either of
script from <filename>configure.ac</filename> and
<filename>aclocal.m4</filename>. If you modify either of
- these files, you'll need <command>autoconf</command> to
+ these files, you'll need <command>autoreconf</command> to
rebuild <filename>configure</filename>.</para>
</listitem>
</varlistentry>
rebuild <filename>configure</filename>.</para>
</listitem>
</varlistentry>
want a completely standard build, then the following should
work:</para>
want a completely standard build, then the following should
work:</para>
+<screen>$ autoreconf
+$ ./configure
$ make
$ make install
</screen>
$ make
$ make install
</screen>
<para>Change directory to
<constant>$(FPTOOLS_TOP)</constant> and
issue the command
<para>Change directory to
<constant>$(FPTOOLS_TOP)</constant> and
issue the command
- <command>autoconf</command><indexterm><primary>autoconf</primary></indexterm>
+<ProgramListing>
+autoreconf
+</ProgramListing>
+ <indexterm><primary>autoreconf</primary></indexterm>
(with no arguments). This GNU program converts
<filename><constant>$(FPTOOLS_TOP)</constant>/configure.ac</filename>
to a shell script called
<filename><constant>$(FPTOOLS_TOP)</constant>/configure</filename>.
(with no arguments). This GNU program converts
<filename><constant>$(FPTOOLS_TOP)</constant>/configure.ac</filename>
to a shell script called
<filename><constant>$(FPTOOLS_TOP)</constant>/configure</filename>.
+ If <command>autoreconf</command> bleats that it can't write the file <filename>configure</filename>,
+ then delete the latter and try again. Note that you must use <command>autoreconf</command>,
+ and not the old <command>autoconf</command>! If you erroneously use the latter, you'll get
+ a message like "No rule to make target 'mk/config.h.in'".
</para>
<para>Some projects, including GHC, have their own
configure script. If there's an
<constant>$(FPTOOLS_TOP)/<project>/configure.ac</constant>,
</para>
<para>Some projects, including GHC, have their own
configure script. If there's an
<constant>$(FPTOOLS_TOP)/<project>/configure.ac</constant>,
- then you need to run <command>autoconf</command> in that
+ then you need to run <command>autoreconf</command> in that
- <para>Both these steps are completely
+ <para>These steps are completely
platform-independent; they just mean that the
human-written file (<filename>configure.ac</filename>) can
be short, although the resulting shell script,
platform-independent; they just mean that the
human-written file (<filename>configure.ac</filename>) can
be short, although the resulting shell script,
<para>Prepare for system configuration:</para>
<programlisting>
<para>Prepare for system configuration:</para>
<programlisting>
</programlisting>
<para>(You can skip this step if you are starting from a
</programlisting>
<para>(You can skip this step if you are starting from a
<filename>mk/config.h.in</filename>.)</para>
<para>Some projects, including GHC itself, have their own
<filename>mk/config.h.in</filename>.)</para>
<para>Some projects, including GHC itself, have their own
- configure scripts, so it is necessary to run autoconf again
+ configure scripts, so it is necessary to run autoreconf again
in the appropriate subdirectories. eg:</para>
<programlisting>
in the appropriate subdirectories. eg:</para>
<programlisting>
</programlisting>
</listitem>
</programlisting>
</listitem>
<command>openssh</command>,
</para></listitem>
<listitem><para>
<command>openssh</command>,
</para></listitem>
<listitem><para>
- <command>autoconf</command>,
+ <command>autoreconf</command>,
</para></listitem>
<listitem><para>
<command>automake</command>,
</para></listitem>
<listitem><para>
<command>automake</command>,
<ItemizedList>
<listitem>
<para>
<ItemizedList>
<listitem>
<para>
-Run <Command>autoconf</Command> both in <filename>fptools</filename>
+Run <Command>autoreconf</Command> both in <filename>fptools</filename>
and in <filename>fptools/ghc</filename>. If you omit the latter step you'll
get an error when you run <filename>./configure</filename>:
<Screen>
and in <filename>fptools/ghc</filename>. If you omit the latter step you'll
get an error when you run <filename>./configure</filename>:
<Screen>
-<listitem> <para><command>autoconf</command> seems to create the file <filename>configure</filename>
-read-only. So if you need to run autoconf again (which I sometimes do for safety's sake),
+<listitem> <para><command>autoreconf</command> seems to create the file <filename>configure</filename>
+read-only. So if you need to run autoreconf again (which I sometimes do for safety's sake),
-/usr/bin/autoconf: cannot create configure: permission denied
+/usr/bin/autoreconf: cannot create configure: permission denied
</screen>
Solution: delete <filename>configure</filename> first.
</para></listitem>
</screen>
Solution: delete <filename>configure</filename> first.
</para></listitem>
- After <command>autoconf</command> run <command>./configure</command> in
+ After <command>autoreconf</command> run <command>./configure</command> in
<filename>fptools/</filename> thus:
<Screen>
<filename>fptools/</filename> thus:
<Screen>