【发布时间】:2013-02-21 22:44:20
【问题描述】:
我正在为托管在 GitHub 上的库使用自动工具。我不想使用普通的README 文本文件,而是使用README.md。
运行automake时,出现以下错误
Makefile.am: required file `./README' not found
是否可以告诉 autotools 不要检查 README?
【问题讨论】:
我正在为托管在 GitHub 上的库使用自动工具。我不想使用普通的README 文本文件,而是使用README.md。
运行automake时,出现以下错误
Makefile.am: required file `./README' not found
是否可以告诉 autotools 不要检查 README?
【问题讨论】:
只需将 foreign 选项传递给 automake。这告诉它您的软件不符合典型的 gnu 标准,因此省略 README 不是错误。通常,这是在configure.ac:
AM_INIT_AUTOMAKE([foreign])
但也可以通过在 Makefile.am 中分配AUTOMAKE_OPTIONS 来完成:
AUTOMAKE_OPTIONS = foreign
【讨论】:
configure.ac后需要运行autoreconf。
我们正在使用
README: README.md
fgrep -v "[Build Status]" $< \
| markdown \
| html2text -style pretty -nobs \
| sed -e 's:>:>:g' \
> $@.tmp
从 markdown README.md 生成一个文本 README
【讨论】:
简单的解决方案,基于 pn fceller 的回答:唯一需要的是 makefile.am 中的 README 的构建规则。此规则甚至可以为空。所以只需将以下行添加到您的makefile.am:
README: README.md
就是这样,现在automake不再抱怨了,你也不需要将你的项目声明为foreign。
不需要,但我更喜欢更完整的规则,我添加到makefile.am:
README: README.md
pandoc -f markdown -t plain --wrap=none $< -o $@
CLEANFILES = README
但即使使用此规则,除非您明确调用 make README,否则不会构建 README。
【讨论】:
既然你已经有了一个 README 文件,为什么还要让它不去寻找你的 README 文件呢?它恰好是降价格式并保存为 README.md。如果您希望您的 README 文件与您的 README.md 文件相同,为什么不链接到它?
从命令行:
ln -s README.md README
这样,您可以保留您的 README.md 文件,并且您使用的任何工具仍然可以使用标准命名约定。顺便说一句,autotools 很可能允许您为自述文件指定自定义路径。
【讨论】: