<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-autoconf" role="wrap">
  <?dbhtml filename="autoconf.html"?>

  <sect1info condition="script">
    <productname>autoconf</productname>
    <productnumber>&autoconf-version;</productnumber>
    <address>&autoconf-url;</address>
  </sect1info>

  <title>Autoconf-&autoconf-version;</title>

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

  <sect2 role="package">
    <title/>

    <para>Autoconf 软件包包含生成能自动配置软件包的 shell
    脚本的程序。</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&autoconf-ch6-sbu;</seg>
        <seg>&autoconf-ch6-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>安装 Autoconf</title>

    <para>准备安装 Autoconf：</para>

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

    <para>编译该软件包：</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>运行以下命令以测试编译结果：</para>

<screen><userinput remap="test">make check</userinput></screen>

    <!--para>这需要比较长的时间，大约 &autoconf-ch6-sbu-tests; SBUs. In addition,
    several tests are skipped that use Automake. For full test coverage,
    Autoconf can be re-tested after Automake has been installed.  In addition,
	two tests fail due to changes in libtool-2.4.3 and later.</para-->

    <para>这需要消耗大约 &autoconf-ch6-sbu-tests; SBU 的较长时间。
		另外，某些使用 Automake 的测试会被跳过。
		为了完整的测试覆盖率，可以在安装 Automake 后重新测试 Autoconf。
		此外，还有两个测试由于 libtool-2.4.3 及更新版本的变化而失败。</para>

    <!--note><para>The test time for autoconf can be reduced significantly on a
    system with multiple cores.  To do this, append
    <command>TESTSUITEFLAGS=-j&lt;N&gt;</command> to the line above.  For
    instance, using -j4 can reduce the test time by over 60
    percent.</para></note-->
	<note><para>在多核系统上，可以显著减少 autoconf 的测试时间。
		为此，在以上命令的末尾附加
		<command>TESTSUITEFLAGS=-j&lt;N&gt;</command> 选项。
		例如，使用 -j4 可以减少超过 60% 的测试时间。</para></note>

    <para>安装该软件包：</para>

<screen><userinput remap="install">make install</userinput></screen>

  </sect2>

  <sect2 id="contents-autoconf" role="content">
    <title>Autoconf 的内容</title>

    <segmentedlist>
      <segtitle>安装的程序</segtitle>
      <segtitle>安装的目录</segtitle>

      <seglistitem>
        <seg>autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate,
        以及 ifnames</seg>
        <seg>/usr/share/autoconf</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">简要描述</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="autoconf">
        <term><command>autoconf</command></term>
        <listitem>
          <!--para>Produces 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&mdash;running
          them does not require the <command>autoconf</command> program</para-->
          <para>产生自动配置软件源码包，使其适用于多种类 Unix 系统的
			  shell 脚本；它产生的脚本可以独立运行 —— 运行它们不需要
			  <command>autoconf</command> 程序。</para>
          	  
          <indexterm zone="ch-system-autoconf autoconf">
            <primary sortas="b-autoconf">autoconf</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="autoheader">
        <term><command>autoheader</command> </term>
        <listitem>
          <para>一个创建 C <emphasis>#define</emphasis> 预处理指令的模板，
          	  以供配置脚本使用的程序</para>
          <indexterm zone="ch-system-autoconf autoheader">
            <primary sortas="b-autoheader">autoheader</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="autom4te">
        <term><command>autom4te</command></term>
        <listitem>
          <para>M4 宏处理器的封装器</para>
          <indexterm zone="ch-system-autoconf autom4te">
            <primary sortas="b-autom4te">autom4te</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="autoreconf">
        <term><command>autoreconf</command></term>
        <listitem>
          <para>在 <command>autoconf</command> 和
          <command>automake</command> 模板文件发生变化时，
          按照正确顺序自动运行 <command>autoconf</command>、
          <command>autoheader</command>、<command>aclocal</command>、
          <command>automake</command>、<command>gettextize</command>, 以及
		  <command>libtoolize</command>，以便节省时间。</para>
          <indexterm zone="ch-system-autoconf autoreconf">
            <primary sortas="b-autoreconf">autoreconf</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="autoscan">
        <term><command>autoscan</command> </term>
        <listitem>
          <para>帮助用户为软件包创建<filename>configure.in</filename> 文件；
			  它检验目录树中的源代码文件，在其中找出一般的移植性问题，
			  然后创建一个 <filename>configure.scan</filename> 文件，
			  作为软件包的原始 <filename>configure.in</filename> 文件</para>
          <indexterm zone="ch-system-autoconf autoscan">
            <primary sortas="b-autoscan">autoscan</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="autoupdate">
        <term><command>autoupdate</command></term>
        <listitem>
        <para>修改仍然使用 <command>autoconf</command>
        	宏的旧名称调用它们的 <filename>configure.in</filename> 文件，
			使它使用当前的宏名</para>
          <indexterm zone="ch-system-autoconf autoupdate">
            <primary sortas="b-autoupdate">autoupdate</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="ifnames">
        <term><command>ifnames</command> </term>
        <listitem>
          <!--para>Helps when writing <filename>configure.in</filename> files
          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 determine what
          <command>configure</command> needs to check for. It can also fill in
          gaps in a <filename>configure.in</filename> file generated by
          <command>autoscan</command>.]</para-->
          <para>帮助用户为软件包编写 <filename>configure.in</filename>；
			  它打印软件包在 C 预处理器条件中使用的所有标识符
			  [如果一个软件包已经被设定为有一定的可移植性，
			  该程序可以帮助确定 <command>configure</command>
			  需要进行哪些测试。它也会填充 <command>autoscan</command>
			  生成的 <filename>configure.in</filename> 中留下的空隙。]
		  </para>
          <indexterm zone="ch-system-autoconf ifnames">
            <primary sortas="b-ifnames">ifnames</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
