我正在将自动工具用于托管在 GitHub 上的库。README
我不想使用普通的文本文件,而是使用README.md
.
运行时automake
,我收到以下错误
Makefile.am: required file `./README' not found
是否可以告诉 autotools 不要检查README
?
只需将foreign
选项传递给 automake。这告诉它您的软件不符合典型的 gnu 标准,因此省略 README 不是错误。通常,这是在configure.ac
:
AM_INIT_AUTOMAKE([foreign])
但也可以通过AUTOMAKE_OPTIONS
在 Makefile.am 中分配来完成:
AUTOMAKE_OPTIONS = foreign
我们正在使用
README: README.md
fgrep -v "[Build Status]" $< \
| markdown \
| html2text -style pretty -nobs \
| sed -e 's:>:>:g' \
> $@.tmp
从 markdown README.md 生成文本 README
简单的解决方案,基于 pn fceller的回答:唯一需要的是README
in的构建规则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
.
当你已经有一个 README 文件时,为什么要让它不要寻找你的 README 文件?它恰好是降价格式并保存为 README.md。如果您希望您的 README 文件与您的 README.md 文件相同,为什么不链接到它呢?
从命令行:
ln -s README.md README
这样,您就可以保留 README.md 文件,并且您使用的任何工具仍然可以使用标准命名约定。顺便说一句,autotools 很可能允许您为自述文件指定自定义路径。