automake 中的“发行版”是什么?

automake 中的“发行版”是什么?

在一个Makefile.am文件中我看到以下条目:

EXTRA_DIST = bootstrap \
    ChangeLog \
    config/config.rpath \
    m4/ax_pthread.m4 \
    m4/iconv.m4 \
    MacOSX/someheader.h
    [...]

我想知道这意味着什么,但是文档似乎没有定义“分布”的实际含义。

它并不意味着“编译的库”,是吗?它是某种源代码分发吗? (为什么有人需要这个?我们可以使用 git 或 zip 根文件夹?)

希望有人能澄清一下。

答案1

在文档中,

dist生成的规则可Makefile.in用于生成 gzip 压缩tar文件和/或其他风格的存档以供分发。

“分发”是指分发的行为。

目标是dist在生成的Makefile中生成一个目标,以便项目维护者可以运行

make dist

并获得适合出版的档案,IE包含各种添加文件的源存档,以便最终用户(或最终构建者)不需要运行完整的 Autoconf 流程,只需从通常的./configure && make.

EXTRA_DIST列出通常不会包含在这些存档中的文件,以便它们也被发送。

基本概念是,对于维护者来说,项目的源代码是 Autoconf/Automake/等所期望的源代码。但这对于大多数希望从源代码编译项目的人来说并不能立即有用。因此,项目维护者在发布版本时不会分发“原始”源代码,而是分发包含生成的configure脚本和各种支持工具的“分发存档”。

答案2

“分布”的类型在这里https://www.gnu.org/software/automake/manual/html_node/The-Types-of-Distributions.html

只是像 tar.gz .zip 等文件。这个想法是,如果您修改源代码,您可以仅使用从 Internet 获取的源代码轻松构建 tar.gz。这些文件只包含源代码,甚至没有 Makefile,因为它们应该由 ./configure 创建。

相关内容