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