27

我正在将自动工具用于托管在 GitHub 上的库。README我不想使用普通的文本文件,而是使用README.md.

运行时automake,我收到以下错误

Makefile.am: required file `./README' not found

是否可以告诉 autotools 不要检查README

4

4 回答 4

30

只需将foreign选项传递给 automake。这告诉它您的软件不符合典型的 gnu 标准,因此省略 README 不是错误。通常,这是在configure.ac

AM_INIT_AUTOMAKE([foreign])

但也可以通过AUTOMAKE_OPTIONS在 Makefile.am 中分配来完成:

AUTOMAKE_OPTIONS = foreign
于 2013-02-21T23:23:30.820 回答
7

我们正在使用

README: README.md
        fgrep -v "[Build Status]" $< \
                | markdown \
                | html2text -style pretty -nobs \
                | sed -e 's:&gt;:>:g' \
                > $@.tmp

从 markdown README.md 生成文本 README

于 2013-02-22T18:47:26.840 回答
6

简单的解决方案,基于 pn fceller的回答:唯一需要的是READMEin的构建规则makefile.am。此规则甚至可以为空。所以只需将以下行添加到您的makefile.am

README: README.md

就是这样,现在 automake 不再抱怨了,你不需要将你的项目声明为foreign.

这不是必需的,但我更喜欢更完整的规则,我添加到makefile.am

README: README.md
    pandoc -f markdown -t plain --wrap=none $< -o $@

CLEANFILES = README

但即使有这条规则,README除非你明确调用make README.

于 2017-07-01T08:59:24.720 回答
5

当你已经有一个 README 文件时,为什么要让它不要寻找你的 README 文件?它恰好是降价格式并保存为 README.md。如果您希望您的 README 文件与您的 README.md 文件相同,为什么不链接到它呢?

从命令行:

ln -s README.md README

这样,您就可以保留 README.md 文件,并且您使用的任何工具仍然可以使用标准命名约定。顺便说一句,autotools 很可能允许您为自述文件指定自定义路径。

于 2013-02-21T23:02:44.427 回答